ad

OpenStack 学习有哪些难点?需要哪些知识储备?

匿名投稿 180 2023-12-30

很多人都反馈学习OpenStack困难重重,本文作者也经历了从部署到运维OpenStack的一路艰辛,为此,就某些情况而言,作者将自己学习OpenStack中的难点和关心点与读者分享,介绍了OpenStack要侧重学习的重点领域和知识,希望对大家有所帮助。

  前言

  随着云计算技术的发展,技术的不断成熟,愈来愈多的企业开始在公司内部部署私有云计算平台。处于本钱斟酌,开源的云计算管理平台OpenStack也正在被更多的技术人员所学习及部署。云计算虽然具有很多好处,比如变通性、伸缩性和按需分配等特质,但是在部署上却需要一个对开源研究颇深的团队来进行部署和管理。OpenStack组件众多,部署比较困难,出了问题,排错较难。由于其每半年更新一次版本,比较频繁。企业不太可能每半年就更新一次云平台版本,所以会造成版本间隙过大。

  

  虽然其发展势头强劲,但是无可避免的问题就是部署OpenStack需要比较资深的开源技术能力和团队。学习OpenStack和掌握OpenStack中的难点也就成了IT技术人员比较关心的话题了。

OpenStack 学习有哪些难点?需要哪些知识储备?

  概念回顾

  为了让读者更好的学习OpenStack,我们简单的回顾一下它的基本概念。OpenStack是一个开源的具有高可用性及扩大性的云计算平台。支持管理大部份主流的hypervisors,如KVM,Xen Server,VMware,Oracle VM,Xen等。 同时OpenStack是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用OpenStack作为基础,数据中心操作者可以快捷方便的经过现存基础架构创建云服务。让IT管理人员使用计算资源像使用电力水利那样,按需随即取得,并对使用量进行付费,完全颠覆了传统数据中心建设和运维模式。经过上面的简单介绍,我们知道OpenStack可以建立私有云、公有云和混合云,是一个提供IAAS层服务的基础设施云计算管理平台。OpenStack本身是由多个功能组件组成,来共同完成以上功能。由于OpenStack处于社区保护,各个组件功能也在各大企业和社区的支持下不断的完善,新的功能组件也在不断的出现。至今为止OpenStack经常使用的组件主要有以下几类:

  认证模块(Keystone)

  代号为Keystone,在OpenStack框架中主要负责管理身份验证、服务规则和服务令牌功能的模块。用户访问资源需要验证用户的身份与权限,服务履行操作也需要进行权限检测,这些都需要经过 Keystone 来处理。Keystone类似一个服务总线, 或说是全部OpenStack框架的注册表, 其他服务经过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份验证, 来取得目标服务的Endpoint来找到目标服务。

  计算模块(Nova)

  代号为Nova,主要负责管理计算资源、网络资源、存储资源等可扩大性的平台,是OpenStack中的计算资源控制模块。Nova本身并没有提供任何虚拟化能力,需要经过相干受支持的驱动与各种Hypervisors交互,比如KVM、Power VM、VMware等。

  镜像模块(Glance)

  代号为Glance,主要负责管理OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。服务提供了一个REST API,能够查询虚拟机镜像元数据和检索的实际镜像。经过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpenStack对象存储系统。

  Dashboard模块(Horizon)

  代号为Horizon,是OpenStack的Dashboard,提供了一个基于web图形的用户操作界面,大多数针对对象的操作都可以经过其来完成。经过此界面,管理员可以较快的上手OpenStack,履行常规的操作。

  块存储模块(Cinder)

  代号为Cinder,主要负责OpenStack中块存储的管理。为VM提供持久化的存储服务。在F版以后,从Nova-volume中分离出来,立项名为Cinder,独立提供块存储服务。

  网络模块(Neutron)

  代号为Neutron,主要负责OpenStack中的网络管理,也是所有组件中最为复杂的模块。它管理OpenStack中的所有虚拟网络和物理网络接入与转发行动,提供防火墙及隔离等方面的高级网络管理能力。

  对象存储模块(Swift)

  代号为Swift,是OpenStack中提供的一个对象存储系统,也是所有组件内名望相对较小的一个,为何会这样呢,预估是由于采取Restful Http接口,主要为互联网提供服务的缘由吧,还没有大范围的被众多的企业所接受。

  学习难点

  很多人都反馈学习OpenStack困难重重,部署进程中,“坑”不是一般的多,实在是繁琐。而且出了问题仍需要很强的排查毛病的能力,对Linux本身的技能要求颇高。由于OpenStack是开源产品,企业可以针对本身实际需求进行定制化,所以也要求技术人员具有编程基础,有助于环境的搭建和后期的运维。前面已谈过,网络模块应当算是OpenStack中最为复杂的模块了,结构复杂,概念较多,没有一定的网络基础还真不能玩转OpenStack。

  我本身从事OpenStack工作虽然不是太久,但是也经历了从部署到运维OpenStack的一路艰辛。学习的进程中,更是从一个坑跳到了另外一个坑,感觉就从没有上岸过。大家都知道OpenStack就是一整套云计算的解决方案的框架,里面汇聚了包括存储、计算、网络、Web、数据库等多种技术,这类方式即保证了服务的变通性,能够适应不同的利用场景,同时也加大了学习的难度。借着TWT的优秀平台,将自己学习OpenStack中的难点和关心点与各位分享,希望可以对大家有帮助,同时让自己学习更多。

  1、自动化知识的储备

  要想学习好OpenStack就必须具有自动化脚本或简单开发的知识。尽人皆知OpenStack的部署和运维进程中,需要用到很多的开源技术支持。比如高可用方面需要用到keepalived、pacemaker、HAproxy等软件。运维中需要用到puppet、ansible或saltstack等软件。OpenStack的部署很复杂,如果手动部署那绝对是灾害的,而且也容易出错。所以一般都会采取自动化部署脚本方式进行自动部署,减少人为的干预,下降毛病率。在这方面,建议搭建可以主要学习一下python和bash shell,毕竟OpenStack很多代码是用python所写。在业余时间【一天一次】,建议多浏览一下OpenStack的源码,不懂不要紧,边学边读,这样有助于后期的知识消化和理解。

  2、数据库知识的储备

  OpenStack中除Dashboard意外,其他的组件都需要数据库的支持。不管是MySQL还是MariaDB,或其他数据库。很多情况下,用户经过界面对OpenStack进行操作,如果出现需要修改数据库的问题,就必须要具有数据库的排错能力了,最少具有熟练的操作能力。举个例子,有个时候我们在界面上发出删除主机的指令,但是由于某种情况不能被成功操作。这时候候就需要在后台的Nova数据库中找到相干的记录,将其经过update语句改成已删除,避免统计毛病。固然这只是一个普通的实例,以后大家在学习OpenStack的路上预估会常常与数据库打交道,不要嫌烦,要建立开源理念。

  3、网络知识的储备

  OpenStack中最为复杂、恼人等组件就是网络模块【Neutron】了。不夸大的说,你如果跨过了网络模块这个大坑,你就算是学会了OpenStack的60%了。很多人都在OpenStack的学习道路上,折在网络大坑的不在少数。从网络的物理装备到网络的逻辑配置,乃至架构都要熟习。比如要知道简单的VLAN、Flat、DHCP、Bridge(Linux bridge或ovs)、NAT以路由,乃至是SDN等技术。OpenStack中关于网络的指令很多,功能异常复杂。要学会经常使用的一些指令,比如neutron net-list用于查看当前租户的所有网络信息,加上—all-tenant就能够list出所有的。Neutron net-show NETID查看某个网络的详细信息。Neutron net-create创建网络,net-delete删除玩了过等等。更多的指令,建议大家去OpenStack官网看一下。

  4、存储知识的储备

  OpenStack经过近10年的发展已对业界经常使用的存储类型进行了支持。不管是NFS、SAN还是local方式。从功能上Open Stack经常使用的存储有Swift对象存储,类似于AWS的S3服务,不过Swift具有更强的扩大性、冗余和持久性,固然了,也兼容S3 API。Cinder块存储,提供类似于AWS的EBS块存储服务,可以经过界面操作挂载到虚拟机上,提供持久化的数据存储。存储知识的存储有益于我们公道的计划OpenStack的存储用处。散布式存储已占据了OpenStack的大部份市场,比如Ceph、GPFS等。熟习哪些存储的配置和备份技能,来从侧面保障OpenStack存储方面的稳定和数据可靠。

  5、虚拟化知识的储备

  OpenStack支持KVM、Hyper-V、VMWare、Xen、Docker等主流虚拟化技术。可以看到,OpenStack主要是利用Libvirt进行的虚拟机操作,但是也支持直接调用原生的API进行操作。要理解虚拟化的功能是甚么?Hypervisor可以对下层(Host OS)硬件资源(物理CPU、内存、磁盘、网卡、显卡等)进行封装、隔离,抽象为另外一种情势的逻辑资源,再提供给上层(Guest OS)使用。所以你可以理解Hypervisor其实就是联系Host OS和Guest OS的一个中间件,固然虚拟化可以将一份资源抽象为多份,也能够将多份资源抽象为一份。

  典型场景解析

  场景一、安装OpenStack之前的基础环境准备

  OpenStack是一个开源的架构平台,需要较多的开源软件进行辅助支持。所以在安装OpenStack之前要提早做好以下准备工作:

  1、 下载好相干的开源软件,或搭建解决依赖关系的YUM本地源。根据个人经验,建议大家提早准备YUM源,便于顺利安装开源软件,无需人工参与。

  2、 DNS上提早注册好相干管理节点的FQDN名

  3、 确保网络环境畅通,经过网络隔离出管理VLAN和虚拟机VLAN

  4、 提早准备群集IP

  5、 系统环境准备,比如关闭防火墙及Selinux功能

  场景2、自动化配置工具的准备

  至今为止部署OpenStack都是采取自动化的方式部署,简单不容易出错,比如Mirantis的Fuel工具,或其他IT厂商自研的工具。但是后期具体的配置变更,就要需要使用方针对本身习惯自行决定了。我们采取的是Salt Stack作为批量配置工具。

  1、 在一个独立虚拟机中安装Salt Stack主控节点

  2、 所有的管理及计算节点安装Salt Stack客户端

  3、 配置客户端Salt Stack配置文件,指向主控服务器

  4、 经过Salt ‘’ –A命令接受所有客户端管理

  5、 发布Salt ‘’ test.ping肯定环境正常

  场景3、OpenStack的联调测试

  安装好OpenStack以后,需要验证其环境是不是可以正常工作。一般可以经过以下步骤逐级查看。

  1、 查看所有组件的日志,查看是不是有毛病信息

  2、 登陆Dashboard,对所有组件进行阅读

  3、 创建一台虚拟机,并针对虚拟机履行各种常规操作,如删除、修改配置、冷热迁移等

  4、 物理将某台计算节点down掉,查看是不是可以在另外的节点启动VM(如果做了高可用的话)

  5、 所有计算节点之间摹拟传输大文件

  总结

  以上是对OpenStack学习中的关心点的说明,指出了OpenStack要侧重学习的重点领域和知识。经过以上的介绍,读者可以认识到OpenStack的由来和功能,部署需要做哪些准备,最多见的疑问问题产生在哪一个部份。固然我自己也在学习OpenStack的路上,也是依照这个思路来学习。遇到问题也会常常在TWT寻觅大咖的支持和解答。大家可以多阅读TWT和OpenStack官方网站,学习新的知识点,解决更多的难点。再次希望这篇文章可以对大家在学习OpenStack的道路上有所帮助。

  作者:张志强,多年的云计算、虚拟化架构设计、企业信息化建设、自动化运维经验。熟练掌握X86、Power、存储、虚拟化等硬件装备调优与配置。具有丰富的混合元架构及管理经验,信息安全及网络架构的设计与运维。


免责声明:
本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。

本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。

如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。

上一篇:GNTC大会回顾:看不久的将来网络科技4大趋势(未来网络产业)
下一篇:10个SaaS的常见问题解答告知你SaaS是甚么(saas具体是什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×