一.认识云计算&&OpenStack

1.云计算的发展

(1)云计算的概念
到底什么是云计算,目前可谓众说纷纭。但广为接受的说法是美国国家标准与技术研究院(NTSI)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需要投入的管理工作,或与服务供应商进行很少的交互。
首先对云计算这三个字的理解,云,是网络、互联网的一种比喻说法,即互联网与建立互联网所需要的底层基础设施的抽象体。“计算”当然不是指一般的数值计算,指的是一台足够强大的计算机提供的计算服务(包括各种功能,资源,存储)。“云计算”可以理解为:网络上足够强大的计算机为你提供的服务,只是这种服务是按你的使用量进行付费的。
“云”实质上就是一个网络,狭义上讲,云计算就是一种提供资源的网络,使用者可以随时获取“云”上的资源,按需求量使用,并且可以看成是无限扩展的,只要按使用量付费就可以,“云”就像自来水厂一样,我们可以随时接水,并且不限量,按照自己家的用水量,付费给自来水厂就可以。
从广义上说,云计算是与信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫做“云”,云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。也就是说,计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以方便地取用,且价格较为低廉。
总之,云计算不是一种全新的网络技术,而是一种全新的网络应用概念,云计算的核心概念就是以互联网为中心,在网站上提供快速且安全的云计算服务与数据存储,让每一个使用互联网的人都可以使用网络上的庞大计算资源与数据中心。
云计算是继互联网计算机后在信息时代有一种新的革新,云计算是信息时代的一个大飞跃,未来的时代可能是云计算的时代,虽然目前有关云计算的定义有很多,但总体上来说,云计算虽然有许多得含义,但概括来说,云计算的基本含义是一致的,即云计算具有很强的扩展性和需要性,可以为用户提供一种全新的体验,云计算的核心是可以将很多的计算机资源协调在一起,因此,使用户通过网络就可以获取到无限的资源,同时获取的资源不受时间和空间的限制。
云计算发展历程
从云计算概念的提出到现在已经历经了十年的时间,同样不知不觉得改变了我们的生活。追溯云计算的根源,它的产生和发展与之前所提及的并行计算、分布式计算等计算机技术密切相关,都促进着云计算的成长。但追溯云计算的历史,可以追溯到1956年,ChristopherStrachey发表了一篇有关于虚拟化的论文,因为正式提出虚拟化。虚拟化则是今天云计算基础架构的核心,是云计算发展的基础。而后随着网络技术的发展,逐渐孕育了云计算的萌芽。
2006年Google首席执行官埃里克·施密特(Eric Schmidt)在搜索引擎大会(SESSanJose2006)首次提出“云计算”(Cloud Computing)的概念。这是云计算发展史上第一次正式地提出这一概念,有着巨大的历史意义。
2007年以来,“云计算”成为了计算机领域最令人关注的话题之一,同样也是大型企业、互联网建设着力研究的重要方向。因为云计算的提出,互联网技术和IT服务出现了新的模式,引发了一场变革。
在2008年,微软发布其公共云计算平台(Windows Azure Platform),由此拉开了微软的云计算大幕。同样,云计算在国内也掀起一场风波,许多大型网络公司纷纷加入云计算的阵列。
2009年1月,阿里软件在江苏南京建立首个“电子商务云计算中心”。同年11月,中国移动云计算平台“大云”计划启动。到现阶段,云计算已经发展到较为成熟的阶段。
2019年8月17日,北京互联网法院发布《互联网技术司法应用白皮书》。发布会上,北京互联网法院互联网技术司法应用中心揭牌成立
在以往没有云的时代,企业IT建设杂乱无序,烟囱式的建设、分离式的运维、分散于各系统的低效开发,严重制约了企业的快速发展,我们需要把应用软件集成起来、平台整合起来进一步提高我们的协同共享,实现可持续的发展,现在有了云的出现极大改变了企业IT建设中一些固有的问题和缺陷,实现了按需交付、随需扩展、简单快捷、管理灵活和成本节省、安全合规。

2.认识OpenStack云计算平台

