服务器 频道

网管实战:快速组建Linux集群

    【IT168 专稿】集群是最近几年中最为主要的一种 HPC 硬件:集群(cluster) 就是一组 MPP 的集合。集群中的处理器通常被称为 节点,它具有自己的 CPU、内存、操作系统、I/O 子系统,并且可以与其他节点进行通信。现在 Linux 集群在很多领域都已经变得非常流行了。目前有很多地方都使用常见的工作站运行 Linux 和其他开放源码软件来充当集群中的节点。

一、搭建linux集群

    现在就开始动手搭建和配置一个简单的高性能计算集群系统。初始方案是使用两台PC(系统的具体结构如图1所示),CPU为Pentium D 805,内存为 512MB,用1000Mbps交换机连接,整个硬件环境可以说是再普通不过了。操作系统采用的是Red Hat Enterprise Linux 4.0,该方法对于红旗Linux、Fedora Linux和SuSE等发布版本均可实现。


    图1系统的具体结构

    1.安装运行环境软件

    关于LAM MPI的软件包,请访问网站http://www.lam-mpi.org/进行下载。这里使用的是软件包7.1.4版本
同时,为了最终程序的正常运行,需要libf2c软件包,因为其中含有一些Fortune 77程序的共享库,这里的可执行文件是用Fortune语言编写的。
#wget http://www.lam-mpi.org/download/files/lam-7.1.4-1.i586.rpm #wget ftp://ftp.pbone.net/mirror/www.whiteboxlinux.org/whitebox/4/en/os/x86_64/WhiteBox/RPMS/libf2c-3.4.3-9.EL4.i386.rpm #rpm -ivh libf2c-3.4.3-9.EL4.i386.rpm #rpm -ivh lam-7.1.4-1.i586.rpm
    2.修改/etc/hosts文件

    修改服务器上的/etc/hosts文件,确保由主机名字到IP地址的正确翻译。
127.0.0.1 localhost localhost.localdomain 192.168.0.254 server1.example.com server1 192.168.0.1 station1.example.com station1 192.168.0.2 station2.example.com station2
    3.配置NFS服务器

    (1)安装软件包nfs-utils-1.0.5-3。
    (2)编辑/etc/exports文件如下,共享richard的home目录为可读可写:
#cat /etc/exports /home/richard 192.168.0.0/255.255.255.0(rw,sync)
    (3)启动服务,使用“showmount”命令来检查结果:
#showmount -e server1 Export list for server1: /home/richard 192.168.0.0/255.255.255.0
    4.配置NIS服务器

    (1)安装软件包yp-tools-2.8-1、ypbind-1.12-1和ypserv-2.8-1。
    (2)编辑/etc/sysconfig/network文件,加入NISDOMAIN一行:
NETWORKING=yes HOSTNAME=server1.example.com NISDOMAIN=notexample
    可以用“domainname”命令来验证结果或直接进行修改。
    (3)编辑/var/yp/Makefile文件,修改all一行为:
all : passwd group
    (4)启动服务ypserv和yppasswdd。
    (5)使用“/usr/lib/yp/ypinit -m”命令初始化数据库,并可在/var/yp目录下使用“make”命令更新数据库。

    5.客户端的配置

    下面介绍客户机station1、station2的配置。首先需要安装运行环境软件包lam和libf2c

    (1)配置NIS客户端
    在客户端运行“authconfig”命令,会出现如图2所示窗口。

     图2 运行“authconfig”命令设置NIS客户端

    (2)配置autofs自动加载nfs
    编辑/etc/auto.master文件如下:
#cat /etc/auto.master /home /etc/auto.misc --timeout=60
    并且编辑/etc/auto.misc如下:
#cat /etc/auto.misc Richard -rw,soft,intr 192.168.0.254:/home/richard
    (3)重启计算机
#reboot
    6 。添加一个用户

    由于LAM软件不能在root账号下运行,所以创建一个名为cjh的普通用户账号。
二、设置主服务器和备份服务器自动数据备份

    具体步骤如下:

    1 同时在两个linux服务器配置SSH服务

    2 设置两个linux服务器SSH无密码安全登录

    3 把公匙传到需要备份的服务器上

    4 利用cron进行定时的定时数据同步

    5 数据同步命令例子:
    #rsync -ave ssh 192:168.1.2:/backup//backup/
    建立一个同比时间文件:
    #crontab-e
    0 19 * * 1-7 rsync -ave ssh 192:168.1.2:/backup//backup/

    上面的操作“crontab-e”命令是编辑定时启动脚本, 然后在周一到周日的每天下午19点备份服务器执行SSH远程自动登录主服务器A然后把192.168.1.2的/backup 目录下的所有东西同步到本地的/backup 目录下,这样就达到了自动数据同步备份的目的了。


