00:00/00:00

上海快三开奖结果今天就该这么学》最新正式版已出版上市,同学们可在线上京东网、当当网、淘宝网亚马逊等电商平台购买。

*亦可就近在新华书店购买*

章节概述:

本章节为读者介绍了云计算的历史,阐述云计算的定义,讲解Openstack项目的发展历程与核心优势,更富兴趣的学习云服务技能。

从最基础开始带领读者配置搭建和学习Opentack服务,并完全的演示了如何在Openstack软件中配置虚拟网络、创建主机实例模板、创建云主机实例、添加及挂载云硬盘等操作,更加生动深入的走入云时代。

22.1 了解云计算

人类基于千年的物种衍变基础,在这个世纪终于有了爆发式的科技成果,尤其这二十年内互联网的发展,更像是一种催化剂,让原本已经热闹的地球更加的沸腾,互联网经济泡沫破灭后的科技研发却变得更加卖力,一次次的突破着传统研究中对人类脑力、科技最终式的定义,把“来自未来”的产品带到用户面前,那么到底互联网未来会变成什么样子,人类最终的归宿会是怎么样,我们不得而知,但可以肯定的是科技研发一直是由人类需求来驱动的。

众所周知Google谷歌是一家致力于互联网搜索、云计算、广告技术等领域的科技企业,一直在努力为全球无数的用户提供着大量基于互联网的产品与服务,而Amazon亚马逊则是全美国最大的网络电子商务公司,销售内容涉及方方面面,业务范围更是遍布全球,对于这种互联网巨头企业自然少不了庞大的基础设施的支撑,但是传统的硬件设施一旦投入就要一大笔钱,并且在业务的淡季也要一直的空闲,这样无疑产生了资源和资金的巨大浪费,所以最初的云计算便是由Google与Amazon分别提出的,核心理念之一就是通过云计算服务降低用户对资源拥有的成本。

当用户能够通过互联网方便的获取到计算、存储等服务时,我们比喻自己使用到了“云计算”,云计算并不能被称为是一种计算技术,而更像是一种服务模式,云计算服务好像拥有无穷的力量,能够预测气候变化、还能够模拟核弹爆炸,好像只要你需要,“云”就可以为你提供每秒万亿次的计算服务,满足你的一切需求,每个运维人员心里都有一个对云计算的理解,而最普遍接受的是NIST(美国国家标准与技术研究院)的定义:

云计算是一种按使用量付费的服务模式,这是一种能够提供可用的、便捷的、按需求的网络访问模式,计算共享池能够快速的为用户提供网络、服务器、存储、应用软件及其他服务,并且只需要花费很少的管理时间。

云计算IAAS-SAAS-PAAS
NIST还针对于云计算的服务模式提出了3个服务层次:
Iaas:提供给用户的是云计算基础设施,包括CPU、内存、存储、网络等其他的资源服务,用户不需要控制存储与网络等基础设施。
Paas:提供给用户的是云计算中的开发和分发应用的解决方案,用户能够部署应用程序,也可以控制相关的托管环境,比如云服务器及操作系统,但用户不需要接触到云计算中的基础设施。
Saas:提供给用户的是云计算基础设施上的应用程序,用户只需要在客户端界面访问即可使用到所需资源,而接触不到云计算的基础设施。

云计算服务类型

云计算服务类型,原稿。
22.2 Openstack项目

Openstack最初是由NASA和Rackspace共同发起的云端计算服务项目,该项目以Apache许可证授权的方式成为了一款开源产品,目的是将多个组件整合后从而实现一个开源的云计算平台,目前Openstack项目正在被上海快三开奖结果今天、IBM、AMD、Intel、戴尔、思科、微软等超过一百家厂商共同研发,并已经支持了几乎所有的常见云计算环境,拥有了良好的可扩展性,而且部署搭建Openstack服务也变得十分简单,目前国内对于云计算的需求也逐渐增加,华胜天成、高德地图、京东、阿里巴巴、百度、中兴、华为等中国企业也加入到了Openstack项目研发当中,Openstack项目也正在随着全球内得到了众多厂商的参与支持而快速成熟。

openstack

Open是开放,Stack则是堆砌之意,合起来就是将众多的功能服务堆积起来的集合,让人们通过Openstack云计算项目,能够将诸如计算能力、存储、网络和软件等资源抽象成服务,以便让用户可以通过互联网远程来享用,付费的形式也变得因需而定,调整方便,拥有极强的虚拟可扩展性,是公共和私有云的建设与管理软件中的优秀开源项目。

