⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0600cluster.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; ">   <meta name="Author" content="VBird">   <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">   <title>鸟哥的 Linux 私房菜 -- 架设 Cluster</title><style>  <!--  body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED}   --></style></head><body nosave="" background="0600cluster_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0600cluster_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0600cluster_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0600cluster_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0600cluster_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0600cluster_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0600cluster_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org/linux_server/0600cluster.php"><font face="SimSun">简易</font>Cluster <font face="SimSun">架设</font></a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2003/05/20</font></div><font size="-2" color="#3333ff" face="SimSun"> </font><table bgcolor="#ffcccc" border="1" cols="1" width="100%"><tbody><tr><td><font size="-1" color="#000099">近年来因为数值模式仿真的盛行,所以『平行运算』的架构也就越来越重要了!什么是数值模拟呢?主要就是藉由一些物理理论去开发出来的一些『计算公式』,而这些计算公式藉由程序语言(例如C、Fortran等等)实际的将他编译成为可执行的程序,最常见的例如中央气象局不是每天都会预报天气吗?这个预报的动作就是利用数值计算去演算出来的。另外,还有空气质量模式仿真,也是经过运算出来的,除此之外,例如天文、物理、水文等等很多方面的工作,都是利用这种数值模拟的运算的喔!不过,这些程序是很大型的!也就是说,他们在运算的时间是很长的,如果使用单颗CPU 的话,不论这颗 CPU的频率与效能有多高,还是得要运算个好几个钟头的~如此一来,对于像气象预报这个急需时效性的工作可能就会有所延误啊!不过,如果我将这个运算的工作同时丢给多颗CPU 呢?也就是让多颗 CPU 同时进行这个程序的运算工作,如此一来,将可以大大的减低时间的损耗了~这就是平行运算的简单说明。在Linux 平台上面,要达成简单的平行运算,可以透过 MPI 的函式库,例如 MPICH就是一个很有名的 MPI 软件喔!马上来给他看看平行运算类型的 Cluster 建置吧!</font></td></tr></tbody></table><font size="-2" color="#000099"> </font><br><font size="+1" color="#000099"><a href="#theory">原理</a>:</font><br><font color="#000099">  :<a href="#theory_whatiscluster">什么是Cluster 与 Cluster 的优点</a></font><br><font color="#000099">  :<a href="#theory_cluster_master">Cluster的主从架构</a></font><br><font color="#000099">  :<a href="#theory_rsh_mpich">达成 Cluster所需要额外功能 ( RSH ) 与软件 ( MPICH )</a></font><br><font color="#000099"><font size="+1"><a href="#step">架设流程</a></font>:</font><br><font color="#000099">  :<a href="#step_overall">整体架构</a></font><br><font color="#000099">  :<a href="#step_vbird">鸟哥的一个实例规范</a></font><br><font color="#000099">  :<a href="#step_system">系统安装 ( Red Hat9 )</a></font><br><font color="#000099">  :<a href="#step_network_firewall">防火墙( 含 NAT 主机 ) 与网络设定</a></font><br><font color="#000099">  :<a href="#step_nfs">NFS 架设规划(相当重要,参考说明)</a></font><br><font color="#000099">  :<a href="#step_nis">NIS 架设规划</a></font><br><font color="#000099">  :<a href="#step_rsh">RSH 设定</a></font><br><font color="#000099">  :<a href="#step_pgi">安装 Fortran 90 的编译程序PGI pgf90 ( PS. server version )</a></font><br><font color="#000099">  :<a href="#step_mpich">安装 MPICH</a></font><br><font color="#000099"><font size="+1"><a href="#othersetings">其它主机相关设定</a></font>:</font><br><font color="#000099">  :<a href="#othersetings_xwindow">X-WindowServer/Slave 架构</a></font><br><font color="#000099"><a href="#important">重点回顾</a></font><br><font color="#000099"><a href="#reference">参考资源</a></font><br><hr width="100%"><a name="theory"></a><font size="+1" color="#000099">原理:</font><ul><hr width="100%"><li><a name="theory_whatiscluster"></a><font size="+1" color="#000099">什么是Cluster 与 Cluster 的优点</font></li><br> <br>什么是 Cluster 呢?目前常见的 Cluster (丛集)架构有两种,一种是 Web/ Internet cluster system,这种架构主要是将数据放置在不同的主机上面,亦即由多部主机同时负责一项服务;而另外一种则是所谓的<font color="#000066">平行运算</font>了!<font color="#000066">平行运算</font>其实就是将同一个运算的工作,交给整个Cluster 里面的所有 CPU 来进行同步运算的一个功能。由于使用到多个 CPU的运算能力,所以可以加快运算的速度。目前比较常见于平行运算功能的,通常需要在超级计算机上面才看的到,这些超级计算机主要是用在天文、军事、物理等需要很精密的、大量的运算的工作中,而考虑到稳定性,则通常是用在Unix 系统上面的硬件架构上。不过,目前由于 PC 上面的 CPU 的运算功能越来越强大了~因此,当然很多程序开发者就动脑筋到PC 上面来制作并行计算机的系统啰!我们这篇短文主要在介绍的就是『<font color="#000066">平行运算</font>』这一类的Cluster 了!<br> <br>由于 Cluster 主要是用在平行运算上面的,而所谓的平行运算是使用到多颗CPU 的运算功能,因此可以让您的大型运算的程序很快的执行完毕!因此,如果你的工作环境当中,常常会使用到很耗CPU 运算功能的程序时,就可以尝试使用 Cluster 来进行工作啰!应该可以节省您不少的时间吶!此外,我们这篇短文主要是在X86 架构下的 PC 来架设 Cluster 的喔!<br> <br>不过,也需要特别留意的是,由于我们的 Cluster 是将一个工作平均分给所有的node (注:一颗 CPU 在一个 Cluster 架构下,就称为一个 node 啰!),所以,万一您做成的Cluster 系统当中,所有的 node 并非完全相同的运算等级,那么先做完工作的node 将会暂停工作,会等到所有的 node 都进行完毕后,才会在进行下一动~所以啦!强烈的建议在同一个cluster 的架构中,尽量所有的 CPU 都使用相同的 CPU 型号,应该会比较好一点喔!<br> <br><hr width="100%"><li><a name="theory_cluster_master"></a><font size="+1" color="#000099">Cluster的主从架构</font></li><br> <br>最简单的 Cluster 其实就是以一种主从架构来进行数据的运算工作的,图示如下:<center><img src="0600cluster_files/cluster-01.jpg" nosave="" height="417" width="600"></center><ul><li><font color="#000066">上面的 Master 与 Slave 指的都是 CPU 喔!</font></li><br><font color="#000066"> </font><li><font color="#000066">Master 那部机器上面必须要有可以将工作分配给各个 node去工作的函式库,也就是 MPI ,他最重要的功能就是将工作给他分配下去的啦!而最重要的软件就是:(1)MPICH;(2)编译器(compiler,例如 Fortran);</font></li><br><font color="#000066"> </font><li><font color="#000066">什么是网络功能呢?如果 master 与 slave 是在同一部机器当中,例如双CPU 的主机板,那么这里就不需要网络功能啦!不过,如果我是使用四台双 CPU的 PC 呢?呵呵!那么这四部主机就需要以高速网络架构进行联机啦!此外,还需要在这四部主机之间建立可以互通讯息的通讯协议才行,这方面的功能就含有:(1)RShell, 亦即称为 RSH;(2)NIS,使 Master 与 Slave 具有相同的账号群组关系;(3)NFS,使读取写入的数据可以在同一个partition 上面;</font></li><br><font color="#000066"> </font><li><font color="#000066">Slave 就是单纯的将来自 Master 的任务给他做完就是了!</font></li></ul> <br>整个主从架构大致上就是这样啦!因此,可以知道的是,我们需要的就是上面那些咚咚啰!<br> <br><hr width="100%"><li><a name="theory_rsh_mpich"></a><font size="+1" color="#000099">达成Cluster 所需要额外功能 ( RSH ) 与软件 ( MPICH )</font></li><br> <br>由上面的 Cluster 主从架构当中,我们知道 Master 与 Slave 之间的网络沟通很重要的一个咚咚,那就是R Shell 啰!此外,还有将一个工作传送给不同的 node 来进行计算的任务,就需要MPICH 这个函式库来进行!简单的谈一谈这两个玩意儿吧!<br> <ul><li><b><font color="#000099">RSH:</font></b></li><br>在我们的 Linux 主机上面工作,通常使用 BASH 这个 shell 来传达给 kernel工作的讯息,以使主机正确的工作;而如果在不同的主机之间,那就可以使用 RShell 来进行指令的下达喔,如此一来,我们就可以直接在 A 机器,向 B 机器下达工作的指令,而不需要登入B 机器呢~那就是 RSH 的主要功能啦!最常见的 RSH 指令就是 rcp 与 rsh 了!有兴趣的朋友应该知道以man 来查寻一下该指令的用法啰!<br>需要附带一提的是,这个 RSH 是『相当危险』的一个服务喔!由于我们可以直接登入RSH 主机,并且在上面进行指令的下达,为了避免还要输入密码的问题,因此通常RSH 已经将信任主机设定好了,不过,由于 RSH 会启动一些 port 来监听 Clients的需求,而偏偏这些 port 与 daemon 都还挺危险的,因此,『Cluster 最好是设定在内部网域当中,并使用私有IP ,比较能够避免危险』喔!此外,那个 Master 也必须要设定好一定程度的严密防火墙喔!<br> <li><b><font color="#000099">MPICH:</font></b></li><br>MPI 是 <font color="#000066">Messages Passing Interface</font> 的缩写,他本身是一个规格很严密的通讯标准,主要的功能是在处理平行运算之间各个node 的数据交换,请注意, MPI 并不是一套软件喔!而至于 MPICH 就是符合 MPI这个标准通讯协议的一套软件了!因此,我们可以经由 MPICH 这个软件提供的 MPI函式库来达成平行运算的功能喔!也就是说,我们所写的程序,只要能够使用 MPICH提供的函式库,那么该程序就可以进行平行运算时候所需要的功能了,这就可以避免程序开发者还要去处理通讯节点上面的问题,而可以将程序开发的重心着重在程序本身的问题上面!<br>MPICH 是由 Mathematics and Computer Science Division的 Argonne 实验室所发展,详细的数据可以参考:<a href="http://www-unix.mcs.anl.gov/mpi/mpich/" target="_blank">http://www-unix.mcs.anl.gov/mpi/mpich/</a></ul> <br>除了这两个软件之外,还需要 NIS 与 NFS 喔!所以啦!要建置一个 Cluster的话,身为系统管理员的您,必须要学会的技能真是相当的多的,至少需要:<br> <ul><li><font color="#000066">熟悉 Linux 的操作技巧;</font></li><li><font color="#000066">熟悉 Linux 基础网络参数设定;</font></li><li><font color="#000066">熟悉 Linux 相关的 Server 架设(这方面请参考<a href="http://linux.vbird.org/linux_server/index.php">鸟哥的私房菜架站篇</a>);</font></li><li><font color="#000066">了解 RSH 的相关功能与设定技巧;</font></li><li><font color="#000066">了解 MPICH 的设定与相关功能;</font></li><li><font color="#000066">熟悉至少一种程序语言。</font></li></ul> <br>还真的是不好学啊!鸟哥也是新手玩弄 Cluster 说~大家一起研究研究吧!^_^</ul><hr width="100%"><a name="step"></a><font size="+1" color="#000099">架设流程</font><ul>要架设 Cluster 当然就是需要多部的 PC 来联机啦!不然怎么称为 Cluster呢?您说是吧!所以,无论如何,在架设 Cluster 之前,请务必要确认您的『所有硬件以及网络功能都是完整无缺的!』否则就无法继续下去啦!另外,建议Cluster 的所有主机规格尽量相同,可以避免等待的困扰呢!底下就来谈一谈整个架设流程吧!<br> <br><hr width="100%"><li><a name="step_overall"></a><font size="+1" color="#000099">整体架构</font></li><br> <br>整体架构的架设当中,需要的所有软件为:<br> <ul><li>Master 主机安装需要:</li><ul><li>防火墙的设定(含 NAT 架设);</li><li>RSH</li><li>NIS Server</li><li>NFS Server</li><li>Compiler Install</li><li>MPICH Install</li><li>其它特殊功能</li></ul> <li>Slave 主机安装需要:</li>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -