[hermit auto="0" loop="1" unexpand="1" fullheight="0"]collect#:142353202[/hermit]

Linux就该这么学》最新正式版已出版上市,同学们可在线上京东网当当网?#21592;?#32593;亚马逊等电商?#25945;?#36141;买。

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

章节概述:

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

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

22.1 ?#31169;?#20113;计算

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

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

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

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

云计算IAAS-SAAS-PAAS

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

openstack

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

Openstack作为一个云?#25945;?#30340;管理项目,其功能组件覆盖了网络、虚拟化、操作系统、服务器等多个方面,每个功能组件交由不同的项目委员会来研发和管理,目前核心的项目包括有:
功能 项目名称 描述
计算服务 Nova 负责虚拟机的创建、开关机、挂起、迁移、调整CPU、内存等规则。
对象存储 Swift 用于在大规模可扩展系统中通过内置的冗余?#26696;?#23481;差机制实现对象存储的系统。
镜像服务 Glance 用于创建、上传、?#22659;?#32534;辑镜像信息的虚拟机镜像查找及索引系统。
身份服务 Keystone 为其他的功能服务提供身份验证、服务规则及服务令牌的功能。
网络管理 Neutron 用于为其他服务提供云计算的网络虚拟化技术,可自定义各种网络规则,支持主流的网络厂商技术。
块存储 Cinder 为虚拟机?#36947;?#25552;供稳定的数据块存储的创建、?#22659;?#25346;载、卸载、管理等服务。
图形界面 Horizon 为用户提供简单易用的Web管理界面,降低用户对功能服务的操作?#35759;取?/td>
测量服务 Ceilometer 收集项目内所有的?#24405;?#29992;于监控、计费或为其他服务提供数据支撑。
部署编排 Heat 实现通过模板方式进行?#36828;?#21270;的资源环境部署服务。
数据库服务 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版本?#24066;?#29992;户以免费授权的方式来获取openstack软件的使用资格,但是从安装开始便较为复杂(需要自行解决诸多的软件依赖关系),而且没有官方给予的保障及售后服务,请读者们仔细的?#35789;?#39564;步骤安装,就一定没有问题的~
22.3 服务模块组件详解

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

Openstack组建功能

Nova提供计算服务

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

Nova-api(API服务器):

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

Rabbit MQ Server(消息队列):

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

Nova-compute(运算工作站):

运算工作?#23601;?#36807;消息队列接收用户的请求并执行,从而负责对主机?#36947;?#30340;整个生命周期中的各种操作进?#20889;?#29702;,一般会架设多台计算工作站,根据调度算法来按照?#36947;?#22312;?#25105;?#19968;个计算工作站上部署。

Nova-network(网络控制器):

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

Nova-Volume(卷工作站):

基于LVM的?#36947;?#21367;能够为一个主机?#36947;?#21019;建、?#22659;?#38468;加卷或从主机中分离卷。

Nova-scheduler(调度器)

调度器以名为"nova-schedule"的守护进程方式进?#24615;?#34892;,根据?#21592;菴PU架构?#26696;?#36733;、内存占用率、子节点的远近等因素,使用调度算法从可用的资源池中选择运算服务器。

Glance提供镜像服务

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

Swift提供存储服务

Swift模块是一种分布式、?#20013;?#34394;拟对象存储,具有跨节点百级对象的存储能力,并且支持内建冗余和失效备援的功能,同时还能够处理数据归档和?#25945;?#27969;,对于超大数据和多对象数量非常高效。
Swfit代理服务器:

用于通过Swift-API与代理服务器进行交互,代理服务器能够检查?#36947;?#20301;置并路?#19978;?#20851;的请求,当?#36947;?#22833;效或被转移后则?#36828;收?#20999;换,减少重复路由请求。

Swift对象服务器:

用于处理处理本地存储中对象数据的存储、索引和?#22659;?#25805;作。

Swift容器服务器:

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

Swift帐户服务器:

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

Ring索引环:

用户记录着Swift中物理存储对象位置的信息,作为真实物理存储位置的虚拟?#25104;洌?#33021;够查找及定位不同集群的实体真实物理位置的索引服务,上述的代理、对象、容器、帐户?#21152;?#26377;自己的Ring索引环。

Keystone提供认证服务
?Keystone模块依赖于自身的Identity API系统基于?#21368;?#21160;作消息来源者请求的合法性来为Openstack中Swift、Glance、Nove等各个组件提供认证和访问策略服务,

