??xml version="1.0" encoding="utf-8" standalone="yes"?>
负蝲q不但可以有效地解军_服务器的性能限制Q而且可以实现故障的快速{U,保证服务的高可用性以及灵zȝ扩展性。于是,负蝲q几乎是每个网l管理员的必修课。本文章主要讲述windows2003在网l负载^?Network Load Balancing )斚w的应用?
Windows的负载^衡主要是依靠l徏|络负蝲q集来实现的Q支持WEB、FTP、Proxy、VPN、Windows Media、Telnet{服务器的负载^衡?BR> 负蝲q的原?BR> NLB其实是提供相同服务的一pd服务器同时监听服务请求,q允许在同一旉q行多个应用E序实例。NLB的核心是位于|络适配器驱动和|络层之间的WLBS.SYS的筛选器驱动。NLB把每个IP数据包分发到所有群集节点,q根据数据包的源地址、目标地址、传输层协议、端口、群集的配置参数以及法做出由某个节点处理而其他节点丢弃此数据包的l一军_?BR>负蝲q的概?
配置负蝲q之前Q需要理解几个重Ҏc?BR> 集IP 地址和子|掩码:集的虚拟IP地址Q是表现在客户面前的"外部"地址?BR> 专用IP 配置和子|掩码:集各节点的本地IP地址Q唯一标识集的各节点?BR> 完整Internet名:能够讉K此群集的DNS名称Q比如cluster.it.com.cn?BR> 集操作模式Q在Ҏ的选择中详l讲q?BR> 端口规则Qwindows2003中新加的功能Q细化了控制微粒Q可以阻止某节点特定应用E序的流量,而在windows2000中这是不能实现的?BR> 优先U?单一L标识W?Q范围在1-32之间Q?2是一个群集的最大节ҎQ。此值决定如何处理没有包含在M为群集定义的端口规则中的传入|络通讯。具有最高优先的主机(优先值最)处理所有这U通讯?BR>负蝲q的要?
操作pȝ的要?在windows2003的所有版本系l中QNLB都是可用的。群集可以兼容以前的windows服务器操作系l(比如2000,NT4.0Q?BR> |络l构的要?BR> NLB可以在连接到FDDIQ光U分布式数据接口Q,以太|,吉比特以太网的服务器上运行,但不能在Token RingQo牌环Q网l上q行?BR> |卡的要?BR> 所有的|络适配器必dWindows2003的硬件兼容列表中。一般情况下Q服务器的网卡都会符合要求?BR> 交换机和路由器的要求
当计划用VLAN来防止交换数据洪水时Q必ȝ保交换机支持VLAN讄Q当使用多播Ӟ部分路由器不支持把单播IP地址映射Z个多播MAC地址Q需要手工设|?BR> 通讯协议的要?BR> l定到群集的|络适配器只能安装TCP/IP协议Q可以必静态分配,不支持DHCP?BR> 应用E序的要?BR> 首先必须是TCP或UDP通讯Q而且定当前应用E序或服务必L持NLB?BR>负蝲q的设?
׃|络负蝲q不能ҎCPU和内存利用率来分配流量,而且性能q不是随着节点数量的增加而线性变化的Q因为随着规模的增大,由此产生的网l开销QCPU开销也随着增大Q,Q所以正的设计和规划负载^衡是臛_重要的?BR> 集的实现需要群集内部的通讯Q比如心跳信息和聚合通讯Q以及管理和内容复制的数据传输。这部分通讯占用了网l的可用带宽。ؓ了克服单|卡的局限性,可以使用双网卡,一个用于负载客L的通讯Q另一个用于传输内部通讯Q管理和内容的数据?BR> 集操作模式的选择是设计的重要一步。单播模式是指各节点的网l适配器被重新指定了一个虚拟MACQ由02-bf和群集IP地址l成保此MAC的唯一性)。由于所有绑定群集的|络适配器的MAC都相同,所以在单网卡的情况下,各节点之间是不能通讯的,q也是推荐双|卡配置的原因之一。ؓ了避免交换机的数据洪_应该l合VLAN使用?BR> 多播模式下,|络适配器在保留原有的MAC地址不变的同Ӟq分配了一个各节点׃n的多播MAC地址。所以,即单网卡的节点之间也可以正帔R讯。但单网卡的带宽占用、竞争网l适配器等~点仍然存在?BR> 此外Q部分\由器Q特别是Cisco产品Q还不支持单播IP地址和多播MAC的ARP映射的自动创建,需要手工配|。IGMP多播Q只有在选中多播Ӟ才可以选择此项Q,在承多播的优点之外QNLB每隔60U发送一ơIGMP信息Q多播数据包只能发送到q个正确的交换机端口Q避免了交换机数据洪水的产生?BR> 端口规则是windows2003的新Ҏ。NLB提供3U筛选模式,可以针对端口规则采取止、多L负蝲q和单L的特D处理。其中,多主机筛选模式提供了真正意义上的负蝲qQƈ且可以根据节点的实际处理能力q行负蝲量的分配?BR> 单个集的最大节Ҏ?2Q如果还不能满需要,可以使用Round-Robin Domain Name Service把请求映到多个集上(但也因此引入了单Ҏ障DNSQ除非DNS冗余Q?BR>负蝲q的安装与配置
Windows2003引入了网l负载^衡管理器Q控刉?>理工具Q,使负载^衡的安装和配|更加简单。管理器可以Ҏ的实现群集的建立、删除,节点的添加?删除、修改以及故障的?BR> q行|络负蝲q理器,选择 集 -> 新徏 Q弹?集参数"对话框,按需要配|。如下:
下一步,pȝ会提C添加附加群?SPAN lang=EN-US>IPQ如果不需要可直接?SPAN lang=EN-US>?/SPAN>下一?SPAN lang=EN-US>?/SPAN>q行端口配置。以web集配置ZQ其典型端口配置如下图所C:如果会话状态不保存在该集上,则相似性选择无,否则选择单一或者类C?BR>
之后Q指定一C接,q择一个可用的|络接口Q进行主机参数的讄Q?BR>
点击?/SPAN>完成?/SPAN>Q管理器会自动连接到L上进行相关配|来创徏一个新的群集。可以双L志项目,了解NLB理器都q行了什么配|?SPAN lang=EN-US>
虽然Q?SPAN lang=EN-US>NLB理器是一个微软推荐的ҎQ但使用NLB.EXE命o行仍然有它独特的优点Q反应快Q便于批处理。因此,掌握NLB命o也是快速部|的需要?SPAN lang=EN-US>
负蝲q的安全考虑
集的远E管理特性允许管理员在远E计机上?SPAN lang=EN-US>NLB.EXE理集。但启用此功能后Q会带来安全风险Q比如密码泄露和DOS Q拒l服务攻?SPAN lang=EN-US>)。如果启用,L保密码够复杂,q且Ҏ需要在防火墙上q行讉K{略的配|(比如锁UDP端口1717?SPAN lang=EN-US>2504Q?SPAN lang=EN-US>
ȝ
负蝲q负蝲q是一综合的技术,在实施过E中往往伴随着其他技术的应用。比如网l负载^衡群集和服务器群集的l合Q甚至与存储区域|络或网l附加存储相兌都是一个不错的L?/SPAN>
import java.io.*; public class Test { public static void main(String[] args) { try { Process process = Runtime.getRuntime().exec("ipconfig /all"); InputStreamReader ir = new InputStreamReader(process .getInputStream()); LineNumberReader input = new LineNumberReader(ir); String line; while ((line = input.readLine()) != null) if (line.indexOf("Physical Address") > 0) { String MACAddr = line.substring(line.indexOf("-") - 2); System.out.println("MAC address = [" + MACAddr + "]"); } } catch (java.io.IOException e) { System.err.println("IOException " + e.getMessage()); } } } |
3、许可证加密 q种方式在某U角度上说可以是序列号加密的一个变U,你从|上下蝲的或购买q来?nbsp;软gq不能直接用,软g在安装时或运行时会对你的计算行一番检,q根据检结 果生成一个你的计机的特定指U,q个指纹可以是一个小文gQ也可以是一串谁也看不懂 的数Q你需要把q个指纹数据通过 Internet、Email、电话、传真等方式发送到开发商那里Q?nbsp;开发商再根据这个指U给你一个注册码或注册文Ӟ你得到这个注册码或注册文件ƈ按Y?nbsp;要求的步骤在你的计算Z完成注册后方能用。这个方法的买卖也是完全通过|络来进?nbsp;的,而且用户购买的Y件被限制了只能在他自q计算Z面运行,换到其它的计机上, q个注册码或注册文g可能不再有效。但用户更换某些g讑֤也可能造成注册码的失效Q?nbsp;而且用户得到软g后在完成注册工作前会有一D|间无法用。对于Y件开发商来说服务?nbsp;理的工作量无疑也是非常巨大的。网l上有个 ZIP Download 公司专门替Y件开发商来完 成这U加密与服务工作。将?nbsp;PIII 处理器内部有了特定的序列P会对减这U加密方案的g依赖性,但估计普及v来还有很长的一D|间?nbsp; Q第三课Q?nbsp; 软g分析技?BR> 8088 汇编速查手册 一、数据传输指?nbsp; ─────────────────────────────────────── 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数? 1. 通用数据传送指? MOV 传送字或字? MOVSX 先符h?再传? MOVZX 先零扩展,再传? PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位寄存器里字节的序 XCHG 交换字或字节.( 臛_有一个操作数为寄存器,D寄存器不可作ؓ操作? CMPXCHG 比较q交换操作数.( W二个操作数必须为篏加器AL/AX/EAX ) XADD 先交换再累加.( l果在第一个操作数?nbsp;) XLAT 字节查表转换. ── BX 指向一?nbsp;256 字节的表的v? AL 的烦引?nbsp;(0-255,?nbsp; 0-FFH); q回 AL 为查表结? ( [BX+AL]->AL ) 2. 输入输出端口传送指? IN I/O端口输入. ( 语法: IN 累加? {端口号│DX} ) OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加?nbsp;) 输入输出端口qx式指定时, 其范围是 0-255; 由寄存器 DX 指定? 其范围是 0-65535. 3. 目的地址传送指? LEA 装入有效地址. ? LEA DX,string 把偏Ud址存到DX. LDS 传送目标指?把指针内容装入DS. ? LDS SI,string 把段地址:偏移地址存到DS:SI. LES 传送目标指?把指针内容装入ES. ? LES DI,string 把段地址:偏移地址存到ESI. LFS 传送目标指?把指针内容装入FS. ? LFS DI,string 把段地址:偏移地址存到FSI. LGS 传送目标指?把指针内容装入GS. ? LGS DI,string 把段地址:偏移地址存到GSI. LSS 传送目标指?把指针内容装入SS. ? LSS DI,string 把段地址:偏移地址存到SSI. 4. 标志传送指? LAHF 标志寄存器传?把标志装入AH. SAHF 标志寄存器传?把AH内容装入标志寄存? PUSHF 标志入栈. POPF 标志出栈. PUSHD 32位标志入? POPD 32位标志出? 二、算术运指?nbsp; ─────────────────────────────────────── ADD 加法. ADC 带进位加? INC ?nbsp;1. AAA 加法的ASCII码调? DAA 加法的十q制调整. SUB 减法. SBB 带借位减法. DEC ?nbsp;1. NEC 求反(?nbsp;0 减之). CMP 比较.(两操作数作减?仅修Ҏ志位,不回送结?. AAS 减法的ASCII码调? DAS 减法的十q制调整. MUL 无符号乘? IMUL 整数乘法. 以上两条,l果回送AH和AL(字节q算),或DX和AX(字运?, AAM 乘法的ASCII码调? DIV 无符号除? IDIV 整数除法. 以上两条,l果回? 商回送AL,余数回送AH, (字节q算); ?nbsp;商回送AX,余数回送DX, (字运?. AAD 除法的ASCII码调? CBW 字节转换为字. (把AL中字节的W号扩展到AH中去) CWD 字{换ؓ双字. (把AX中的字的W号扩展到DX中去) CWDE 字{换ؓ双字. (把AX中的字符h展到EAX中去) CDQ 双字扩展. (把EAX中的字的W号扩展到EDX中去) 三、逻辑q算指o ─────────────────────────────────────── AND 与运? OR 或运? XOR 异或q算. NOT 取反. TEST 试.(两操作数作与q算,仅修Ҏ志位,不回送结?. SHL 逻辑左移. SAL 术左移.(=SHL) SHR 逻辑右移. SAR 术右移.(=SHR) ROL 循环左移. ROR 循环右移. RCL 通过q位的@环左U? RCR 通过q位的@环右U? 以上八种UM指o,其移位次数可?55? UM一ơ时, 可直接用操作? ?nbsp;SHL AX,1. UM>1ơ时, 则由寄存器CLl出UMơ数. ?nbsp;MOV CL,04 SHL AX,CL 四、串指o ─────────────────────────────────────── DS:SI 源串D寄存器 :源串变址. ESI 目标串段寄存?目标串变址. CX 重复ơ数计数? AL/AX 扫描? D标志 0表示重复操作中SI和DI应自动增? 1表示应自动减? Z标志 用来控制扫描或比较操作的l束. MOVS 串传? ( MOVSB 传送字W? MOVSW 传送字. MOVSD 传送双? ) CMPS 串比? ( CMPSB 比较字符. CMPSW 比较? ) SCAS 串扫? 把AL或AX的内容与目标串作比较,比较l果反映在标志位. LODS 装入? 把源串中的元?字或字节)逐一装入AL或AX? ( LODSB 传送字W? LODSW 传送字. LODSD 传送双? ) STOS 保存? 是LODS的逆过E? REP 当CX/ECX<>0旉? REPE/REPZ 当ZF=1或比较结果相{?且CX/ECX<>0旉? REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0旉? REPC 当CF=1且CX/ECX<>0旉? REPNC 当CF=0且CX/ECX<>0旉? 五、程序{UL?nbsp; ─────────────────────────────────────── 1>无条件{UL?nbsp;(长{U? JMP 无条件{UL?nbsp; CALL q程调用 RET/RETFq程q回. 2>条g转移指o (短{U?-128?127的距d) ( 当且仅当(SF XOR OF)=1?OP1<OP2 ) JA/JNBE 不小于或不等于时转移. JAE/JNB 大于或等于{U? JB/JNAE 于转移. JBE/JNA 于或等于{U? 以上四条,试无符h数运的l果(标志C和Z). JG/JNLE 大于转移. JGE/JNL 大于或等于{U? JL/JNGE 于转移. JLE/JNG 于或等于{U? 以上四条,试带符h数运的l果(标志S,O和Z). JE/JZ {于转移. JNE/JNZ 不等于时转移. JC 有进位时转移. JNC 无进位时转移. JNO 不溢出时转移. JNP/JPO 奇偶性ؓ奇数时{U? JNS W号位ؓ "0" 时{U? JO 溢出转移. JP/JPE 奇偶性ؓ偶数时{U? JS W号位ؓ "1" 时{U? 3>循环控制指o(短{U? LOOP CX不ؓ零时循环. LOOPE/LOOPZ CX不ؓ零且标志Z=1时@? LOOPNE/LOOPNZ CX不ؓ零且标志Z=0时@? JCXZ CX为零时{U? JECXZ ECX为零时{U? 4>中断指o INT 中断指o INTO 溢出中断 IRET 中断q回 5>处理器控制指?nbsp; HLT 处理器暂? 直到出现中断或复位信hl箋. WAIT 当芯片引UTEST为高电^时CPUq入{待状? ESC 转换到外处理? LOCK 锁ȝ. NOP I操? STC |进位标志位. CLC 清进位标志位. CMC q位标志取反. STD |方向标志位. CLD 清方向标志位. STI |中断允怽. CLI 清中断允怽. 六、伪指o ─────────────────────────────────────── DB 定义字节. DW 定义?2字节). PROC 定义q程. ENDP q程l束. SEGMENT 定义D? ASSUME 建立D寄存器d. ENDS D늻? END E序l束. Q第四课Q?nbsp; 常用工具介绍 破解M开工具Q合适的工具使你事半功倍,本课主要是介l几U破解工P当然详细的用法,参考后面几译֏范例?BR> 1.调试工具softice 2.调试工具Trw2000 3.反汇~工具Wdasm8.93 4.Hiew 5.Visual BasicE序调试工具Smartcheck 6.十六q制~辑器(如:Ultraedit、WinHex、Hex Workshop {) 7.注册表监视工具RegShot、regmon或RegSnap 8.侦测文gcd工具TYP、gtw或FileInfo{?BR> 9. 脱壳工具PROCDUMP 10.调试工具IceDump 11.注册机制作crackcode2000 12.备䆾windows配制文g工具ERU 13.文g监视工具 filemon 14.资源修改?nbsp;EXESCOPE 15.Frogsice 16.IDA 反汇~工?nbsp; 一看这么多是不是吓坏了Q其实你只需掌握一两种p破解软gQ当然要得心应手Q最好还是全面掌握,因ؓ现在软g什么手D都有可能采用?BR> Soft-ICE 是目前公认最好的跟踪调试工具。用Soft-ICE可以很容易的跟踪一个Y件、或是监视Y件生的错误q行除错。你甚至可以用他来替代C语言的调试器Q-如果你不喜欢使用C语言自己的调试器的话。主意其有几U^台的版本QDOS,WINDOW3.1,WIN95/98/2000/,NTQ所以别搞错了?BR> Trw2000 中国q写的调试软gQ完全兼容SOFTICE各种指oQ但现在许多软g能检SOFTICE存在Q而TRW2000在这斚w好多了。TRW2000有它自己的独Ҏ面,是针对破解Y件优化的QWindows下的跟踪调试E序Q跟t功能更强;可以讄各种断点Q只是断点种cL多;它可以象一些脱壛_具一样完成对加密外壳的去除,自动生成EXE文gQ只是留l用h多的选择Q在DOS下的版本为TR?BR> Wdasm8.93 反汇~的极品工具。可方便反汇~程序,它能静态分析程序流E,也可动态分析程序,操作单、破解必备! Hiew 不用多说Q是一个十六进制工P它除了普通十六进制的功能外,它还有个特色Q能反汇~文Ӟq可以汇~指令修改程序,是不是够LQ?BR> Smartcheck VBE序执行时从本质上讲是解释执行,它们只是调用 VBRUNxxx.DLL 中的函数 QVB ?nbsp;exe 是伪代码Q程序都?nbsp;vbXXX.dll 里面执行Q你只能?nbsp;vbdll 里面用SOFTICE 打{转,什么都改不成,而且代码质量不高Q结构还颇复杂?nbsp;当然只要了解其特点用SOFTICE也可破解 Q但SmartCheck的出玎ͼ大大方便了我们,它可VBE序执行的操作完全记录下来,使我们轻而易丄破解大部分VBE序?BR> 十六q制~辑?nbsp;HIEW是一U是十六q制工具Q但其是DOS界面Q因此有必要再准备一ƾwindows下的工具Q这L工具很多Q如QUltraedit、WinHex、Hex Workshop {,其中Hex Workshop比较有特Ԍ操作方便Q但遗憾的是没有汉化版?BR> 注册表监视工?nbsp;注册表是Windows 95及Windows 98的核心数据库Q表中存攄各种参数Q直接控制着Windows的启动、硬仉动程序的装蝲以及一些Windows应用E序q行的正怸否。而应用Y件安装时Q有可能在注册表中注册,一些必要的信息放进去,如安装时_使用ơ数{。RegShot、regmon或RegSnap是一U监视注册表变化的工P以了解应用程序在注册表何处修改了Q以协助破解?BR> 侦测文gcd工具 q样的工hTYP、gtw或FileInfo{。这是一个能侦测你的软g是被哪一U「壳」给加密?nbsp;(好像侦你的文件档是被zip、rar、arj哪一个给压羃 了一P如果q被哪种软体加了壳都不晓得,那要剥壳难很多)。一般配合PROCUDUMP使用?BR> PROCDUMP 脱壳工具Q可剥许多壳Q你使用的许多Y仉是压~过的,用该工具很方便把它们q原Q然后再修改Qƈ可自q写脚本文Ӟ以便能脱x版的壟뀂它是也一ƾ优U的PE格式修改工具Q脱壛_备! IceDump 是配合SOFTICE而用的Q可抓取内存的数据,以重建EXE文g,脱壳必备。ƈ可在SOFTICE下边调试边听mp3哟!具体参考其readme. crackcode2000 一U全新的注册机工P它可以从另一q程的内存中取出你想要的注册码,它可以o水^不高的你一夜之间成为破解高手,有了它,很多软g可以用二十秒旉写出注册机来Q而你不需要会M的语aQ因为它只是一个工P一个操作很单的工具Q它的参数只有四行, 实在单到不能再简单了Q它的体U也很少Q只?1KQ如果再用其它压~Y件压一下一?nbsp;会小?0KQ所以用它是可以做出很优U的注册机?BR> ERU q是windows安装盘自带的工P备䆾注册表等一些windows重要的配制文Ӟ强烈推荐Q在你破解一软g前,最好备份一下系l,因ؓ你在破解某些软g的过E中Q寻扑օ键点Ӟ在这时改动一下以验证自己的判断,l果正确注册成功Q此时你再想回到那里看一I竟Q重装该软g都没用,哈哈Q永q是注册版版Q除非你重装pȝ。此时你只要q原注册表和配制文gQ再重装该YӞ又可注册了,q次你就可好好研I它一下了......Q当然这U情况不多见Q但破解某些软g前备份一下注册表Q还是有必要的?BR> filemon 文g监视工具 Q可监视pȝ文gq行状况Q如哪个文g打开Q哪个文件关闭,在哪个文件读取了数据{,破解旉常有用,以便了解E序在启动、关闭或验证注册码是做了哪些手脚?BR> EXESCOPE 资源修改?nbsp;eXeScope 可以说是 EXE ?nbsp;DLL {执行文件的解析l结工具Q?nbsp;它有执行文g(EXE, DLL{?的解析与昄功能Q提取资源到外部文g Q资源的重新写入Q记录文件的记录及其再编?成批~辑){功能。是汉化软g的常用工P当然破解软g时也很有用?BR> Frogsice 最好的 SOFT-ICE 加强软gQ它q不是简单的?nbsp;SICE 隐藏Q而是让你可以配合 SICE 避过现在行的各U加密、保护Y仉面的各种防止 SICE 的陷阱。有了它Q你再也不用怕在装入一个程序准备调试的时候,E序告诉你发?nbsp;SICE 的存在而终止运行,或者干脆把你的机器从新启动Q又甚至触发更残L报复手段?nbsp; IDA 强大的反汇编工具QCOOLQ! |
端口总览 |
|
http://www-900.cn.ibm.com/developerWorks/cn/linux/cluster/lw-clustering.shtml#16
http://www.lslnet.com/linux/docs/linux-3656.htm
?者: Rawn Shah
LinuxWorld 专栏作家
2000 q?5 ?
Rawn Shah 作ؓ专家Q在 Linux 现有的开放源码和闭源码集群解决Ҏ斚w为您指点qh|?
计算 Linux 中集项目的数量p计算谷中创业公司的数量一栗不?Windows NT 已经受其自n的封闭环境阻,Linux 有大量的集群pȝ可供选择Q适合于不同的用途和需要。但定应该使用哪一个集的工作却没有因此变得简单?
问题的部分原因在于术语集用于不同场合。IT l理可能兛_如何使服务器q行旉更长Q或使应用程序运行得更快Q而数学家可能更关心在服务器上q行大规模数D。两者都需要群集,但是各自需要不同特性的集?
本文调查了不同Ş式的集群以及许多实现中的一部分Q这些实现可以买刎ͼ也可以免费Y件Ş式获得。尽列出的所有解x案ƈ不都是开放源码,但是大多数Y仉遵@分发 Linux 源码的公共惯例,特别是由于那些实现集的常常希望调整pȝ性能Q以满需要?
g
集群L涉及到机器之间的gq接。在C大多数情况下Q这只是指“快速以太网”网卡和集线器。但在尖端科学领域中Q有许多专ؓ集群设计的网l接口卡?
它们包括 Myricom ?Myrinet、Giganet ?cLAN ?IEEE 1596 标准可~一致接?(SCI)。那些卡的功能不但在集的节点之间提供高带宽Q而且q减gq(发送消息所用的旉Q。对于在节点间交换状态信息以使其操作保持同步情况Q那些gq是臛_重要的?
Myricom
Myricom 提供|卡和交换机Q其单向互连速度最高可辑ֈ 1.28 Gbps。网卡有两种形式Q铜U型和光U型。铜U型 LAN 可以?10 英尺距离内以全速进行通信Q而在长达 60 英尺距离内以半速进行操作。光U型 Myrinet 可以?6.25 英里长的单模光纤或?340 英尺长的多模光纤上全速运行。Myrinet 只提供直接点到点、基于集U器或基于交换机的网l配|,但在可以q接CL交换光纤数量斚w没有限制。添加交换光U只会增加节炚w的gq。两个直接连接的节点之间的^均gq是 5 ?18 微秒Q比以太|快得多?
集群cd
最常见的三U群集类型包括高性能U学集、负载均衡群集和高可用性群集?
U学集
通常Q第一U涉及ؓ集开发ƈ行编E应用程序,以解军_杂的U学问题。这是ƈ行计的基础Q尽它不用专门的q行计算机,q种计算机内部由十至上万个独立处理器l成。但它却使用商业pȝQ如通过高速连接来链接的一l单处理器或双处理器 PCQƈ且在公共消息传递层上进行通信以运行ƈ行应用程序。因此,您会常常听说又有一U便宜的 Linux 计算机问世了。但它实际是一个计机集Q其处理能力与真的超U计机相等Q通常一套象L集配置开销要超q?$100,000。这对一般h来说g是太贵了Q但与hg百万元的专用超U计机相比q算是便宜的?
负蝲均衡集
负蝲均衡集Z业需求提供了更实用的pȝ。如名称所暗示的,该系l负蝲可以在计机集中尽可能q_地分摊处理。该负蝲可能是需要均衡的应用E序处理负蝲或网l流量负载。这Lpȝ非常适合于运行同一l应用程序的大量用户。每个节炚w可以处理一部分负蝲Qƈ且可以在节点之间动态分配负载,以实现^衡。对于网l流量也是如此。通常Q网l服务器应用E序接受了太多入|流量,以致无法q速处理,q就需要将量发送给在其它节点上q行的网l服务器应用。还可以Ҏ每个节点上不同的可用资源或网l的Ҏ环境来进行优化?
高可用性群?
高可用性群集的出现是ؓ了ɾ集的整体服务尽可能可用Q以便考虑计算g和Y件的易错性。如果高可用性群集中的主节点发生了故障,那么q段旉内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点Ӟ它可以完全接其w䆾Qƈ且因此ɾpȝ环境对于用户是一致的?
在群集的q三U基本类型之_l常会发生合与交杂。于是,可以发现高可用性群集也可以在其节点之间均衡用户负蝲Q同时仍试图l持高可用性程度。同P可以从要~入应用E序的群集中扑ֈ一个ƈ行群集,它可以在节点之间执行负蝲均衡。尽集系l本w独立于它在使用的Y件或gQ但要有效运行系l时Q硬件连接将起关键作用?
Giganet
Giganet 是用?Linux q_的虚拟接?(VI) 体系l构卡的W一家供应商Q提?cLAN 卡和交换机。VI 体系l构是独立于q_的Y件和gpȝQ它?Intel 开发,用于创徏集。它使用自己的网l通信协议在服务器之间直接交换数据Q而不是?IPQƈ且它q不打算成ؓ WAN 可\qpȝ。现在,VI 的未来取决于正在q行的“系l?I/O l”的工作Q这个小l本?Intel 领导的“下一?I/O”小l与 IBM ?Compaq 领导的“未?I/O 组”的合ƈ。Giganet 产品当前可以在节点之间提?1 Gbps 单向通信Q最gqؓ 7 微秒?
IEEE SCI
IEEE 标准 SCI 的gq更(低于 2.5 微秒Q,q且其单向速度可达?400 MBQ秒 (3.2 Gbps)。SCI 是基于环拓扑的网l系l,不像以太|是星Ş拓扑。这在较大规模的节点之间通信速度更快。更有用的是环面拓扑|络Q它在节点之间有许多环Şl构。两l环面可以用 n ?m 的网DC,其中在每一行和每一列都有一个环形网l。三l环面也cMQ可以用三维立体节点|格表示Q每一层上有一个环形网l。密集超U计ƈ行系l用环面拓扑网l,为成百上千个节点之间的通信提供相对最快的路径?
大多数操作系l的限制因素不是操作pȝ或网l接口,而是服务器的内部 PCI ȝpȝ。几乎所有台?PC 通常有基?32-位,33-MHz PCIQƈ且大多数低端服务器只提供 133 MBQ秒 (1 Gbps)Q这限制了那些网卡的能力。一些昂늚高端服务器,?Compaq Proliant 6500 ?IBM Netfinity 7000 pdQ都?64-位, 66-MHz |卡Q它们能够以四倍速度q行。不q地是,矛盾是更多公怋用低端的pȝQ因此大多数供应商最l生产和销售更多低?PCI |卡。也有专门的 64-位,66-MHz PCI |卡Q但h要贵许多。例如,Intel 提供了这U类型的“快速以太网”网卡,hU?$400 ?$500Q几乎是普?PCI 版本h?5 倍?
U学集
某些q行集pȝ可以辑ֈ如此高的带宽和低延迟Q其原因是它们通常l过使用|络协议Q如 TCP/IP。虽然网际协议对于广域网很重要,但它包含了太多的开销Q而这些开销在节点相互已知的闭|络集中是不必要的。其实,那些pȝ中有一部分可以在节点之间用直接内存访?(DMA)Q它cM于图形卡和其它外围设备在一台机器中的工作方式。因此横跨群集,可以通过M节点上的M处理器直接访问一UŞ式的分布式共享内存。它们也可以使用低开销的消息传递系l,在节点之间进行通信?
消息传递接?(MPI) 是ƈ行群集系l间消息传递层的最常见实现。MPI 存在几种衍生版本Q但在所有情况下Q它为开发者访问ƈ行应用程序提供了一个公?APIQ这样开发者就不必手工解决如何在群集的节点之间分发代码Dc其中一个,Beowulf pȝ首先?MPI 用作公共~程接口?
很难军_使用哪种高性能集群包。许多都提供cM服务Q但计算的具体要求才是决定性因素。很多情况下Q在那些pȝ中的研究工作只是解决需求的一半,而且使用那些软g需要集包开发者的Ҏ帮助和合作?
Beowulf
当谈?Linux 集群Ӟ许多人的W一反映?Beowulf。那是最著名?Linux U学软g集群pȝ。没有一个包叫做 Beowulf。实际上Q它是一个术语,适用于在 Linux 内核上运行的一l公pY件工兗其中包括流行的软g消息传?APIQ如“消息传送接口?MPI) 或“ƈ行虚拟机?PVM)Q对 Linux 内核的修改,以允许结合几个以太网接口、高性能|络驱动器,对虚拟内存管理器的更改,以及分布式进E间通信 (DIPC) 服务。公共全局q程标识I间允许使用 DIPC 机制从Q何节点访问Q何进E。Beowulf q在节点间支持一pdgq通性选g?
Beowulf 可能是考虑 Linux 时注意到的第一个高性能集群pȝQ这只是因ؓ它的q泛使用和支持。关于这个主题,有许多文档和书籍。Beowulf 与以下一些科学集系l之间的差异可以是实际的Q或者只是在产品名称中有差异。例如,管名称不同QAlta Technologies ?AltaCluster 是一?Beowulf pȝ。某些供应商Q如 ParTec AGQ一家d国公司,提供?Beowulf 模型的衍生版本,以包括其它管理接口和通信协议?
Giganet cLAN
Giganet 提供了一U定制的Zg的解x案,它用非 IP 协议在一个科学群集的节点间进行通信。如前所qͼ“虚拟接口”协议通过除去不少协议的开销Q如 IPQ以支持服务器间更快的通信。另外,gpȝ可按千兆比特速度q行Qƈ且gq很短,使它非常适合构徏最多达 256 个节点的U学集。该供应商支?MPIQ这栯多ƈ行应用程序就可以在类似的pȝQ如 BeowulfQ上q行?
它也?Beowulf 的缺点,即不能用作网l负载共享系l,除非惌~写应用E序来监控和分发在服务器间传送的|络包?
Legion
Legion 试图构徏一个真正的多计机pȝ。这是一个群集,其中每个节点都是一个独立系l,但在用户看来Q整个系l只是一台计机。Legion 设计成支持一C界范围的计算机,׃百万个主Z及数以万亿计的Y件对象组成。在 Legion 中,用户可以创立他们自己的合作小l?
Legion 提供了高性能q行、负载均衡、分布式数据理和容错性?
Legion 提供了高性能q行、负载均衡、分布式数据理和容错性。它通过其容错管理和成员节点间的动态重新配|来支持高可用性。它q有一个可扩充核心Q该核心可以在出现新的改q和q展时动态替换或升。系lƈ不是只接受单一控制Q而是可以׃Q意数量的l织理Q而每个组l都支持整体的自治部分。Legion API 通过其内|的q行性提供了高性能计算?
Legion 需要用特别编写的软gQ以使它可以使用?API 库。它位于用户计算机操作系l之上,协调本地资源和分布式资源。它自动处理资源调度和安全性,q管理上下文I间以描q和讉K整个pȝ中上亿种可能之外的对象。然而,在每个节点上q行Ӟ不需要用系l管理员ҎQƈ且可以用无Ҏ的用户帐可行工作。这增加加?Legion 的节点和用户的灵zL?
Cplant
Sandia National Lab 中的 Computational Plant 是一个大规模整体q行集Q用于实?TeraFLOPQ万亿次点q算Q计ƈ构徏在商业组件上。整个系l由“可伸羃单元”组成,q些“可伸羃单元”可以划分成适合不同目的Q计、磁?I/O、网l?I/O、服务管理)。群集中的每个节炚w是一?Linux pȝQ带有专门开发的、提供分区服务的内核U模块。每个分区的功能可以通过装入和卸载内核模块来修攏V?
目分三个阶D完成,开始阶D|原型Q有 128 个基?433-MHz DEC Alpha 21164 的系l,其中每个都有 192 MB RAM ?2 GB 驱动器,怺之间?Myrinet |卡?8-端口?SAN 交换接。第 1 阶段它扩充?400 个基?21164 的工作站Q这些工作站的运行速度?500 MHzQ有 192 MB RAMQ没有存储器Q用 16-端口?SAN 交换Z立方体l构q接hQƈ且运?Red Hat 5.1。当前的W?2 阶段?592 台基?DEC 21264 的机器,它们的运行速度?500 MHzQ有 256 MB RAMQ没有驱动器。每个节炚w使用 64-位,33-MHz PCI Myrinet |卡Qƈ且仍使用 16-端口交换Z立方体l构q接?
?Cplant 上运行的应用E序包括解决E疏线性系l、流体力学和l构力学中计系l的优化、分子力学的模拟、线性结构力学的有限元分析,以及q行应用E序的动态负载均衡库?
JESSICA 2
香港大学的系l研I小l有一个基?Java 的群集,叫做支持 Java 的单pȝ映像计算体系l构 (JESSICA)Q它作ؓ一个中间g层以完成单系l映像的qL。该层是每个使用分布式共享内?(DSM) pȝq行通信的节点上q行的所有线E的一个全局U程I间。该目使用 ThreadMark DSMQ但最l将用他们自己创建的 JiaJia Using Migrating-home Protocol (JUMP)。他们用定制的Z Java ?ClusterProbe 软g来管理群集的 50 个节炏V?
PARIS
法国?IRISA 研究所的“大规模数字模拟应用E序的编Eƈ行和分布式系l?PARIS) 目提供了几U用于创?Linux 服务器群集的工具。该目׃部分l成Q群集的资源理软g、ƈ行编E语a的运行时环境Q以及分布式数字模拟的Y件工兗?
资源理软g包括用于׃n内存、磁盘和处理器资源的 Globelins 分布式系l,及其 Dupleix ?Mome 分布式共享内存系l?
负蝲均衡集
负蝲均衡集在多节点之间分发|络或计处理负载。在q种情况下,区别在于~少跨节点运行的单ƈ行程序。大多数情况下,那种集中的每个节点都是q行单独软g的独立系l。但是,不管是在节点之间q行直接通信Q还是通过中央负蝲均衡服务器来控制每个节点的负载,在节点之间都有一U公共关pR通常Q用特定的法来分发该负蝲?
|络量负蝲均衡是一个过E,它检查到某个集的入|流量,然后流量分发到各个节点以进行适当处理。它最适合大型|络应用E序Q如 Web ?FTP 服务器。负载均衡网l应用服务要求群集Y件检查每个节点的当前负蝲Qƈ定哪些节点可以接受新的作业。这最适合q行如数据分析等串行和批处理作业。那些系l还可以配置成关注某特定节点的硬件或操作pȝ功能Q这P集中的节点没有必要是一致的?
Linux 虚拟服务?
“Linux 虚拟服务器”项目已l实C许多内核补丁Q它们ؓ入网 TCP/IP 量创徏了负载均衡系l。LVS 软g查入|流量,然后Ҏ负蝲均衡法Q将量重定向到一l充当群集的服务器。这允许|络应用E序Q如 Web 服务器,在节点群集上q行以支持大量用戗?
LVS 支持作ؓ负蝲均衡服务器直接连接到同一?LAN 的群集节点,但它q能够以通道传?IP 包的方式q接到远E服务器。后一U方法包括压~?IP 包中的均衡请求,q些 IP 信息包从负蝲均衡服务器直接发送到q程集节点。尽?LVS 可以q程支持|站的负载均衡,但它使用的负载均衡算法现在对于虚拟群集中的广?Web 服务器仍无效。因此,如果 Web 服务器都在同一?LAN 中,LVS 最好当作负载均衡服务器使用?
负蝲均衡pȝ的几U硬件实现比在通用操作pȝQ如 LinuxQ上q行得更快。它们包括来?Alteon ?Foundry 的硬Ӟ其硬仉辑和最操作系l可以在g中执行流量管理,q且速度比纯软g快。它们的h也很高,通常都在 $10,000 以上。如果需要简单和便宜的解x案,一个有很多内存 (256 MB) 的中{?Linux pȝ会是一个好的负载均衡系l?
TurboLinux TurboCluster ?enFuzion
TurboLinux 有一个品叫 TurboClusterQ它最初以“Linux 虚拟服务器”项目开发的内核补丁为基。因此,它可以得到大部分优点Q但它的~点也与原来的项目一栗TurboLinux 为此q开发了一些工P用于监控增加产品实用性的集行ؓ。一家主要供应商的商业支持也使它对于大型|站更具吸引力?
EnFuzion 支持在节点之间实现自动负载均衡和资源׃nQ而且可以自动重新安排p|的作业?
EnFuzion ?TurboLinux 卛_推出的科学群集品,它ƈ不基?Beowulf。但是,它可以支持上百个节点以及许多不同的非 Linux q_Q包?Solaris、Windows NT、HP-UX、IBM AIX、SGI Irix ?Tru64。EnFuzion 非常有趣Q因为它q行所有现有YӞq且不需要ؓ环境~写定制的ƈ行应用程序。它支持在节炚w实现自动负蝲均衡和资源共享,而且可以自动重新安排p|的作业?
Platform Computing ?LSF 批处?
Platform Computing 是群集计领域的老手Q现在提供了 Linux q_上的“负载均衡设?(LSF) 批处理”Y件。LSF 批处理允怸央控制器安排作业在群集中L数量的节点上q行。在概念上,它类g TurboLinux enFuzion 软gQƈ且支持在节点上运行Q何类型的应用E序?
q种Ҏ对于集大小是非常灵zȝQ因为可以明选择节点的数量,甚至是运行应用程序的节点。于是,可以?64 个节点的集分成更小的逻辑集Q每个逻辑集都运行自q批处理应用程序。而且Q如果应用程序或节点p|Q它可以在其它服务器上重新安排作业?
Platform 的品在主要 Unix pȝ?Windows NT 上运行。目前,只有它们?LSF 批处理品已l移植到 Linux 上。最l,LSF Suite lg的其余部分也紧随其后移植到 Linux 上?
Resonate Dispatch pd
Resonate 有一U基于Y件的负蝲均衡ҎQ类g Linux 虚拟服务器。但是,它支持更多特性,以及一些更好的负蝲均衡法。例如,使用 ResonateQ可以在每个集节点装入一个代理,以确定该节点当前的系l负载。然后,负蝲均衡服务器检查每个节点的代理Q以定哪个节点的负载最,q且新的流量发送给它。另外,Resonate q可以用它?Global Dispatch 产品更有效地支持地区性分布式服务器?
Resonate 已经?Red Hat Linux 上彻底测试了该YӞ怿它也可以在其它发行版上运行。Resonate 的Y件还可以在其它各U^Cq行Q包?Solaris、AIX、Windows NTQƈ且它q可以在混合环境中进行负载均衡?
MOSIX
MOSIX 使用 Linux 内核新版本来实现q程负蝲均衡集群pȝ。该集中,M服务器或工作站可以按指定加入或离开Q即d到群集的d理能力,或从中除厅R根据其文档QMOSIX 使用自适应q程负蝲均衡和内存引导算法整体性能最大化。应用程序进E可以在节点之间抢先q移Q以利用最好的资源Q这cM于对U多处理器系l可以在各个处理器之间切换应用程序?
MOSIX 在应用层是完全透明的,q且不需要重新编译或者重新链接到新的库,因ؓ所有一切都发生在内核上。可以有几种Ҏ它配置成多用户׃n环境集。所有服务器可以׃n一个池Q系l可以是集的一部分Q或者群集可以动态地分成几个子群集,每种Ҏ都有不同的用途。Linux 工作站还可以是群集的一部分Q可以是固定的,也可以是临时的,或者只是作为批处理作业提交者。作Z时群集节点,工作站可以在其空闲时用于增加集处理能力。也允许只以批处理方式用群集,在这U方式中Q群集被配置成通过队列接受批处理作业。然后,守护E序取走作业q将它们发送到集节点q行处理?
MOSIX 的不利之处是它更?Linux 内核行ؓ的一些核心部分,于是pȝU应用程序将不会按期望运行?
除了高性能U学计算QMOSIX 提供了一个有的选项Q用于以共同讄创徏集群环境。通过使用服务器和工作站上的闲|资源,它可以更快更有效地创建和q行应用E序。由于访问了多台服务器,q且可以动态调整群集大和更改负蝲均衡规则Q它q可以提供高度的服务器可用性。MOSIX 的不利之处是它更?Linux 内核行ؓ的一些核心部分,于是pȝU应用程序将不会按期望运行。要使用|络应用E序Ӟ而该E序使用Z单个服务器地址的套接字q接QMOSIX 通常也会受到限制。这意味着|络应用E序在一个服务器节点上开始运行时Q如?IP 地址与套接字l定Q那么它必须l箋在该节点上运行。显ӞMOSIX q正在开始迁Ud接字Q因此这很快变成了争论的焦炏V?
高可用性群?
高可用?(HA) 集致力于服务器系l的q行速度和响应速度可能快。它们经怋用在多台机器上运行的冗余节点和服务,用来怺跟踪。如果某个节点失败,它的替补在几秒钟或更短旉内接它的职责。因此,对于用户而言Q群集永q不会停机?
某些 HA 集也可以维护节炚w冗余应用E序。因此,用户的应用程序将l箋q行Q即使他或她使用的节点出了故障。正在运行的应用E序会在几秒之内q移到另一个节点,而所有用户只会察觉到响应E微慢了一炏V但是,q种应用E序U冗余要求将软g设计成具有群集意识的Qƈ且知道节点失败时应该做什么。但对于 LinuxQ大多数现在q做不到。因?Linux pȝ没有 HA 集群标准Qƈ且也没有公共 API 可供应用E序开发者构建有集意识的Y件?
HA 集可以执行负蝲均衡Q但通常L务器q行作业Q而系l辅助服务器保持闲|。辅助服务器通常是主服务器操作系l设|的镜像Q尽硬件本w稍有不同。辅助节点对L务器q行zd监控或心跌察,以查看它是否仍在q行。如果心跌时器没有接收C服务器的响应Q则辅助节点接网l和pȝw䆾Q如果是 Linux pȝQ则?IP L名和地址Q?
但是QLinux 在这一领域仍有一点忽略。好消息是有一家著名的供应商正在努力尽快研刉可用性群集,因ؓ它是企业U服务器都必需的功能?
Linux-HA 目
高可用?Linux 目Q根据其目标声明Q旨在ؓ Linux 提供高可用性解x案,以通过C开发成果提高可靠性、可用性和服务能力。Linux 辑ֈ高可用性集时Q这是一U试囄?Linux 与先q的 Unix pȝQ如 Solaris、AIX ?HP/UXQ一样具有竞争力的特性。因此,目的目标是?2001 q之前达?Unix 集群比较报告 (http://www.sun.com/clusters/dh.brown.pdf) 中分析专家组 D. H. Brown 特定功能性别?
目中有可以l护节点间心跛_ƈ接管p|节点?IP 地址的Y件。如果一个节点失败,它用“伪造冗?IP”Y件包失败节点的地址d到工作节点以承担它的职责。于是,可以在几毫秒旉内自动替换失败的节点。实际用中Q心跳通常在几U范围内Q除非在节点之间有专用网l链接。因此,p|pȝ中的用户应用E序仍需要在新的节点上重新启动?
无处不在的集?
对于 LinuxQ有许多集群pȝ可供选用。同Ӟ那些目中有几个是非商业性的Q甚x实验性质的。虽然对学术界和某些l织q也没有形成问题Q但大公叔R常首选著名供应商的商业支持^台。供应商Q如 IBM、SGI、HP ?SunQ提供了用于?Linux 中构建科学群集的产品和服务,因ؓ集很流行,q且可以销售大量的服务器设备。一旦商业机构认为其它Ş式的集群是可靠的Q那些相同的服务器供应商或许会围l着开放源码集解x案创q产品?
Linux 作ؓ服务器^台的重要性依赖于支持大型服务器和服务器群集的能力。这׃它可以与 Sun、HP、IBM 和其它公司的 UNIX 服务器在更高层面上竞争。虽?Windows NT ?2000 不支?Linux 能够支持的集范_但是 HA 集群正规Ҏ的可用性以及用于构建有集意识?API 也它能够参与竞争?
如果正在考虑构徏一个群集,那么您应当仔l检查那些可能性,q将它们与您的需求做比较。您也许会发现想要实现的目标q不能成Z个完整的解决ҎQ或怼发现已经有了现成的解x案。不是哪种情况Q请怿许多现有公司他们的应用E序托付l进行深度计ƈ提供大量|页?Linux pȝ集。集是一U企业系l服务,已经?Linux 下成功测试过。尽新的集将出现Q但选择的多h正?Linux 过其它pȝQ如 Windows NTQ的优势?
关于作?
Rawn Shah 是居住在亚利桑那州图市的一位独立顾问。他多年来与多^台问题打交道q撰写相x章,但常o他不解的是很有人知道有用的pȝ工具?/P>
摘自QIBM DeveloperWorks