(1)OpenStack简介
OpenStack是一个由 NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供 API 以进行集成。
OpenStack是云计算平台中的一个佼佼者,在云计算平台研发方面,国外有IBM、Microsoft(微软)、Google(谷歌)以及OpenStack的鼻祖亚马逊的AWS 等。国内则以Ucloud、海云捷迅、UnitedStack、EasyStack、金山云、阿里云等。OpenStack社区聚集着一批有实力的厂商和研发公司,他们把自己代码贡献给社区,不断完善和推动OpenStack技术的发展。而OpenStack则在市场中占据了绝对份额的优势。据由工信部电子一所指导,计世资讯(CCW Research)发布的《2017-2018年度中国私有云市场现状与发展趋势研究报告》中,在中国市场,OpenStack占据了私有云市场超过70%的份额。
(2)OpenStack的技术性能
OpenStack的快速发展得益于云计算技术的发展,也借助虚拟化革命的出现。OpenStack为一个开源的云计算解决方案,人们可以将OpenStack简单理解成一个开源的操作系统,它是由Python语言编写的,主要通过命令行(CLI)、程序接口(API)或者基于Web界面(GUI)实现对底层的计算资源、存储资源和网络资源的集中管理功能。在设计系统架构时,可以直接运用物理硬件作为底层,将其作为基础设施即服务(IaaS)的方案使用。
OpenStack社区聚集着一批有实力的厂商和研发公司,他们把自己代码贡献给社区,不断完善和推动OpenStack技术的发展。OpenStack是一个云管理的项目,每年4月和10月都会有一次发布新产品的峰会。
在OpenStack的核心项目方面,如图5-3-2所示为OpenStack包含的12个核心项目的演变示意图。
lAustin:第一个发布的OpenStack项目,其中包括Swift对象存储和Nova计算模块,有一个简单的控制台,允许用户通过Web管理计算和存储。
lBexar:增加Glance项目,负责镜像注册和分发。Swift中增加了大文件的支持和S3接口的中间件,在Nova中增加raw磁盘格式的支持等。
lCactus:在Nova中增加了虚拟化技术的支持,包括LXC、VMware、ESX,同时支持动态迁移虚拟机。
image.png
l Diablo:Nova整合Keystone认证,支持KVM的暂停和恢复,KVM的迁移、全局的防火墙。
l Essex:正式发布Horizon,支持第三方的插件扩展Web控制台,发布Keystone项目,提供认证服务。
l Folsom:正式发布Quantum(Neutron的前身)项目,提供网络服务;正式发布Cinder项目,提供块存储服务。Nova支持LVM为后端的虚拟机,支持动态和块迁移等。
l Grizzly:Nova支持分布在不同地理位置的集群组成一个cell,支持通过libguestfs直接向guest文件系统中添加文件;通过Glance提供的Image位置URL直接获取Image内容来加速启动;支持在无Image条件下启动带块设备的实例;支持为虚机实例设置(CPU、磁盘IO、网络带宽)配额。
l Havana:正式发布Ceilometer项目,进行(内部)数据统计,可用于监控报警;正式发布Heat项目,让应用开发者通过模板定义基础架构并自动部署;网络服务Quantum变更为Neutron;Nova中支持在使用cell时,同一cell中虚机的动态迁移;支持Docker管理的容器;使用Cinder卷时支持加密;Neutron中引入一种新的边界网络防火墙服务;可通过VPN服务插件支持IPSec VPN;Cinder中支持直接使用裸盘做存储设备,无需再创建LVM。
l Icehouse:新项目Trove(DB as a service)现在已经成为版本中的组成部分,它允许用户在OpenStack环境中管理关系数据库服务;对象存储(Swift)项目有比较大的更新,包括可发现性地引入和一个全新的复制过程(称为s-sync);联合身份验证将允许用户通过相同认证信息同时访问OpenStack私有云与公有云。
l Juno:提出NFV网络虚拟化概念;新增Sahara项目,用户大数据的集群部署;新增LDAP可集成KeyStone认证。
l Kilo:Horizon支持向导式创建虚拟机;Nova部分标准化了conductor、compute与scheduler的接口,为之后的接口分离做好准备;Glance增加自动镜像转化格式功能。
l Liberty:Neutron增加管理安全和带宽,更方便向IPv6迁移,LBaaS已经成为生产化工具;Glance基于镜像签名和校验,提升安全性;Swift提高基本性能和可运维功能;Keystone增加混合云的认证管理;引入容器管理的Magnum项目,通过与OpenStack现有的组件如Nova、Ironic与Neutron的绑定,Magnum让容器技术的采用变得更加容易。
l Mitaka:Mitaka聚焦于可管理性、可扩展性和终端用户体验三方面。重点在用户体验上简化了Nova和Keynote的使用,以及使用一致的API调用创建资源;Mitaka版本中可以处理更大的负载和更为复杂的横向扩展。
OpenStack到如今已经发布到第18个版本Rocky,新版增强了人工智能、机器学习、网络功能虚拟化(NFV)和边缘计算能力。可以看到,OpenStack组件的数据在不断的增加,新支持的功能也是在不断丰富。
OpenStack系统架构
为了实现云计算的各项功能,OpenStack实现每个项目的既定目标,将存储、计算、监控和网络服务划分为几个项目来进行开发,每个项目也是对应的OpenStack中的一个或多个组件,如图1-2所示为OpenStack的整体架构。

