五千年(敝帚自珍)

主题:【原创】云里雾里的云计算 [1] -- 邓侃

共:💬620 🌺1262
分页树展主题 · 全看首页 上页
/ 42
下页 末页
              • 家园 这个是没有问题的。

                后端就是一个application server pool。

                极端的做法,就是每个server上装全应用软件。

                m个物理server,n个应用,就是门m*n个虚拟应用服务器。

                整个的调度,都可以交给load balancer的。

                • 家园 有以下几个缺点

                  1。浪费资源

                  2。前面说了,非http服务器,现有的load balancer调度效率低。(IBM有个研究,对于普通tcp socket,在kernel里面采用半连接来作负载均衡,但还不成熟并且部署困难)

                  3。很多时候,load balancer成了瓶颈。我们公司的load balancer就有一次memory leak,导致网络瘫痪

                  当然,load balancer是必须的,但是不是万能的。具体情况具体处理

                  • 家园 同意,凡事不必追求极端。

                    就我个人所知,很多的load balance管理的server pool是按应用划分的,不做应用交叉。 而且管的应用也是要分的,典型的大科学计算等等,其实还是任务队列最划算。

                    但到邓侃提到的一个实例,其实描述的现状应该是各方平衡最佳了,而且连balancer都省了,web向后端的server pool扔任务,应该是用到了应用中间件的。

                    这种情况他还要再理想化,那就只有上load balancer管理M×N个应用服务器喽。 呵呵

                    • 家园 的确是在追求极端

                      但到邓侃提到的一个实例,其实描述的现状应该是各方平衡最佳了,。。

                      这种情况他还要再理想化,那就只有上load balancer管理M×N个应用服务器喽。 呵呵

                      的确就是要想办法balancing MxN服务器的资源。云计算的价值就是动态优化资源的使用。

                      如果云计算仅仅是M个machine farms的简单集合,那就和IDC(Internet Data Center)没区别了。

              • 家园 Yueyu的解释比我的清楚

                譬如后台有两个功能,F1,F2。假如现在各自有个machine farms。MF1的每台机器只运行F1,而MF2的机器只运行F2。

                即便加了loadbalancer,F1的请求只能发到MF1的某一台机器上去。但是如果MF1里面所有机器都忙不开了呢?在这种情况下,loadbalancer也没办法。

                怎么办?

                把MF1和MF2合并,每台机器上即跑F1,也跑F2。

                但是如果F1有bugs,导致死机,会不会影响到F2?

                当然会。怎么办?

                Virtualization。在同一台机器的硬件上,跑两套OSes,OS1里面只跑F1,OS2里面只跑F2。F1的bug,导致OS1崩溃,但是不会影响F2/OS2。

                • 家园 逐条回:

                  Q1:即便加了loadbalancer,F1的请求只能发到MF1的某一台机器上去。但是如果MF1里面所有机器都忙不开了呢?在这种情况下,loadbalancer也没办法。

                  A1:这是当然,你这么设的嘛,MF2想帮忙也帮不上啊。但server利用率已经提高了。

                  Q2:把MF1和MF2合并,每台机器上即跑F1,也跑F2。

                  但是如果F1有bugs,导致死机,会不会影响到F2?

                  A2:那原来遇到这个问题怎么办? 不也是MF1接二连三的全瘫嘛?这是软件的问题,不是balancer该解决的问题。

                  Q3:Virtualization。在同一台机器的硬件上,跑两套OSes,OS1里面只跑F1,OS2里面只跑F2。F1的bug,导致OS1崩溃,但是不会影响F2/OS2。

                  A3:这理论上当然好了,但你现在一个server开跑两个OS,安全是提高了,开销呢?进程比线程大很多了,OS的切换怎么也比进程切要准备的东西多吧。

                  而且OS1的崩溃也未必不导致OS2的崩溃,只是说概率比应用层的F1崩溃引起F2崩溃概率低而已。说到底这两个OS,也无非是同一个机器上的两个并行程序而已。

                  • 家园 Virtualizatin

                    这理论上当然好了,但你现在一个server开跑两个OS,安全是提高了,开销呢?进程比线程大很多了,OS的切换怎么也比进程切要准备的东西多吧。

                    Xen的额外开销是3%-7%, not too bad.

                    而且OS1的崩溃也未必不导致OS2的崩溃

                    Xen或者VMWare都能保证做到这一点。否则它们就没有存在的意义了。

                    能问出这样深刻的问题,说明你已经差不多明白了。静下心再仔细想一想,就想通了。

                    • 家园 Xen比VMWare强在哪里?

                      偶只摸过VMWare

                    • 家园 跟邓大汇报一下俺的实践体会

                      上面都在讨论Virtualization的安全、可靠性,负载均衡啥的。其实有些领域是不关心这些的,比如软件开发,嘿嘿。Intel出过一本书叫Applied Virtualization Technology,主要就是在讲virtualization应用在Software development, testing, marketing, educating, and selling这些方面的应用,就是讲得太简单……

                      俺们公司的开发和测试部门的工作中大量使用了VMware。好处大大的多,按对俺们的有用程序排个序……

                      1.提高了硬件利用率,节省了硬件和电费的支出,也节省了机房空间和IP地址资源。俺们不在乎虚拟化带来的那点额外开销。

                      2.节省了产品安装时间。以前产品出一个build,大家都要在自己机器上装新build,等于每人都在测installation。现在省事了,负责测试installation的同事先上来在各种configuration上装一把。如果没问题,就把VM Image给大家用。

                      3.缩短了调查分析时间。快照功能好处多啊。每次要做什么配置变动之前都保存个快照。有了问题,一步步回退回去,很快就能定位到原因。

                      4.方便为开发人员保留现场。以前如果碰到了问题,开发人员要用机器,这台机器就只能专门给他用。现在可以保存一个快照,我们继续进行后面测试,到了晚上,美国那边开发人员上来debug。他下班了再给自己保存个快照。两边互不干扰,呵呵。

                      有一点得提一下,俺们确实碰到过运行在同一台主机上的VM1和VM2互相影响的情况,VM1正常运行中,如果再启动VM2,VM1过一会儿就自动重启了。

                      当然啦,俺们用的这种单机版的VMware Workstation离云计算还差很远。不过公司正在试点搞基于XEN的虚拟化方案。把以前分属于各个部门的机器都统一交给IT部门。IT部门布署了虚拟化方案之后,我们再需要机器时,提个申请,说清楚需要啥配置,比如RHEL5 + Oracle 10g + Websphere Application Server,IT就给我们一个已经自动装好上述软件的机器的{地址,用户名,密码},俺们拿来就用。不知道是虚拟的还是物理的,也不知道机器的物理位置。这也有点云计算的意思了吧?或者叫云测试?哈哈。公司的想法是如果内部实践得比较成熟了之后,就把这个方案拿出去挣钱,可能叫TaaS(Testing As A Service)。呵呵。

                      再多说一下,俺觉得VMware比XEN强大的地方是Lab Manger, LifeCycle Manager, VIC这些管理工具。如果有成百上千个VM需要管理的话,这些工具实在是太有用了。

                      关键词(Tags): #VMware#测试#TaaS
                      • 家园 Virtualization的好处

                        四点好处说得非常有说服力。

                        尤其好在指出virtualization不仅优化了资源的使用,节省了硬件和电费的支出,而且方便了开发。而后一点,原先我没有提及。谢谢提醒。

                    • 家园 理论和实践、普通和特殊、都是有差距的。

                      系统的隔离保护级别与开销,历来是正相关的。

                      而且按照经验,开销与负载,又是指数关联的。 整个cpu利用率到20%以下的时侯,ok。但整个cpu利用率达到80%的时侯,各种切换的开销,往往比正事的消耗还大。

                      另外,现在所有计算机的程序运行,从根子上讲,就是一组核心态进程、一组非核心态进程。 理论上非核心态进程垮台不影响到核心态进程,概率是0。 实际上,它就不可能是0.

                      • 家园 核心态进程vs非核心态进程

                        另外,现在所有计算机的程序运行,从根子上讲,就是一组核心态进程、一组非核心态进程。 理论上非核心态进程垮台不影响到核心态进程,概率是0。 实际上,它就不可能是0.

                        不是特别明白核心态进程和非核心态进程指的是什么。

                        一个播放音乐的MP3 player算不算非核心进程?

                        如果这个player出了bug,把所有RAM占满,或者不停地和disk做swap,那会出现什么局面?

分页树展主题 · 全看首页 上页
/ 42
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河