Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92386752
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-28 22:16:15

 
文章来源中国IT实验室收集整理 作者Graham W…

针对大型集群进行优化

    CSM 本身就具有可伸缩性。Red Hat Linux 在许多标准条件下也能很好地正常工作。但为了让大型的集群环境能顺利运行,还是需要对管理服务器进行一些优化。以下列举了优化方法的一些样例:

侦听在特定接口上的 DHCP 请求。
编辑 /etc/sysconfig/dhcpd DHCPD 配置文件以使 DHCPDARGS 设置为合适的接口。变量 DHCPDARGS 存在于 Red Hat Linux 的 /etc/init.d/dhcpd DHCPD 启动脚本中,用来启动具有特定参数的 DHCP 守护程序。为了能够在 eth0 侦听,请确保多个参数均已包含在引号之内,如下所示:
DHCPDARGS="eth0"

增加 ARP 表大小和超时设置。
如果一个很大的网络的同一个子网上具有很多或全部集群,ARP 表就可能会过载,就会让人觉得 CSM 和网络请求的响应速度太慢。为了避免上述现象,需要对运行中的系统做如下更改,并将这些更改添加到 /etc/sysctl.conf 文件,以使更改能够持久有效:
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.neigh.default.gc_thresh1 = 512
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_stale_time = 240

增加 NFS 守护程序的数量。
默认地,标准的 CSM 扇出值为 16。这意味着跨集群运行的命令会一次运行 16 个节点,节点安装也是如此。Red Hat Linux 的标准 NFS 设置是 8 个可同时运行的守护程序。您可以扩展 NFS,方法是增加 NFSD 线程数到 16 以匹配默认的 CSM 扇出值。如果增加扇出值,您可能也会想增加 NFS 的线程数。一般地,扇出值为 32、NFS 线程数为 32 对于保证速度和可靠性已经足够,而且还能允许同时安装具 32 节点的单个 rack。要实现这一目的,创建配置文件 /etc/sysconfig/nfs 并添加如下行:
RPCNFSDCOUNT=16

设置 NTP 服务器。
默认的 Red Hat Linux 配置应该也适用于 NTP 服务器。向 /etc/ntp.conf NTP 配置文件添加一个配置行以允许集群网络上的节点能够与管理服务器的时钟同步,如下所示:
restrict 192.168.0.253 mask 255.255.255.0 notrust nomodify notrap

如果管理服务器能够连到一个外部的时钟服务器,通过添加如下一行来将该管理服务器的时钟与这个外部时钟服务器同步:
server server.full.name

通过如下指令确保 NTP 服务器在运行并会在引导时自动启动:
chkconfig ntpd on
service ntpd start

安装节点

    完成所有的设置和配置步骤之后,CSM 管理服务器就安装完毕了。在安装节点之前,需要在 CSM 管理服务器上完成一些额外的配置来定义节点安装的方式。在 CSM 管理服务器上执行本节所示的安装步骤。

定义节点

    可以参考有关定义节点手册页来定义节点。但定义大量节点的一种更为简单的方法是通过节点定义文件。具体做法是先创建一个 stanza 文件,然后将它作为参数传递给 CSM 来定义所有列出的节点。创建 stanza 文件很容易。

    清单 1 给出了一个简短的示例节点定义文件。如果其他节点具有与之相同的属性,可以在默认 stanza 文件的顶部定义它们。之后,每个 stanza 都应该代表一个节点名,下跟特定于节点的属性。这个例子显示了应该如何定义示例集群中的这三个机器 —— 两个计算节点,一个存储服务器。


清单 1. 示例节点定义文件
  default:
  ConsoleMethod = mrv
  ConsoleSerialDevice = ttyS0
  ConsoleSerialSpeed = 9600
  InstallAdapterName = eth0
  InstallCSMVersion = 1.4.1
  InstallMethod = kickstart
  InstallOSName = Linux
  InstallPkgArchitecture = x86_64
  ManagementServer = mgmt001.cluster.com
  PowerMethod = bmc
node001.cluster.com:
  ConsolePortNum = 1
  ConsoleServerName = term002
  HWControlNodeId = node001
  HWControlPoint = node001_d.cluster.com
  InstallDistributionName = RedHatEL-WS
  InstallDistributionVersion = 4
  InstallServiceLevel = QU1
node002.cluster.com:
  ConsolePortNum = 2
  ConsoleServerName = term002
  HWControlNodeId = node002
  HWControlPoint = node002_d.cluster.com
  InstallDistributionName = RedHatEL-WS
  InstallDistributionVersion = 4
  InstallServiceLevel = QU1
stor001.cluster.com:
  ConsolePortNum = 2
  ConsoleServerName = term001
  HWControlNodeId = stor001
  HWControlPoint = stor001_d.cluster.com
  InstallDistributionName = RedHatEL-AS
  InstallDistributionVersion = 3
  InstallServiceLevel = QU5

    对于大型集群来说,节点定义文件的脚本要比本例中的这个脚本长很多。当如果将以下命令传递给 CSM ,它可以非常迅速地创建节点:

definenode -f 

   注意 node-def-filename 可被改为您在其中存储节点定义文件的文件名,例如,definenode -f //tmp/my_nodes.def。

    CSM 节点数据库现在应该包含所有节点。对于本例中这个小型的集群来说,节点数据库应该包含 16 个计算节点、1 个用户节点、1 个调度器节点和 1 个存储服务器。CSM 管理服务器并不出现在 CSM 数据库内。可以通过 lsnodes 命令查看节点列表。还可以使用 lsnode -F 命令来查看更加详细的列表,该列表可用来备份 CSM 节点定义。如果将该命令的输出重定向到一个文件,您就可以使用 definenode -f 命令来重新定义节点了。

阅读(264) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~