OpenStack各个组件之间耦合是非常松的。其中,Keystone是各个组件之间的通信核心,它依赖自身REST(基于Identity API)对所有的OpenStack组件提供认证和访问策略服务,每个组件都需要向Keystone进行注册,主要目的是对云平台各个组件进行认证与授权,对云平台用户进行管理,注册完成后才能获取相对应的组件通信的地址,其中包括通信的端口和IP地址,然后实现组件之间和内部子服务之间的通信。

二.环境规划

1.虚拟机数量:两台虚拟机,第一台作为控制节点、第二台作为计算节点使用。
2.网卡配置:两张网卡,第一张网卡选用仅主机模式,地址为192.168.100.0/24段,第二张网卡选用NAT模式,地址为192.168.200.0/24段。两台节点配置相同。
3.主机规格:处理器2个,内存4G,两台节点配置相同。

三.基础环境配置

(1)IP地址配置

控制节点和计算节点,安装最小化CentOS7.2操作系统,配置每个节点IP地址。并使用secureCRT进行连接。
controller节点修改部分:

  1. [root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
  2. TYPE=Ethernet
  3. BOOTPROTO=static
  4. DEFROUTE=yes
  5. PEERDNS=yes
  6. PEERROUTES=yes
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_PEERDNS=yes
  12. IPV6_PEERROUTES=yes
  13. IPV6_FAILURE_FATAL=no
  14. NAME=eno16777736
  15. DEVICE=eno16777736
  16. ONBOOT=yes
  17. IPADDR=192.168.100.11
  18. NETMASK=255.255.255.0
  19. [root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno33554984
  20. TYPE=Ethernet
  21. BOOTPROTO=static
  22. DEFROUTE=yes
  23. PEERDNS=yes
  24. PEERROUTES=yes
  25. IPV4_FAILURE_FATAL=no
  26. IPV6INIT=yes
  27. IPV6_AUTOCONF=yes
  28. IPV6_DEFROUTE=yes
  29. IPV6_PEERDNS=yes
  30. IPV6_PEERROUTES=yes
  31. IPV6_FAILURE_FATAL=no
  32. NAME=eno33554984
  33. DEVICE=eno33554984
  34. ONBOOT=yes
  35. IPADDR=192.168.200.11
  36. NETMASK=255.255.255.0
  37. GATEWAY=129.168.200.2
  38. [root@controller ~]# systemctl restart network

compute节点修改部分:

  1. [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
  2. TYPE=Ethernet
  3. BOOTPROTO=static
  4. DEFROUTE=yes
  5. PEERDNS=yes
  6. PEERROUTES=yes
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_PEERDNS=yes
  12. IPV6_PEERROUTES=yes
  13. IPV6_FAILURE_FATAL=no
  14. NAME=eno16777736
  15. DEVICE=eno16777736
  16. ONBOOT=yes
  17. IPADDR=192.168.100.12
  18. NETMASK=255.255.255.0
  19. [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno33554984
  20. TYPE=Ethernet
  21. BOOTPROTO=static
  22. DEFROUTE=yes
  23. PEERDNS=yes
  24. PEERROUTES=yes
  25. IPV4_FAILURE_FATAL=no
  26. IPV6INIT=yes
  27. IPV6_AUTOCONF=yes
  28. IPV6_DEFROUTE=yes
  29. IPV6_PEERDNS=yes
  30. IPV6_PEERROUTES=yes
  31. IPV6_FAILURE_FATAL=no
  32. NAME=eno33554984
  33. DEVICE=eno33554984
  34. ONBOOT=yes
  35. IPADDR=192.168.200.12
  36. NETMASK=255.255.255.0
  37. GATEWAY=129.168.200.2
  38. [root@compute ~]# systemctl restart network

(2)上传基础镜像

上传XianDian-IaaS-v2.2.iso和CentOS-7-x86_64-DVD-1511.iso两个镜像包至controller节点/root目录中,并将ISO文件挂载至/opt/目录中。

  1. [root@controler ~]# ll
  2. total 7290948
  3. -rw-------. 1 root root 1321 Nov 3 08:28 anaconda-ks.cfg
  4. -rw-r--r--. 1 root root 330975288 Nov 3 08:52 CentOS-7-x86_64-DVD-1511.iso
  5. -rw-r--r--. 1 root root 2851502080 Nov 2 20:33 XianDian-IaaS-v2.2.iso

(3)配置YUM源文件

controller节点:

  1. [root@controler ~]# mkdir /opt/centos
  2. [root@controler ~]# mkdir /opt/iaas
  3. [root@controler ~]# mount /root/CentOS-7-x86_64-DVD-1511.iso /opt/centos/
  4. mount: /dev/loop0 is write-protected, mounting read-only
  5. [root@controler ~]# mount /root/XianDian-IaaS-v2.2.iso /opt/iaas/
  6. mount: /dev/loop1 is write-protected, mounting read-only

(3)配置YUM源文件

controller节点: