




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广东新支点技术服务有限公司用新支点服务器操作系统打造稳健的OpenStack云计算环境广东新支点技术服务有限公司目录1.云计算基本概念31.1云计算概念31.2云计算的架构层次31.3云计算与虚拟化31.4OpenStack的概念31.4.1OpenStack Compute的概念31.4.2OpenStack Object Storage31.4.3OpenStack Image Service32.新支点服务器操作系统 V4搭建OpenStack32.1实验环境32.2OpenStack的安装32.2.1配置网络安装源:32.2.2安装openstack32.3控制节点(controlNode)的配置32.3.1配置ntp32.3.2配置mysql32.3.3配置rabbitMQ32.3.4配置keystone32.3.5配置glance32.3.6配置nova32.3.7配置dashboard32.4计算节点(computeNode)的配置32.4.1配置ntp32.4.2安装dnsmasq-utils32.4.3关闭selinux32.4.4文件权限修改32.4.5配置环境变量32.4.6配置nova32.4.7创建虚拟机31. 云计算基本概念1.1 云计算概念云计算的概念是由Google率先提出的,狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源;广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。云计算是网格计算、分布式计算、并行计算、效用计算、云计算网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS、PaaS、IaaS、MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。Cloud Computing的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力!云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。云计算的蓝图已经呼之欲出:在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。从这个角度而言,最终用户才是云计算的真正拥有者。1.2 云计算的架构层次下图1.1为云计算的架构层次:图1.1云构架层次图云构架的服务层次:1) 基础设施即服务(IaaS):提供虚拟化的计算资源、存储资源、网络资源,典型案例如 Amazon EC22) 平台即服务 (PaaS):使软件开发人员充分利用开放的资源来开发定制化的应用 ,如Google AppEngine3) 软件即服务(SaaS):软件或应用通过租用的形式提供给用户使用 ,如S和Google Gmail、Docs 。基础设施层的基本功能有:资源抽象,资源监控,复杂管理,数据管理,资源部署,安全管理,计费管理等。平台层的基本功能有:开发平台,包括应用模型、Api代码和开发测试环境;运行时环境,包括验证、配置、部署和激活;运营环境,包括升级、监控、淘汰和计费。应用层分为标准应用,客服应用和多元应用。标准应用如如文档处理、电子邮件、日程管理等 ,提供商往往是实力雄厚的IT业巨头 。客户应用如客户管理系统CRM、企业资源计划系统ERP,提供商是规模较小的专业公司 。多元应用如地铁时刻表服务Mutiny、期权交易方案提供The Option Lab提供商多是规模较小的开发团队 。当然我们也可以根据服务对象的不同,将云分为私有云,公有云和混合云。私有云为“一个”客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制;该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式;私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所;私有云可由云提供商进行构建,通过托管模式,构筑一个公司企业数据中心内的专用云。而公有云则是针对外部客户,通过网络方式提供可扩展的弹性服务。顾名思义,混合云位于公有云和私有云之间。1.3 云计算与虚拟化首先虚拟化技术:vmware和vz技术,均是只能在一台物理服务器上虚拟出一台台,这样就可以一定程度上充分利用服务器,包括其CPU、内存的使用率和带宽。而云计算技术,在虚拟化的基础上结合分布式技术,在大型的物理服务器群上虚拟隔离出一台台的服务器,使这样的服务器有想物理服务器一样的CPU、内存等等,并且虚拟服务器之间互不影响,而且因为其云存储,使得数据更加安全。这样的衍生出的云计算服务器较之以往的VPS有更加强大的性能和安全性,而与物理机相比又更加便宜。目前这样产品对市场的冲击还是比较大的,像盛大云、阳光云都相继投入大量资金在云计算上面。这时候就需要一个强大的平台来管理这些虚拟机,它就是OpenStack。OpenStack从问世以来到现在已经发展了多个版本,而其功能也越来越强大,越来越丰满。它作为云计算的虚拟化代表技术,可以说已经是十分成熟的了。1.4 OpenStack的概念OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStack Compute(Nova),OpenStack Object Storage(Swift),以及OpenStack Image Service(Glance)。1.4.1 OpenStack Compute的概念它也称作nova,作为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(the cloud through users and projects)。它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于Amazon EC2和Rackspace Cloud Servers。实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于Web API的功能。下图1.2可以说明nova是如何工作的1:图1.2 nova工作图其中:1) API :处理客户端的请求,并且转发到 Queue和Database中。2) Scheduler:选择一个host去执行命令3) nova-compute :启动和停止实例,附加和删除卷等操作4) nova-network:管理网络资源,分配固定IP。这样nova就能很好的去管理实例虚拟机,这也是其存在的主要作用。1.4.2 OpenStack Object Storage它也称swift,是一个可扩展的对象存储系统。对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。1.4.3 OpenStack Image Service它也称作glance,是一个虚拟机镜像的存储、查询和检索系统,服务包括的RESTful API允许用户通过HTTP请求查询VM镜像元数据,以及检索实际的镜像。VM镜像有四种配置方式:简单的文件系统,类似OpenStack Object Storage的对象存储系统,直接用Amazons Simple Storage Solution (S3) 存储,用带有Object Store的S3间接访问S3。OpenStack三个项目(Nova,Swift,Glance)的基本关系如下图1.3所示3:图1.3 三大组件关系图从图中可以看出,通过Glance,Opentack的3个模块被链接成了一个整体,Glance为Nova提供镜像的查找操作,而Swift又为Glance提供实际的存储服务,Swift可以看作是Glacne存储接口的一个具体实现。这样也能直观的看出glance在里面所起的作用了。2. 新支点服务器操作系统 V4搭建OpenStack122.1 实验环境创建两台新支点服务器操作系统 V4.02.20(64bit),如下配置网络:控制节点(controlNode)计算节点(computeNode)eth001eth002eth105eth1592.2 OpenStack的安装.1 配置网络安装源:1) 删除原先的源:rm -f /etc/yum.repo.d/*2) 配置centos网络源:# cat /etc/yum.repos.d/CentOS6-Base-163.repo # CentOS-Base.repo# The mirror system uses the connecting IP address of the client and the# update status of each mirror to pick mirrors that are updated to and# geographically close to the client. You should use this for CentOS updates# unless you are manually picking other mirrors.# If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead.#basename=CentOS-$releasever - Base - 163.combaseurl=/centos/$releasever/os/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=osgpgcheck=1gpgkey=/centos/RPM-GPG-KEY-CentOS-6#released updates updatesname=CentOS-$releasever - Updates - 163.combaseurl=/centos/$releasever/updates/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=updatesgpgcheck=1gpgkey=/centos/RPM-GPG-KEY-CentOS-6#additional packages that may be usefulextrasname=CentOS-$releasever - Extras - 163.combaseurl=/centos/$releasever/extras/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=extrasgpgcheck=1gpgkey=/centos/RPM-GPG-KEY-CentOS-6#additional packages that extend functionality of existing packagescentosplusname=CentOS-$releasever - Plus - 163.combaseurl=/centos/$releasever/centosplus/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=centosplusgpgcheck=1enabled=0gpgkey=/centos/RPM-GPG-KEY-CentOS-6#contrib - packages by Centos Userscontribname=CentOS-$releasever - Contrib - 163.combaseurl=/centos/$releasever/contrib/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=contribgpgcheck=1enabled=0gpgkey=/centos/RPM-GPG-KEY-CentOS-63) 配置epel网络源wget -c /pub/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -ivh epel-release-6-8.noarch.rpm4) 配置russianfedora-free网络源wget http:/mirror.yandex.ru/fedora/russianfedora/russianfedora/free/el/releases/6/Everything/i386/os/russianfedora-free-release-6-3.R.noarch.rpmrpm -ivh russianfedora-free-release-6-3.R.noarch.rpm -nodeps5) 安装puias网络源yum install puias-release6) 更新yum数据库yum update2.2.2 安装openstackyum install *openstack*2.3 控制节点(controlNode)的配置 配置ntp1) 修改/etc/ntp.conf如下# cat /etc/ntp.confrestrict restrict mask nomodifyserver ntp.api.bzserver fudge stratum 10driftfile /var/lib/ntp/drift2) 启动ntp服务service ntpd start2.3.2 配置mysql1) 安装mysql-serveryum install mysql-server2) 启动mysql-serverservice mysqld start3) mysql的安全配置mysql_secure_installation4) 修改/etc/f如下# cat /etc/f mysqldbind-address=01# 控制节点Host-Only地址datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0mysqld_safelog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid5) 重启mysqld服务service mysqld restart2.3.3 配置rabbitMQ1) 安装rabbitMQyum install rabbitmq-server2) 修改/etc/hosts如下:(在行末添加本机主机名)# cat /etc/hosts localhost localhost.localdomain localhost4 localhost4.localdomain4 controlNode:1 localhost localhost.localdomain localhost6 localhost6.localdomain63) 启动rabbitmq-serverservice rabbitmq-server start4) 修改rabbitmq的密码(下面是修改密码为openstack)rabbitmqctl change_password guest openstack2.3.4 配置keystone1) 关闭selinux:setenforce 02) 创建keystone数据库和keystone用户# mysql -u root -pmysql create database keystone;mysql GRANT ALL ON keystone.* TO keystoneUser% IDENTIFIED BY keystonePass;mysql FLUSH PRIVILEGES;mysqlquit3) 修改keystone配置文件,修改connection和admin_token参数:#vim /etc/keystone/keystone.confconnection = mysql:/keystoneUser:keystonePass01/keystoneadmin_token = ADMIN4) 启动keystone服务/etc/init.d/openstack-keystone start5) 创建用户、租间、角色和服务使用service.sh脚本自动创建租间,用户,角色信息,使用户绑定角色。创建服务以及入口。需要修改一下脚本中的如下参数:PASSWORD=keystonePass# 用户的密码DATABASE=keystone# 数据库名称DATABASE_USER=keystoneUser# 数据库用户DATABASE_PASSWORD=keystonePass# 数据库密码SERVICE_TOKEN=ADMIN# keystone.conf文件中的令牌执行脚本./service 01 admin admin脚本见如下附件用本脚本创建的用户名与密码一致6) 配置环境变量,/etc/profile增加如下参数:export SERVICE_TOKEN=ADMINexport OS_TENANT_NAME=adminexport OS_USERNAME=adminexport OS_PASSWORD=keystonePassexport OS_AUTH_URL=01:5000/v2.0/export SERVICE_ENDPOINT=01:35357/v2.0export OS_IDENTITY_API_VERSION=2.0使环境变量生效source /etc/profile7) 查询用户、租间、角色和服务查看用户信息:keystone user-list查看租间列表:keystone tenant-list查看角色列表:keystone role-list查询服务列表:keystone service-list查询入口列表:keystone endpoint-list 8) 检查服务keystone -token ADMIN -endpoint01:35357/v2.0user-listkeystone -token ADMIN-endpoint01:35357/v2.0role-listkeystone-token ADMIN -endpoint01:35357/v2.0tenant-listkeystone-token ADMIN -endpoint01:35357/v2.0service-listkeystone -token ADMIN -endpoint01:35357/v2.0 endpoint-list使用curl测试keystone:curl -d auth: tenantName: admin, passwordCredentials:username: admin, password: keystonePass -H Content-type:application/json 01:35357/v2.0/tokens | python -mjson.toolkeystone参数如下:tenanName= adminusername=adminpassword=keystonePasscurl 01:35357/v2.0/endpoints -H x-auth-token: ADMIN如出现以下信息,表明keystone配置已完成。endpoints: adminurl: 01:8774/v2/$(tenant_id)s, region: nova, internalurl: 01:8774/v2/$(tenant_id)s, service_id: 6614dcfbe6aa49b59aa910dbd3a58008, id: a02761c9f2b7416e92722a89c8a4f6e9, publicurl: 01:8774/v2/$(tenant_id)s, adminurl: 01:8773/services/Admin, region: nova, internalurl: 01:8773/services/Cloud, service_id: 93983cd4e87f489592f7a0a851216227, id: 64ca5e14d6244b139fd6b9b740c3910e, publicurl: 01:8773/services/Cloud, adminurl: 01:443/v1, region: nova, internalurl: 01:443/v1/AUTH_$(tenant_id)s, service_id: 4e9e4fa9f9594a13ad29f62014c07d9c, id: 4cb09e4e9a014f81ad609e1d19eacdc9, publicurl: 01:443/v1/AUTH_$(tenant_id)s, adminurl: 01:9292/v1, region: nova, internalurl: 01:9292/v1, service_id: 44caa530cfe744038b447f1ea678f82b, id: ecbe889393624163acbab3e1775e2c81, publicurl: 01:9292/v1, adminurl: 01:8776/v1/$(tenant_id)s, region: nova, internalurl: 01:8776/v1/$(tenant_id)s, service_id: 9bfb417eac8b4290839e5e2f0c6902fe, id: 41bc9493da1345cd8a245cb88ce60d28, publicurl: 01:8776/v1/$(tenant_id)s, adminurl: 01:35357/v2.0, region: nova, internalurl: 01:5000/v2.0, service_id: 51d1ab1308d04c2585721e09875b726c, id: f6cf71175d4647968fa26af5efed2b60, publicurl: 01:5000/v2.02.3.5 配置glance1) 创建数据库glance和glance用户# mysql -u root -pMysql create database glance;mysql GRANT ALL ON glance.* TO glanceUser% IDENTIFIED BY glancePass;mysql FLUSH PRIVILEGES;mysqlquit2) 修改/etc/glance/glance-api-paste.ini文件(此文件是glance镜像api接口配置文件)在该文件最后添加:auth_host = 01auth_port = 35357auth_protocol = httpadmin_tenant_name = serviceadmin_user = glanceadmin_password = glanceservice_host = 01service_port = 50003) 修改/etc/glance/glance-registry-paste.ini文件(此文件是glance镜像注册配置文件)在该文件最后添加:auth_host = 01auth_port = 35357auth_protocol = httpadmin_tenant_name = service admin_user = glanceadmin_password = glanceadmin_tenant_name是租间名称,glance属于service租间4) 修改/etc/glance/glance-api.conf文件#vi /etc/glance/glance-api.confsql_connection = mysql:/glanceUser:glancePass01/glancepaste_deployflavor = keystone5) 修改/etc/glance/glance-registry.conf文件#vi /etc/glance/glance-registry.confsql_connection = mysql:/glanceUser:glancePass01/glancepaste_deployflavor = keystone6) 解决一个bug# cat /usr/lib/python2.6/site-packages/python_glanceclient-0.5.1-py2.6.egg-info/requires.txtprettytable=0.6,=0.1.2,=0.2warlock27) 启动glance的api和registry服务/etc/init.d/openstack-glance-api restart/etc/init.d/openstack-glance-registry restart8) 初始化glance数据库glance-manage version_control 0glance-manage db_sync9) 初始化完毕后,重启glance的api和registry服务/etc/init.d/openstack-glance-api restart/etc/init.d/openstack-glance-registry restart10) 测试租约服务curl -d auth: tenantName: service, passwordCredentials:username: glance, password: glance -H Content-type:application/json 01:35357/v2.0/tokens | python -mjson.toolglance -os_username admin -os_password keystonePass -os_auth_url 01:5000/v2.0 index11) 下载测试镜像wget /cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img12) 上传镜像glance add name=cirros-0.3.0-x86_64 is_public=true container_format=bare disk_format=qcow2 CREATE DATABASE nova;mysql GRANT ALL ON nova.* TO novaUser% IDENTIFIED BY novaPass;mysql FLUSH PRIVILEGES;mysql quit;2) 修改/etc/nova/api-paste.ini文件认证参数filter:authtokenpaste.filter_factory = keystone.middleware.auth_token:filter_factoryauth_host = 01auth_port = 35357auth_protocol = httpadmin_tenant_name = serviceadmin_user = novaadmin_password = novasigning_dirname = /tmp/keystone-signing-nova3) 修改/etc/nova/nova.conf配置文件内容如下:# cat /etc/nova/nova.conf# NETWORKDEFAULT# LOGS/STATE#verbose=Trueverbose=False# AUTHENTICATIONauth_strategy=keystone# SCHEDULER#-compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterSchedulerscheduler_driver=nova.scheduler.simple.SimpleScheduler# VOLUMESvolume_group=nova-volumesvolume_name_template=volume-%08xiscsi_helper=tgtadm# DATABASEsql_connection=mysql:/novaUser:novaPass01/nova# COMPUTElibvirt_type=qemu#libvirt_type=qemuconnection_type=libvirtinstance_name_template=instance-%08xapi_paste_config=/etc/nova/api-paste.iniallow_resize_to_same_host=Truelibvirt_use_virtio_for_bridges=truestart_guests_on_host_boot=trueresume_guests_state_on_host_boot=true# APISosapi_compute_extension=pute.contrib.standard_extensionsallow_admin_api=trues3_host=01cc_host=01# RABBITMQrabbit_host=01rabbit_userid=guestrabbit_password=openstack# GLANCEimage_service=nova.image.glance.GlanceImageServiceglance_api_servers=01:9292# NETWORKnetwork_manager=work.manager.FlatDHCPManagerforce_dhcp_release=Truedhcpbridge_flagfile=/etc/nova/nova.confdhcpbridge=/usr/bin/nova-dhcpbridgefirewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriverpublic_interface=eth0flat_interface=eth1flat_network_bridge=br100fixed_range=/24multi_host=trueauto_assign_floating_ip=True# NOVNC CONSOLEnovnc_enabled=truenovncproxy_base_url= 01:6080/vnc_auto.htmlvncserver_proxyclient_address=01vncserver_listen=01#Novalogdir=/var/log/novastate_path=/var/lib/novalock_path=/var/lock/nova#MISCuse_deprecated_auth=falseroot_helper=sudo nova-rootwraprootwrap_config=/etc/nova/rootwrap.confstart_guests_on_host_boot=trueresume_guests_state_on_host_boot=true4) 文件权限修改# mkdir -v /var/lock/nova# chown nova:nova /var/lock/nova# mkdir -v /etc/nova/rootwrap.d# chown -R nova:nova /etc/nova# visudo# 添加以下内容nova ALL = NOPASSWD: ALL5) 初始化数据库# nova-manage db sync6) 启动nova所有服务for a in libvirtd openstack-nova-network openstack-nova-compute openstack-nova-cert openstack-nova-api openstack-nova-objectstore openstack-nova-scheduler openstack-nova-volume openstack-nova-novncproxy openstack-nova-consoleauth; do service $a start; done使用nova-manage service list命令查看nova服务启动状态# nova-manage service listBinary Host Zone Status State Updated_Atnova-network controlNode nova enabled :-) 2013-07-22 08:27:22nova-scheduler controlNode nova enabled :-) 2013-07-22 08:27:22nova-compute computeNode nova enabled :-) 2013-07-22 08:27
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.2细胞器之间的分工合作 教学设计-2024-2025学年高一上学期生物人教版(2019)必修1
- 第二节 撒哈拉以南非洲说课稿-2025-2026学年初中地理粤人版七年级下册-粤人版2012
- 2025专营合同范本下载
- 2025二手房屋交易合同范本下载
- 《2025年电子配件购销合同》
- 2025买卖合同的解除条件及方法
- 2025房地产买卖合同3
- 第8讲 东南亚 南亚-印度 第1课时 教学设计 2023-2024学年高二下学期
- 2025仓库租赁合同终止协议
- 线缆厂办公区域管理细则
- 经济效益证明(模板)
- 某机库施工方案
- 医院各科室物品采购清单
- 生物竞赛动物学教学课件第十一章 节肢动物门
- 项目施工重大安全隐患排查表
- 材料、构配件进场检验记录
- 《Unit2 Let's talk teens》教学设计教案
- 电生理发展史
- 高中历史 选择性必修3 古代战争与地域文化的演变 课件
- T∕CBMF 95-2020 T∕CCPA 19-2020 内衬玻璃钢钢筋混凝土复合管
- 重力坝毕业设计
评论
0/150
提交评论