CSDN论坛本期专家问答我们请来了 @zzcase 为大家解答基于基于openstact的可扩展云平台开发相关问题。
 
问答时间:4月17日~4月24日
 
问答规则:基于openstac的可扩展云平台开发相关问题都可以在此提问,由于可能提问的人较多,zzcase会进行有选择性的回答。
 
问答奖励:问答结束后会由zzcase从提问者中抽取3名用户,奖励最新一期《程序员》杂志一本。
 
专家简介:
 
周祥 pactera开发工程师
 
2010年接触openstack, 至今负责pactera hscloud项目中openstack相关开发工作。
 
pactera hscloud主要专注于可扩展云平台,基于openstack essex版本开发,并有所扩展、调整。
 
主要开发语言:bash, python, c/c++
 
主要方向: openstack 扩展开发,系统部署、运维、调优

解决方案 »

  1.   

    先致歉,回答的迟了。
    首先感谢提问。
    1.那可扩展的云平台,都可以进行哪些扩展?
    -》扩展性确实是有些宽泛。目前pactera在做的扩展性是体现在功能和实现上的。
    pactera在尝试和IDC企业、硬件厂商、网络门户、端末系统集成商合作发展公有/私有云。我们希望从功能上,我们的服务能够覆盖到PC、移动终端、瘦客户端。
    而技术实现上,扩展性体现在可以跨平台。当然,我主要指的是跨虚拟化技术。
    我们现在主要的线上系统是基于openstack的,但在规划上,我们会在13年的q4之前兼容vmware vcenter,以满足旺盛的企业级需求。2.对实际生活,工作起到什么帮助? 
    -》
    其实我们并没有意识到平时的很多服务已经全部或者部分基于“云”技术了。
    比如gmail,一些网盘,视频网站,图片分享等等。
    一些企业也在或明或暗的使用openstack。以我所知,像360buy,sina,intel都是openstack的使用者。
    至于帮助,以我为例,gmail邮件是少不了的,“网盘”一直在用evernote,不过很可惜由于一些原因,这些国外的优秀工具在国内服务质量都不太好: )
      

  2.   

    有没有可以边看资料边上手实践的项目呢?
    --->
    不太清楚您指的是哪个方面。希望能有更详细的信息,比如自己技术所长,项目要求,预期目的。
    “云”相关的技术很泛,虚拟化,大数据,分布式存储/计算,IAAS..AWS....好像经常能听到这些..
    我这里只是谈我自己的的看法。
    想起阿朱有篇文章叫做《敢问路在何方》,我引用他的观点把提问的人分为四类。
    1.大一、大二上学的朋友。
    2.面临找工作的毕业生。
    3.3-4年的开发人员。
    4.项目经理。
    如果你是1背景。那么夯实基础是最重要的。基础的开发语言,c/bash/python/java多多益善。之后再找个开源的项目从一个问题深深挖掘一下。
    如果是2背景。应该有一些语言、算法,甚至是项目的经历了。可以根据自己熟悉的技术去选择project。熟悉c的可以看看linux kernel/mysql/libvirt/qemu,这些是云计算无法规避的话题;熟悉python的可以看看openstack或者附属的其他工具库;熟悉java的可以看看cloudstack/eucalyptus。最主要还是看自己的兴趣所在。
    如果是3,那么出发点多数是因为工作的需要。注意平时的积累。技术的事情来自专注和灵活,专注是要抓住主要矛盾,灵活是要懂得借力。共勉。
    如果是4,出发点多数在考虑平衡。成本,质量,业务需求。
    所以,想多、快、好、省的实施项目,还是有点难度的。没有最好的,只有最合适自己的。
    ps:大多coder不会空泛的谈,大家都是doer。空谈的人是不做技术的。
      

  3.   

    我最近才开始了解学习openstack,对这个技术和vmware都很感兴趣,作为一个初学者,提的问题可能比较幼稚,先请多多包涵了!
    我想了解的问题有两个:1.对于可扩展性,对于日常生活中使用的很多软件和应用,比方office软件,PDF软件,是不是也可以做成云应用,这个openstack可以支持吗?
    2.对于swift的云存储技术,现在社会上这样的技术很多,比方最常用的网盘,OpenStack的Swift有什么优势,可以提供哪些更好的服务?
      

  4.   

    1.对于可扩展性...
    2.对于swift...
    ---》
    6楼说的扩展性,其实一直都强调的是平台的扩展性。而您提到的扩展,我想应该是云平台应用的扩展。
    前段时间去intel交流,他们的一个观点我是很赞同的。“应用开发者应该意识到我是在云的环境下。”
    大意是说,应用开发者应该改变思路,提升软件的冗余、容灾的能力。
    这样描述可能过于强硬,或者说是推卸责任。
    但是尝试换一个角度解释可能更容易理解。
    提问的朋友有没有用过web qq? web weixin? web版的阿里旺旺?
    这些“应用”的最大共同点就是他们都是web应用。好处是显而易见的,无需下载,无需安装,无需更新。
    想想如果你说的office, pdf都作为service...哪怕是网页的应用...一切似乎有浏览器就ok了。
    因此,能大体理解诸多的厂商为什么水深火热地争抢浏览器份额了吧。
    暂不提MS系列软件昂贵的licence...⊙﹏⊙...
    所以,云平台上的应用肯定不是传统桌面应用的简单移植。
    另外,大家也应该了解到平台应用开发所面临的诸多困难。pactera尚无法达到amazon,aliyun那样的开发规模,所以我们只能提供IAAS解决方案。
    关于swift。
    如果把她和网盘比较,那确实是没什么优势的。
    swift只是一个存储系统,既不是文件系统,也不是存储解决方案。
    我以前提到过,我把swift和facebook的haystack做类比,可以作为缓冲数据的中间层。
    另外,关于swift的应用,希望大家可以参考一下又拍和美地森。多的我就不详细介绍了。
    当然G版本的swift已经于4月release了,其中很多特性是非常吸引人的。比如tempurl的中间件。简单的说,就是可以把object层有条件的暴露出来,而不再是私有的。这无疑使swift能够更好的使用于国内的业务。对于您提到的问题,回答如下:
    1.可以。openstack是支持的。pactera也在尝试做开发的整合。但云平台应用不是桌面应用的简单移植。
    2.swift和网盘比没有优势。需要根据业务做二次开发。
      

  5.   

    实验室的研究方向是虚拟化和云计算方向,包括openstack,想问一下各位学习这方面尤其是openstack需要什么语言,我知道openstack是用python写的,还需要什么语言,c语言又用武之地吗?(只会c)还需要其他那方面的知识?小弟真心求教LZ
      

  6.   

    对openstack的quantum的一句语法不是太了解
            sys.exit(_("ERROR: Unable to find configuration file via the default"
                       " search paths (~/.quantum/, ~/, /etc/quantum/, /etc/) and"
                       " the '--config-file' option!"))python中'_()'是什么语法
    还有就是既然是python写的,能在windows上运行吗?
    我只是刚学openstack的菜鸟,不要不理我啊
      

  7.   

    openstack需要什么语言
    ->
    1.语言方面,主要是python。
    会c的话,python语言的学习是不会有问题的。
    c是通用的语言。python的一些moudle也是用c写的。
    2.其他方面的知识
    建议了解一些虚拟化方面的知识。比如kvm/qemu, xen, libvirt大概是什么样的概念。
    去openstack官网看一看。如果只是使用的话,是不需要什么深入的了解的。
    如果是openstack开发, 确实是需要了解很多东西。
      

  8.   


    _()是python国际化的函数,可以忽略不管。
    quantum有很多配置文件要用的,默认在/etc/quantum下,看一下官方文档吧。应该有dhcp_agent.ini, l3_agent.ini什么的。
    openstack是用python写的,不过他依赖于很多python库。ubuntu简化了这些lib的安装。如果尝试移植到window上还是有些难度的。
      

  9.   

    请问使用openstack的vlan的时候,如何关闭其中的dhcp功能呢?
      

  10.   

    openstack能做什么,可否让我等小白先有个基本认识,谢谢。
      

  11.   

    同问,openstack 是个什么东西?干什么的
      

  12.   


    nova中的网络模式默认是vlan的,我也建议用vlan模式。
    如果说第一次安装,network_manager配置的是dhcp模式,类似:
    ...
    network_manager=nova.network.manager.FlatDHCPManager
    ...
    那么更改网络模式时是需要先修改数据库的。
    比如正常的openstack.network表的几个关键字段应该是类似如下的:
                 bridge: br100
                gateway: 10.0.0.1
              broadcast: 10.0.0.255
                   dns1: NULL
                   vlan: 100
                    ...
    vpn_private_address: 10.0.0.2
             dhcp_start: 10.0.0.3
                    ...之后,不要忘记更改nova.conf文件,并且重启所有服务。
      

  13.   

    openstack是什么,能做什么?
    --》
    首先先感谢各位版主来捧场: )
    度娘应该比我更了解“xxx是什么”应该怎么回答。
    点击
    http://baike.baidu.com/view/4924215.htm如何说能做什么,简单的说,厂商认为能赚钱,用户认为能省钱,程序员认为很牛XX
      

  14.   

    现有一个 cloud controller node,有keystone,glance,nova等,既本机是一个ALL IN ONE。
    然后又装了两台机器,只装有nova,只启了compute,然后在nova.conf中配置keystone,glance等现在情况是:
         使用nova-manage service list 可以查看到后加进来的两台机器,
         使用dashboard创建虚拟机时,它也能自动的创建虚拟机到这两台机器上,但就是在资源中,好像只有cloud controller node的资源,而没有另两个compute的资这个在Launch Instances时可以看到Project Quotas里:VCPUs,Disk,Memory等只有一台机器的,而不是三台机器加到一起的。请问楼主该如何解决?
      

  15.   

    ....
    不知道30楼是不是回答了你的问题,或者是我理解的有误?
    “关闭其中的dhcp功能”
    -》是指什么? 如果有问题请留言。
      

  16.   


    不知道你说的耦合关系式什么?
    是openstack的project之间的耦合?
    nova数据、业务结构的耦合?
    是否可以举个例子。
      

  17.   


    这个在Launch Instances时可以看到Project Quotas里:VCPUs,Disk,Memory等只有一台机器的,而不是三台机器加到一起的。
    ->>
    这个是问题吧?
    quota是限额的意思。是说你这个tenant只允许启x个instance,用多少core, ram...
    看到的并不是资源池。
    如果需要修改quota值,horizon可以通过Admin panel -> Edit Project/Modify Quotas 来修改;
    命令可以通过nova-manage project quota list相关修改,
    或者更改nova.conf值,比如增加--quota_cores=100,然后重启nova-api服务。
      

  18.   


    曾经很多人不接受手机没有按键。
    也有很多人不看好nokia牵手MS。
    现在又怎样呢?将来又怎样呢?
    我相信技术会改变我们的生活方式。只是时间的问题。
      

  19.   

    周老师您好:我是一个即将毕业的大学生。有一定的java项目开发经验。我以后想从事分布式和云计算,大数据处理等方面的工作。很多人都建议我去搞一下hadoop。但我现在感觉没有方向,不知道从哪下手。不知道您是否能给点建议?
      

  20.   

    网游算云计算么
    -》
    网游是一个产业,云计算也是一个产业。
    但是产业间也会有结合、交集的部分。
    云服务可以帮助游戏提供商节省运维成本。我印象中摩尔庄园就在使用amazon的云计算服务。但消息待求证。
      

  21.   


    --->
    建议多听听,多看看。
    hadoop是一种计算模型,现在多被企业拿来做离线的数据挖掘。
    个人认为,做什么并不是很重要,重要的是怎么做。java的技术更迭很快,但java的精髓还是在于jvm。
    沉下心来把事情做好,夯实基础,不要过于焦虑而迷失了方向。
    想好了就去做,做了就不后悔。共勉。: )
      

  22.   

    请问下openstack instance和外网互相访问是不是必须要通过l3 agent?如果是,网络节点一般需要什么配置?
      

  23.   

    不是,默认启动quantum-server,quantum-openvswitch-agent,quantum-dhcp-agent就可以了。
    l3 agent只是用来生成vrouter的。
    l3_agent.ini默认应该是不需要配置的。
      

  24.   

    你好,如果想学习swift
    入门要看那些东西
    进阶要看那些东西
      

  25.   

    请问openstack用来做什么服务才是最大的利用呢?是资源下载还是电商服务,还针对群体?国内目前的openstack情况是什么样的呢?
      

  26.   


    如果不是开发,技术的事情只需要了解。
    如果是开发,那python是必要条件。
    其他的等用到了再学习还是来的及的。
      

  27.   

    我今天又看了点quantum的代码
    在这里卡住了
    class QuantumApiService(WsgiService):
        """Class for quantum-api service."""    @classmethod
        def create(cls):
            app_name = "quantum"
            service = cls(app_name)在这个类的create函数返回cls(app_name)
    可是在调用这个create函数时是直接QuantumApiService.create()这样调用的,更本没传入cls参数啊,怎么能够返回的呢?
    新手求解答啊
      

  28.   


    先了解一下python的classmethod吧。
    隐式的第一个参数是class本身, 即service.start()等于QuantumApiService.start().
      

  29.   

    我今天又看了点quantum的代码
     在这里卡住了
    class QuantumApiService(WsgiService):
         """Class for quantum-api service."""     @classmethod
         def create(cls):
             app_name = "quantum"
             service = cls(app_name)在这个类的create函数返回cls(app_name)
    可是在调用这个create函数时是直接QuantumApiService.create()这样调用的,更本没传入cls参数啊,怎么能够返回的呢?
     新手求解答啊 
      

  30.   

    最近开始关注 openstatck
    希望能交流一下、不知您有建立什么讨论群或者什么没有?
      

  31.   


    请查看55,56楼, classmethod的一个参数隐式是调用者本身的class。
      

  32.   

    大一大二是不是首选c和java啊 云的发展前景真的很好??
      

  33.   


    opestack 落地是否比较难、实施比较难?您知道哪些公司目前架在openstack上吗?
      

  34.   

    CSDN论坛本期专家问答我们请来了 @zzcase 为大家解答基于基于openstact的可扩展云平台开发相关问题。
      

  35.   


    语言的问题
    -》
    建议先看一下6楼。
    语言的问题,希望看一下阿朱的文章《敢问路在何方》。
    如果区区一门语言能够解决所有的问题,那世界早就大同了。
    语言最通用的就是c,次之java。
    武器人人会用是好事,但难在用好。只会用锤子的人看什么都是钉子。云的发展前景
    -》
    未来光明,道路曲折。事事如此。
    很多东西确实“看起来很美”。盈利上面,产业巨擘amazon的利润率都不到15%,更何况我等天朝屁民呢: )(待考证)
    任何技术都是如此,资方赚到钵满盆满,才会“大家好,真的好”。
    目前gov倡导集约发展,云计算确实是可以做到资源整合,能效提高的。
    但前提是东西要用好。否则,拿着锤子到处砸的人,迟早会砸到自己。
      

  36.   


    openstack的project很多,落地难、易因人而异。
    个人认为,keystone在sina用的还是比较好的。
    swift在一些地方用的也是比较好的....(说话要负责,我说话不太负责,因此就不提具体企业的名称了: ) )
    窃以为:
    小公司在偷着用,不亦乐乎。
    大公司在合作,多方渗透,谨慎小心。
      

  37.   

    我想做openstack的开发  好像官方并没有对整个架构进行具体说明 或者说流程具体说明的文档  感觉要看代码也有点无从下手。
    另外刚部署好openstack,想问有多个compute节点的话,我创建的实例是否能够指定放在哪个compute节点上,感觉dashboard上的管理能力还很弱,至少很难对多个compute节点做太多动作,这些都是要做二次开发才能实现的吧??
    另外 周老师邮箱是什么 希望有机会能跟你交流一下
      

  38.   


    架构说明
    ->
    请查看官网去找对应的administration manual
    比如nova的manualhttp://docs.openstack.org/folsom/openstack-compute/admin/content/
    或者熟悉bash的,可以去试一下devstack,
    http://devstack.org/
    或者trystack什么的...代码开发
    -》
    先到github上找到代码吧。如果nova代码看起来吃力了一些,可以先看一下python-novaclient。指定节点启instance
    ->
    nova命令比较方便,比如:
    nova boot --image xxxxx --flavor 1 --availability_zone nova:compute_node ctest
    或者构造一个request请求boot instance,
    其中在body中包含availability_zone什么的就可以了,具体忘记了。:(
    需要注意的是scheduler控制着instance的生成,所以scheduler的filter_properties['force_hosts']参数是非常重要的。dashboard/horizon的问题
    -》
    目前感觉还好啊...如果需要什么功能,可以自己定制化开发。在我看来,nova的扩展性在openstack project中应该是最好的。
      

  39.   

    最近刚刚开始接触Openstack
    想请问这东西跟vmware Vcenter有甚麼差别
    不都是管理虚拟主机的工具吗?我看官网上说支援的hypervisor 有vmware esxi
    这是指Openstack可以像Vcenter一样管理esxi吗?
    如果是的话有没有相关的文件可以参考Openstack可以将许多实体主机组成一个资源池
    但是虚拟主机所使用的运算资源有办法跨实体主机吗?
    例如:两台实体主机各有64GB RAM,可以建立一台虚拟主机拥有96GB的RAM来使用吗?
    还是说受限实体主机,最多只能使用64GB?
      

  40.   

    很久以前看过楼主关于swift的介绍,把原理都讲得很清晰,受益匪浅
    自接触openstack以来,一直没有接触到开发方面,现在有兴趣深入了
    不知道楼主是否知道如何学习openstack涉及到的第三方python包的使用?学习资料或网站?
    我之前google过,但是发现查找的文档都是相对简单,比较简略,不知道从何下手。
      

  41.   


    openstack和vcenter
    ->
    其实差不多。只不过vcenter是商用的,就是需要money...很多money..
    openstack是开源的...free...资源池
    -》
    无法跨实体机。
    个人认为,受虚拟化技术影响,资源跨机不是不可能,只是现在还不太成熟。
    而且,虚拟化技术还会损失一部分资源。
      

  42.   


    第三方python包
    -》
    如果指的是python-xxclient系列。比如python-novaclient, python-keystoneclient, python-cinderclient。
    openstack代码更迭还是比较快的,刚接触的人一头雾水乃是情理之中。这些python-xxclient相对是比较容易理解的。因为是一些命令行命令——而不是service服务,在其中加些print是可以追踪输出的。如果指的是SQLAlchemy、Cheetah, amqplib总总, google之官网吧。 openstack中也没有用什么很复杂的第三方库方法。
      

  43.   

    最近在公司内部搞openstack,想请教下做私有云的话用openstack的哪种网络模式最靠谱?
    另外,新浪SAE、趣云、京东这些基于openstack实现的云平台都是用的哪种网络模式吗请大神指点下
      

  44.   

    openstack中的安全机制有哪些?
      

  45.   


    哪种网络模式都是可用的。
    vlan是默认,应该是用的最多的网络格式。
    其他公司如何配置、使用目前不得而知。
      

  46.   


    访问上的安全机制是由keystone来负责的。
    机制核心概念为tenant/user/role + service/endpoint + token。网络安全方面做的还不是很好,完全依赖于os,idc的安全策略。