快速部署OpenStack的操作笔记(珍藏版)
阅读原文时间:2021年04月22日阅读:1
  • 摘 要

云计算已成为IT业界出现频率最高的热门词语之一。短短几年间,云计算已经从一个概念渐渐形成产品融入我们的日常生活中,让人不得不感慨这一波云计算浪潮的来势凶猛。OpenStack在过去一段时间以及可预测的未来一段时间,都会是云计算领域和开源世界的热门话题,引起全球IT界的广泛关注。在2012年的第四届中国云计算大会上,OpenStack技术的分会场被观众挤爆,可见其火热程度。这从一个侧面印证人们对云计算与OpenStack的热情。云计算是一种计算模型,它将诸如运算能力、存储、网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样。因需而定、提供方便、动态改变和无限的虚拟化扩展能力是云计算的几个重要特征,云计算的特点:超大规模、虚拟化、高可靠性、通用性、高可扩展性、按需服务、极其廉价。OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。OpenStack开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为Swift),并OpenStack镜像服务(代号Glance)的集合。OpenStack提供了一个操作平台,或工具包,用于编排云。
关键词:云计算、云主机、Vmware、Openstack

  • ABSTRACT

Cloud computing has become one of the most frequently used hot words in IT industry. In just a few years, cloud computing has gradually formed products from a concept into our daily life, people have to lament the ferocity of this wave of cloud computing. OpenStack has been a hot topic in cloud computing and the open source world for some time in the past and in the foreseeable future, which has attracted wide attention from the global IT community. At the 4th China Cloud Computing Congress in 2012, OpenStack Technology Branch was crowded by the audience, which shows its hot degree. This reflects people’s enthusiasm for cloud computing and OpenStack from one side.Cloud computing is a computing model, which abstracts resources such as computing power, storage, network and software into services, so that users can enjoy them remotely through the Internet. The form of payment is the same as traditional public service facilities. The characteristics of cloud computing are: super-large scale, virtualization, high reliability, versatility, high scalability, on-demand service and extremely cheap.OpenStack is not only a community, but also a project and an open source software. It provides open source software to build public and private clouds. It provides an operating platform or toolset for deploying clouds. Its purpose is to help organizations run clouds for virtual computing or storage services, to provide scalable and flexible cloud computing for public and private clouds, as well as for big and small clouds. OpenStack open source projects are maintained by the community, including OpenStack Computing (code Nova), OpenStack Object Storage (code Swift), and OpenStack Mirror Service (code Glance). OpenStack provides an operating platform, or toolkit, for orchestrating clouds.Keywords: cloud computing ; Cloud host; Vmware; OpenStack

1. 绪论
1.1 研究背景
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
1.2 研究意义
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
1.3 国内外发展现状
国内发展—增长迅速:中国云计算市场与全球云计算市场有很大的距离,只相当于全球900亿美元云计算市场的3%。中国的云计算由政府主导,作为发展经济的龙头得到了高度的重视,并会被应用到政府机构,教育机构,以及医疗,金融,和石化等传统行业。作为中国云计算的先行者阿里云,Baidu等公司在技术上和经营都取得了想当的成功的经验。与此同时,大量的传统IT企业(联想,华为等)也利用了自身的优势加入团队。国外发展—覆盖面大:云计算在全球范围来说市场规模其中IaaS和SaaS各自占用了24.4%和26.4%。而开源云平台的部署中OpenStack就占到了一半以上。
1.4 研究内容
根据如1-1 OpenStack的组件所示,根据原理我们准备自己的努力搭建一个快速部署的OpenStack平台。


