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

📄 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; charset=gb2312">
   <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 background="http://linux.vbird.org/VBirdLinux.jpg" nosave>

<center><center><b><font color="#3333FF"><font size=+2><font face="标楷体">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="标楷体">与</font><font face="Times New Roman,Times"> ADSL </font><font face="标楷体">私房菜</font></font></font></b>
<br>
<a href="http://linux.vbird.org" target="_top"><img SRC="../images/VBirdTitle2.jpg" NOSAVE BORDER=0 height=25 width=90></a>
<a target="_blank" href="http://linux.vbird.org/linux_basic"><img SRC="../images/icon_system.gif" NOSAVE BORDER=0 height=25 width=90></a>
<a target="_blank" href="http://linux.vbird.org/linux_server"><img SRC="../images/icon_server.gif" NOSAVE BORDER=0 height=25 width=90></a>
<a target="_blank" href="http://linux.vbird.org/linux_security"><img SRC="http://linux.vbird.org/images/icon_security.jpg" NOSAVE BORDER=0 height=25 width=90></a>
<a href="http://phorum.vbird.org" target="_blank"><img SRC="../images/icon_forums.gif" NOSAVE BORDER=0 height=25 width=90></a>
<a target="_blank" href="http://linux.vbird.org/adsl"><img SRC="../images/icon_adsl.gif" NOSAVE BORDER=0 height=25 width=90></a>
<br>
<hr WIDTH="100%">
</center>
<font color="#3333FF"><font size=+2><a href="0600cluster.php"><font face="标楷体">简易</font>
Cluster <font face="标楷体">架设</font></a></font></font></center>

<div align=right><font face="新细明体"><font color="#3333FF"><font size=-1>最近更新日期∶2003/05/20</font></font></font></div>
<font face="新细明体"><font color="#3333FF"><font size=-2>  </font></font></font>
<table BORDER COLS=1 WIDTH="100%" BGCOLOR="#FFCCCC" >
<tr>
<td><font color="#000099"><font size=-1>近年来因为数值模式模拟的盛行,所以『平行运算』的架构也就越来越重要了!什么是数值模拟呢?主要就是藉由一些物理理论去开发出来的一些『计算公式』,而这些计算公式藉由程式语言(例如C、Fortran等等)实际的将他编译成为可执行的程式,最常见的例如中央气象局不是每天都会预报天气吗?这个预报的动作就是利用数值计算去演算出来的。另外,还有空气品质模式模拟,也是经过运算出来的,除此之外,例如天文、物理、水文等等很多方面的工作,都是利用这种数值模拟的运算的喔!不过,这些程式是很大型的!也就是说,他们在运算的时间是很长的,如果使用单颗
CPU 的话,不论这颗 CPU 的频率与效能有多高,还是得要运算个好几个钟头的~如此一来,对于像气象预报这个急需时效性的工作可能就会有所延误啊!不过,如果我将这个运算的工作同时丢给多颗
CPU 呢?也就是让多颗 CPU 同时进行这个程式的运算工作,如此一来,将可以大大的减低时间的损耗了~这就是平行运算的简单说明。在
Linux 平台上面,要达成简单的平行运算,可以透过 MPI 的函式库,例如 MPICH
就是一个很有名的 MPI 软体喔!马上来给他看看平行运算类型的 Cluster 建置吧!</font></font></td>
</tr>
</table>
<font color="#000099"><font size=-2>  </font></font>
<br><font color="#000099"><font size=+1><a href="#theory">原理</a>∶</font></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 Hat
9 )</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-Window
Server/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 color="#000099"><font size=+1>原理∶</font></font>
<ul>
<hr WIDTH="100%">
<li>
<a NAME="theory_whatiscluster"></a><font color="#000099"><font size=+1>什么是
Cluster 与 Cluster 的优点</font></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 color="#000099"><font size=+1>Cluster
的主从架构</font></font></li>

<br>  
<br>最简单的 Cluster 其实就是以一种主从架构来进行资料的运算工作的,图示如下∶
<center><img SRC="0600cluster/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)R
Shell, 亦即称为 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 color="#000099"><font size=+1>达成
Cluster 所需要额外功能 ( RSH ) 与软体 ( MPICH )</font></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
工作的讯息,以使主机正确的工作;而如果在不同的主机之间,那就可以使用 R
Shell 来进行指令的下达喔,如此一来,我们就可以直接在 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="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 color="#000099"><font size=+1>架设流程</font></font>
<ul>要架设 Cluster 当然就是需要多部的 PC 来连线啦!不然怎么称为 Cluster
呢?您说是吧!所以,无论如何,在架设 Cluster 之前,请务必要确认您的『所有硬体以及网路功能都是完整无缺的!』否则就无法继续下去啦!另外,建议
Cluster 的所有主机规格尽量相同,可以避免等待的困扰呢!底下就来谈一谈整个架设流程吧!
<br>  
<br>
<hr WIDTH="100%">
<li>
<a NAME="step_overall"></a><font color="#000099"><font size=+1>整体架构</font></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>

⌨️ 快捷键说明

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