Openstack作为一个云平台的管理项目,其功能组件覆盖了网络、虚拟化、操作系统、服务器等多个方面,每个功能组件交由不同的项目委员会来研发和管理,目前核心的项目包括有:
功能 项目名称 描述
计算服务 Nova 负责虚拟机的创建、开关机、挂起、迁移、调整CPU、内存等规则。
对象存储 Swift 用于在大规??衫┱瓜低持型ü谥玫娜哂嗉案呷莶罨剖迪侄韵蟠娲⒌南低?。
镜像服务 Glance 用于创建、上传、删除、编辑镜像信息的虚拟机镜像查找及索引系统。
身份服务 Keystone 为其他的功能服务提供身份验证、服务规则及服务令牌的功能。
网络管理 Neutron 用于为其他服务提供云计算的网络虚拟化技术,可自定义各种网络规则,支持主流的网络厂商技术。
块存储 Cinder 为虚拟机实例提供稳定的数据块存储的创建、删除、挂载、卸载、管理等服务。
图形界面 Horizon 为用户提供简单易用的Web管理界面,降低用户对功能服务的操作难度。
测量服务 Ceilometer 收集项目内所有的事件,用于监控、计费或为其他服务提供数据支撑。
部署编排 Heat 实现通过模板方式进行自动化的资源环境部署服务。
数据库服务 Trove 为用户提供可扩展的关系或非关系性数据库服务。

Openstack项目的版本按照ABCDEFG……的顺序发布,每6个月更新一次,Openstack版本发布历史:
版本名称 发布时间
Liberty 2015年10月15日
Kilo 2015年4月30日
Juno 2014年10月16日
Icehouse 2014年4月17日
Havana 2013年10月17日
Grizzly 2014年4月4日
Folsom 2012年9月27日
Essex 2012年4月5日
Diablo 2011年9月22日
Cactus 2011年4月15日
Bexar 2011年2月3日
Austin 2010年10月21日

开源社区成员和Linux技术爱好者可以选择使用Openstack RDO版本,RDO版本允许用户以免费授权的方式来获取openstack软件的使用资格,但是从安装开始便较为复杂(需要自行解决诸多的软件依赖关系),而且没有官方给予的保障及售后服务,请读者们仔细的按实验步骤安装,就一定没有问题的~
22.3 服务??樽榧杲?/strong>

Openstack是一个云计算的平台,也像是部署云操作系统的工具集,可以通过调取不同的组件来构建虚拟计算及云计算服务,比较重要的包括有计算(compute)、对象存储(Objectstorage)、认证(Identity)、仪表板(Dashboard)、块存储(Block Storage)、网络(Network)和镜像服务(image service),Openstack服务组件协同工作拓扑:

Openstack组建功能

Nova提供计算服务

Nova可以称作是Openstack云计算平台中最核心的服务组件了,它作为计算的弹性控制器来管理虚拟化、网络及存储等资源,为Openstack的云主机实例提供可靠的支撑,其功能由不同的API来提供。

Nova-api(API服务器):

API服务器用于提供云计算设施与外界交互的接口,也是用户对云计算设施进行管理的唯一通道,用户通过网页来调用各种API接口,再由API服务器通过消息队列把请求传递至目标设置进行处理。

Rabbit MQ Server(消息队列):

Openstack在遵循AMQP高级消息队列协议的基础之上采用了消息队列进行通信,异步通信的方式更是能够减少了用户的等待时间,让整个平台都变得更有效率。

Nova-compute(运算工作站):

运算工作站通过消息队列接收用户的请求并执行,从而负责对主机实例的整个生命周期中的各种操作进行处理,一般会架设多台计算工作站,根据调度算法来按照实例在任意一个计算工作站上部署。

Nova-network(网络控制器):

用于处理主机的网络配置,例如分配IP地址,配置项目VLAN,设定安全群组及为计算节点配置网络。

Nova-Volume(卷工作站):

基于LVM的实例卷能够为一个主机实例创建、删除、附加卷或从主机中分离卷。

Nova-scheduler(调度器)

调度器以名为"nova-schedule"的守护进程方式进行运行,根据对比CPU架构及负载、内存占用率、子节点的远近等因素,使用调度算法从可用的资源池中选择运算服务器。

Glance提供镜像服务

Openstack镜像服务是一套用于主机实例来发现、注册、索引的系统,功能相比较也很简单,具有基于组件的架构、高可用、容错性、开发标准等优良特性,虚拟机的镜像可以被放置到多种存储上。

Swift提供存储服务

Swift??槭且恢址植际?、持续虚拟对象存储,具有跨节点百级对象的存储能力,并且支持内建冗余和失效备援的功能,同时还能够处理数据归档和媒体流,对于超大数据和多对象数量非常高效。
Swfit代理服务器:

用于通过Swift-API与代理服务器进行交互,代理服务器能够检查实例位置并路由相关的请求,当实例失效或被转移后则自动故障切换,减少重复路由请求。