如图1-1所示,OpenStack系统分为7个模块:分别是运算套件Nova、对象储存套件Swift、区块储存套件Cinder、网通套件Quantum、身分识别套件Keystone、镜像檔管理套件Glance仪表板套件Horizon,此图为OpenStack的架构图,简述了套件之间是如何运作的。

  1. 第一个模块:运算套件Nova:Nova套件主要提供部署与管理虚拟机器的功能。工程师可利用API开发云端应用程序,而IT管理人员则可透过网页式的接口查看或管理硬件资源运作的状况,并可重起、暂停、调整,甚至直接关闭虚拟机器。
  2. 第二个模块:对象储存套件Swift:Swift套件提供可扩展的分布式储存平台,以防止单点故障的情况产生。使用者可透过API进行存取,可存放非结构化的数据,像是图像、网页、网志等,并可作为应用程序数据备份、归档以及保留之用。
  3. 第三个模块:区块储存套件Cinder:Cinder套件允许区块储存设备能够整合商业化的企业储存平台,像是NetApp、Nexenta、SolidFire等。区块储存系统可让IT人员设置服务器和区块储存设备的各项指令,包括建立、连接和分离等,并整合了运算套件,可让IT人员查看储存设备的容量使用状态。
  4. 第四个模块:网通套件Quantum:Quantum套件是个可扩展、随插即用,透过API来管理的网络架构系统,确保IT人员在部署云端服务时,网络服务不会出现瓶颈,或是成为无法部署的因素之一。
  5. 第五个模块:身份识别套件Keystone:Keystone套件作为OpenStack的身分认证系统,具有中央目录,能查看哪位使用者可存取哪些服务,并且,提供了多种验证方式,包括使用者账号密码、Token(令牌)以及类似AWS的登入机制。另外,Keystone可以整合现有的中央控管系统,像是LDAP。
  6. 第六个模块:镜像文件管理套件Glance:Glance套件提供提供硬盘或服务器的镜像文件寻找、注册以及服务交付等功能。储存的镜像文件可作为新服务器部署所需的范本,加快服务上线速度。若是有多台服务器需要配置新服务,就不需要额外花费时间单独设置,也可做为备份时所用。
  7. 第七个模块:仪表板套件Horizon:Horizon套件提供IT人员一个图形化的网页接口,让IT人员可以综观云端服务目前的规模与状态,并且,能够统一存取、部署与管理所有云端服务所使用到的资源。Horizon套件是个可扩展的网页式App。所以,Horizon套件可以整合第3方的服务或是产品,像是计费、监控或是额外的管理工具。
    第2章 OpenStack关键技术综述
    OpenStack技术是:以Python编程语言编写,整合Tornado网页服务器、Nebula运算平台,使用Twisted软件框架,遵循Open Virtualization Format、AMQP、SQLAlchemy等标准,虚拟机器软件支持包括:KVM、Xen、VirtualBox、QEMU、 LXC 等。
    2.1 Openstack核心项目
    OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。截止到Icehouse版本,下面列出了10个核心项目(即OpenStack服务)。
    OpenSatck核心项目可以分为:计算(Compute)
    OpenSatck核心项目可以分为:对象存储(Object Storage)
    OpenSatck核心项目可以分为:镜像服务(Image Service)
    OpenSatck核心项目可以分为:身份服务(Identity Service)
    OpenSatck核心项目可以分为:网络&地址管理(Network)
    OpenSatck核心项目可以分为:块存储 (Block Storage)
    OpenSatck核心项目可以分为:UI 界面 (Dashboard)
    OpenSatck核心项目可以分为:测量 (Metering)
    OpenSatck核心项目可以分为:部署编排 (Orchestration)
    OpenSatck核心项目可以分为:数据库服务(Database Service)
    具体介绍如下:
    计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。
    对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中
    镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。
    身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。
    网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。
    块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。
    UI 界面 (Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。
    测量 (Metering):Ceilometer。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。
    部署编排 (Orchestration):Heat[2]。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。
    数据库服务(Database Service):Trove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中
    第3章 开源平台OpenStack
    3.1 OpenStack架构
    下面列出OpenStack的详细架构图:


整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。(这四个节点也可以安装在一台机器上,单机部署),其中:控制节点负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等。计算节点负责虚拟机运行。网络节点负责对外网络与内网络之间的通信。存储节点负责对虚拟机的额外存储管理等等。

控制节点包括以下服务:
管理支持服务
基础管理服务
扩展管理服务
1)管理支持服务包含MySQL与Qpid两个服务
MySQL:数据库作为基础/扩展服务产生的数据存放的地方
Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
2)基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务
Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard
3)扩展管理服务包含Cinder,Swift,Trove,Heat,Centimeter五个服务
Cinder:提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板
Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板T
rove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板
Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作控制节点一般来说只需要一个网络端口用于通信/管理各个节点
计算节点架构:
计算节点包含Nova,Neutron,Telemeter三个服务
1)基础服务
Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
Neutron:提供计算节点与网络节点之间的通信服务
2)扩展服务
Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务计算节点包含最少两个网络端口eth0:与控制节点进行通信,受控制节点统一调配
eth1:与网络节点,存储节点进行通信存储节点架构存储节点包含Cinder,Swift等服务
Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件存储节点包含最少两个网络接口eth0:与控制节点进行通信,接受控制节点任务,受控制节点统一调配eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务
3.2 OpenStack重要组件介绍
Keystone所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴定。下图显示了身份认证服务流程:


