用新支点服务器操作系统打造稳健的openstack云计算环境Word格式.docx
《用新支点服务器操作系统打造稳健的openstack云计算环境Word格式.docx》由会员分享,可在线阅读,更多相关《用新支点服务器操作系统打造稳健的openstack云计算环境Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
![用新支点服务器操作系统打造稳健的openstack云计算环境Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/25/7374e6e1-4548-43ca-ba7b-d2f6452ab5a1/7374e6e1-4548-43ca-ba7b-d2f6452ab5a11.gif)
2.4.5配置环境变量3
2.4.6配置nova3
2.4.7创建虚拟机3
1.云计算基本概念
1.1云计算概念
云计算的概念是由Google率先提出的,狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源;
广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。
云计算是网格计算、分布式计算、并行计算、效用计算、云计算网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。
它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS、PaaS、IaaS、MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。
CloudComputing的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力!
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。
这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
云计算的蓝图已经呼之欲出:
在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。
从这个角度而言,最终用户才是云计算的真正拥有者。
1.2云计算的架构层次
下图1.1为云计算的架构层次:
图1.1云构架层次图
云构架的服务层次:
1)基础设施即服务(IaaS):
提供虚拟化的计算资源、存储资源、网络资源,典型案例如AmazonEC2
2)平台即服务(PaaS):
使软件开发人员充分利用开放的资源来开发定制化的应用,如GoogleAppEngine
3)软件即服务(SaaS):
软件或应用通过租用的形式提供给用户使用,如S和GoogleGmail、Docs。
基础设施层的基本功能有:
资源抽象,资源监控,复杂管理,数据管理,资源部署,安全管理,计费管理等。
平台层的基本功能有:
开发平台,包括应用模型、Api代码和开发测试环境;
运行时环境,包括验证、配置、部署和激活;
运营环境,包括升级、监控、淘汰和计费。
应用层分为标准应用,客服应用和多元应用。
标准应用如如文档处理、电子邮件、日程管理等,提供商往往是实力雄厚的IT业巨头。
客户应用如客户管理系统CRM、企业资源计划系统ERP,提供商是规模较小的专业公司。
多元应用如地铁时刻表服务Mutiny、期权交易方案提供TheOptionLab提供商多是规模较小的开发团队。
当然我们也可以根据服务对象的不同,将云分为私有云,公有云和混合云。
私有云——为“一个”客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制;
该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式;
私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所;
私有云可由云提供商进行构建,通过托管模式,构筑一个公司企业数据中心内的专用云。
而公有云——则是针对外部客户,通过网络方式提供可扩展的弹性服务。
顾名思义,混合云位于公有云和私有云之间。
1.3云计算与虚拟化
首先虚拟化技术:
vmware和vz技术,均是只能在一台物理服务器上虚拟出一台台,这样就可以一定程度上充分利用服务器,包括其CPU、内存的使用率和带宽。
而云计算技术,在虚拟化的基础上结合分布式技术,在大型的物理服务器群上虚拟隔离出一台台的服务器,使这样的服务器有想物理服务器一样的CPU、内存等等,并且虚拟服务器之间互不影响,而且因为其云存储,使得数据更加安全。
这样的衍生出的云计算服务器较之以往的VPS有更加强大的性能和安全性,而与物理机相比又更加便宜。
目前这样产品对市场的冲击还是比较大的,像盛大云、阳光云都相继投入大量资金在云计算上面。
这时候就需要一个强大的平台来管理这些虚拟机,它就是OpenStack。
OpenStack从问世以来到现在已经发展了多个版本,而其功能也越来越强大,越来越丰满。
它作为云计算的虚拟化代表技术,可以说已经是十分成熟的了。
1.4OpenStack的概念
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。
其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。
1.4.1OpenStackCompute的概念
它也称作nova,作为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(thecloudthroughusersandprojects)。
它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于AmazonEC2和RackspaceCloudServers。
实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于WebAPI的功能。
下图1.2可以说明nova是如何工作的[1]:
图1.2nova工作图
其中:
1)API:
处理客户端的请求,并且转发到Queue和Database中。
2)Scheduler:
选择一个host去执行命令
3)nova-compute:
启动和停止实例,附加和删除卷等操作
4)nova-network:
管理网络资源,分配固定IP。
这样nova就能很好的去管理实例虚拟机,这也是其存在的主要作用。
1.4.2OpenStackObjectStorage
它也称swift,是一个可扩展的对象存储系统。
对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。
1.4.3OpenStackImageService
它也称作glance,是一个虚拟机镜像的存储、查询和检索系统,服务包括的RESTfulAPI允许用户通过HTTP请求查询VM镜像元数据,以及检索实际的镜像。
VM镜像有四种配置方式:
简单的文件系统,类似OpenStackObjectStorage的对象存储系统,直接用Amazon'
sSimpleStorageSolution(S3)存储,用带有ObjectStore的S3间接访问S3。
OpenStack三个项目(Nova,Swift,Glance)的基本关系如下图1.3所示[3]:
图1.3三大组件关系图
从图中可以看出,通过Glance,Opentack的3个模块被链接成了一个整体,Glance为Nova提供镜像的查找操作,而Swift又为Glance提供实际的存储服务,Swift可以看作是Glacne存储接口的一个具体实现。
这样也能直观的看出glance在里面所起的作用了。
2.新支点服务器操作系统V4搭建OpenStack
1
2
2.1实验环境
创建两台新支点服务器操作系统V4.02.20(64bit),如下配置网络:
控制节点(controlNode)计算节点(computeNode)
eth0192.168.56.101eth0192.168.56.102
eth1172.16.100.105eth1172.16.100.159
2.2OpenStack的安装
2.1
2.2
1)删除原先的源:
rm-f/etc/yum.repo.d/*
2)配置centos网络源:
#cat/etc/yum.repos.d/CentOS6-Base-163.repo
#CentOS-Base.repo
#
#ThemirrorsystemusestheconnectingIPaddressoftheclientandthe
#updatestatusofeachmirrortopickmirrorsthatareupdatedtoand
#geographicallyclosetotheclient.YoushouldusethisforCentOSupdates
#unlessyouaremanuallypickingothermirrors.
#Ifthemirrorlist=doesnotworkforyou,asafallbackyoucantrythe
#remarkedoutbaseurl=lineinstead.
[base]
name=CentOS-$releasever-Base-
baseurl=
#mirrorlist=http:
//mirrorlist.centos.org/?
release=$releasever&
arch=$basearch&
repo=os
gpgcheck=1
gpgkey=http:
//mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#releasedupdates
[updates]
name=CentOS-$releasever-Updates-
repo=updates
#additionalpackagesthatmaybeuseful
[extras]
name=CentOS-$releasever-Extras-
repo=extras
#additionalpackagesthatextendfunctionalityofexistingpackages
[centosplus]
name=CentOS-$releasever-Plus-
repo=centosplus
enabled=0
#contrib-packagesbyCentosUsers
[contrib]
name=CentOS-$releasever-Contrib-
repo=contrib
3)配置epel网络源
wget-chttp:
//dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm-ivhepel-release-6-8.noarch.rpm
4)配置russianfedora-free网络源
wgethttp:
//mirror.yandex.ru/fedora/russianfedora/russianfedora/free/el/releases/6/Everything/i386/os/russianfedora-free-release-6-3.R.noarch.rpm
rpm-ivhrussianfedora-free-release-6-3.R.noarch.rpm--nodeps
5)安装puias网络源
yuminstallpuias-release
6)更新yum数据库
yumupdate
2.2.2安装openstack
yuminstall*openstack*
2.3控制节点(controlNode)的配置
2.3
2.3.1配置ntp
1)修改/etc/ntp.conf如下
#cat/etc/ntp.conf
restrict127.0.0.1
restrict192.168.56.0mask255.255.255.0nomodify
serverntp.api.bz
server127.127.1.0
fudge127.127.1.0stratum10
driftfile/var/lib/ntp/drift
2)启动ntp服务
servicentpdstart
2.3.2配置mysql
1)安装mysql-server
yuminstallmysql-server
2)启动mysql-server
servicemysqldstart
3)mysql的安全配置
mysql_secure_installation
4)修改/etc/f如下
#cat/etc/f
[mysqld]
bind-address=192.168.56.101#控制节点Host-Only地址
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#Disablingsymbolic-linksisrecommendedtopreventassortedsecurityrisks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
5)重启mysqld服务
servicemysqldrestart
2.3.3配置rabbitMQ
1)安装rabbitMQ
yuminstallrabbitmq-server
2)修改/etc/hosts如下:
(在127.0.0.1行末添加本机主机名)
#cat/etc/hosts
127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4controlNode
:
1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6
3)启动rabbitmq-server
servicerabbitmq-serverstart
4)修改rabbitmq的密码(下面是修改密码为openstack)
rabbitmqctlchange_passwordguestopenstack
2.3.4配置keystone
1)关闭selinux:
setenforce0
2)创建keystone数据库和keystone用户
#mysql-uroot-p
mysql>
createdatabasekeystone;
GRANTALLONkeystone.*TO'
keystoneUser'
@'
%'
IDENTIFIEDBY'
keystonePass'
;
FLUSHPRIVILEGES;
quit
3)修改keystone配置文件,修改connection和admin_token参数:
#vim/etc/keystone/keystone.conf
connection=mysql:
//keystoneUser:
keystonePass@192.168.56.101/keystone
admin_token=ADMIN
4)启动keystone服务
/etc/init.d/openstack-keystonestart
5)创建用户、租间、角色和服务
使用service.sh脚本自动创建租间,用户,角色信息,使用户绑定角色。
创建服务以及入口。
需要修改一下脚本中的如下参数:
PASSWORD=keystonePass#用户的密码
DATABASE=keystone#数据库名称
DATABASE_USER=keystoneUser#数据库用户
DATABASE_PASSWORD=keystonePass#数据库密码
SERVICE_TOKEN=ADMIN#keystone.conf文件中的令牌
执行脚本
./service192.168.56.101adminadmin
脚本见如下附件
用本脚本创建的用户名与密码一致
6)配置环境变量,/etc/profile增加如下参数:
exportSERVICE_TOKEN=ADMIN
exportOS_TENANT_NAME=admin
exportOS_USERNAME=admin
exportOS_PASSWORD=keystonePass
exportOS_AUTH_URL="
http:
//192.168.56.101:
5000/v2.0/"
exportSERVICE_ENDPOINT=http:
35357/v2.0
exportOS_IDENTITY_API_VERSION=2.0
使环境变量生效
source/etc/profile
7)查询用户、租间、角色和服务
查看用户信息:
keystoneuser-list
查看租间列表:
keystonetenant-list
查看角色列表:
keystonerole-list
查询服务列表:
keystoneservice-list
查询入口列表:
keystoneendpoint-list
8)检查服务
keystone--tokenADMIN--endpoint
35357/v2.0
user-list
keystone--tokenADMIN--endpoint
role-list
keystone--tokenADMIN--endpoint
tenant-list
service-list
35357/v2.0endpoint-list
使用curl测试keystone:
curl-d'
{"
auth"
{"
tenantName"
"
admin"
"
passwordCredentials"
username"
password"
keystonePass"
}}}'
-H"
Content-type:
application/json"
http:
35357/v2.0/tokens|python-mjson.tool
keystone参数如下:
tenanName=admin
username=admin
password=keystonePass
curlhttp:
35357/v2.0/endpoints-H'
x-auth-token:
ADMIN'
如出现以下信息,表明keystone配置已完成。
en