Swift对象服务器:

用于处理处理本地存储中对象数据的存储、索引和删除操作。

Swift容器服务器:

用于统计容器内包含的对象数量及容量存储空间使用率,默认对象列表将存储为SQLite或者MYSQL文件。

Swift帐户服务器:

与容器服务器类似,列出容器中的对象。

Ring索引环:

用户记录着Swift中物理存储对象位置的信息,作为真实物理存储位置的虚拟映射,能够查找及定位不同集群的实体真实物理位置的索引服务,上述的代理、对象、容器、帐户都拥有自己的Ring索引环。

Keystone提供认证服务
?Keystone??橐览涤谧陨淼腎dentity API系统基于判断动作消息来源者请求的合法性来为Openstack中Swift、Glance、Nove等各个组件提供认证和访问策略服务,

Horizon提供管理服务

Horizon是一个用于管理、控制Openstack云计算平台服务器的Web控制面板,用户能够在网页中管理主机实例、镜像、创建密钥对、管理实例卷、操作Swift容器等操作。

Quantum提供网络服务

重要的网络管理组件。

Cinder提供存储管理服务

用于管理主机实例中的存储资源。

Heat提供软件部署服务

用于在主机实例创建后简化配置操作。

 

22.4 安装Openstack软件

此刻我写这段话的时候,Openstack Liberty版本刚刚发布几周,企业中的生产环境会以稳定性为核心标准,所以还需要较长一段时间才能接受并正式使用这个新版本的产品,为了能够让读者学完即用,本片内容则会以Juno版本来做实验,为了能够让云计算平台发挥到最好的性能,我们需要开启虚拟机的虚拟化功能,内存至少为4GB(推荐8GB以上),并添加额外的一块硬盘(20G以上)。

主机名称 IP地址/子网 DNS地址
openstack.www.hdv0k.cn 192.168.10.10/24 192.168.10.10

虚拟机的参数

设置服务器的主机名称:

[[email protected] ~]# vim /etc/hostname
openstack.www.hdv0k.cn

使用vim编辑器写入主机名(域名)与IP地址的映射文件:

[[email protected] ~]# vim /etc/hosts
127.0.0.1      localhost localhost.localdomain localhost4 localhost4.localdomain4
::1            localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.10  openstack.www.hdv0k.cn openstack

将服务器网卡IP地址配置成"192.168.10.10"后测试主机连通状态:

[[email protected] ~]# ping $HOSTNAME
PING openstack.www.hdv0k.cn (192.168.10.10) 56(84) bytes of data.
64 bytes from openstack.www.hdv0k.cn (192.168.10.10): icmp_seq=1 ttl=64 time=0.099 ms
64 bytes from openstack.www.hdv0k.cn (192.168.10.10): icmp_seq=2 ttl=64 time=0.107 ms
64 bytes from openstack.www.hdv0k.cn (192.168.10.10): icmp_seq=3 ttl=64 time=0.070 ms
64 bytes from openstack.www.hdv0k.cn (192.168.10.10): icmp_seq=4 ttl=64 time=0.075 ms
^C
--- openstack.www.hdv0k.cn ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.070/0.087/0.107/0.019 ms

创建系统镜像的挂载目录:

[[email protected] ~]# mkdir -p /media/cdrom

写入镜像与挂载点的信息:

[[email protected] ~]# vim /etc/fstab
# HEADER: This file was autogenerated at 2016-01-28 00:57:19 +0800
# HEADER: by puppet.  While it can still be managed manually, it
# HEADER: is definitely not recommended.

#
# /etc/fstab
# Created by anaconda on Wed Jan 27 15:24:00 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /       xfs     defaults        1       1
UUID=c738dff6-b025-4333-9673-61b10eaf2268       /boot   xfs     defaults        1       2
/dev/mapper/rhel-swap   swap    swap    defaults        0       0
/dev/cdrom      /media/cdrom    iso9660 defaults        0       0

挂载系统镜像设备:

[[email protected] ~]# mount -a
mount: /dev/sr0 is write-protected, mounting read-only

写入基本的yum仓库配置信息:

[[email protected] ~]# vim /etc/yum.repos.d/rhel.repo
[base]
name=base
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0

您可以点此下载EPEL仓库源以及Openstack-juno的软件安装包,并上传至服务器的/media目录中:

软件资源下载地址://www.hdv0k.cn/tools/

Openstack Juno——云计算平台软件

Openstack云计算软件能够将诸如计算能力、存储、网络和软件等资源抽象成服务,以便让用户可以通过互联网远程来享用,付费的形式也变得因需而定,拥有极强的虚拟可扩展性。

EPEL——系统的软件源仓库

EPEL是企业版额外的资源包,提供了默认不提供的软件安装包

