于OpenStack企业私有云的设计与部署_第1页
于OpenStack企业私有云的设计与部署_第2页
于OpenStack企业私有云的设计与部署_第3页
于OpenStack企业私有云的设计与部署_第4页
于OpenStack企业私有云的设计与部署_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于OpenStack企业私有云的设计与部署DesignandDeploymentofOpenStackEnterprisePrivateCloud摘要为了解决传统数据中心经常需要采购服务器、网络、存储、负载均衡、安全设备等大量的网络设备,资源利用率不高,动化程度比较低等问题,提出了部署企业私有云的方案。应用目前比较成熟的主流的开源云技术——OpenStack,设计与部署基于OpenStack的企业私有云。本文详细介绍了虚拟化技术以及如何使用OpenStack的主要组件搭建私有云平台,为此设计了一套基于OpenStack构建企业私有云的方案。通过尝试从添加ceph存储后端、网络设计、负载均衡、动态迁移、数据库备份计划等方面对私有云进行设计与部署,深入了解构建企业私有云所应该具备哪些条件。最后从部署地过程中掌握私有云的知识,提出对私有云的发展看法和建议。关键词:云计算;虚拟化;OpenStack;私有云AbstractInordertosolvetheproblemsthattraditionaldatacentersoftenneedtopurchasealargenumberofequipmentsuchasservers,networks,storage,loadbalancing,andsecurityequipment,thesourceutilizationrateisnothigh,andthedegreeofautomationisrelativelylow.Asolutionfordeployinganenterpriseprivatecloudisproposed.DesignanddeployanenterpriseprivatecloudbasedonOpenStackusingtherelativelymaturemainstreamopensourcecloudtechnology-OpenStack.ThisarticledetailsthevirtualizationtechnologyandhowtousethemaincomponentsofOpenStacktobuildaprivatecloudplatform.Forthispurpose,IdesignedasetofsolutionstobuildanenterpriseprivatecloudbasedonOpenStack.Bytryingtodesignanddeployaprivatecloudfromtheaspectsofaddingcephstoragebackend,networkdesign,loadbalancing,dynamicmigration,databasebackupplan,etc.,wehaveanin-depthunderstandingofwhatconditionsshouldbeinplacetobuildanenterpriseprivatecloud.Andfromthedeploymentprocesstomastertheprivatecloudknowledge,thedevelopmentofprivatecloudviewsandSuggestions.Keywords:CloudComputing;Virtualization;OpenStack;PrivateCloud;Designanddeployment 目录TOC\o"1-4"\h\z\u 第一章绪论 第一章绪论1.1课题背景和意义在大数据的时代,传统的企业数据中心需要负荷的应用越来越多。比如在2G信号的时代,人们使用手机只是打电话或者发信息,传统地数据中心应付这些数据是搓搓有余。但是随着4G信号的覆盖,人们对于手机的使用已经不仅仅是打电话和发信息这些简单的操作了,上网购物,观看视频等等网上活动,使得现在的数据量越来越庞大,传统的数据中需要不断地增加硬件设备(网络、内存、服务器等等)和软件设备(数据库、负载均衡器等等)才可以处理这些日益增长地数据。这就带来一个些新的问题,这些设备非常的昂贵,这样就大大地曾加了企业的成本。有些时候只是某一个时刻用户量突然增加,之后又会降低(如淘宝的双十一),如果按照这个峰值来购买设备的话,就会造成资源的浪费。企业还需要专门组建一支专业团队来维护这些昂贵硬件设备和软件设备正常运行。需要进行维护的工作包括,安装软件、测试软件的性能、升级软件的版本,还有硬件的维修和维护。从经济效益角度来说,这样会大幅度地增加了企业的运营成本,光用在购买设备就是一笔巨大的资金,而且会随着数据中的规模的扩大,费用也会增加。然而对于中小企业或者创业者来说,这是一笔无法承担地费用。基于此,云计算就应运而生了,它更加强大,更加大量,更加快速。用户只需要将应用部署到云端上,不需要头痛那些硬件软件地问题,更加重要地一点,它是按用户地需求来支付费用,这样就大大降低了企业的部署应用的成本。OpenStack是现在最有影响力的云计算管理工具,同时也是一种开源的云计算标准,所以它成为了大多数企业和个人搭建企业私有云的首选。OpenStack简单点来说就是一个操作系统,一套开源的软件。所谓的开源就是见将源码公开,所有人都可以查看,因此很多公司在此基础上做了二次开发,如先电云平台。它为用户提供了部署云的操作平台或工具集,其主要特点是:用虚拟机作为载体,完成对全部计算、网络和存储资源的分配与管理。目前,开源的OpenStack与商业的Vmware解决方案占了全球私有云绝大部分市场,在不断创新和发展中,OpenStack正在变得成熟、可靠、简单和方便。1.2企业私有云现状1.2.1国外现状众所周知,亚马逊是”云计算“的鼻祖,在”云计算“领域上一直都是领头羊,一直不断地将云扶服务推广到不同的领域,他们发布的AWSIoT平台更是占领了云计算市场第一的地位。AWS是一个可以跨越边缘站点到云端的云服务平台,因此受到广大用户的欢迎,抢占了云计算的市场。云计算服务的需求日益增长,面对巨大的需求市场,微软也不甘于落后,从传统的windows操作系统转型云计算服务以来,以占据全球云计算服务市场14.8%的份额排名第二。阿里巴巴也是一个可忽视的云计算服务公司,其不仅在中国市场有傲人的成绩,在亚洲其他的国家也是发展得相当迅速。阿里得公有云是很多中小型企业的救星,有了公有云,他们就不需要斥巨资购买昂贵的服务器了,大大降低了成本。谷歌在阿里巴巴这个强劲的对手面前肯定会在业务方面不断优化,不难推测未来云计算领域双方竞争将更加激烈。1.2.2国内现状在互联网迅猛发展得时代,中国云计算在的国内互联网市场所占的比重越来越大。虽然现在中国的云计算市场整体规模落后于在全球水平3-5年,但是时间会改变一切,在数据时代的推动下,中国云计算产业迅速成长,正在向高于全球水平为目标奋进。说到云计算,不得不提的是IT龙头老大“华为”,其在2010年提出云计算策略。目前,华为在国内已经为超过16个国家部委级、15个省/直辖市级、200多个市/县级的政府客户提供政务云方案支撑[3]。腾讯云是国内的第云计算服务提供商排名第二,即使比阿里云起步晚,但腾讯在国内的游戏和社交领域有绝对的优势,所以在短时间内快速崛起并且取得骄傲的成绩。腾讯始终相信后来者居上,所以腾讯云正努力地向金融、旅游、公共服务等行业拓展。近年来,国内公有云的另一霸主出现在公的视野—百度云。目前百度云在基础设施、创新研发技术、行业实施面日益完善,相信百度云盘这个词并不陌生,没有用过的人也会听过。中国中小型企业的数量庞大,目前国内的公有云还是企业首选,所以公有云市场在国内不容忽视。中国云计算水平赶超国际水平指日可待。1.2.3现有的搭建私有云技术在技术方面可,搭建私有云的技术有很多,其主流的有两种:一种是开源私有云方案OpenStack,还有一种是商业的私有云方案Vmware。Vmware凭借着领先的技术水平长期以来在虚拟化领域处于商业垄断地位。其虚拟化技术具有稳定性、性能高能等优点,其所拥有的生态工具(虚拟机的动态迁移、虚拟化的高可用性等)的功能也是处于领先水平。因此学习OpenStack之前,了解Vmware对之后学习是非常有帮助的。OpenStack是现在最受企业欢迎的IaaS开源实现云计算服务的方案,其具有灵活、可扩展、易部署等特点,并且具有很好的社区进行技术支持。OpenStack常常被用于作为私有云的解决方案,但是其也可以作为公有云的解决方案。据说,华为、深信服的公有云服务也是基于OpenStack。1.3章节安排本文总共分为五个章节,每个章节的主要内容如下:第1章一开始就介绍了本课题的研究背景和意义,云计算的基本概念、云计算的特点和分类,并分析了国内外私有云的现状及采用的相关技术,最后给出了本文的结构。第2章介绍了虚拟化技术和OpenStack两个之间的关系;介绍了虚拟化技术的概念以及介绍OpenStack各个组件。第3章介绍了企业私有云的设计与部署式,部署OpenStack的各个节点以及研究如何实现高可用。第4章对该可用进行测试得出高可用私有云的部署方案。第5章对本文的实验工作进行总结,并对今后的研究工作与方向进行了展望。第二章虚拟化技术与OpenStack的介绍2.1云计算2.1.1云计算的基本概念在互联网行业中,“云”成为了最流行的词语之一,随之“云计算”就进入了人们的视野,并且也是成为了IT界的当红技术。它是一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连接成一片电脑云[1]。如此强大的计算能力可以为我们分析天气的变化,市场的打仗趋势,甚至可以模拟核爆炸等等。用户可以使用各种电子产品(如:电脑,手机,平板等设备)连接进入数据中心,按照自身的需求进行资源分配。实际上就是一种分布式计算,将庞大的数据量拆分成小数据再将这些小数据分散给各个子程序计算,随后将所有的计算结果汇总分析,再将结果返回给客户。云计算的出现成就许许多多的中小型企业和创业者,为他们大大节省了IT成本。2.1.2云计算的分类及特点云计算模式所具备的5个基本特征(按需自助服务、广泛的网络访问、资源共享、快速的可伸缩性和可度量的服务)、3种服务模式(SaaS(软件即服务)、PaaS(平台即服务)和IaaS(基础设施即服务)和4种部署方式(私有云、社区云、公有云和混合云)[2]。云计算的特点:(1)虚拟化是云计算的特点之一,也是最大的特点,有了虚拟化用户可以不受地域的限制,在任意的位置,任意的设备进入云服务平台进行操作。(2)云计算的规模非常大,小型的企业私有云至少会有几百台服务器,大企业会到达上百万台服务器,存放这些机器需要耗费大量的资源,云计算可以将其规模化整合。(3)高可用性是用来描述云计算最合适的词语,也是用户最喜欢它的一个特点,它运用了许许多多的副本容错技术,如数据备份。使用它会比本地服务靠谱多了。(4)为用户提供按需服务,用户根据自身需求购买资源,降低了造成过多的资源浪费的机率。(5)高扩展性,可以随时扩充系资源和减少资源。(6)是中小型企业或者创业的“福星”,它的成本比购买物理设备和软件设备底非常多。2.2虚拟化技术2.2.1什么是虚拟化本文基于OpenStack搭建高可用企业私有云技术研究。项目开始之前我们需要了解什么是虚拟化,因为虚拟化技术是云计算的底层结构,但是它又不同于云计算,虚拟化属于技术范畴,而云计算属于方法范畴[4]。简单来说,虚拟化就是不真实的意思,虚拟服务器所运行的资源都不是自身真实存在的,而是来自于一台强大的物理服务器,这种服务器称之为”虚拟机“。在用户看来,这些虚拟机都是一台一台相对独立的,没有任何交集,但是实际上他们就是关系是非常密切的,他们共用物理机上的内存、cpu、网卡等资源。让我们在一台Windows或者MacOS上模拟多个系统,可以和宿主机相同,也可以不同,比如在Windows上安装CentOS,并非如此,还可以对CentOS所使用的硬件资源做配置,比如4CPU,8GMEM等,如图2-1所示。图2-1VMware上部署CentOS72.2.2虚拟化的特点和分类虚拟化的特点:(1)对于管理员,虚拟化技术做到了集中化管理,当某个工位上的主机出现问题的时候,管理员不需要亲自到场处理,直接通过远程完成操作。快照、复制这些工具使管理员的日常管理变得十分方便。(2)对于企业的IT资源利用,虚拟化技术提高了硬件的利用率。一个企业的IT资源都必须满足当前或者几年之后的“峰值”计算需求,有了虚拟化技术之后,企业可以按照当前的计算需求对物理资源进行动态扩展。当有额外的“闲时”容量时可以在这台物理机上运行多个虚拟机,但是不需要增加的物理资源。企业也不需要为了提高可靠性而在多个物理资源上部署应用,物理资源就会造成不必要的浪费,虚拟化的隔离性就可以很好的解决该问题,提高可靠性的同时也是资源得到最大化利用。(3)高可靠性,通过部署额外的功能和方案,实现负载均衡、动态迁移、快速复制等高可靠服务器应用,减少服务器或应用系统的停机时间,提高可靠性。虚拟化技术有很多种,比如,网络虚拟化,内存的虚拟化,桌面虚拟化,应用虚拟化和虚拟内存等等[5]。2.3OpenStack2.3.1OpenStack背景OpenStack是由Rackspace和NASA一起项创建的云计算项目并且将它开源了,所以它只是一个开源的云平台管理项目。正是因为它开源了,很多”大神“级别的人物对其进行不断修改,贡献自己的智慧,OpenStack飞速发展,成为很多企业搭建私有云的首选。正所谓”无规矩不成方圆“,为了该项目能够顺利和规范地进行下去,形成了一个开源社区,该社区负责将项目进行推进和维护。社区里还建立了一个OpenStack基金会,自基金会建立以来,已经有十多万会员,其中中国社区的代码贡献者就有华为、中兴通讯等公司。OpenStack其实就是一套IaaS软件,为用户提高计算、存储、网络等服务。2.3.2OpenStack各个组件核心组件:(1)KeyStone(身份服务):是一个OpenStack自身开发的一个组件。其主要作用是对所有的服务进行认证和授权,提供服务认证的API,是整个OpenStack框架的注册表。(2)Glance(镜像服务):当用户创建实例的时候提供镜像服务,主要功能是存储镜像快照、管理镜像备份,支持存储不同格式的镜像,比如ios、qemu等格式。但是该服务并不会对本地物理机上的镜像进行处理。(3)Nova(计算服务):是整个OpenStack项目的“心脏”,实例运行期间所有的活动和操作都是由它管理,如网络,计算,迁移等。(4)Neutron(网络服务):它为云计算环境提供了网络虚拟化技术,为用户提供接口,在用户较多的情况下,能够给每个用户提供相对独立的网络环境。用户按照自己的需求创建个性化网络平台,既可以控制网络流量,也可以控制服务器和设备同一时间连接到多个网络,Neutron主要和Nova进行交互,为实例提供网络连接。(5)Dashboard(UI界面):是一个Web图形化界面,用户可以通过URL登陆到图形界面进行操作,对OpenStack资源进行查看和管理。相对于命令界面来说,用户进行实例创建、实例启动、IP地址的分配等服务的操作也相对简单了。它是OpenStack一个独立存在的项目。(6)Cinder(块存储):创建实例时volume块存储服务由Cinder服务提供,将volume卷挂载到实例上作为虚拟机的本地磁盘。个volume卷可以同时挂载多个实例上,但是不支持实例同时对该卷进行写操作,一次只能是一个实例可以对挂载的卷进行写操作,其他的只允许进行读操作。(7)Swift(对象存储):为Nova子项目提供虚拟机镜像存储服务,在多租户模式下支持容器和对象进行读写操作,是一个高可用的分布式对象存储服务。各个组件之间的关系,如图2-2所示。图2-2组件间的关系图2.4本章小结本章详细介绍了虚拟化技术的基本概念、虚拟化技术的优点以及OpenStack的基本概念,解释了OpenStack主要组件的功能以及特点,并且以图片的形式展现了各个组件之间的联系,接下来就要利用这系核心组件搭建该可用的企业私有云。第三章OpenStack企业私有云设计与部署3.1部署高可用平台准备3.1.1硬件资源准备控制节点(3台三张网卡的虚拟机)、计算节点(3台双网卡,兼分布式存储OSD的虚拟机)、存储节点(1台双网卡部署MOD的虚拟机),虚拟机软件详情,如表3-1所示表3-1组件的版本信息组件版本CentOSCentOSLinuxrelease7.7.1908(Core)OpenStackCephRockyCephversion12.2.12luminous(stable)3.1.2网络拓扑及逻辑网络拓扑图,如图3-1所示:图3-1网络拓扑(逻辑)1.在三个控制节点(controller1、controller2、controller3)部署MariaDBgaleria,Haproxy等相关组件和搭建好OpenStack相关的基础服务。2.在三个计算节点(computer1、computer2、computer3)部署Nova-computer,neutron-openstackswitch-agent,ceph-osd等组件。3.在存储控制节点(mon01)部署ceph-mon,ceph-mgr。4.控制节点网络:(1)管理网——ens34:/24用于对OpenStack集群hostos,api等网络管理。(2)租户网络——ens35:/24采用vxlan/gre等方式,使集群内部的虚拟机里的OS的数据进行交换。(3)外部网络——ens33:/24可以让用户访问Internet(外网)下载需要的组件。5.计算节点网络:与控制节点的网络相似。6.前端用高可用的Haproxy做负载均衡,用MariaDBgaleria作为数据库,用Ceph分布式存储对接OpenStack,通过这一系类的部署,希望能够顺利搭建完成高可用的私有云。3.1.2OpenStack环境准备1.为了集群所有电脑都可以快速地互相访问,需要配置hosts文件;vim/etc/hosts//打开hosts文件,添加一下的虚拟机IP和对应的名字1controller12controller23 controller30VirtualIP4mon019computer18 computer2computer32.配置SSH是为了各个节点之间可以互相免密登陆;ssh-keygen//生成密钥,使它们可以免密通信ssh-copy-idcontroller2ssh-copy-idcontroller3ssh-copy-idmon01ssh-copy-idcomputerssh-copy-idcomputer2ssh-copy-idcomputer33.安装和配置ntp服务器实现时间同步;#yuminstallsystem-config-date-y//下载安装NTP//修改NTP配置文件:#vim/etc/chrony.confServer1iburstServer2iburstServer3iburstallow/163.2MariaDBGaleria集群MariaDB是MySQL的一个分支结构,它可以完全兼容MySQL,此次仿真实验的部署就是采用它做数据管理,也就是数据库。同时还集成galeria插件,采用galeria插件的原因有两点:一是它可以自动将数据同步复制到每一个主节点,其他节点是可以对同步过去的数据进行读写操作,即可以修改该数据;还会自动剔除已经失效的或者删除掉的节点;有新增加的节点,数据也会自动进行同步;二是它具有数据不共享,高可用等特点。MariaDB与galeria插件集成,形成了高可用的数据库,其不存在同步延迟的问题。3.2.1安装与配置MariaDB(1)在所有的控制节点添加Mariadb的安装源;[mariadb]baseurl=/pub/mariadb//mariadb-10.4.11/yum/centos7-amd64//写入下载Mariadb的安装源路径gpgcheck=0//比检验从这个安装下载地rpm包enabled=1//用这个安装源(2)在全部控制节点安装MariaDB,完成安装后用命令开启服务;(3)所有的控制节点进行数据库安全设置、设置登陆数据库的密码并授权;(4)修改f文件,对MariaDBGaleri进行配置;(5)控制节点先将MariaDB服务停止;(6)初始化集群启动;需要成功启动controller1和controller2之后再启动controller2,(我以controller2作为第一个节点)否则会全部节点都不能成功启动;(7)最后登录数据库查看集群状态是否正常;(8)为了心跳检测,在全部控制节点的/usr/bin目录下面编辑clustercheck脚本。MariaDB配置流程图如图3-2所示。图3-2MariaDB集群流程3.3HAProxyHAProxy提供了负载均衡、高可用性以及基于TCP和HTTP应用的代理,它支持主机虚拟化,它是一种免费、快速而且可靠的解决方案[6]。目前,HAProxy是最受欢迎的一款Web负载均衡软件,其非常适合一些需要24小时不间断地进行对话、负载量非常大的网站。现在常见的硬件设备上运行HAProxy来应付数以万计的并发连接是一件轻而易举的事情。用户在现有的基础服务架构与HAProxy整合的过程是既简单又安全,同时还会避免用户的Web服务器直接暴露到外部网络中,让web服务器得到最大程度的保护。3.3.1HAProxy性能市面上有许许多多的负载均衡器,与其他的相比,HAProxy的优点在于它本身就只是一款负载均衡软件,没有其他的功能,所以它的效率一定是比Nginx更加高的。除此之外,在处理并发的问题上也是比Nginx更胜一筹。HAProxy有多的负载策略,如:原地址保持、请求URL、轮循、带权轮循、根据cookie;还支持虚拟主机、支持TCP协议和HTTP协议的负载均衡转发。3.3.2HAProxy配置在三个控制节点都安装HAProxy,还需要保持三台节点的配置一样;(1)以controller2为例,下载安装和修改配置文件,然后启动HAProxy;//下载安装yum-yinstallhaproxy//修改配置文件://配置HAProxy的日志-/var/log/haproxy.log;Haproxylocal3.notice-/var/log/haproxy-status.log;Haproxylocal3.*~(2)通过配置HAProxy可以监控Galera数据库,首先需要​在控制节点三台MariaDB进行数据库的配置。在全部控制节点上,重新启动HAProxy,同时设置开机自动启动。(3)验证配置是否成功,登陆0:8789/检测状态,如图3-3所示:图3-3Haproxy能监控数据3.4部署Keystone它是OpenStack的主要组件之一,用于为云用户提供身份认证,想要用到云平台就必须要通过KetStone的身份认证,就像回家必须要有钥匙开门一样。其出现为了解决各种不同安全认证,如用户登陆时对身份进行认证,各个服务之间交互也是需要通过其认证,还有各种注册等。通俗的比喻就是,KeyStone相当于一个小区的保安,需要进行身份认证才可以进入,进入之后只能回到自己的家里。所以搭建OpenStack之初需要部署的第一个组件就是KenStone。如果没有它,其他服务也就无用武之地了。Keystone的基本概念:(1)User:为用户分发令牌,用户包括人,系统,服务;用户必须有获得该令牌才有资格访问OpenStack平台。Keystone在用户访问OpenStack平台的时候需对要其进行身份验证。(2)Token:它是来自于其中的一个令牌机制(fernet、PKIZ、PKI、UUID)所随机生成的一串由数字和字母组成的字符。它不是永久有效的,它具有时效性,默认是24小时,但是可以自定义设置这个时效性。在时效性内可以随时访问服务,过期了就不可以访问了。(3)Project:是所有服务或者用户拥有的资源的一个总称。每个Project之间是不会有交集的。一个Project里面允许有多个User,根据权限,User可以对Project的所有资源进行分配。(4)Service:就是平时说的服务,例如Nova(计算服务),Glace(镜像服务)等各个组件。(5)Endpoint:是一个URL,可以用来访问云平台的IP地址,通常。Keystone负责管理和维护每个Service的Endpoint[7]。Endpoint该使用对象分为三类:(1)AdminURL:分配给管理员用户使用,可以修改UserProject,端口:35357;(2)InternalURL:Openstack里面的各个组件之间基于Restfulapi进行通信使用,端口:5000;(3)PublicURL:用于分配给其他用户访问云平台,用户在外网管理自己的服务其,端口:5000。3.4.1Keystone的配置安装Keystone与修改配置文件1.控制节点安装EnabletheOpenStackrepository(controller1和controller2);2.控制节点安装SQLdatabase(controller01和controller02);3.在所有控制节点安装Memcached;#yuminstallmemcachedpython-memcached-y//安装Memcached4.配置身份和服务;#mysql-uroot-p"typora#2019"5.安装和配置组件;#yuminstallopenstack-keystonehttpdmod_wsgi-y//安装需要的组件6.configuretheIdentityservice,创建keystone用户,初始化serveice实体和endpointapi端点;7.ConfiguretheApacheHTTPserver[cont0$表示controller1、contoller2和controller3];#vim/etc/httpd/conf/httpd.conf//编辑httpd配置文件httpd.confServerNameVirtualIP//在httpd.conf文件中添加ServerNameVirtualIP8.创建域,项目,用户和角色。(由于是集群,所以只要在一个控制节点上创建即可)。#openstackdomaincreate—description"AnExampleDomain"example//测试是否可以使用admin账户进行登陆认证,请求认证令牌KeyStone的安装与配置流程,如图3-4所示图3-4KeyStone安装与配置流程创建域,项目,用户和角色结果(1)admin用户创建成功,如图3-5所示图3-5创建admin用户(2)项目创建成功,如图3-6所示图3-6创建"ServiceProject"项目(3)default域创建成功,如图3-7所示图3-7创建"default"项目3.5部署Glance-镜像服务在OpenStack部署过程中,镜像服务就是由Glance实现的。在OpenStack环境下,用户可以发现镜像、回收和注册镜像,对整个镜像的生命周期进行管理[8]。Glance支持无格式、vhd格式、qcow格式、iso格式等。关于Glance主要的两大组件:(1)Glance-API:是镜像请求的入口,接受和处理由horizon、Nova-computer组件发送过来镜像请求,提供restapi服务。(2)Glance-registry:主要负责创建、删除、修改镜像等操作,所以其主要与MariaDB数据库交互,将会从数据库中获取或者存储镜像的元数据。其是一个私有服务,外网是访问不了的(3)两者结合的工作过程是:User发起请求,Glance-API就会马上告诉Glance-registry,然后Glance-registry会将查询到镜像的具体位置再回复给API,最后AP使用Storageadapter组件查询Glance后端的存储(Swift,Ceph等),最终将获取到的镜像发送给User。Glance的架构图,如图3-8所示:图3-8Glance的架构图3.5.1配置Glance1.配置MariaDB数据库中的Glance用户和权限等;2.创建GlanceAPI;3.安装Glance程序;#yuminstallopenstack-glance-y//安装Glance4.在全部的控制节点配置Glance-api.conf程序配置文件;5.修改Glance-registry.conf程序配置文件,在全部的控制节点上进行;6.同步Glance数据库(任意控制节点操作即可)。3.5.2启动Glance服务、测试镜像启动Glance服务所有控制节点上操作;systemctlstartopenstack-glance-registry.serviceopenstack-glance-api.service//启动glance服务镜像测试测试结果:如图3-9图3-9Glance的测试结果3.6控制节点配置Nova集群3.6.1Nova(计算资源)Nova的基本概念和特点Nova是OpenStack的核心部分,负责提供和管理实例的整个生命周期的计算资源[9](如虚拟机的创建:虚拟机的运行和挂起、关闭、删除等),依靠DashBoard的命令完成一系列的操作。由于Nova自身并不具备虚拟化的能力,所以Nova并不是虛拟机软件,它还需要其他的虚拟机软件(如Hyper-v、KVM、Xen等)配合才可以正常工作。Nova架构包括以下主要组件(1)NovaAPI:它是Nova组件的工作门户。它用于API查询,还有接收和处理用户发送的Http请求,并且同时支持OpenStackAPI和AmazonEC2API。(2)NovaCompute:用于管理实例的整个生命周期(如:实例的创建),结合其他组件(如:Nova-valume,Nova-network等等)与消息队列相互配合完成实例的创建。(3)NovaScheduler:调度器用来守护进程运行,运用调度算法在可以使用的资源池里选择最合适服务其。但是调度的结果会受到很多因素的限制(如:内存的大小、CPU的架构、子节点距离等等)。目前基本的调度算法有:随机化;可用化;简单化(4)RabbitMQServer:最核心的组件是Exchange和Queue。Exchange和Queue是在rabbitmqserver(又叫做broker)端,producer和consumer在应用端。3.6.2部署Nova节点控制节点Nova部署创建与Nova相关的数据库,在任意一个控制节点上即可;任意控制节点上创建Nova-API;用Yum命令在所有控制节点安装与Nova相关的服务;全部控制节点配置Nova.conf、00-nova-placement-api.conf;任意控制节点输入命令“su-s”同步Nova数据库;在所有的控制节点启动Nova服务并且设置开机自动开启服务;结果验证,如图3-10所示图3-10nova验证结果Nova部署代码流程图,如图3-11所示。图3-11Nova部署流程Nova部署在计算节点1.在所有的计算节点安装NovaYuminstallcentos-release-openstack-rocky-y//安装rocky版本openstackYumupdate//更新软件的版本Yuminstallopenstack-nova-compute-y//安装nova-compute2.计算节点和直接ssh免密认证3.修改计算节点nova.conf配置;4.在computer01、computer02、compuer03上执行启动Nova服务,并且设置开机启动;5.将计算节点添加到cell数据库里,在任意控制节点上操作。3.7Neutron部署3.7.1控制节Neutron点部署Neutronneutron-server:接受和应答外网管理请求,端口是9696Neutron-linuxbridge-agent: 主要是负责创建桥的接网卡Neturon-dhcp-agent:主要任务是分配IPNeturon-metadata-agent: 与Nova-metadata-api配合完成虚拟机的特定化动作。部署过程:1.安装Neutron程序;#yuminstallopenstack-neutronopenstack-neutron-ml2openvswitchopenstack-neutron-openvswitchebtables-y2.配置neutron.conf#vim/etc/neutron/neutron.conf3.在全部控制节配置ml2_conf.ini#vim/etc/neutron/plugins/ml2/ml2_conf.ini4.在全部控制节点配置OpenvSwitch#vim/etc/neutron/plugins/ml2/openvswitch_agent.ini5.在全部控制节配置l3_agent.ini(self-networking)#vim/etc/neutron/l3_agent.ini6.在全部控制节配置dhcp_agent.ini#vim/etc/neutron/dhcp_agent.ini7.在全部控制节点配置metadata_agent.ini#vim/etc/neutron/metadata_agent.ini8.在全部控制节点编辑配置nova.conf#vim/etc/nova/nova.conf9.在全部控制节点建立软链接#ln-s/etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugin.ini10.在任意控制节点进行同步Neutron数据库并验证;11.在全部控制节点操重启Nova服务并启动Neutron服务,设置开机自动启动;12.将PCS资源设置在任意控制节点上;13.OVS命令(三网卡)#ovs-vsctladd-portens33//ens33为第三块网卡(外网网卡);配置完成ens33(此块网卡不配置网卡)后,开启neutron-l3-agent.service14.验证,如图3-12所示;图3-12控制节点neutron验证结果3.7.1计算节点Neutron部署1.所有计算节点上安装Openstack-neutron-openvswitch服务#yuminstallopenvswitchopenstack-neutron-openvswitchebtablesipset-y2.配置Neutron.conf(所有计算节点上安装)3.所有计算节点上安装和配置Openvswitch_agent.ini;#vim/etc/neutron/plugins/ml2/openvswitch_agent.ini4.所有计算节点上安装和配置Nova.conf;5.重启Nova服务并启动Neutron服务(在全部计算节点操作computer01computer02、computer03)。6.结果验证,如图3-13所示图3-13计算节点Neutron验证结果3.8Horizon集群Horizon是一个Web接口,作用是给OpenStack系统提供界面服务。云平台管理员和其他用户可以用它来管理OpenStack平台的创建实例、创建镜像、创建密匙对等资源,并可直观看到各种操作结果与运行状态。除此之外,用户在控制面板中可以使用VNC直接访问或者使用终端(console)实例[10]。3.8.1Horizon部署1.部署Dashboard,需要在所有的控制节点上执行;2.修改local_settings配置文件,所有的控制节点都需要修改;#vim/etc/openstack-dashboard/local_settings3.在所有的控制节点重启Httpd和memcached服务,并且设置开机自动启动;4.验证;用户名和密码为admin登陆。结果如图3-14所示。图3-14登陆OpenStack3.9Cinder集群Cinder的主要组件:(1)cinder-api:作为Cinder服务的入口,主要作用是接收Cinder服务的请求,并且为其提供了同一规格的RestAPI服务;(2)cinder-volume:主要作用是跟存储设备打交道,为用户提供卷的存储空间。用于创建、存储、删除卷等操作。(3)cinder-scheduler:主要负责进行调度计算,将存储块节点分配给新建卷。(4)cinder-backup:只要负责备份服务,与驱动和后端的备份设备交互,如:swift等等。3.9.1控制节点部署1.创建cinder数据库,只需要在任一控制节点上创建即可,后台数据会自动同步;2.创建cinder-api,在任意控制节点上(我在controller2上);3.安装cinder服务,需要在所有控制节点上都安装;#yuminstallopenstack-cinder-y4.用vim命令配置cinder.conf#cp-p/etc/cinder/cinder.conf{,.bak}//复制备份原来的配置文件#vim/etc/cinder/cinder.conf5.在全部控制节点操作和存储节点配置nova.conf#vim/etc/nova/nova.conf6.在任意控制节点对cinder数据库进行同步#su-s/bin/sh-c"cinder-managedbsync"cinder//同步数据库7.在所有控制节点重新启动nova服务和启动cinder服务(如果计算节点有变更nova也要重新启动)。8.验证结果,如图3-15图3-15Cinder验证结果3.9.2存储节点部署因为本人计算机资源有限,所以没办法再配置单独的存储节点,所以使用contoller2作为存储节点。设计采用Ceph分布式存来作为主存储集群。3.10Ceph集群Ceph是目前国外非常流行的一种分布式存储方式,在国内也慢慢兴起。其可以自动恢复备份、具有非常高的可靠可靠性;将三大存储模块(块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs)统一起来,实现了真正的统一存储。很重要的一点是,它也是一个开源的软件,目前,OpenStack与它可以说是“形影不离”,成为了OpenStack的主流存储后端。用Ceph作为OpenStack的存储后端的优点:(1)由于所有的计算节点共享了存储,即使有一台虚拟机down掉了,其他虚拟机机会马上启动服务,使服务不会中断;虚拟机迁移的时候也不需要将整个根磁盘一起迁移。(2)CephRBD支持按需分配存储资源,当用户创建一个50G的硬盘时,刚开始的时候并不会直接占用物理机得50G资源,而是按照数据写入多少进行动态分配存储资源,这样就不会造成不必要得资源浪费,也不会占用大量得物理机的资源。(3)在创建虚拟机时利用了CopyOnWrite的特性,不需要下载整个镜像[11],实现了超快速创建虚拟机。3.10.1各个节点安装Ceph1.设置Ceph的yum源(所有mod和OSD上配置;2.安装Ceph-deploy(在adminserver上,此处我在mon01);3.安装Ceph包(在adminserver上,此处我在mon01)。3.10.2创建ceph集群1.创建mon&mgr,先以controller3作为initialmonitor创建集群;2.修改集群配置文件(optional);3.部署initialmonitor;4.创建cephkeyring;5.分发cephkeyring,执行admin的命令,ceph-deploy可以帮我做这些;#ceph-deployadminmon01comp01comp02comp036.从Ceph12(luminous)开始就需要为每个monitor创建一个mgr;7.添加OSD:ceph-deployosdcreate通过调用ceph-volume来创建OSD。使用bluestore时(默认),需要指定3个device:(1)添加osd.0(磁盘作block,无block.db,无block.wal)(2)添加osd.1(磁盘作block,无block.db,无block.wal)8.添加2mon+2mgr,启动mgr并查看状态3.10.3OpenStack集成cephOpenstack中需要用到Ceph的有三大服务:镜像服务(将镜像直接存储在Ceph);Nova计算服务(创建一个虚拟即实例必须要操作系用,Ceph可以为此提供操作系统);Cinder服务(物理机上的块存储服务也可以使用Ceph来提共服务)。前期准备工作:1.在OpenStack上创建一个1G的pool:(1)pool是Ceph默认的才存储数据的方式,不同的pool可以定义不同的副本数、pg数、放置策略等,每一个镜像都有必须指定一个Pool;(2)同一个pool可以写入多组不同的数据,但是这样不方便用户对数据的管理和操作,所以一般情况下都是为每一个用户创建一个pool;(3)为cinder,nova,glance分别创建pool,命名为:volumes,vms,images;(4)volumes池的存储具有永久性,vms作为实例临时的后端存储,images作为镜像存储。如果OSD少于5个,则将pg_num的数值设置为128;OSD在5~10个之间,则将pg_num的数值设置为512;OSD10~50个范围内,则将pg_num数值设置为4096[12];当OSD超过了50个,则需要参考pgcalc计算来设置数值。2.使用命令将Ceph客户端安装好;3.开始进行授权设置:需要为Cinder、Glance与Nova客户端建新的用户并授权,因为Ceph默认开启了Cephxauthentication,并且需要将创建client.cinder用户时所生成的秘钥发送到运行nova-compute服务的节点上。Glance集成ceph具体的步骤如下:1.修改glance-api.conf文件(在运行glance-api服务的节点),且在所有的控制节点上也都要配置;2.将镜像上传到默认的Ceph集群的imagespool的地址下;3.需要定义好pool的类型,在images启用之后,Ceph集群状态会变为:HEALTH_WARN[13]。Cinder集成ceph具体的步骤如下:1.设置cinder.conf中修改相应的Cephrbd驱动即可(在cinder-volume所有控制节点上)。2.验证Cinder服务,如图3-16图3-16Cinder服务验证3.需要设置卷的类型,Cinder的ceph后端存储设置在控制节点上并且建立相应的类型,可通过“cindertype-list”命令来查看配置多存储后端时所分的类型。4.检查生成的volume,如图3-17;检查ceph集群的volumespool,如图3-18所示;图3-17验证volume图3-18volumespool验证Nova集成ceph具体的步骤如下:1.配置ceph.con;2.配置nova.con,在全部计算节点配置Nova后端使用Ceph集群的vms池3.在全部计算节点上配置live-migration:修改/etc/libvirt/libvirtd.conf\修改/etc/sysconfig/libvirtd4.重启libvirtd与nova-compute服务5.nova启动instance的时候,必须先要将*.img文件转换成*.raw文件,因为镜像必须是raw格式,不然实例在启动时后glance-api与cinder都会报错,成功启动,如图3-19。图3-19集成完成3.11热迁移热迁移(LiveMigration),可以叫实时迁移,也可以叫动态迁移。在虚拟化中,虚拟机的迁移分为两种:一种是冷迁移,另一种是热迁移[14]。在新环境下新创建一个云主机并关机,然后把根磁盘替换为需要迁移的虚拟机根磁盘由于OpenStack使用Ceph共享储存,所以直接rename为新云主机uuid即可。很多认为热迁移是业务不中断,其实不是,只是业务中断的时间非常短,用最快的速度将虚拟机恢复到原有硬件平台或者是不同硬件平台上,这时间是在用户所能接受的范围以内,称之为用户无感知。还有一种是存储热迁移,这种热迁移是在存储空间快要爆满的时候所需要的操作,或者是由于某种原因需要将存储上的数据迁移出去。3.11.1热迁移配置计算节点配置:1.在所有计算节点修改配置文件,在/etc/sysconfig/libvirtd下;Vim/etc/sysconfig/libvirtd2.修改配置文件,在/etc/libvirt/libvirtd.conf下;3.重新启动libvirt。Systemctlrestartlibvirtd.service用admin用户登陆OpenStack控制台进行实例热迁移:1.查看创建的虚拟机实例;2.对云主机进行编辑,点击迁移云主机选项,其他不需要选择3.等待迁移中,该过程很有可能会失败,这个与个人的物理机的配置有关,迁移的时间会很久;4.最后在控制台查看是否成功,可以ping通百度。3.12本章小结本章主要介绍OpenStack各个组件的安装与配置,测试各个组件。还部署了Haproxy,ceph、热迁移和备份容灾,使得企业私有云变得高可用。第四章私有云平台测试4.1测试环境与测试方案4.1.1测试环境物理机的配置:Win10的操作系统,VMware15,16G运行内存,centos7镜像。在该物理机提供的环境下搭测试环境,安装了centos7的7台虚拟机,控制节点有3台(controller1,controller2,controller3),计算节点3台(computer1、computer2、computer3),还有一台存储控制节点(mon01)。每台虚拟机配置均为2个处理器,内存4G,两个硬盘50G,网卡3块。4.1.2测试方案在搭建好的OpenStack平台进行测试:1.登陆0:8789/检测各个组件的状态,账户和密码都是admin;2.登陆0/dashboard;账户:admin密码:admin域:Default;3.登陆OpenStack可视化界面之后,上传测试镜像,创建网络和规则,最后创建实例。4.实例创建成功之后,启动实例。进行热迁移(有可能会失败,是个人的机器性能而定),最终迁移的虚拟机可以ping通百度即为成功,否则就是失败。5.Ceph测试:可以访问3:7000/,里面有存储的镜像,即为成功。4.1.3测试结果1.登陆OpenStack的Web界面,用户名和密码都是admin,登陆成功,如图4-1;图4-1登陆界面2.设置网络,如图4-2;图4-2创建网络3.上传镜像,如图4-3;图4-3上传镜像4.创建实例,由于电脑的硬件资源(16G,i7的cpu)不足导致创建失败,以至于无法验证热迁移与Ceph存储的对接。为了准确测试,我在该物理机上再重新搭建了m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论