现有两台服务器做集群,想在此集群的基础上在增加更多的服务器,如何实现?
呵呵 首先 你的2个服务器最好配置很相近 其次是用server2003 或者更高版本
其次 2台服务器是可以群集 但是最好是3台 其中有一个是域控制器,具体如何组件 请查看群集指南 微软官方就有,权威而且准确,又详细
虚拟化管理员必须在实现最高VM密度和确保每个VM交付性能之间保持平衡。这一平衡很难达到,但是VM遭遇性能瓶颈的原因还是很容易确定的。让我们来了解一下引发VM性能瓶颈的五个最常见的原因。
VM遭遇性能瓶颈原因一:硬件资源争用
你可以将VM的大多数性能问题归结为硬件资源争用。服务器虚拟化的基本理念就是将主机服务器的物理硬件划入能够在多个VM之间进行共享的资源池中。VM彼此竞争使用物理服务器的硬件资源,性能问题往往是由资源占线拉得太长而造成的。
VM遭遇性能瓶颈原因二:硬件仿真
VM遇到性能问题时,你应该先确保该VM没有使用硬件仿真技术。在理想情况下,你应该将物理硬件资源分配给VM;然而,hypervisor比如微软的Hyper-V以及VMware的vSphere为了支持旧有操作系统提供了硬件仿真特性。
VMware以及Hyper-V还提供了服务集合,允许hypervisor能够与客户操作系统进行交互。在VMware中,这一服务集合称之为VMware Tools,而微软称之为Hyper-V集成服务。尽管这不会直接关系到VM的性能,但如果VM没有安装相应的服务或者使用的服务版本不对,那么VM的性能将受到影响。
VM遭遇性能瓶颈原因三:磁盘I/O
与资源争用相关的性能问题通常源于磁盘I/O并发。以我的经验来看,当大量的VM使用共享磁盘阵列,所有VM所需要的磁盘I/O访问速度超过磁盘阵列的阈值时,问题就会发生。
降低存储I/O负担可能意味着要购买性能更高的磁盘阵列或者限制共享使用同一阵列的VM的数量。在某些情况下,这看起来并非一个艰巨的任务,但是有关虚拟服务器存储的以下两个方面往往很容易被忽略。
VM遭遇性能瓶颈原因四:虚拟服务器集群
生产VM往往是集群的一部分。VMware和微软都要求集群结点连接共享存储设备。因此,你可能会假定集群的限制与集群共享卷的限制直接相关。然而Hyper-V集群能够连接多个集群共享卷,这意味着单个存储阵列不用支撑整个集群。Windows Server 2012 Hyper-V完全消除了对集群共享卷的需求,但是在允许的情况下微软仍旧建议使用集群共享卷。
有关虚拟服务器存储很容易被忽略的另外一个方面就是你不只拥有一个主机服务器集群。VMware环境中通常使用多个集群来隔离工作负载并减少资源争用。
除了存储I/O外,内存,CPU核心数以及网络带宽都可能会导致硬件资源争用。通过使用性能监控,你可以确定产生性能瓶颈的具体原因。
VM遭遇性能瓶颈原因五:配置不正确
和硬件仿真以及资源争用相关的问题是虚拟服务器出现性能问题的最为常见的原因,但是还存在其他的原因。一些配置问题也可能会导致性能问题的发生。
在几个月之前,我遇到了一台被虚拟化的Exchange 2000邮件服务器,已经慢到了无法使用的地步。虚拟服务器需要花费10到20秒才能响应一次鼠标点击。
在这种情况下,VM的虚拟网络适配器意外地连接到了错误的虚拟交换机上,而该虚拟交换机额连接到了错误的虚拟网络。Exchange服务器无法与域控制器进行通信。Exchange邮件服务器严重地依赖域控制器,无法联系会导致性能问题。
如果你对配置进行监控并观察硬件资源争用情况,那么就可以避免大多数VM性能问题的发生
不难,硬件用路由器,软件嘛,操作系统用WIN2003 server enterprise 企业版,推荐一并安装R2升级包,所有机器组局域网,用一台千兆网卡做域控,架设流媒体服务器,其他机做为域成员加入进来,内网IP各用各的,外网用端口映射到一个IP,用域控做网络流量负载平衡,域控机器配置要强,如果你网络流量大,建议用专业级服务器,至强+2Gb+SCSI硬盘之类,看你环境要求了,如果必要可以上双至强,再用一台512mb内存的p4 20G以上机做备份域控,这样主域控上下线或重启或出故障不影响域内成员正常工作,备份域控凑合就可以了,按我上面的要求就行,当然,有钱可以用好的
如果你安全性要求高,建议路由前端用普通P4+512Mb内存机器架ISA2004 server组防火墙,配置的好效果比一般的硬件防火墙要好,完全不影响网络环境运行,域内成员可以裸奔不怕毒和黑
至于域内成员机,如果仅全力供应片源,当前主流家用机型就够用了
事实上在单机上安装的系统和软件,很难做到不被盗版。Windows
9X时代防盗技术并不太成熟,输入产品密钥就可以激活。Windows XP激活方式升级为联网激活,但很快就被破解掉了。Windows
Vista开始,微软采用一种新型的产品激活机制(KMS)来遏制盗版的行为,很快相对应的激活工具也随之而来。
KMS是个什么东西?KMS全称:Key
Management Service(密钥管理服务),是微软官方推出的产品激活机制(包含Windows和Office)。早在Windows
XP和Windows Server
2003时期,在MSDN下载操作系统或下载VOL版(团体批量许可证),系统安装完后运行一个脚本程序(根本不用激活)就可以免费使用Windows了。
到了Windows Vista后,微软吸取了教训(不再有VOL版了),采用了MAK(多次激活密钥)方式和KMS(密钥管理服务)方式来激活Windows或Office。MAK和KMS都属于微软批量激活方案,区别在于:MAK要输入密钥利用微软授权许可服务器进行永久激活(但系统检测到硬件发生重大更改就需要重新输入密钥),但这个密钥激活次数达到最大激活次数后,将无法再用来激活。KMS允许在本地网络上激活Windows或Office
180天(超过180天需要重新激活或续订期限)。KMS是以Server-Client(服务器-客户机)的方式在局域网内管理密钥。密钥安装在服务端上,并以密钥管理服务的方式来管理所有与之通讯的客户机。KMS客户机使用远程过程调用(RPC)与主机联系。激活过程无需人机交互,用户是看不到激活过程。如下图所示:
KMS激活过程:KMS服务端安装密钥后,通过互联网连接微软授权许可服务器激活自身KMS服务;KMS客户机在初始化时,访问KMS服务器域名,再通过DNS
Server解析到KMS服务器的IP地址;DNS
Server定期内网保持与KMS服务器集群通讯,如果当探测到一台KMS服务器异常时,则自动将域名解析到另一台KMS服务器上;KMS服务器与客户机一般通过1688端口通讯,并自动激活客户机系统。客户机每180天会再次联系KMS服务器激活。整个激活的过程用户是无感知的,也不需要进行任何的人工干预。激活信息可以通过“运行”中输入“slmgrvbs
/dlv”进行查看,如下图:
KMS Pico、小马激活、暴风激活工具、HEU KMS等激活工具就是基于官方的KMS激活机制,采用以下三种方法激活系统:1、在本地电脑建立一个虚拟的任务,无限试用系统。2、在本地电脑建立一个虚拟激活服务(相当于搭建了一台虚拟KMS服务器),并发送已激活的数据来激活本电脑。3、软件开发者自己搭建了一台KMS服务器来激活,相当于微软授权许可服务器。
这三种方法也并不是没有缺陷的,它们各有弊端。本地电脑建立虚拟任务无限试用,微软通过补丁可轻松解决。本地电脑建立虚拟激活服务,杀毒软件、Windows
Defender会报毒并直接删除。因为激活工具用有木马、病毒的行为特征,有的甚至直接暗藏病毒。软件开发者搭建KMS服务器如果被微软发现是违规操作,会直接封杀密钥,从这个服务器激活的所有电脑都会回到未激活状态。微软不是不想禁止KMS,而是没有办法。正版与盗版之间的斗争从来都没有停止过。微软每一代的激活机制出现后,都是很快就被破解了。这也间接的说明了微软的Windows所取得的成功,很多人都不知道自己使用的是否是正版的Windows。微软也重未停止过维护它的正版权益,正如当年微软放出正版验证补丁,检测到用户的电脑时盗版的时候,电脑黑屏提示用户“您可能是盗版软件的受害者”。
微软其实知道谁在使用正版、谁在使用盗版。很多未购买正版系统的企业用户都能够很及时的收到微软的法院传票,要求补缴相关的费用。至于微软为什么没有向普通用户动手,大概是因为使用盗版的人太多了,未必人人都能交得起法院传票标注的这笔钱,微软请法务也需要花钱。既然不能直接产生收益,微软就大方的让普通人用。以上个人浅见,欢迎批评指正。认同我的看法,请点个赞再走,感谢!喜欢我的,请关注我,再次感谢!
Dryad:MapReduce之外的新思路 目前各大软件巨头都搭建了自己的分布式平台解决方案,主要包括Dryad,DynamoSDMapReduce等框架。2010年12月21日,微软发布了Dryad的测试版本,成为谷歌MapReduce分布式并行计算平台的竞争对手。Dryad是微软构建云计算基础设施的重要核心技术之一,它可以让开发人员在Windows或者,NET平台上编写大规模的并行应用程序模型,并能够让在单机上编写的程序运行在分布式并行计算平台上。工程师可以利用数据中心的服务器集群对数据进行并行处理,当工程师在操作数千台计算机时,无需关心分布式并行计算系统方面的细节。
DryadgDDryadLINO是微软硅谷研究院创建的研究项目,主要用来提供一个分布式并行计算平台。DryadLINO是分布式计算语言,能够将LINQ编写的程序转变为能够在Dryad上运行的程序,使普通程序员也可以轻易进行大规模的分布式计算。它结合了微软Dryad和LINO两种关键技术,被用于在该平台上构建应用。Dryad构建在Cluster Service(集群服务)和分布式文件系统之上,可以处理任务的创建和管理、资源管理,任务监控和可视化、容错,重新执行和调度等工作。
Dryad同MapReduce样,它不仅仅是种编程模型,同时也是一种高效的任务调度模型。Dryad这种编程模型不仅适用于云计算,在多核和多处理器以及异构机群上同样有良好的性能。在VisualStudio 2010 C++有一套并行计算编程框架,支持常用的协同任务调度和硬件资源(例如CPU和内存等)管理,通过WorkStealing算法可以充分利用细颗粒度并行的优势,来保证空闲的线程依照一定的策略建模,从所有线程队列中“偷取”任务执行,所以能够让任务和数据粒度并行。Dryad与上述并行框架相似,同样可以对计算机和它们的CPU进行调度,不同的是Dryad被设计为伸缩于各种规模的集群计算平台,无论是单台多核计算机还是由多台计算机组成的集群,甚至拥有数千台计算机的数据中心,都能以从任务队列中创建的策略建模来实现分布式并行计算的编程框架。
Dryad系统架构
Dryad系统主要用来构建支持有向无环图(Directed Acycline Graph,DAG)类型数据流的并行程序,然后根据程序的要求进行任务调度,自动完成任务在各个节点上的运行。在Dryad平台上,每个任务或并行计算过程都可以被表示为一个有向无环图,图中的每个节点表示一个要执行的程序,节点之间的边表示数据通道中数据的传输方式,其可能是文件、TCPPipe、共享内存
用Dryad平台时,首先需要在任务管理(JM)节点上建立自己的任务,每一个任务由一些处理过程以及在这些处理过程问的数据传递组成。任务管理器(JM)获取无环图之后,便会在程序的输入通道准备,当有可用机器的时候便对它进行调度。JM从命名服务器(NS)那里获得一个可用的计算机列表,并通过一个维护进程(PD)来调度这个程序。
Dryad的执行过程可以看做是一个二维管道流的处理过程,其中每个节点可以具有多个程序的执行,通过这种算法可以同时处理大规模数据。在每个节点进程(VerticesProcesses)上都有一个处理程序在运行,并且通过数据管道(Channels)的方式在它们之间传送数据。二维的Dryad管道模型定义了一系列的操作,可以用来动态地建立并且改变这个有向无环图。这些操作包括建立新的节点,在节点之间加入边,合并两个图以及对任务的输入和输出进行处理等。
Dryad模型算法应用
DryadLINQ可以根据工程师给出的LINQ查询生成可以在Dryad引擎上执行的分布式策略算法建模(运算规则),并负责任务的自动并行处理及数据传递时所需要的序列化等操作。此外,它还提供了一系列易于使用的高级特性,如强类型数据、Visual Studio集成调试以及丰富的任务优化策略(规则)算法等。这种模型策略开发框架也比较适合采用领域驱动开发设计(DDD)来构建“云”平台应用,并能够较容易地做到自动化分布式计算。
我们经常会遇到网站或系统无法承载大规模用户并发访问的问题,解决该问题的传统方法是使用数据库,通过数据库所提供的访问操作接口来保证处理复杂查询的能力。当访问量增大,单数据库处理不过来时便增加数据库服务器。如果增加了三台服务器,再把用户分成了三类A(学生)、B(老师),C(工程师)。每次访问时先查看用户属于哪一类,然后直接访问存储那类用户数据的数据库,则可将处理能力增加三倍,这时我们已经实现了一个分布式的存储引擎过程。
我们可以通过Dryad分布式平台来解决云存储扩容困难的问题。如果这三台服务器也承载不了更大的数据要求,需要增加到五台服务器,那必须更改分类方法把用户分成五类,然后重新迁移已经存在的数据,这时候就需要非常大的迁移工作,这种方法显然不可取。另外,当群集服务器进行分布式计算时,每个资源节点处理能力可能有所不同(例如采用不同硬件配置的服务器),如果只是简单地把机器直接分布上去,性能高的机器得不到充分利用,性能低的机器处理不过来。
Dryad解决此问题的方法是采用虚节点,把上面的A、B、C三类用户都想象成一个逻辑上的节点。一台真实的物理节点可能会包含一个或者几个虚节点(逻辑节点),看机器的性能而定。我们可以把那任务程序分成Q等份(每一个等份就是一个虚节点),这个Q要远大于我们的资源数。现在假设我们有S个资源,那么每个资源就承担Q/S个等份。当一个资源节点离开系统时,它所负责的等份要重新均分到其他资源节点上;当一个新节点加入时,要从其他的节点1偷取2一定数额的等份。
在这个策略建模算法下,当一个节点离开系统时,虽然需要影响到很多节点,但是迁移的数据总量只是离开那个节点的数据量。同样,~个新节点的加入,迁移的数据总量也只是一个新节点的数据量。之所以有这个效果是因为Q的存在,使得增加和减少节点的时候不需要对已有的数据做重新哈希(D)。这个策略的要求是Q>>s(存储备份上,假设每个数据存储N个备份则要满足Q>>SN)。如果业务快速发展,使得不断地增加主机,从而导致Q不再满足Q>>S,那么这个策略将重新变化。
Dryad算法模型就是一种简化并行计算的编程模型,它向上层用户提供接口,屏蔽了并行计算特别是分布式处理的诸多细节问题,让那些没有多少并行计算经验的开发 人员也可以很方便地开发并行应用,避免了很多重复工作。这也就是Dryad算法模型的价值所在,通过简化编程模型,降低了开发并行应用的入门门槛,并且能大大减轻了工程师在开发大规模数据应用时的负担。
通过上述的论述,我们可以看到Dryad通过一个有向无环图的策略建模算法,提供给用户一个比较清晰的编程框架。在这个编程框架下,用户需要将自己的应用程序表达为有向无环图的形式,节点程序则编写为串行程序的形式,而后用Dryad方法将程序组织起来。用户不需要考虑分布式系统中关于节点的选择,节点与通信的出错处理手段都简单明确,内建在Dryad框架内部,满足了分布式程序的可扩展性、可靠性和对性能的要求。
使用Drvad LINO
通过使用DryadLINQ编程,使工程师编写大型数据并行程序能够轻易地运行在大型计算机集群里。DryadLINO开发的程序是一组顺序的L_NQ代码,它们可以针对数据集做任何无副作用的操作,编译器会自动将其中数据并行的部分翻译成并行执行的计划,并交由底层的Dryad平台完成计算,从而生成每个节点要执行的代码和静态数据,并为所需要传输的数据类型生成序列化代码;
LINQ本身是,NET引入的组编程结构,它用于像操作数据库中的表一样来操作内存中的数据集合。DryadLINQ提供的是一种通用的开发/运行支持,而不包含任何与实际业务,算法相关的逻辑,Dryad和DryadLINQ都提供有API。DryadLINQ使用和LINQ相同的编程模型,并扩展了少量操作符和数据类型以适用于数据并行的分布式计算。并从两方面扩展了以前的计算模型(SQL,MapReduce,Dryad等)它是基于,NET强类型对象的,表达力更强的数据模型和支持通用的命令式和声明式编程(混合编程),从而延续了LINQ代码即数据(treat codeas data)的特性。
DryadLINQ使用动态的代码生成器,将DryadLINQ表达式编译成,NET字节码。这些编译后的字节码会根据调度执行的需要,被传输到执行它的机器上去。字节码中包含两类代码完成某个子表达式计算的代码和完成输入输出序列化的代码。这种表达式并不会被立刻计算,而是等到需要其结果的时候才进行计算。DryadLINQ设计的核心是在分布式执行层采用了一种完全函数式的,声明式的表述,用于表达数据并行计算中的计算。这种设计使得我们可以对计算进行复杂的重写和优化,类似于传统的并行数据库。从而解决了传统分布式数据库SQL语句功能受限与类型系统受限问题,以及MapReduce模型中的计算模型受限和没有系统级的自动优化等问题。
在Dryad编程模式中,应用程序的大规模数据处理被分解为多个步骤,并构成有向无环图形式的任务组织,由执行引擎去执行。这两种模式都提供了简单明了的编程方式,使得工程师能够很好地驾驭云计算处理平台,对大规模数据进行处理。Dryad的编程方式可适应的应用也更加广泛,通过DryadLINQ所提供的高级语言接口,使工程师可以快速进行大规模的分布式计算应用程序的编写。
Dryad技术的应用
云计算最重要的概念之~就是可伸缩性,实现它的关键是虚拟化。通过虚拟化可以在一台共享计算机上聚集多个操作系统和应用程序,以便更好地利用服务器。当一个服务器负载超荷时,可以将其中一个操作系统的一个实例(以及它的应用程序)迁移到一个新的,相对闲置的服务器上。虚拟化(Virtualization)是云计算的基石,企业实现私有云的第一步就是服务器基础架构进行虚拟化。基础设施虚拟化之后。接下来就是要将现有应用迁移到虚拟环境中。
Dryad结合Hyper-V(Windows Server 2008的一个关键组成部分)虚拟化技术。可以实现TB级别数据的在线迁移。中小型企业也可以针对企业内部小型集群服务器进行分布式应用系统编程,以及制定私有云开发与应用解决方案等设计。Windows Azure是微软的公有云解决方案,但是目前要大规模应用还为时过早。使用现有Windows第三方产品实现私有云,花费成本却很大。然而Dryad技术给我们带来了不错的折中选择,当我们基于Windows Server台运行应用系统或者网站时,便可以基于Dryad分布式架构来开发与设计实现。当公有云时机成熟和各种条件完备时,系统可以很轻易地升级到公有云,企业而无需花费太多成本。
写在最后
云计算可以看成是网络计算与虚拟化技术的结合,利用网络的分布式计算能力将各种IT资源筑成一个资源池,然后结合成熟的存储虚拟化和服务虚拟化技术,让用户实时透明地监控和调配资源。Dryad是实现构建微软云计算基础设施的重要核心技术之一,其具有诸多优点,如DryadLINQ具有声明式编程并将操作的对象封装为,NET类数据,方便数据操作,自动并行化、VisualStudio IDE和,NET类库集成,自动序列化和任务图的优化(静态和动态(主要通过DryadAPI实现)),对J0in进行了优化,得到了比BigTable+MapReduee更快的Join速率和更易用的数据操作方式等。
不过,Dryad和DryadLINQ也同样具有局限性。其一,它更适用于批处理任务,而不适用于需要快速响应的任务;这个数据模型更适用于处理流式访问,而不是随机访问。其二,DryadLINQ使用的是,NET的LINO查询语言模型,针对运行Windows HPC Server的计算机集群设计,而目前高性能计算市场被Einux所占领。此外,和MapReduce的应用时间和实践相比,Dryad的可靠性还明显不足,据了解除了微软AdCenter中的数据分析和Trident项目之外,其它应用Dryad的地方还很少。不过总的来看,Dryad平台在将来仍具有很广泛的发展前景,尤其对NET开发人员来说是―次很重要的技术革新机遇。
名词解释
任务管理器(Job Manager,JM):每个Job的执行被一个Job Manager控制,该组件负责实例化这个Job的工作图,在计算机群上调度节点的执行;监控各个节点的执行情况并收集一些信息,通过重新执行来提供容错:根据用户配置的策略动态地调整工作图。
计算机群(Cluster):用于执行工作图中的节点。
命名服务器(Name Server,Ns):负责维护cluster中各个机器的信息。
维护进程(PDaemon,PD):进程监管与调度工作。
在VMware环境下使用iSCSI存储的最佳实践
一旦iSCSI磁盘配置好了,虚拟机(VMs)就可以使用它们了。以下列出的最佳实践可以帮助你在VMware环境中的iSCSI数据存储获得最大的性能和可靠性。
iSCSI存储的性能高度依赖于网络的健康和使用。为了达到最佳效果,你应该总是通过专用的网络将iSCSI的流量分离出来。
你只能在一个ESX服务器主机上配置一个软件启动器。配置为iSCSI提供连接的vSwitch时,使用多个物理网卡来提供冗余。确保你将VMkernel(虚拟机内核)接口与vSwitch的网卡绑定在一起,这样多路径配置才正确。
确保你在iSCSI vSwitch上使用的网卡连接到不同的网络交换机,以消除单点故障。
vSphere支持使用存储协议的巨型帧,但它只对那些拥有非常大I/O的特定工作量有好处。此外,你的后端存储必须能够处理RAID组中拥有大量主轴(大于15)增加的吞吐量,否则你也看不到任何好处。如果你的I/O小并且你的存储是主轴方向的(spindle-bound),使用巨型帧你将看到你的性能很少或者没有提高在某些情况下。巨型帧实际上会降低性能,所以你应该做一个评估测试,对比一下启用巨型帧前后的效果,看看巨型帧是否有效。每个端到端组建必须支持巨型帧,包括物理网卡和网络交换机,vSwitch,VMkernel端口和iSCSI目标配置。如果任何一个组件不适合巨型帧配置,它们将无法工作。
为你的虚拟机磁盘控制器使用新的Paravirtual SCS(PVSCSI)适配器,因为在大多数情况下它提供的最大吞吐量和性能超过了标准的LSI逻辑和BusLogic适配器。对于非常小的I/O工作量来说,LSI逻辑适配器的效果最好。
为了实现最好的性能需要设置先进的多路径,选择iSCSI存储容量属性并点击管理途径。如果有的话,你可以使用本机VMware多路径或第三方多路径插件来配置路径选择策略。当使用软件启动器(software initiators)时,在一个vSwitch上创建两个VMkernel接口;指定一个物理网卡为活跃的,另一个为未使用的;使用 esxcli命令将一个VMkernel端口绑定到第一个网卡,将第二个端口绑定到第二个网卡。使用循环算法代替顺序算法或者最近最常使用(MRU)算法,将得到更好的性能。如果你的虚拟机上使用了微软集群服务器(Microsoft Cluster Server),避免使用循环(Round Robin)算法。
0条评论