Cirros——精简的操作系统

Cirros是一款极为精简的操作系统,一般用于灌装到Openstack服务平台中。

[[email protected] ~]# cd /media
[[email protected] media]# ls
cdrom epel.tar.bz2 openstack-juno.tar.bz2

分别解压文件:

[[email protected] media]# tar xjf epel.tar.bz2
[[email protected] media]# tar xjf openstack-juno.tar.bz2

分别写入EPEL与openstack的yum仓库源信息:

[[email protected] media]# vim /etc/yum.repos.d/openstack.repo
[openstack]
name=openstack
baseurl=file:///media/openstack-juno
enabled=1
gpgcheck=0
[[email protected] media]# vim /etc/yum.repos.d/epel.repo
[epel]
name=epel
baseurl=file:///media/EPEL
enabled=1
gpgcheck=0

将/dev/sdb创建成逻辑卷,卷组名称为cinder-volumes:

[[email protected] media]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
[[email protected] media]# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created

重启系统:

[[email protected] media]# reboot

安装Openstack的应答文件:

[[email protected] ~]# yum install openstack-packstack
………………省略部分安装过程………………
Installing:
openstack-packstack noarch 2014.2-0.4.dev1266.g63d9c50.el7.上海快三开奖结果今天 openstack 210 k
Installing for dependencies:
libyaml x86_64 0.1.4-10.el7 base 55 k
openstack-packstack-puppet noarch 2014.2-0.4.dev1266.g63d9c50.el7.centos openstack 43 k
openstack-puppet-modules noarch 2014.2.1-0.5.el7.centos openstack 1.3 M
perl x86_64 4:5.16.3-283.el7 base 8.0 M
perl-Carp noarch 1.26-244.el7 base 19 k
perl-Encode x86_64 2.51-7.el7 base 1.5 M
perl-Exporter noarch 5.68-3.el7 base 28 k
perl-File-Path noarch 2.09-2.el7 base 27 k
perl-File-Temp noarch 0.23.01-3.el7 base 56 k
perl-Filter x86_64 1.49-3.el7 base 76 k
perl-Getopt-Long noarch 2.40-2.el7 base 56 k
perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k
perl-PathTools x86_64 3.40-5.el7 base 83 k
perl-Pod-Escapes noarch 1:1.04-283.el7 base 50 k
perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k
perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k
perl-Pod-Usage noarch 1.63-3.el7 base 27 k
perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k
perl-Socket x86_64 2.010-3.el7 base 49 k
perl-Storable x86_64 2.45-3.el7 base 77 k
perl-Text-ParseWords noarch 3.29-4.el7 base 14 k
perl-Time-Local noarch 1.2300-2.el7 base 24 k
perl-constant noarch 1.27-2.el7 base 19 k
perl-libs x86_64 4:5.16.3-283.el7 base 686 k
perl-macros x86_64 4:5.16.3-283.el7 base 42 k
perl-parent noarch 1:0.225-244.el7 base 12 k
perl-podlators noarch 2.5.1-3.el7 base 112 k
perl-threads x86_64 1.87-4.el7 base 49 k
perl-threads-shared x86_64 1.43-6.el7 base 39 k
python-netaddr noarch 0.7.12-1.el7.centos openstack 1.3 M
ruby x86_64 2.0.0.353-20.el7 base 66 k
ruby-irb noarch 2.0.0.353-20.el7 base 87 k
ruby-libs x86_64 2.0.0.353-20.el7 base 2.8 M
rubygem-bigdecimal x86_64 1.2.0-20.el7 base 78 k
rubygem-io-console x86_64 0.4.2-20.el7 base 49 k
rubygem-json x86_64 1.7.7-20.el7 base 74 k
rubygem-psych x86_64 2.0.0-20.el7 base 76 k
rubygem-rdoc noarch 4.0.0-20.el7 base 317 k
rubygems noarch 2.0.14-20.el7 base 211 k
………………省略部分安装过程………………
Complete!

安装openstack服务程序:

