针对大型集群进行优化
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>
注意
node-def-filename
可被改为您在其中存储节点定义文件的文件名,例如,definenode -f //tmp/my_nodes.def
。CSM 节点数据库现在应该包含所有节点。对于本例中这个小型的集群来说,节点数据库应该包含 16 个计算节点、1 个用户节点、1 个调度器节点和 1 个存储服务器。CSM 管理服务器并不出现在 CSM 数据库内。可以通过 lsnodes 命令查看节点列表。还可以使用
lsnode -F
命令来查看更加详细的列表,该列表可用来备份 CSM 节点定义。如果将该命令的输出重定向到一个文件,您就可以使用definenode -f
命令来重新定义节点了。定义节点组
CSM 允许通过一些条件来对节点进行分组,这样,以后就可以针对某一组节点应用 CSM 命令了。对于需要引用具有相同属性的同类节点的情况来说,这一点将非常有用。
CSM 既支持动态节点组又支持静态节点组。静态节点组包含节点名的一个固定列表,该列表可由管理员手动维护。比如,使用静态节点组,您必须手动将新定义的节点添加到相应的节点组中。在大型集群中,动态节点组更为常见,而且如果能被很好地设置还能节省大量时间和减少在命令行内的输入。动态节点组定义了这样的一个节点列表,该列表中的成员由特定的条件定义,而且如果一个节点(包括新定义的节点)满足这个给定的条件,它就会被自动放到相应的节点组。表 3 给出了一些动态节点组的定义。
表 3: 动态节点组定义命令 注释 Nodegrp -w "Hostname like ‘node%‘" ComputeNodes 创建一个 ComputeNodes
节点组Nodegrp -w "Hostname like ‘schd%‘" SchedulerNodes 创建一个 SchedulerNodes
节点组Nodegrp -w "Hostname like ‘stor%‘" StorageNodes 创建一个 StorageNodes
节点组Nodegrp -w "Hostname like ‘user%‘" UserNodes 创建一个 UserNodes
节点组Nodegrp -w "Hostname like ‘node%‘ && ConsoleServerName==‘term002‘" Rack02 nodegrp -w "Hostname like ‘node%‘ && ConsoleServerName==‘term003‘" Rack03 nodegrp -w "Hostname like ‘node%‘ && ConsoleServerName==‘term...‘" Rack... 基于 Hostname
和ConsoleServerName
为每个 rack 创建一个节点组。假设每个 rackautorpm
有一个控制台服务器。准备 Linux 发布版
CSM 管理服务器应该包含需要跨集群安装的所有 Linux 发布版的 CD 上的全部内容。它也应该为在客户机上进行 CSM 安装做好准备,这是在任何安装进行之前都必须要做的。CSM 为此提供了两个命令,您必须为每个要安装的 Linux 发布版都要运行这两个命令。
要用所需的 CSM 数据准备
/csminstall/Linux
树,可以运行copycsmpkgs
命令。例如:copycsmpkgs -p /path/to/csm:/path/to/downloads InstallDistributionName=RedHatEL-WS InstallDistributionVersion=4 InstallServiceLevel=QU1 copycsmpkgs -p /path/to/csm:/path/to/downloads InstallDistributionName=RedHatEL-AS InstallDistributionVersion=3 InstallServiceLevel=QU5
要用所需的 Linux 发布版 CD 准备
/csminstall/Linux
树,可以运行copycds
命令,例如:copycds InstallDistributionName=RedHatEL-WS InstallDistributionVersion=4 InstallServiceLevel=QU1 copycds InstallDistributionName=RedHatEL-AS InstallDistributionVersion=3 InstallServiceLevel=QU5
一旦为这些 CD 设置好目录结构,您就能添加任意的定制包来在系统安装过程中进行安装或更新,例如:
- Copy to
/csminstall/Linux/.../x86_64/install
to ensure they are installed. - Copy to
/csminstall/Linux/.../x86_64/updates
to install only if an existing version is present.
可以用节点组名创建子目录以便在特定节点组上只安装或更新 RPMS(如果需要这么做的话)。
.
分页: [1] [2] [3]
- 上一篇:集群系统管理CSM安装配置
- 下一篇:高性能Linux集群监控方法
- Copy to