云计算与虚拟化这个概念是何时出如今咱们脑海里的?一开始的亚马逊云服务再到阿里巴巴推出的阿里云,紧接着各大厂商争先恐后的推出本身的公共云平台,腾讯云,华为云,微软云等等,那么究竟什么是云服务和虚拟化?前端
首先解释什么是云计算,云计算(Cloud Computing)是基于互联网的相关服务的增长、使用和交付模式,一般涉及经过互联网来提供动态易扩展且常常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中每每用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。所以,云计算甚至可让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力能够模拟核爆炸、预测气候变化和市场发展趋势。用户经过电脑、笔记本、手机等方式接入数据中心,按本身的需求进行运算。对云计算的定义有多种说法。对于到底什么是云计算,至少能够找到100种解释。 现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源可以被快速提供,只需投入不多的管理工做,或与服务供应商进行不多的交互。python
再来讲说什么是虚拟化,虚拟化是指经过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每一个逻辑计算机可运行不一样的操做系统,而且应用程序均可以在相互独立的空间内运行而互不影响,从而显著提升计算机的工做效率。虚拟化使用软件的方法从新定义划分IT资源,能够实现IT资源的动态分配、灵活调度、跨域共享,提升IT资源利用率,使IT资源可以真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。mysql
OK,那么咱们如今就能总结一下,首先云计算是一种模式并且是经过网络访问按需使用,可是云计算并不等于虚拟化,而虚拟化分为硬件虚拟化和软件虚拟化,全虚拟化和半虚拟化linux
为何云计算与虚拟化这么火,缘由很简单,按照咱们以前传统的模式,首先和数据中心机房签定合同而后本身购买服务器,安装系统,部署对应的环境,而后出了问题可能还要联系机房受权进行维护这是要多麻烦就有多麻烦,其次普片的服务器存在资源利用率低,资源分配不合理的状况,许多公司的架构都遵循一个很是守旧的观念,那就是一台服务器就只搭建一个服务,这让使其CPU的使用资源都是很是的低,这可不是说很差,可是我以为很是浪费,咱们运维人员和架构师就是为公司省钱而且提升性能的,传统的模式还有一个自动化能力差的问题,迁移、部署都是很是繁琐,同时硬件升级的时候还可能须要停机,以上的种种都是成就了云计算与虚拟化的大功臣啊web
云计算能够归纳性的分为三类:公有云、私有云、混合云sql
公有云:使用第三方的云服务商的产品,如:阿里云、腾讯云等数据库
私有云:在本身的机房搭建云平台,好比接下来介绍的OpenStack,私有云主要提供了私密的性质,毕竟公有云的数据都是存在别人的地方编程
混合云:公有云+私有云=混合云,为何会有这种模式,举个简单的例子,双十一,偶尔的本身平台撑不住,这时候依靠别人平台按需按时去使用vim
Packaged Softwarecentos
Infrastructure as a Service
Platfrom as a Service
Software as a Service
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合做研发并发起的,以Apache许可证受权的自由软件和开放源代码项目,这也是为何OpenStack在这么火的缘由,哪怕你只改了其中的一个字母拿去售卖都是合法的,OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工做,以Python编程语言编写,整合Tornado网页服务器、Nebula运算平台,使用Twisted软件框架,遵循Open Virtualization Format、AMQP、SQLAlchemy等标准,而虚拟机器软件支持包括:KVM、Xen、VirtualBox、QEMU、 LXC 等,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack经过各类互补的服务提供了基础设施即服务(IaaS)的解决方案,每一个服务提供API以进行集成。OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与我的都将OpenStack做为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文但愿经过提供必要的指导信息,帮助你们利用OpenStack前端来设置及管理本身的公共云或私有云。OpenStack云计算平台,帮助服务商和企业内部实现相似于Amazon EC2和S3的云基础架构服务(Infrastructure as a Service,IaaS)。OpenStack包含两个主要模块:Nova 和 Swift,前者是NASA开发的虚拟服务器部署和业务计算模块;后者是Rackspace开发的分布式云存储模块,二者能够一块儿用,也能够分开单独用。OpenStack除了有Rackspace和NASA 的大力支持外,还有包括Dell、Citrix、Cisco、Canonical等重量级公司的贡献和支持,发展速度很是快,有取代另外一个业界领先开源云平台Eucalyptus的态势。
计算服务模块:Nova,一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机建立、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操做,配置CPU、内存等信息规格。
存储服务模块:Cinder,为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的建立和管理,如建立卷、删除卷,在实例上挂载和卸载卷。
镜像服务模块:Glance,一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW二、Raw、VDI、VHD、VMDK),有建立上传镜像、删除镜像、编辑镜像基本信息的功能。
身份验证模块:Keystone。为OpenStack其余服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。
网络服务模块:Neutron,提供云计算的网络虚拟化技术,为OpenStack其余服务提供网络链接服务。为用户提供接口,能够定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。
界面服务模块:Horizon,OpenStack中各类服务的Web管理门户,用于简化用户对服务的操做,例如:启动实例、分配IP地址、配置访问控制等。
[题外话:Openstack不论是版本的命名仍是说插件模块的命名都是很是有趣的,随缘起名字,就是那么佛性]
OpenStack因Open而开放,因组件而灵活,因包容而博大。有计算、网络、对象存储、块存储、身份、镜像服务、门户、测量、部署编排、数据库服务等等组件,有的组件能够根据须要选择安装,组网结构也很灵活、多样。实现了支持接入多种主流虚拟机软件:KVM、LXC、QEMU、Hyper-V、VMware、XenServer,也能够自行开发插件接入其余的虚拟化软件。
OpenStack Compute(Nova)是一套控制器,用于为单个用户或使用群组启动虚拟机实例。它一样可以用于为包含着多个实例的特定项目设置网络。OpenStack Compute在公共云处理方面堪与Amazon EC2相提并论;而在私有云方面也绝不逊色于VMware的产品。在公共云中,这套管理机制将提供预制的镜像或是为用户建立的镜像提供存储机制,这样用户就可以将镜像以虚拟机的形式启动。
OpenStack 对象存储(Swift)是一套用于在大规模可扩展系统中经过内置冗余及容错机制实现对象存储的系统。这些对象可以经过一个REST API或是像Cyberduck这样能够对接对象存储API的客户端加以恢复。
OpenStack镜像服务 (Glance)是一套虚拟机镜像查找及检索系统。它可以以三种形式加以配置:利用OpenStack对象存储机制来存储镜像;利用Amazon的简单存储解决方案(简称S3)直接存储信息;或者将S3存储与对象存储结合起来,做为S3访问的链接器。OpenStack镜像服务支持多种虚拟机镜像格式,包括VMware(VMDK)、Amazon镜像(AKI、ARI、AMI)以及VirtualBox所支持的各类磁盘格式。镜像元数据的容器格式包括Amazon的AKI、ARI以及AMI信息,标准OVF格式以及二进制大型数据。
OpenStack的开发周期是每一年固定发布两个新版本,而且每个新版软件发布时,开发者与项目技术领导者已经在规划下一个版本的细节。这些开发者来自全球70多个组织,超过1600人。他们采用高级的工具与开发方式,进行代码查看、持续的集成、测试与开发架构,让版本在快速成长的同时也能确保稳定性。
OpenStack虽说是很是的有趣,部署起来也比较简单,就修改配置文件便可,可是必须规范理解每一个的用意,否则就会很是的混乱,下面给你们简单说明一下环境的规范
域名的解析配置
#配置主机名称 vim /etc/hostname controller.kemin-cloud.com #配置hosts解析 vim /etc/hosts 192.168.137.51 controller.kemin-cloud.com 192.168.137.52 compute.kemin-cloud.com
网络时间配置
echo "* * * * * ntpdate -u ntp1.aliyun.com" >> /etc/crontab
OpenStack的Yum仓库
#直接安装用于启用OpenStack仓库的包 yum install -y centos-release-openstack-ocata #升级更新内核 yum upgrade #安装 OpenStack 客户端 yum install python-openstackclient #RHEL和 CentOS 默认启用 SELinux 。安装 openstack-selinux 包实现对OpenStack服务的安全策略进行自动管理 yum install openstack-selinux
SQL数据库
#安装SQL数据库 yum install mariadb mariadb-server python2-PyMySQL #建立并编辑/etc/my.cnf.d/openstack.cnf vim /etc/my.cnf.d/openstack.cnf [mysqld] bind-address = 10.0.0.11 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 #启动数据库服务,并将其配置为开机自启 systemctl enable mariadb.service systemctl start mariadb.service #初始化数据库 mysql_secure_installation
消息队列
#安装消息队列服务 yum install rabbitmq-server #启动消息队列服务并将其配置为随系统启动: systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service #添加openstack用户: rabbitmqctl add_user openstack 123 #给openstack用户配置写和读权限: rabbitmqctl set_permissions openstack ".*" ".*" ".*" #启动rabbitmq的web管理界面 rabbitmq-plugins enable rabbitmq_management
这样子咱们就能够经过浏览器访问服务器的15672端口访问了,不过这里须要注意的是前面建立的openstack并不能登陆,须要使用guest登陆,密码也是geust,建议登录进去后进行密码修改哟
Memcached缓存服务
#安装Memcached服务 yum install memcached python-memcached #编辑/etc/sysconfig/memcached文件修改监听端口 vim /etc/sysconfig/memcached OPTIONS="-l 0.0.0.0,::1,controller" #启动Memcached服务,而且配置它随机启动 systemctl enable memcached.service systemctl start memcached.service