Horizon提供管理服务

Horizon是一个用于管理、控制Openstack云计算?#25945;?#26381;务器的Web控制面板,用户能够在网页中管理主机?#36947;?#38236;像、创建密钥对、管理?#36947;?#21367;、操作Swift容器等操作。

Quantum提供网络服务

重要的网络管理组件。

Cinder提供存储管理服务

用于管理主机?#36947;?#20013;的存储资?#30784;?/p>

Heat提供软件部署服务

用于在主机?#36947;?#21019;建后简化配置操作。

 

22.4 安装Openstack软件

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

主机名称 IP地址/子网 DNS地址
openstack.linuxprobe.com 192.168.10.10/24 192.168.10.10

虚拟机的参数

设置服务器的主机名称:

[[email protected] ~]# vim /etc/hostname
openstack.linuxprobe.com

使用vim编辑器写入主机名(域名)与IP地址的?#25104;?#25991;件:

[[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.linuxprobe.com openstack

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

[[email protected] ~]# ping $HOSTNAME
PING openstack.linuxprobe.com (192.168.10.10) 56(84) bytes of data.
64 bytes from openstack.linuxprobe.com (192.168.10.10): icmp_seq=1 ttl=64 time=0.099 ms
64 bytes from openstack.linuxprobe.com (192.168.10.10): icmp_seq=2 ttl=64 time=0.107 ms
64 bytes from openstack.linuxprobe.com (192.168.10.10): icmp_seq=3 ttl=64 time=0.070 ms
64 bytes from openstack.linuxprobe.com (192.168.10.10): icmp_seq=4 ttl=64 time=0.075 ms
^C
--- openstack.linuxprobe.com 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目录中:

软件资源下载地址:http://www.9500870.com/tools/

Openstack Juno——云计算?#25945;?#36719;件

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

EPEL——系统的软件源仓库

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

Cirros——精简的操作系统

Cirros是一款极为精简的操作系统,一般用于灌装到Openstack服务?#25945;?#20013;。

[[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.centos 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 http://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

创建云?#25945;?#30340;网卡配置文件:

[[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

执行身份认证脚本
[cc lang="bash"]
[[email protected] ~]# source keystonerc_admin
[[email protected] ~(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 | [email protected] ? ? ? ? ? ? |
| c7570a0d3e264f0191d8108359100cdd ?| ceilometer | True | [email protected] |
| 9d3d1b46599341638771c33bcebe17fc ? ?| cinder ? ? ? ? | True | [email protected] ? ? ? ?|
| 52a803edcc4e479ea147e69ca2966f46 ? ?| glance ? ? ? ? | True | [email protected] ? ? ? ?|
| 8b0bcd19b11f49059bc100d260f39d50 ?| neutron ? ? ?| True | [email protected] ? ? |
| 953e01b228ef480db551dd05d43eb6d1 | nova ? ? ? ? ? ?| True | [email protected] ? ? ? ? ?|
| 16ced2f73c034e58a0951e46f22eddc8 ? ?| swift ? ? ? ? ? ?| True | [email protected] ? ? ? ? ?|
+----------------------------------+------------+---------+----------------------+
== 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.linuxprobe.com | internal | enabled | up | 2016-01-29T04:36:20.000000 | - |
| 2 | nova-scheduler ? ? ?| openstack.linuxprobe.com | internal | enabled | up | 2016-01-29T04:36:20.000000 | - |
| 3 | nova-conductor ? ? | openstack.linuxprobe.com | internal | enabled ?| up | 2016-01-29T04:36:20.000000 | - |
| 4 | nova-compute ? ? ? | openstack.linuxprobe.com | nova ? ? ?| enabled ?| up | 2016-01-29T04:36:16.000000 | - |
| 5 | nova-cert ? ? ? ? ? | openstack.linuxprobe.com | 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 |
+----+------+--------+------------+-------------+----------+
+----+------+--------+------------+-------------+----------+
[/cc]
打开浏览器进入http://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=http://192.168.10.10:5000/v2.0/
export PS1='[\[email protected]\h \W(keystone_admin)]\$ '

输入帐号密码后进入到Openstack管理中?#27169;?/p>

登陆Openstack管理?#25945;? width=

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

要想让云?#25945;?#20013;的虚拟?#36947;?#26426;能够互相通信,并且让外部的用户访?#23454;?#37324;面的数据,我们首先就必需配置好云?#25945;?#20013;的网络环境。

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

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

路由的接口信息

22.5.2 创建云主机类型

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

Cirros是一款极为精简的操作系统,非常小巧精简的Linux系统镜像,一般会在搭建Openstack后测试云计算?#25945;?#21487;用性的系统,特点是体积小巧,速度极快,那么来上传Cirros系统镜像吧:

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

查看已上传的系统镜像

22.5.3 创建主机?#36947;?/strong>

创建云主机?#36947;?br /> 创建?#36947;?#20027;机
填写云主机的详情(云主机类型可以选择前面自定义创建的):
第1步:填写云主机的详情
查看云主机的访?#35270;?#23433;全规则:
第2步:查看云主机的访?#35270;?#23433;全规则
将私?#22411;?#32476;网卡添加到云主机:
第3步:将私?#22411;?#32476;网卡添加到云主机
查看安装后的脚本数据:
第4步:查看安装后的脚本数据
查看磁盘的分区方式:
第5步:查看磁盘的分区方式
主机?#36947;?#30340;孵化过程大约需要10-30秒,?#32531;?#26597;看已经运行的?#36947;?/p>

查看已经运行的?#36947;? width=查?#35789;道?#20027;机的网络拓扑(当前仅在内网中):

查看网络拓扑

为?#36947;?#20027;机绑定浮动IP地址:

为?#36947;?#20027;机绑定浮动IP

为主机?#36947;?#28155;加浮动IP

为主机?#36947;?#28155;加浮动IP

选择绑定的IP地址:

选择绑定的IP地址

将主机?#36947;?#19982;IP地址关联:

将主机与IP地址关联

此时再查?#35789;道?#30340;信息,IP地址段就多了一个数据值(192.168.10.51):

查?#35789;道?#30340;信息

尝试从外部ping云主机?#36947;?#32467;果是失败?#27169;?/p>

[[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

原因是我们没有设置安全组规则那,需要让外部流量?#24066;?#36827;入到主机?#36947;?#20013;:

创建安全策略组

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

填写策略组的信息

管理安全组的规则:

管理安全组的规则

添加安全规则:

添加安全规则

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

?#24066;?#25152;有的icmp数据包流入

编辑?#36947;?#30340;安全策略组:

编辑?#36947;?#30340;安全策略组

将新建的安全组策略作用到主机?#36947;?#19978;:

添加新的安全策略组

再次尝试从外部ping虚拟?#36947;?#20027;机:

[[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 添加云硬盘

云计算?#25945;?#30340;特性就是要能够灵活?#27169;?#24377;性的调整主机?#36947;?#20351;用的资源,我们可以来为主机?#36947;?#22810;挂载一块云硬盘,首先来创建云硬盘设备:

创建云硬盘设备

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

填写云硬盘的信息
编辑挂载设备到主机云?#36947;?br /> 编辑挂载设备到主机云?#36947;? width=
将云硬盘挂载到主机?#36947;?#20013;:
将云硬盘挂载到主机?#36947;?#20013;
查看云主机?#36947;?#20013;的硬盘信息:
查看云主机?#36947;?#20013;的硬盘信息

22.6 控制云主机?#36947;?/strong>

经过上面的一系列配置,我们此时已经创建出了一台能够交付给用户使用的云主机?#36947;?#20102;,查看下云?#25945;?#30340;信息:
查看云?#25945;?#30340;使用信息
编辑安全策略,?#24066;鞹CP和UDP协议的数据流入到云主机?#36947;?#20013;:
编辑安全策略
分别添加TCP和UDP的?#24066;?#35268;则:
分别添加TCP和UDP的?#24066;?#35268;则
成功登录到云主机?#36947;?#20013;(默认帐号为"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: 
$

查看云主机?#36947;?#30340;网络情况:

$ 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

本章节的复习作业(答案就在问题的下一?#20449;叮?#29992;鼠标选中即可看到的~)

1:谷歌和亚马逊提供的云计算是最好?#27169;?/p>

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

2:Openstack项目是红帽软件公司的软件之一。

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

3:创建100台配置相关的主机?#36947;?#24212;如何操作?

答案:创建主机?#36947;?#27169;板后批量生成,而不是一次生成一台。

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

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

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

答案:可以让用户在面板中重置,?#37096;?#20197;进入控制台重置。

本文原创地址:http://www.9500870.com/chapter-22.html编辑:刘遄,审核员:暂无