[[email protected] ~]# packstack --allinone --provision-demo=n --nagios-install=n
Welcome to Installer setup utility
Packstack changed given value to required value /root/.ssh/id_rsa.pub
Installing:
Clean Up [ DONE ]
Setting up ssh keys [ DONE ]
Discovering hosts' details [ DONE ]
Adding pre install manifest entries [ DONE ]
Preparing servers [ DONE ]
Adding AMQP manifest entries [ DONE ]
Adding MySQL manifest entries [ DONE ]
Adding Keystone manifest entries [ DONE ]
Adding Glance Keystone manifest entries [ DONE ]
Adding Glance manifest entries [ DONE ]
Adding Cinder Keystone manifest entries [ DONE ]
Adding Cinder manifest entries [ DONE ]
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
Adding Nova API manifest entries [ DONE ]
Adding Nova Keystone manifest entries [ DONE ]
Adding Nova Cert manifest entries [ DONE ]
Adding Nova Conductor manifest entries [ DONE ]
Creating ssh keys for Nova migration [ DONE ]
Gathering ssh host keys for Nova migration [ DONE ]
Adding Nova Compute manifest entries [ DONE ]
Adding Nova Scheduler manifest entries [ DONE ]
Adding Nova VNC Proxy manifest entries [ DONE ]
Adding Openstack Network-related Nova manifest entries[ DONE ]
Adding Nova Common manifest entries [ DONE ]
Adding Neutron API manifest entries [ DONE ]
Adding Neutron Keystone manifest entries [ DONE ]
Adding Neutron L3 manifest entries [ DONE ]
Adding Neutron L2 Agent manifest entries [ DONE ]
Adding Neutron DHCP Agent manifest entries [ DONE ]
Adding Neutron LBaaS Agent manifest entries [ DONE ]
Adding Neutron Metering Agent manifest entries [ DONE ]
Adding Neutron Metadata Agent manifest entries [ DONE ]
Checking if NetworkManager is enabled and running [ DONE ]
Adding OpenStack Client manifest entries [ DONE ]
Adding Horizon manifest entries [ DONE ]
Adding Swift Keystone manifest entries [ DONE ]
Adding Swift builder manifest entries [ DONE ]
Adding Swift proxy manifest entries [ DONE ]
Adding Swift storage manifest entries [ DONE ]
Adding Swift common manifest entries [ DONE ]
Adding MongoDB manifest entries [ DONE ]
Adding Ceilometer manifest entries [ DONE ]
Adding Ceilometer Keystone manifest entries [ DONE ]
Adding post install manifest entries [ DONE ]
Installing Dependencies [ DONE ]
Copying Puppet modules and manifests [ DONE ]
Applying 192.168.10.10_prescript.pp
192.168.10.10_prescript.pp: [ DONE ]
Applying 192.168.10.10_amqp.pp
Applying 192.168.10.10_mysql.pp
192.168.10.10_amqp.pp: [ DONE ]
192.168.10.10_mysql.pp: [ DONE ]
Applying 192.168.10.10_keystone.pp
Applying 192.168.10.10_glance.pp
Applying 192.168.10.10_cinder.pp
192.168.10.10_keystone.pp: [ DONE ]
192.168.10.10_cinder.pp: [ DONE ]
192.168.10.10_glance.pp: [ DONE ]
Applying 192.168.10.10_api_nova.pp
192.168.10.10_api_nova.pp: [ DONE ]
Applying 192.168.10.10_nova.pp
192.168.10.10_nova.pp: [ DONE ]
Applying 192.168.10.10_neutron.pp
192.168.10.10_neutron.pp: [ DONE ]
Applying 192.168.10.10_neutron_fwaas.pp
Applying 192.168.10.10_osclient.pp
Applying 192.168.10.10_horizon.pp
192.168.10.10_neutron_fwaas.pp: [ DONE ]
192.168.10.10_osclient.pp: [ DONE ]
192.168.10.10_horizon.pp: [ DONE ]
Applying 192.168.10.10_ring_swift.pp
192.168.10.10_ring_swift.pp: [ DONE ]
Applying 192.168.10.10_swift.pp
192.168.10.10_swift.pp: [ DONE ]
Applying 192.168.10.10_mongodb.pp
192.168.10.10_mongodb.pp: [ DONE ]
Applying 192.168.10.10_ceilometer.pp
192.168.10.10_ceilometer.pp: [ DONE ]
Applying 192.168.10.10_postscript.pp
192.168.10.10_postscript.pp: [ DONE ]
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]

**** Installation completed successfully ******
Additional information:
* A new answerfile was created in: /root/packstack-answers-20160128-004334.txt
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* Did not create a cinder volume group, one already existed
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.10.10. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to //192.168.10.10/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* Because of the kernel update the host 192.168.10.10 requires reboot.
* The installation log file is available at: /var/tmp/packstack/20160128-004334-tNBVhA/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20160128-004334-tNBVhA/manifests

创建云平台的网卡配置文件:

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
IPADDR=192.168.10.10
NETMASK=255.255.255.0
BOOTPROTO=static
DNS1=192.168.10.1
GATEWAY=192.168.10.1
BROADCAST=192.168.10.254
NM_CONTROLLED=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
ONBOOT=yes
DEVICETYPE=ovs
TYPE="OVSIntPort"
OVS_BRIDGE=br-ex

修改网卡参数信息为:

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777728 
DEVICE="eno16777728"
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
NM_CONTROLLED=no
IPV6INIT=no

