本文摘录自开源中国社区(http://www.oschina.net)的在线问答。

讲师是 @清凉的西风 (张小斌),也是我们的cloudsource的主力架构师,他为很多在线用户解答关于OpenStack方面的问题。

这是讲师最新的力作《OpenStack企业云平台架构与实践》一书。购买链接:http://item.jd.com/11583884.html

 

 

  •  你好,我特别想知道OpenStack对于服务器地域分布很广,网络条件比较差的情况,适不适合?
    • 清凉的西风所以,对于“OpenStack对于服务器地域分布很广,网络条件比较差的情况”简而言之,适合,但具体部署,一套openstack最好规划成一个region,可以用多region方式来解决这个问题。一套openstack region里,服务器并不一定非在一个网段,用DHCP中继,可以解决大规模部署问题
    • 清凉的西风OpenStack需要管理网来通讯,通过queue发送各种消息,许多服务要访问数据库。所以搭建openstack环境,最好是一个地域(机房、数据中心)规划一个或多个region,包含完整的openstack服务。openstack代码和配置里有许多超时的设置,在网络连接不好的情况下,很容易超时。可以将这些时间调大,但如真的发生问题要等很长时间才能返回,这个结果可能大家都不可接受,特别是生产环境。
  • penstack安装部署和设置对于初级用户来说有什么建议。
    • 清凉的西风网络情况比较复杂:首先考虑是flat网络是否就够了?如果够了,用nova-network足矣。一般生产环境使用的是vlan,这个可以基于nova-manager, 但目前普遍的是用neutron;另外研究可以使用neutron,去研究下GRE/vxlan。如果确定什么网络适合,剩下的是具体的配置/起服务把他们跑起来,当然事先要准备好IP地址池,网关,vlan段等信息在手边   
    • 清凉的西风配置:初始化keystone, 包括service, admin tenant, endpoint…这些可以用RDO/DevStack装个环境看下,基本都一样;数据库,有类似于db-sync之类的脚本,可以把各个项目需要的数据库创建出来。配置文件:如果没有特殊要求,只需要把里面的mysql, rabbitmq配置需要的IP填写对即可。如果需要详细步骤,可以单独微信我,我发手工步骤给你  
    • 清凉的西风如果是初级用户,建议先用DevStack搭建单机环境,总共只有4步;搭建完毕,查看mysql,各个配置文件(/etc/xxx/xxx.conf);其次可以用RDO或者Mirantis, Mirantis Fuel刚发布6.0,但目前还有一些问题,建议用他们的5.0/5.1。唯一的有界面的openstack部署工具。  
  •  

    1.OpenStack适用于企业哪些业务? 

    2.OpenStack和VMware、KVM有哪些本质区别? 

    3.使用成本和团队学习成本如何? 

    • 清凉的西风关于#3:小规模环境,比如50个节点一下,搭建单控制节点,其余计算节点,用LVM,还是比较稳定的;一般可能会遇到网络问题,这需要了解neutron, openvswitch, vlan等;dhcp可能有时候分配不到IP,Nova-compute可能有时候创建不了虚机。但所有一切,除了网上有大量资料可以参考,另外只需要重启下服务,一般都足以解决问题。所以这类使用,大可放心   
    • 清凉的西风关于#3:学习成本还是比较高,因为用openstack不会是纯粹把它跑起来而已,一般都想上生产环境,这里问题来了:网络(扁平网络,vlan,GRE/vxlan, 交换机,路由器,广播/组播…), 存储(LVM, 共享存储,对象存储,块存储…), 监控,自动化部署,安全,用户管理、迁移;大型环境还有各种高可用,多region,多可用域;性能、可靠性,都需要考虑
    • 清凉的西风关于openstack与vmware对比可参考这个文档:https://www.mirantis.com/why-mirantis/openstack-technology/comparing-vmware-and-openstack/。VMware也是openstack基金会的黄金会员   
    • 清凉的西风补充#2: openstack可以通过nova服务来管理调度vmware, 类似于一个hypervisor,这个社区已经支持。而KVM只是openstack一普通但最常用的hypervisor(其他还包括zen, docker, LXC, 裸机, Power等). 也就是一套openstack环境,可以同时管理运行KVM, Power, VMware, LXC/Docker等。  
    • 清凉的西风关于#2,KVM一般意义上是管理虚拟机相关的(包括虚拟机用的网络、存储等),外面通过libvirt来调用。不会跨越物理机边界;VMWare可以管理许多服务器上的虚拟机,包括存储、网络,热迁移、HA,FT等。这方面做的极致。OpenStack定位为开源云平台,除了VMWare的这些(当然不包括FT,HA需要自己搭建),还包括对象存储服务、数据库即服务、大数据即服务。OpenStack是追赶AWS的   
  • 您好,我想问一下,学习 openstack需要哪些储备知识?
    • 清凉的西风一套可运行环境至少要包括keystone, nova, cinder, glance, neutron,都串起来,放到合适的物理环境(物理机,包括CPU,内存,磁盘,网口,操作系统,磁盘分区),网络(千兆、万兆、vlan,IP地址池,网关),存储(LVM, Gluster, Ceph, Swift, …), IP地址池,网关…具体配置参数…所以还是需要先了解整体,先规划再实施
    • 清凉的西风在书里第2.9节列举了一些知识点;其实对于具体某个项目的某个服务,因为是python代码,要读和修改代码都不难,难在于把整个都串起来,而且整个平台运行起来是期望的那样,这个是最难的。因为具体那一块都可能出问题,而且很多问题都不很直观,甚至很难定位。如果某人拿没有规范搭建的环境问我为什么不工作,我也没法回答,可能的情况太多了   
  • 你好,我正在研究使用 Openstack 為公司建立私有雲,我個人網上爬了很多文章,對於 Openstack for multi node的解說比較少,由於OpenStack由幾個部件組成,我也不知道如何分配硬件去配合 Openstack。另外你對 Devstack 和 packstack 或 RDO 的看法如何? 如果用在 Production 環境下那套較好?還有是 OpenStack 到目前還未能提供熱升級, 升 級難題如何解決?
    • 清凉的西风升级,这个比较麻烦,社区一般都支持N->N+1的升级,但考虑到比如操作系统版本变化,数据库变化,还有自行开发的如运维自动化,监控,安全加固,工作会比较多;特别如果是生产环境,那些运行的虚机不是想停就停的,而且如果比如Apache-JBoss-Mysql,分布到多个节点,IP能不能变化,那升级顾及的东西很多。   
    • 清凉的西风所以生产环境,如果需要现成好用的,可以考虑RDO, Mirantis Fuel(这个对于了解openstack的功能,非常全,而且图形化界面,说明,文档);但这些搭建基本环境,包括生产的都没有问题,万一有问题,只需要参照网上/社区,对openstack代码/配置进行调整即可,已经脱离了RDO/Mirantis的范围;里面包装的,也是社区里的OpenStack Icehouse, Juno版本   
    • 清凉的西风DevStack一般是初学/开发使用较多,适合单机环境,我觉得不适合生产环境,里面封装太厉害,需要修改时改不动;RDO可控性稍强,可以搭建多节点环境,里面而且带有基于Nagios的监控。正式环境,没有监控,就和夜间开车没有开灯一样容易翻车;但RDO,如果考虑到运维自动化,里面虽然也是封装puppet的,但也比较复杂。 
    • 清凉的西风硬件配置可参考本书第八章,但是取决于规模大小,在内存/CPU上可以调整,比如我常用的有CPU: 2*6 core, hyperthread; 128/256G 内存;控制服务和计算服务对磁盘空间要求都不大;也可以这样计算:一个虚机50G,每个节点20个虚机,就可以算出存储空间需求;块存储也可以同样计算;考虑到虚机不一定占满整个空间,可以乘以0.75   
    • 清凉的西风计算节点只运行虚拟机,可以有单独的存储服务器组成共享存储(支持热迁移,Host evacuate等),块存储等。但如果服务器是通用的(如都是128G内存,2*6core, hyperthread, 几十T的硬盘),也可以把nova-compute, cinder-volume部署于一起。  
  • 您好,Openstack作为一个开源的云计算管理平台,目前在政府、企业尤其是没有开发运营能力的企业内取得足够的信息,用户仍然会采购各大主流厂商的Iaas,由此将带来vendor lock-in问题。在Openstack的官网主要是支持KVM,对于vcenter也是有限支持,国产IaaS基本空白。请问在构建异构IaaS的统一管理上Openstack能做哪些工作?Openstack开发者可以做哪些贡献?非常感谢!
    • 清凉的西风关于vendor lock-in,可以看到一个变化就是vendor不再强势,更加虚心,注重服务,开源对于客户有更多vendor选择,对于客户也是个好的变化;对于vmware, power的支持社区正在推进,但基本的使用问题都已经解决,配置也相对简单好上手;国内基于云/openstack也有不少新兴公司,社区参与者也非常活跃;需要稍微给他们些时间   
    • 清凉的西风您的这个问题很大,不好回答:-). 从openstack角度,需要做的更适合企业用户,比如快速安装部署,监控,运维,安全方面。现在部署问题已经初步解决了(RDO, Mirantis Fuel,自己基于Puppet/chef), 但高可用需要自己解决;其他的社区已经关注,但这个内容实在太大,参与公司太多,还是需要假以时日 
  • 您好,openstack目前SDN还是OVS,请问flat模式下如何组织内网broadcast storm? 
    • 清凉的西风flat模式下阻止广播的手段不太多,这种模式就是用于小型的环境中,想隔离就要上升到3层了。可以利用二层防火墙适当减少些广播流量,比如ebtables,对虚拟机的出口流量过滤  
  •  使用openstack搭建小的私有云需要准备些什么,网络和硬件怎么规划
    • 清凉的西风关于“使用openstack搭建小的私有云”:选择操作系统(CentOS/Ubuntu);选择openstack版本(I/J/H);选择queue/DB(没有特殊需求,考虑用社区普遍使用的即可,可搜索openstack用户调查报告参考);如何部署(RDO/Fuel/手工);准备网段(管理/数据网);考虑那种存储(缺省LVM足够或者Gluster/Ceph);但没有把握不要用Ceph,出问题很难解决   
    • 清凉的西风第八章有“常用应用类型特性分析”,计算/存储可以先分析业务类型,是计算/网络/IO密集型,根据这些来选择硬件配置;简单环境,只有资源不是太少,也都可以运行;控制节点,小型环境可以从16/32G内存开始,硬盘从50G开始,根据规模往上调;网络本身选择余地不大,企业里可能大部分是千兆,但可能是百兆或万兆,只能适应;  
  • 我们在云项目选型中,首要考虑的是虚拟资源的调度和迁移以及虚拟化环境下的安全。调度需求主要是对宿主机负载情况进行探测,动态调整各宿主机的负载,保障客户体验。迁移需求主要为在上述动态调度,或宿主机故障的情况下虚拟机迁移。虚拟化环境下安全需求主要为不同业务属性虚拟资源的VLAN动态管理(目前还没考虑超4096VLAN限制的情况),各VLAN的IP资源分配,默认网关,防入侵等。想了解 openstack在解决上述需求中的设计方向思路。非常感谢。
    • 清凉的西风关于您说的安全,可能还有主机安全,网络攻击,入侵检测,通过KVM的攻击,这些都有一些开源工具+自行开发一些内容来解决;KVM安全HP/Symantec讲的很多。还有内部消息的安全等,这个openstack自己可以解决  
    • 清凉的西风迁移要结合监控,可通过(live)migration, (host)evacuate来实现手工/自动迁移,但自动化判断逻辑还的自己实现;另外live-migration, evacuate等需要共享存储支持,但NFS不推荐生产环境,节点数上升到10台以上性能就不好了,而且有单节点失效危险;没有共享存储带宽也要考虑;另外,迁移有的会freeze虚机,对业务影响也需要评估  
    • 清凉的西风块存储也一样,但相对手段少些;一般也不推荐超分;如果需要将虚机和块调度到同一物理机,则需要自己修改代码(但修改代码量也不多,看懂了就可以改了)  
    • 清凉的西风调度还有Strip:即根据虚机需要的计算资源平均到各个物理机; pack: 类似与省电模式,将虚机尽可能集中到少数服务器上去;还可以根据剩余的计算资源来调度;所以管理程序需要综合运用这些手段,来满足实际需要   
    • 清凉的西风这里只能分享一些个人的体会和经验。调度包括虚拟机调度和块存储的调度,nova里提供了很多手段,包括主机的划分,可用手段包括可用域,主机集合,medadata等。一方面nova会将自己节点的资源上报,另外,结合反亲和策略,differenthost等,可以构造自己的调度。常见的有不同类型虚机调度到不同资源池(硬件可能不同);集群调度不同主机等 
  •  您好,在使用Fuel 安装工具安装OpenStack 时,网络有 Nova-Network, Neutron GRE,Neutron VLAN 。后两种目前除官网外找不到太多资料,而看书中说 Nova-Network 以后会去除,用 Neutron 代替,同事朋友说目前在使用Nova-Network。

    想知道现在搭建,建议使用 OpenStack 哪个版本,使用哪种网络模式?谢谢。

    • AndroidMe回复 @清凉的西风 : 谢谢你详尽的回复。
    • 清凉的西风目前最新的是Juno版本,一般社区发布(每年4月和10月)后等两三个月,此时该版本的很多问题都已经解决,可以直接拿来用;Icehouse, Havanna版本也足够稳定,可以直接拿来用。我曾经搭建的Havanna版本,除了Dashboard里稍微改动之外,其他服务代码未动一行,运行半年也很稳定,偶尔有ovs agent丢失流表,最简单办法是重启就好了   
    • 清凉的西风Neutron-GRE/vxlan还在演进,建议新环境还是观察跟踪即可。vlan对于绝大多数企业很适合,因为vlan本身企业就在用,改动成本最低,配置也相对方便:neutron里配置queue和数据库IP地址;ovs agent里配置vlan模式,也可以配置vlan范围(缺省配置2~4095也可以);网上博客里有大量资料可以参考 
    • 清凉的西风OpenStack网络确实让人眼花缭乱。但是我个人的观点是适合自己的就好。如果扁平网络足够了,用Nova-network也可以的,说是nova-network要退役,但实际上一直存在,许多企业(包括一些早期大型环境)还在用,而且代码量并不大;许多企业里neutron-vlan也足够了。没有太多企业会超出4096的范围。
 
 
  • 有没有线上使用的成功案例?
    • 清凉的西风现在关注的问题,已经到IaaS之上了,以前交付的是光秃秃的虚机;现在搭建IaaS,还需要解决应用的问题,这方面可以使用openstack heat(编排,支持服务的自扩展), trove(数据库即服务),Sahara(大数据/分析即服务)等来支持,功能本身都很稳定,只是一些特殊功能还缺失。
    • 清凉的西风您具体关注什么方面?关于Openstack平台,这方面很多啊,中小型环境,比如节点数少于100,少于50的非常非常多,各种版本的都有。我见过最早的有E版本的,现在搭建这种规模环境非常容易了。假使遇到问题,只要把错误信息一搜,都有很多帖子来交流如何解决的;大规模环境,包括京东,携程,苏宁,几个运营商都有,国外就更多了  
  • 针对控制节点与服务的HA(高可用)方案很具体而可实施,但是针对虚拟机的HA则没有(至少主流版本没有),这方面是否有好的建议,或者已有的方案。
    • 清凉的西风如果应用本身集群支持的挺好,而且调度策略也支持反亲和策略,那可能什么HA方面都不用做了,新增加一些虚机就好了。有个很有趣的比喻是Pets vs. Cattle, http://it20.info/2012/12/vcloud-openstack-pets-and-cattle/。如果达到cattle的程度,那就轻松了
    • 清凉的西风有几种我尝试过的方案:可以基于Pacemaker+corosync,把虚机当作pacemaker管理的一种资源;利用zookeeper; 自己写个简单的检测服务/主机是否挂了(注意有时候检测失败可能是网络不通,但虚机和虚机网络还好好的),这些基于共享存储,结合(host)evacuate很好支持;
  • 很多公司都在做OpenStack不同的订制版本。红帽openstack 5.0的培训手册中居然说明某步骤报错是正常。如何评测一个OpenStack的商业定制版,应该关注哪些点呢?谢谢!
    • 清凉的西风商业定制版本一般核心还是社区的代码打包,但会选取比较稳定的版本。加了许多比如部署,监控,工具等外围的东西,例如基于Cobbler的系统自动化,基于Puppet的Openstack部署自动化。另外openstack非常灵活,商业定制版本确定了一些常用的部署模型。关于性能、可靠性之类的,还取决于基础设施。我个人认为以前对IT的评判标准还可以使用
    • 清凉的西风您能贴出来说报错正常的那段话吗?确实,有些问题是比较难解决的,举例来说,OVS个别时候会丢失流表,这个和分布式服务方式,或者ovs agent里可能有bug有关,但发生几率不高,而且一般重启就好了。我做的环境里通过监控的自修复来解决这个问题。安装现在应该不会报错   
  • 你好,请问(1)关于OpenStack网络方面,Neutron组件中涉及到的网络概念较多,如GRE、Flat、Vlan、OVS、linuxbridge等等。另外还包括多个agent组件。那么如果是一个简单的运维人员,该如何应对这些复杂的关系?是否需要快速的把握OpenStack整体框架,然后详细的来分析Neturon组件呢。 

    (2)关于OpenStack的部署问题:相信许多企业会对OpenStack的网络或者存储架构进行修改,那么在部署上线的时候,要实现自动化部署就需要依靠puppet等配置软件,请问:如何实现快速的将企业定制的部署方案与Puppet等结合?这也是运维面临的一个问题。毕竟运维不是研发,对于openstack的源码等了解较少。  谢谢你! 

    • moya回复 @清凉的西风 : 谢谢解答!   
    • 清凉的西风早期openstack版本(比如H版之前)由于功能少且坑多,使用者确实修改了许多代码,但现在的版本无论功能还是稳定性都足以使用,真正需要修改的并不多,主要是针对管理逻辑的开发。当然需要注意新版本发布后,最好等两三个月等bug修复,否则会问题多。如果没有特定需求,也不一定非部署最新版本。 
    • 清凉的西风#2:运维一般不需要了解源码,但结合puppet做的最多的是修改nova.conf, neutron.conf里面的参数,服务起停,服务依赖关系之类的事情。个别时候需要往源码目录打补丁。如果是高可用集群就比较复杂,但也不涉及源码,大可放心。另外如社区,RDO, Mirantis Fuel有大量的puppet可以参考。修改个配置参数的语法puppet里非常简单而直观  
    • 清凉的西风关于#2:我个人看法,中小规模环境,比如50台以下,一般里面都会打通ssh,也可以通过ssh+shell脚本的方式去解决;毕竟Puppet/chef也是比较复杂的,而且这种环境配置好一般也不会经常修改Openstack,可以结合企业自己用的如saltstack。如果规模大,那最好还是有/培养几个人熟悉puppet/chef。毕竟IaaS是需要仔细运维的  
    • 清凉的西风拿使用最多的neutron+vlan来说,问题并不复杂:neutron-server, dhcp-agent, ovs-agent, openswitch,虚拟网桥(br-int, br-phy),部署于控制节点和计算节点。剩下关注:起停命令,端口(要加到iptables), 配置文件,日志目录,常用的命令,如查询ovs(有个小数据库)状态的命令。再结合tcpdump。这样面对的问题并不复杂多少

 

 

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据