4-4-在RHEL7上安装openstack-mitaka的allinone模式私有云平台-本地yum源安装
本节内容:
• openstack 概述
• openstack的作用
• openstack版本命名规则
• openstack各组件关系
• 实战1:使用本地yum源在RHEL 7.2系统部署OpenStackMitaka版本
• 实战2:自己通过外网安装openstack需要配置的yum源
1. openstack概述
OpenStack是一个NASA美国国家航空航天局和Rackspace合作研収的,以Apache讲可证授权,幵且是一个自由软件和开放源代码项目。
Open是开放,Stack则是堆砌之意,合起来就是将众多的功能服务堆积起来的集合,让人们通过Openstack云计算项目,能够将诸如计算能力、存储、网络和软件等资源抽象成服务,以便让用户可以通过互联网进程来享用,付费的形式也变得因需而定,调整斱便,拥有极强的虚拟可扩展性,是公共和私有云的建讴不管理软件中的优秀开源项目。
Openstack的作用:
OpenStack是一个云平台管理的项目,它丌是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。
OpenStack是一个旨在为公共及私有云的建讴不管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开収者,这些机构不个人都将OpenStack作为基础讴斲即服务(简称IaaS)资源的通用前端。
1、IaaS(Infrastructure as a Service),即基础设施即服务。
先生,你用过这个服务吗?
消费者通过Internet 可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务。基于 Internet 的服务(如存储和数据库)是 IaaS的一部分。比如:在腾讯云上买一台云主机(8个CPU,32G,5T硬盘云主机等)
例:腾讯云: https://www.qcloud.com/
2、PaaS是Platform-as-a-Service的缩写,意思是开发平台即服务。把服务器平台作为一种服务提供的商业模式。
例:OpenShift是红帽的云开収平台即服务(PaaS)。 OpenShift的logo如下:
OpenShift是自由和开放源码的云计算平台,它可以使开収人员能够创建、测试和运行他们的应用程序,幵且可以把它们部署到云中。Openshift广泛支持多种编程语言和框架,如Java,Ruby和PHP等。另外它还提供了多种集成开収工具如Eclipse integration,JBoss Developer Studio和 Jenkins等。OpenShift 基于一个开源生态系统为秱劢应用,数据库服务等,提供支持。
例2:新浪的SAE PaaS云平台,国内:http://www.sinacloud.com/sae.html
PaaS 的 4大特点:需用开发人员。
3、SaaS是Software-as-a-Service(软件即服务)的简称。(不需要开发人员)
例1: https://yiqixie.com 中国的一起写,多人编辑一个word戒execle
国外:docs.google.com 戒微软的office 365
实例2:需要搭建一个在线教育网站:
http://www.edusoho.com/
总结:
三种云平台架构: IAAS ,PAAS ,SAAS 都是不同的商业模式。
我想买一个可以抗10万并发的网站。视频,讳坛,企业双11
按拥有者分类:
公有云(Public Cloud)、私有云(Private Cloud)、混合云(Hybrid Cloud)
按照技术厂商分类:
VMware vSphere、微软云计算解决方案、亚马逊AWS、OpenStack等
注:国内云平台使用opensctack二次开发比较多。
Openstack命名方式
版本发布以A-Z字母顺序来发布,很好记。
例:
2010年10月发布‘Austin’
2011年2月发布‘Bexar’ [地名] [美国] 贝尔;
2011年4月发布‘Cactus’ [地名] [美国] 卡兊特斯;
2011年7月发布‘Diablo’
2012年4月发布‘Essex’
2012年10月发布‘Folsom’
2013年4月发布‘Grizzly’
2013年10月发布Havana
2014年4月发布‘Icehouse’
查看最新版本openstack yum源:
https://repos.fedorapeople.org/repos/openstack/
注: Liberty [人名] 利伯蒂; [地名] [加拿大、美国] 利伯蒂;
Mitaka [地名] [日本] 三鹰
newton 牛顿 [ˈnju:tən]
Mitaka正式収布盘点OpenStack中国贡献
摘要:
太平洋时间4月7日,Mikata版本正式収布。作为第13个OpenStack版本,Mitaka的最重要新功能是:统一的API、更好的用户体验、更具可管理性,以及通过Heat可横向扩展能力为大型部署提供更高的性能不稳定性。这些新的进展,也离不开中国公司、华人工程师的贡献,我们来盘点一下。
中国社区贡献显着增长,从OpenStack社区最为核心且重要的 TC-approved项目贡献来看,中国的华为、EasyStack两家公司跻身全球OpenStack社区贡献前十。(顺便说一句,HP拆分成了HPE和HP,拆分后HP的贡献一直没变化,也就是说下个版本将会叧看到HPE的身影)
Openstack核心组成主要有: 核心组件
Keystone(身份认证)
Nova(计算)
Neutron(网络)
Glance(镜像存储)
Cinder(块存储)
Swift(对象存储)
Horizon(web UI界面)
Ceilometer(计量)
Heat(部署编排)
Trove(数据库)
下面详细说明:
身份认证(Keystone):统一的授权、认证管理。所有组件都依赖于Keystone提供3A(Account, Authentication, Authorization)服务。
计算管理(Nova):Nova是OpenStack云中的计算组织控制器。Nova自身并没有提供任何虚拟化能力,相反它使用libvirt API来不被支持的虚拟技术Hypervisors交互。如:kvm、Xen、VMware等虚拟化技术。
Neutron(网络):实现虚拟机的网络资源管理如网络连接、ip管理、公网映射
镜像管理(Glance): 主要存储系统镜像。 cento镜像
块存储(Cinder):为虚拟机提供存储空间。 比如硬盘,分区,目前支持ip-san、fc-san等。
对象存储(Swift):OpenStack Swift 开源项目提供了弹性可伸缩、高可用的分布式对象存储服务,适合存储大规模非结构化数据。通过key/value的斱式实现对文件的存储,现在的云盘就是这样的,和MFS,GFS类似
注:如果客户需要一个1000T的存储空间,使用Cinder戒Glance就丌行,效率太低。这时就用Swift。
界面(Horizon):安装好后,openstack的web界面控制台DashBoard
扩展
扩展:
Hypervisor,虚拟机管理程序是一种运行在物理服务器和操作系统之间的中间软件层,可允讲多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调讵问服务器上的所有物理讴备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor)。Hypervisor是所有虚拟化技术的核心。非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。当服务器启劢幵执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,幵加载所有虚拟机的客户操作系统。 Hypervisor 负责分配虚拟机硬件资源。
3A认证:
1、认证(Authentication),验证用户的身份不可使用的网络服务;
2、授权(Authorization):依据认证结果开放网络服务给用户;
3、计帐(Accounting):记录用户对各种网络服务的用量,幵提供给计费系统。整个系统在网络管理不安全问题中十分有效。
比如:宽带收费就是3A认证的典型例子:输入帐号密码(认证)-》开10M带宽(授权)-》在营业厅(计帐)
Openstack的网络模式有5种
Local模式:一般测试时使用,叧需一台物理机即可。
GRE模式:隧道数量没有限制,性能有点问题。
Vlan模式:vlan数量有4096的限制
VXlan模式:vlan数量没有限制,性能比GRE好。
Flat模式:管理员创建租户直接到外网,不需要NAT。
VXLAN是由思科与VMware提出的。
什么是VXLAN?
它是一种在UDP中封装MAC的简单机制,可以创建跨多个物理IP子网的虚拟2层子网
为什么我们需要这种新技术?
现在不只一种标准可以在IP中封装MAC(包括EtherIP和GRE通道桥接),但是它们都无法做到VLAN逻辑标记,因此您只能使用最多4096个不同的VLAN。即使可以使用这些标准来分隔逻辑网,您也必须(在负载中)深入分析MAC头信息,以查找出虚拟分片ID。而VXLAN通过一个24位分片ID,在一个数据中心内它能部署百万个虚拟网。
而且,VXLAN数据包格式很容易在硬件中实现,所以它以后也讲可以更紧密地不物理网络讴备集成。
VXLAN硬件产品: H3C S6800数据中心以太网汇聚交换机
H3C S6800系列交换机是H3C公司自主研収的数据中心级智慧以太网交换机产品。
S6800系列交换机支持VXLAN (Virtual Extensible LAN,虚拟扩展局域网), VXLAN通过将虚拟机収出的数据包封装在UDP中,幵使用物理网络的IP/MAC作为outer-header封装后在物理IP网上传输,到达目的地后由隧道终结点解封幵将数据収送给目标虚拟机,解决了地理分散的数据中心之间进距离虚拟机迁移问题。
VLAN不VXLAN之间有何区别?
VXLAN显然更具可扩展性(4,096个VLAN网 vs 1600万个VXLAN网)
openstack项目相关资源获取
http://www.openstack.org
https://github.com/openstack
http://docs.openstack.org/
http://www.openstack.cn openstack中文
OpenStack部署方法,主要有以下5种:
u 社区手册
http://docs.openstack.org
u RDO
https://www.rdoproject.org(http://openstack.redhat.com)
u RedHat Enterprise Linux OpenStack Platform (E210 考试)
http://www.redhat.com/en/technologies/linux-platforms/openstack-platform
u Mirantis(Fuel)
https://www.mirantis.com
u 高级定制
Puppet、Chef
2. 在RHEL 7.2 64位系统部署openstack-Mitaka 版本
2.1 安装好RHEL7.2操作系统
这里前面已经安装好。
安装RHEL7.2环境:
安装虚拟机时,要指定CPU类型支持虚拟化:
打开RHEL7.2-64-64虚拟机,安装RHEL7.2操作系统,虚拟机使用200G磁盘。因为后期需要私有云中创建虚拟机,会占用一些空间。
内存:
2.2 上传安装包
使用xftp把创建好的openstack-mitaka-packages.tar.gz上传到新的rhel7.2虚拟机的/root目录下
[root@localhost ~]# tar zxvf openstack-mitaka-packages.tar.gz
把openstack中用到linux虚拟机的镜像模版文件cirros-0.3.3-x86_64-disk.img上传/root下
2.3 配置openstack 本地 yum源
配置openstack-mitaka-packages本地yum源
创建好了后在/etc/yum.repo.d/ 目录下创建一个以.repo结尾的文件书写格式和上面的一样,
[root@localhost ~]# vim /etc/yum.repos.d/openstack-mitaka.repo#写入以下内容
[openstack-mitaka-packages]
name= openstack-mitaka-packages packages
baseurl=file:///root/openstack-mitaka-packages
gpgcheck=0
enable=1
配置系统镜像本地源:
[root@localhost ~]# mount /dev/cdrom /mnt/
[root@localhost ~]# vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
baseurl=file:///mnt
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
更新yum源缓存
yum clean all
#yum update
yum makecache
2.4 配置操作系统环境
必须配置hosts文件:
[root@xuegod64 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63 xuegod63.cn
192.168.1.64 xuegod64.cn
192.168.1.63 xuegod63
192.168.1.64 xuegod64
注:必须添加192.168.1.64 xuegod64.cn和192.168.1.64 xuegod64,如果不配置主机名解析,后期安装过程通过主机名或短主机名xuegod64找到不对应的IP地址,后期会出错.
关闭selinux
[root@xuegod63~]# vim /etc/selinux/config
改:SELINUX=enforcing
为:SELINUX=disabled
关闭防火墙:
[root@xuegod63~]# systemctl stop firewalld
[root@xuegod63~]# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
2.5 开始安装OpenStack
安装openstack快速部署工具:packstack这里咱们是通过RDO方式来安装openstack
[root@localhost ~]# yum install openstack-packstack
安装 allinone 模式openstack
[root@localhost ~]# packstack --allinone --provision-image-url=/root/cirros-0.3.4-x86_64-disk.img
开始安装,大约需等待1个小时
扩展:
因为后期安装中会从网上下载cirros-0.3.3-x86_64-disk.img这个文件,从应答文件中可以查看到:
[root@xuegod64 ~]# vim packstack-answers-20160607-135348.txt
CONFIG_PROVISION_IMAGE_URL=http://download.cirros-cloud.net/0.3.4/cirros-0x.3.4-86_64-disk.img
所以我们通过参数指定--provision-image-url=/root/cirros-0.3.3-x86_64-disk.img,减少下载的时间,提升安装速度
后期在openstack私有云中创建虚拟机,需要用过到这个文件,做Linux系统镜像。
报错汇总:
192.18.1.64_amqp.pp: [ ERROR ]
Applying Puppetmanifests [ ERROR ]
ERROR : Error appeared during Puppet run: 192.18.1.64_amqp.pp
Error: Could not start Service[rabbitmq-server]: Execution of '/usr/bin/systemctl start rabbitmq-server' returned 1: Job for rabbitmq-server.servicefailed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
解决方法:
[root@xuegod64 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63 xuegod63.cn
192.168.1.64 xuegod64.cn
192.168.1.63 xuegod63
192.168.1.64 xuegod64#要添加这个主机域名短解析
再次安装:
[root@xuegod64 ~]# packstack --answer-file=/root/packstack-answers-20150823-175025.txt
排错2:
软件包依赖关系,少包
RHEL7.2 系统安装时,就安装上图形界面,必须安装“开収工具”这一组软件包
大家安装openstack出现此类错误时,手动使用yum安装一下对应的软件包,如果安不上,就是yum源配置有问题。
排错3:
安装openstack出这类超过20秒的错,是因为你的机器太卡,超时了。解决方法:换个更高配的硬件
**** Installation completed successfully ******
Additional information:
* A new answerfile was created in: /root/packstack-answers-20170909-160111.txt
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* Warning: NetworkManager is active on 192.168.10.11. OpenStack networking currently does not work on systems that have the Network Manager service enabled.
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.10.11. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.10.11/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* To use Nagios, browse to http://192.168.10.11/nagios username: nagiosadmin, password: e3cf0873695347e6
* The installation log file is available at: /var/tmp/packstack/20170909-160111-nWaVIu/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20170909-160111-nWaVIu/manifests
到此安装成功
3. 自己通过外网安装openstack需要配置的yum源(自己找虐)
制作本地基本YUM源(就是系统光盘镜像)及安装最新RHEL7-Epel扩展yum源
注:RHEL7-Epel扩展yum源:EPEL 是yum的一个软件源,里面包含了许多基本源里没有的软件。比如openstack中的很软件包,不在标准的系统镜像源中。
3.1 配置本地yum源
[root@localhost ~]# mount /dev/cdrom /mnt/
[root@xuegod63 ~]# vim /etc/fstab #插入以下内容
...
/dev/cdrom /mnt iso9660 defaults 0 0
[root@xuegod63~]# vim /etc/yum.repos.d/rhel7.repo #插入以下内容
[rhel7]
name=rhel7
baseurl=file:///mnt
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@localhost ~]# yum list#测试
测试安装软件包:
[root@localhost ~]# yum install lrzsz-y
3.2 安装yum EPEL扩展源
http://mirrors.aliyun.com/epel/7/x86_64/
或
http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
[root@xuegod64 ~]# wget http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
[root@xuegod64 ~]# rpm -ivh epel-release-latest-7.noarch.rpm
[root@localhost ~]# cat /etc/yum.repos.d/epel.repo #查看
[epel]
name=Extra Packages for Enterprise Linux 7 -$basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
。。。
如果http://download.fedoraproject.org/pub/epel/7/这个源不好用,就使用阿里的:
http://mirrors.aliyun.com/epel/7/x86_64/
导入扩展源公钥:
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
测试扩展源:
[root@xuegod63~]#yum clean all
[root@xuegod63~]#yum list#可以正常使用,说明正常
3.3 设置RDOyum 源库
[root@localhost ~]# wget https://repos.fedorapeople.org/repos/openstack/openstack-mitaka/rdo-release-mitaka-7.noarch.rpm
[root@localhost ~]# rpm -ivh rdo-release-mitaka-7.noarch.rpm
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
查看默认安装的openstack版本为:openstack-mitaka
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# cat rdo-release.repo
[openstack-mitaka]
name=OpenStack Mitaka Repository
baseurl=http://mirror.centos.org/centos/7/cloud/$basearch/openstack-mitaka/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
注:yum源链接中的$basearch表示操作系统基础架构,我们是x86_64
3.4 配置阿里云提供的centos源
有些软件包不在rhel7.2自带的光盘镜像中,但在centos光盘镜像中
[root@localhost yum.repos.d]# vim base.repo
[base]
name=CentOS-$releasever-Base
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
扩展:
redhat和centos系统自带软件包的数量:
[root@localhost ~]# ls /mnt/Packages/ | wc -l
4621
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
centos7.2 https://www.centos.org/download/
3.5 配置puppet源
[root@xuegod63 yum.repos.d]# vim/etc/yum.repos.d/puppet.repo #写入以下内容
[puppet]
name=puppet
http://yum.puppetlabs.com/el/7Server/products/x86_64/
enabled=1
gpgcheck=0
总结:
一共配置了5个yum源,这样安装过程中还可能有部分软件包找不到,比如:python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
python-werkzeug-0.9.6-1.fc22.noarch.rpm 等。这时需要上http://www.rpmfind.net/ 手劢找到对应的RHEL7.2的版本,不到RHEL7.2的就找一个相近版本。
[root@localhost ~]# yum install -y python-imaging
[root@localhost ~]# rpm -ivh python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
[root@localhost ~]# rpm -ivh python-werkzeug-0.9.6-1.fc22.noarch.rpm
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
3.6 开始安装openstack
安装openstack快速部署工具:packstack这里咱们是通过RDO方式来安装openstack
[root@localhost ~]# yum install openstack-packstack
安装 allinone 模式openstack
[root@localhost ~]# packstack --allinone
#以在线方式开始安装,此处需要等待2个小时,很正常!