将网卡设备添加到OVS网络中:

[[email protected] ~]# ovs-vsctl add-port br-ex eno16777728 
[[email protected] ~]# ovs-vsctl show
55501ff1-856c-46f1-8a00-5c61e48bb64d
    Bridge br-ex
        Port br-ex
            Interface br-ex
                type: internal
        Port "eno16777728"
            Interface "eno16777728"
    Bridge br-int
        fail_mode: secure
        Port br-int
            Interface br-int
                type: internal
        Port patch-tun
            Interface patch-tun
                type: patch
                options: {peer=patch-int}
    Bridge br-tun
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
        Port br-tun
            Interface br-tun
                type: internal
    ovs_version: "2.1.3"

重启系统让网络设备同步:

[[email protected] ~]# reboot

执行身份认证脚本:

[root@openstack ~]# source keystonerc_admin
[root@openstack ~(keystone_admin)]# openstack-status
== Nova services ==
openstack-nova-api: active
openstack-nova-cert: active
openstack-nova-compute: active
openstack-nova-network: inactive (disabled on boot)
openstack-nova-scheduler: active
openstack-nova-volume: inactive (disabled on boot)
openstack-nova-conductor: active
== Glance services ==
openstack-glance-api: active
openstack-glance-registry: active
== Keystone service ==
openstack-keystone: active
== Horizon service ==
openstack-dashboard: active
== neutron services ==
neutron-server: active
neutron-dhcp-agent: active
neutron-l3-agent: active
neutron-metadata-agent: active
neutron-lbaas-agent: inactive (disabled on boot)
neutron-openvswitch-agent: active
neutron-linuxbridge-agent: inactive (disabled on boot)
neutron-ryu-agent: inactive (disabled on boot)
neutron-nec-agent: inactive (disabled on boot)
neutron-mlnx-agent: inactive (disabled on boot)
== Swift services ==
openstack-swift-proxy: active
openstack-swift-account: active
openstack-swift-container: active
openstack-swift-object: active
== Cinder services ==
openstack-cinder-api: active
openstack-cinder-scheduler: active
openstack-cinder-volume: active
openstack-cinder-backup: active
== Ceilometer services ==
openstack-ceilometer-api: active
openstack-ceilometer-central: active
openstack-ceilometer-compute: active
openstack-ceilometer-collector: active
openstack-ceilometer-alarm-notifier: active
openstack-ceilometer-alarm-evaluator: active
== Support services ==
libvirtd: active
openvswitch: active
dbus: active
tgtd: inactive (disabled on boot)
rabbitmq-server: active
memcached: active
== Keystone users ==
+----------------------------------+------------+---------+----------------------+
| id | name | enabled | email |
+----------------------------------+------------+---------+----------------------+
| 7f1f43a0002e4fb9a04b9b1480294e08 ? | admin ? ? ? ?| True | test@test.com ? ? ? ? ? ? |
| c7570a0d3e264f0191d8108359100cdd ?| ceilometer | True | ceilometer@localhost |
| 9d3d1b46599341638771c33bcebe17fc ? ?| cinder ? ? ? ? | True | cinder@localhost ? ? ? ?|
| 52a803edcc4e479ea147e69ca2966f46 ? ?| glance ? ? ? ? | True | glance@localhost ? ? ? ?|
| 8b0bcd19b11f49059bc100d260f39d50 ?| neutron ? ? ?| True | neutron@localhost ? ? |
| 953e01b228ef480db551dd05d43eb6d1 | nova ? ? ? ? ? ?| True | nova@localhost ? ? ? ? ?|
| 16ced2f73c034e58a0951e46f22eddc8 ? ?| swift ? ? ? ? ? ?| True | swift@localhost ? ? ? ? ?|
+----------------------------------+------------+---------+----------------------+
== Glance images ==
+----+------+-------------+------------------+------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+----+------+-------------+------------------+------+--------+
+----+------+-------------+------------------+------+--------+
== Nova managed services ==
+----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
| 1 | nova-consoleauth ? | openstack.www.hdv0k.cn | internal | enabled | up | 2016-01-29T04:36:20.000000 | - |
| 2 | nova-scheduler ? ? ?| openstack.www.hdv0k.cn | internal | enabled | up | 2016-01-29T04:36:20.000000 | - |
| 3 | nova-conductor ? ? | openstack.www.hdv0k.cn | internal | enabled ?| up | 2016-01-29T04:36:20.000000 | - |
| 4 | nova-compute ? ? ? | openstack.www.hdv0k.cn | nova ? ? ?| enabled ?| up | 2016-01-29T04:36:16.000000 | - |
| 5 | nova-cert ? ? ? ? ? | openstack.www.hdv0k.cn | internal | enabled ?| up | 2016-01-29T04:36:20.000000 | - |
+----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
== Nova networks ==
+----+-------+------+
| ID | Label | Cidr |
+----+-------+------+
+----+-------+------+
== Nova instance flavors ==
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| 1 | m1.tiny ? ? ? ? ? ?| 512 ? ? ? | 1 ? ?| 0 | | 1 | 1.0 | True |
| 2 | m1.small ? ? ? ? | 2048 ? ?| 20 ?| 0 | | 1 | 1.0 | True |
| 3 | m1.medium ? ?| 4096 ? ?| 40 ?| 0 | | 2 | 1.0 | True |
| 4 | m1.large ? ? ? ? ?| 8192 ? ?| 80 ?| 0 | | 4 | 1.0 | True |
| 5 | m1.xlarge ? ? ? ?| 16384 | 160 | 0 | | 8 | 1.0 | True |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
== Nova instances ==
+----+------+--------+------------+-------------+----------+
| ID | Name | Status | Task State | Power State | Networks |
+----+------+--------+------------+-------------+----------+
+----+------+--------+------------+-------------+----------+

打开浏览器进入//192.168.10.10/dashboard:
Openstack登陆页面
查看登录的帐号密码:

[[email protected] ~]# cat keystonerc_admin 
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=14ad1e723132440c
export OS_AUTH_URL=//192.168.10.10:5000/v2.0/
export PS1='[\[email protected]\h \W(keystone_admin)]\$ '

输入帐号密码后进入到Openstack管理中心:

登陆Openstack管理平台

22.5 使用Openstack服务
22.5.1 配置虚拟网络

要想让云平台中的虚拟实例机能够互相通信,并且让外部的用户访问到里面的数据,我们首先就必需配置好云平台中的网络环境。

Openstack创建网络:
Openstack创建网络
编辑网络配置:
Openstack编辑网络配置
点击创建子网:
创建子网
创建子网信息:
创建子网信息
填写子网详情(DHCP地址池中的IP地址用逗号间隔):
填写子网详情
子网详情:
子网详情
创建私有网络:
创建私有网络
创建网络:
创建网络
填写网络信息:
填写网络信息
设置网络详情:
设置网络详情
查看网络信息:
Openstack网络信息
添加路由信息:
添加路由信息
填写路由名称:

填写路由名称
设置路由的网关信息:
设置路由的网关信息
设置网关:
设置网关
在网络拓扑中添加接口:
在网络拓扑中添加接口
添加接口信息:
添加接口信息
路由的接口信息(需要等待几秒钟后,内部接口的状态会变成ACTIVE):

路由的接口信息

22.5.2 创建云主机类型

我们可以预先设置多个云主机类型的模板,这样可以灵活的满足用户的需求,先来创建云主机类型:
创建云主机类型
填写云主机的基本信息:
填写云主机的信息
创建上传镜像:
创建上传镜像

Cirros是一款极为精简的操作系统,非常小巧精简的上海快三开奖结果今天镜像,一般会在搭建Openstack后测试云计算平台可用性的系统,特点是体积小巧,速度极快,那么来上传Cirros系统镜像吧:

上传系统镜像文件
查看已上传的镜像(Cirros系统上传速度超级快吧!):

查看已上传的系统镜像

22.5.3 创建主机实例

创建云主机实例:
创建实例主机
填写云主机的详情(云主机类型可以选择前面自定义创建的):
第1步:填写云主机的详情
查看云主机的访问与安全规则:
第2步:查看云主机的访问与安全规则
将私有网络网卡添加到云主机:
第3步:将私有网络网卡添加到云主机
查看安装后的脚本数据:
第4步:查看安装后的脚本数据
查看磁盘的分区方式:
第5步:查看磁盘的分区方式
主机实例的孵化过程大约需要10-30秒,然后查看已经运行的实例:

查看已经运行的实例查看实例主机的网络拓扑(当前仅在内网中):

查看网络拓扑

为实例主机绑定浮动IP地址:

为实例主机绑定浮动IP

为主机实例添加浮动IP

为主机实例添加浮动IP

选择绑定的IP地址:

选择绑定的IP地址

将主机实例与IP地址关联:

将主机与IP地址关联

此时再查看实例的信息,IP地址段就多了一个数据值(192.168.10.51):

查看实例的信息

尝试从外部ping云主机实例(结果是失败的):

[[email protected] ~]# ping 192.168.10.51
PING 192.168.10.51 (192.168.10.51) 56(84) bytes of data.
From 192.168.10.10 icmp_seq=1 Destination Host Unreachable
From 192.168.10.10 icmp_seq=2 Destination Host Unreachable
From 192.168.10.10 icmp_seq=3 Destination Host Unreachable
From 192.168.10.10 icmp_seq=4 Destination Host Unreachable
^C
--- 192.168.10.51 ping statistics ---
6 packets transmitted, 0 received, +4 errors, 100% packet loss, time 5001ms
pipe 4