第4章 OpenStack的搭建与部署
4.1 OpenStack整体前期准备
我们准备在Ubuntu的环境下搭建OpenStack,因此我们需要配置好OpenStack的基本环境需求,因此我们准备选择VMware Workstation 12的环境下,安装Ubuntu 14.04 Server版本,OpenStack版本我们选择了Ocata版本。步骤我们参考:
https://blog.csdn.net/Asong_6/article/details/90747385
https://blog.csdn.net/Asong_6/article/details/932230954
4.2 下载DevStack

我们首先安装git:

Apt-get install git


然后切换到home目录下:

Cd /home


然后使用git获取资源:

Git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/ocata


4.3创建专门的用户
目前DevStack脚本已经不支持直接使用root身份运行,我们需要创建stack用户来运行,在非root用户下创建stack用户并设置密码:

Sudo chown -R $UESR:$USER /home/devstack

Cd /home/devstack/tools/

./create-stack-user.sh

Sudo passwd stack


4.3 授权
在root用户下给stack用户授权,编辑/etc/sudoers,找到这一行root ALL=(ALL:ALL) ALL,在下面加上一行stack ALL=(ALL:ALL) ALL:

4.4 创建文件
进入到/home/devstack目录下,编辑local.conf文件(要是没有的话就新建一个)

`Cd `/home/devstack/

Vi ./local.conf


再文件中添加如下内容,网络根据自己的ip然后自己修改:
[[local|localrc]]# use TryStack gitmirror

GIT_BASE=http://git.trystack.cnNOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.gitSPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git#OFFLINE=TrueRECLONE=True# Define images to be automatically downloaded during the DevStack built process.DOWNLOAD_DEFAULT_IMAGES=FalseIMAGE_URLS="http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img"HOST_IP=192.168.100.147# CredentialsDATABASE_PASSWORD=passADMIN_PASSWORD=passSERVICE_PASSWORD=passSERVICE_TOKEN=passRABBIT_PASSWORD=passHORIZON_BRANCH=stable/ocataKEYSTONE_BRANCH=stable/ocataNOVA_BRANCH=stable/ocataNEUTRON_BRANCH=stable/ocataGLANCE_BRANCH=stable/ocataCINDER_BRANCH=stable/ocata#keystoneKEYSTONE_TOKEN_FORMAT=UUID##HeatHEAT_BRANCH=stable/ocataenable_service h-eng h-api h-api-cfn h-api-cw## SwiftSWIFT_BRANCH=stable/ocataENABLED_SERVICES+=,s-proxy,s-object,s-container,s-accountSWIFT_REPLICAS=1SWIFT_HASH=011688b44136573e209e# Enabling Neutron (network) Servicedisable_service n-netenable_service q-svcenable_service q-agtenable_service q-dhcpenable_service q-l3enable_service q-metaenable_service q-meteringenable_service neutron## Neutron optionsQ_USE_SECGROUP=TrueFLOATING_RANGE="192.168.100.0/24"FIXED_RANGE="10.0.0.0/24"NETWORK_GATEWAY="10.0.0.2"Q_FLOATING_ALLOCATION_POOL=start=192.168.100.150,end=192.168.100.180PUBLIC_NETWORK_GATEWAY="192.168.100.2"Q_L3_ENABLED=TruePUBLIC_INTERFACE=eth0Q_USE_PROVIDERNET_FOR_PUBLIC=TrueOVS_PHYSICAL_BRIDGE=br-exPUBLIC_BRIDGE=br-exOVS_BRIDGE_MAPPINGS=public:br-ex# #VLAN configuration.Q_PLUGIN=ml2ENABLE_TENANT_VLANS=True# LoggingLOGFILE=/opt/stack/logs/stack.sh.logVERBOSE=TrueLOG_COLOR=TrueSCREEN_LOGDIR=/opt/stack/logs


4.5 运行脚本
切换到/home/devstack

su stack

  ./stack.sh


根据网络情况,安装速度有差别,等最后出现图中所示,则安装成功:里面会提示我们的ip和默认的用户名和密码都会给我们提示

最后我们访问Horizon链接即可使用OpenStack虚拟一台云服务器出来:

相关的操作视频,我已发在如下网址:可以参考如下:https://www.bilibili.com/video/av54439229
ps: 如果自己搭建不出来,可以给我私信,我可以给你拷 一台虚拟机过来,你就可以直接用了! 喜欢的话,记得支持我一下哦!谢谢大家了!谢谢!

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器