三、总结与建议

    现在Linux在集群方面成功应用的案例 数不胜数。虽然高性能集群是进行大数据量计算的一种性价比极高的解决方案,但是对于第一次创建集群的用户来说,可能会碰到很多问题。而事实上,这些问题大部分都是可以避免, 下面我们就来看一看创建集群时应该注意的问题。

    1 使用虚拟化工具进行模拟

    如果你以前没有使用过集群,集群规划将是一件比较困难的事情。 有在实践中厂解集群的优点和局限性,才能更好地规划一个新的集群。对于新手而言,避免一些无谓错误的最好方法是先从一个小的集群(使用包括Vmware 等工具)开始。先使用一小部分系统来创建一个测试系统, 看一看到底会碰到什么问题。这可以让你在创建警个集群之前对自己的需求有一个比较清楚的了解。从长远来看,这将会为你节约时间和金钱,因为要纠正一个大的集群系统中的错误将是一件非常困难的事情,并且成本高昂。

    2 尽量使用相同的硬件

    这并不是绝对的,但是一般来说,使用标准化的硬件可以大大简化创建工作量。如果我们在集群的每一台机器上使用相同的硬件,那么集群的安装和配置过程将大大简化,因为我们可以在每一台机器上使用相同的系统映像。如果所有的机器都使用相同的配置,它也将大大简化整个集群的维护工作。最为最要的是,当你为你的集群编写代码时,你无需考虑各个机器之间性能不同的问题,如果使用不同的硬件,这将是一个非常痛苦的过程。


    3 使用高性能网络

    现实中的很多集群系统在创建完成后, 网络总是一个关键的部分。在实践中,非专有集群的性能瓶颈往往出现在网络上。在编写代码时,让你的程序顺从一个慢速的网络是一件非常令人沮丧的事情,并且会耗费大量的时间。由于现在的以太网价格非常便宜,所以真的不应该在这方面节约开支。如果预算于亡许, 最好使用千兆以太网。

    4 为硬件瘦身

    当在一个集群巾配置一个计算节点时,很多硬件我们并不需要。通常不需要声卡和音箱,一般来说我们也不需要鼠标、键盘和显示器。更少的硬件同时也意味着更少的故障率。当然这种精简要有限度,比如我们要为机器安装一个显卡,这样在需要时就可以非常方便地连接上一个显示器。此外,安装一个DVD光驱可以大大方便软件的安装。事实上,这两个设备并不会对整个集群的成本产生多大的影响,但它们却可以使得维护工作更加方便。

    5 尽量让集群与互联网隔离
 
    虽然我们可以将集群中的每一个结点都连接到互联网之上,但最好不要这么做。这是基于安全方面的考虑,事实,如果我们不需要为每一个节点都加固安全性,那么安装的过程将更加简单,性能也会更好,我们也不用经常为大量的机器安装相应的安全补丁。如果想让外部网络可以访问你的集群,可以通过一台经过安全优化的机器来完成,一般来说使用的都是集群的头节点。你必须经常对这一头节点进行维护和监控,并且不要提供过多的权限。此外,将这个头节点机器放在防火墙后的内部网中, 而不是直接连接到Intem et上也是加强安全性的举措之一。

    6 关闭不需要的服务

    Linux在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。但是,开启不必要或有漏洞的服务则会给操作系统带来安全和性能上的影响。对于系统安全来说,如果操作系统中的任何一个漏洞,都可能使整个系统受到攻击。所以,增加系统安全的非常好的办法就是尽量监视系统的功能。至于选择多少服务和功能,要根据工作需求和能力来决定。将不需要的服务和进程前面的*去掉(用空格键),然后重新启动系统,这样就可以使不需要的服务和进程不再启动。用这种办法可以随时根据需求定制系统服务,不但安全有保障,而且还能提高系统的性能,一举两得。要保障Linux正常工作,有些系统服务是必须启动的,例如crond、syslog、nfs等。

    7 编写完整的文档

    无论是使用现有的集群还是创建一个新的集群,建立完美的文档是非常必要的。如果使用的是软件包来创建集群,那么要记录下配置信息。也许刚开始不了解所有的东西,但记录完好的信息将有利于以后对其进行学习研究。当你创建下一个集群时,查阅原来的文档将有助于你避免犯相同的错误。

     8 合理选择Linux发行版本

    我们创建集群的目的是为r满足某一特定的需求,所以我们往往并不需要最新的Linux发行版。一般来说,集群软件包都会基于很多的通用Linux发行版,但其要支持最新的发行版,往往需要一定的时间。在大部分集群系统中,并不需要最新的电子邮件终端,也不需要最新文档阅读器。
0
相关文章