原因是我们没有设置安全组规则那,需要让外部流量允许进入到主机实例中:

创建安全策略组

填写策略组的名称与描述:

填写策略组的信息

管理安全组的规则:

管理安全组的规则

添加安全规则:

添加安全规则

允许所有的ICMP数据包流入(当然根据工作有时还需要选择TCP或UDP协议,此时仅为验证网络连通性):

允许所有的icmp数据包流入

编辑实例的安全策略组:

编辑实例的安全策略组

将新建的安全组策略作用到主机实例上:

添加新的安全策略组

再次尝试从外部ping虚拟实例主机:

[[email protected] ~]# ping 192.168.10.51
PING 192.168.10.51 (192.168.10.51) 56(84) bytes of data.
64 bytes from 192.168.10.51: icmp_seq=1 ttl=63 time=2.47 ms
64 bytes from 192.168.10.51: icmp_seq=2 ttl=63 time=0.764 ms
64 bytes from 192.168.10.51: icmp_seq=3 ttl=63 time=1.44 ms
64 bytes from 192.168.10.51: icmp_seq=4 ttl=63 time=1.30 ms
^C
--- 192.168.10.51 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.764/1.497/2.479/0.622 ms
22.5.5 添加云硬盘

云计算平台的特性就是要能够灵活的,弹性的调整主机实例使用的资源,我们可以来为主机实例多挂载一块云硬盘,首先来创建云硬盘设备:

创建云硬盘设备

填写云硬盘的信息(以10GB为例):

填写云硬盘的信息
编辑挂载设备到主机云实例:
编辑挂载设备到主机云实例
将云硬盘挂载到主机实例中:
将云硬盘挂载到主机实例中
查看云主机实例中的硬盘信息:
查看云主机实例中的硬盘信息

22.6 控制云主机实例

经过上面的一系列配置,我们此时已经创建出了一台能够交付给用户使用的云主机实例了,查看下云平台的信息:
查看云平台的使用信息
编辑安全策略,允许TCP和UDP协议的数据流入到云主机实例中:
编辑安全策略
分别添加TCP和UDP的允许规则:
分别添加TCP和UDP的允许规则
成功登录到云主机实例中(默认帐号为"cirros",密码为:"cubswin:)"):

[[email protected] ~]# ssh [email protected]
The authenticity of host '192.168.10.52 (192.168.10.52)' can't be established.
RSA key fingerprint is 12:ef:c7:fb:57:70:fc:60:88:8c:96:13:38:b1:f6:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.52' (RSA) to the list of known hosts.
[email protected]'s password: 
$

查看云主机实例的网络情况:

$ ip a 
1: lo:  mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether fa:16:3e:4f:1c:97 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.51/24 brd 10.10.10.255 scope global eth0
    inet6 fe80::f816:3eff:fe4f:1c97/64 scope link 
       valid_lft forever preferred_lft forever

挂载刚刚创建的云硬盘设备:

$ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev                    494.3M         0    494.3M   0% /dev
/dev/vda1                23.2M     18.0M      4.0M  82% /
tmpfs                   497.8M         0    497.8M   0% /dev/shm
tmpfs                   200.0K     68.0K    132.0K  34% /run
$ mkdir disk
$ sudo mkfs.ext4 /dev/vdb
mke2fs 1.42.2 (27-Mar-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 
$ sudo mount /dev/vdb disk/
$ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev                    494.3M         0    494.3M   0% /dev
/dev/vda1                23.2M     18.0M      4.0M  82% /
tmpfs                   497.8M         0    497.8M   0% /dev/shm
tmpfs                   200.0K     68.0K    132.0K  34% /run
/dev/vdb                  9.8G    150.5M      9.2G   2% /home/cirros/disk

本章节的复习作业(答案就在问题的下一行哦,用鼠标选中即可看到的~)

1:谷歌和亚马逊提供的云计算是最好的?

答案:云计算是一种服务模式,新的供需方式,更没有绝对的衡量值。

2:Openstack项目是上海快三开奖结果今天软件公司的软件之一。

答案:错错错,红帽是该开源项目的主要贡献厂商之一。

3:创建100台配置相关的主机实例应如何操作?

答案:创建主机实例模板后批量生成,而不是一次生成一台。

4:Cirros系统的优势与作用?

答案:系统的体积小,效率高,用于安装openstack后灌装系统测试。

5:如果系统的密码忘记了,该怎么办?

答案:可以让用户在面板中重置,也可以进入控制台重置。