1.2 Configuring Linux

The following explains how to set up the Linux side of a Windows HPC2008/Moab cluster. Before setting up the Linux portion of the cluster, verify the Windows side is configured and can pass the Windows HPC Cluster Diagnostic tests using the HPC Cluster Manager, and synchronize the Linux and Windows clocks by using the ntpdate command on the Linux system.

ntpdate windows.headnode.ip.address

Deploy the Linux head node, configure static IP addresses, and disable IPV6.

Note Turn off IPv6 support, both on the head node and compute nodes, if you are not going to use it as it might conflict with your setup.
Note You must select the development libraries during the OS installation to prevent the Perl module builds from failing.

1.2.1 CentOS

  1. Create the necessary files and directories for kickstart deployment.
    mkdir –p /data/network-install/ISO
    mkdir –p  /data/network-install/kickstart
    mkdir –p /data/network-install/RPM
  2. Download the CentOS ISO to /data/network-install/ISO.
  3. Copy or mount the ISO to /data/network-install/RPM. Copying the ISO is recommended, because this must be available each time you deploy a new Linux node.
    mount –o loop /data/network-install/ISO/CentOS-5.3-x86_64-bin-DVD.iso  /data/network-install/RPM
  4. Choose your compute node’s disk partitioning scheme. The diskpart.txt (located in the Windows head node), ks.cfg, and tftpboot files are set up differently depending on the number of disks used.
  5. Create the kickstart file at /data/network-install/kickstart/ks.cfg. Edit the path to reflect your setup. The following sample assumes there is a single disk and that any existing Linux partitions should be eliminated. It creates three new partitions: one for /boot, one for /, and one for swap.

    1.2.1.1 Sample for single disk systems:

    /data/network-install/kickstart/ks.cfg:

    install
    url --url  http://192.168.3.149/network-install/RPM
    lang en_US.UTF-8
    keyboard us
    network --device eth0 --bootproto dhcp
    rootpw --iscrypted $1$9pyYDTug$cUEbn4xP1Tdjxs7nj2IFl0
    firewall --disabled
    authconfig --enableshadow --enablemd5
    selinux --enforcing
    timezone --utc America/Denver
    clearpart --linux
    bootloader --location=partition
    part /boot --fstype ext3 --size=100  --ondisk=sda --asprimary
    part / --fstype ext3 --size=1024 --grow  --ondisk=sda --asprimary
    part swap --size=128 --grow  --ondisk=sda --asprimary
    reboot
    %packages
    @editors
    @text-internet
    @legacy-network-server
    @dns-server
    @core
    @base
    @ftp-server
    @network-server
    @server-cfg
    device-mapper-multipath

    1.2.1.2 Sample for dual disk systems:

    /data/network-install/kickstart/ks.cfg:

    install
    url --url  http://192.168.3.149/network-install/RPM
    lang en_US.UTF-8
    keyboard us
    network --device eth0 --bootproto dhcp
    rootpw --iscrypted  $1$9pyYDTug$cUEbn4xP1Tdjxs7nj2IFl0
    firewall --disabled
    authconfig --enableshadow --enablemd5
    selinux --enforcing
    timezone --utc America/Denver
    ignoredisk --drives=sda
    clearpart --all --drives=sdb  --initlabel
    bootloader --location=partition
    part /boot --fstype ext3 --size=100  --ondisk=sdb --asprimary
    part / --fstype ext3 --size=1024 --grow  --ondisk=sdb --asprimary
    part swap --size=128 --grow --size=256  --ondisk=sdb --asprimary
    reboot
    %packages
    @editors
    @text-internet
    @legacy-network-server
    @dns-server
    @core
    @base
    @ftp-server
    @network-server
    @server-cfg
    device-mapper-multipath
  6. Configure Apache to share /data/network-install/.
    …
    DocumentRoot "/data/"
    <Directory /data/network-install>
      Options +Indexes
      AllowOverride AuthConfig
      order allow,deny
      allow from all
    </Directory>
    …
  7. Copy /data/network-install/RPM/isolinux/vmlinuz to /tftpboot/vmlinuz.
  8. Copy /data/network-install/RPM/isolinux/initrd.img to /tftpboot/initrd.img.
  9. Create the appropriate tftpboot kickstart boot configuration file. Direct the http address to the head node's internal IP address.

    /tftpboot/pxelinux.cfg/kickstart:

    DEFAULT ks
    PROMPT 0
    TIMEOUT 30
    LABEL ks
      kernel vmlinuz
      append text initrd=initrd.img ramdisk_size=8192 ip=dhcp  ks=http://10.0.0.200/network-install/kickstart/ks.cfg ksdevice=eth0

1.2.2 SUSE Linux Enterprise Server

  1. Create the necessary files and directories for autoyast deployment.
    mkdir –p /data/network-install/ISO
    mkdir –p  /data/network-install/autoyast
    mkdir –p /data/network-install/RPM
  2. Download the SUSE ISO to /data/network-install/ISO. Only the first ISO is necessary for a network installation.
  3. Copy or mount the ISO to /data/network-install/RPM. Because this must be available each time you deploy a new Linux node, copying the ISO is recommended.
    mount –o loop /data/network-install/ISO/SLES-11-DVD-x86_64-GM-DVD1.iso  /data/network-install/RPM
  4. Choose your compute node's disk partitioning scheme. The diskpart.txt (located in the Windows head node), ay.cfg, and tftpboot files are set up differently depending on the number of disks used.
  5. Create the autoyast file in /data/network-install/autoyast/autoyast.xml. Edit the path to reflect your setup. The following sample assumes there is a single disk and that any existing Linux partitions should be eliminated. It creates three new partitions: one for /boot, one for /, and one for swap.

    1.2.2.1 Sample for single disk systems:

    /data/network-install/autoyast/autoyast.xml:

    <?xml  version="1.0"?>
    <!DOCTYPE profile  SYSTEM "/usr/share/autoinstall/dtd/profile.dtd">
    <profile  xmlns="http://www.suse.com/1.0/yast2ns"  xmlns:config="http://www.suse.com/1.0/configns">
      <configure>
        <networking>
          <dns>
            <dhcp_hostname  config:type="boolean">true</dhcp_hostname>
            <dhcp_resolv  config:type="boolean">true</dhcp_resolv>
          </dns>
          <interfaces  config:type="list">
            <interface>
              <bootproto>dhcp</bootproto>
              <device>eth0</device>
              <startmode>onboot</startmode>
            </interface>
          </interfaces>
          <modules  config:type="list">
            <module_entry>
              <device>static-0</device>
              <module></module>
              <options></options>
            </module_entry>
          </modules>
        </networking>
      </configure>
      <install>
        <bootloader>
          <global>
            <activate>true</activate>
            <generic_mbr>false</generic_mbr>
            <boot_mbr>false</boot_mbr>
            <boot_root>true</boot_root>
          </global>
          <loader_type>grub</loader_type>
        </bootloader>
        <general>
          <clock>
            <hwclock>localtime</hwclock>
            <timezone>US/Mountain</timezone>
          </clock>
            <keyboard>
            <keymap>english-us</keymap>
          </keyboard>
          <language>en_US</language>
          <mode>
            <confirm  config:type="boolean">false</confirm>
            <forceboot  config:type="boolean">false</forceboot>
          </mode>
          <mouse>
            <id>probe</id>
          </mouse>
        </general>
        <partitioning  config:type="list">
          <drive>
            <device>/dev/sda</device>
            <initialize  config:type="boolean">false</initialize>
            <partitions  config:type="list">
              <partition>
                <filesystem  config:type="symbol">ext3</filesystem>
                <create  config:type="boolean">true</create>
                <format  config:type="boolean">true</format>
                <partition_nr  config:type="integer">1</partition_nr>
                <mount>/</mount>
                <size>5120mb</size>
              </partition>
              <partition>
                <filesystem  config:type="symbol">swap</filesystem>
                <create  config:type="boolean">true</create>
                <format  config:type="boolean">true</format>
                <partition_nr  config:type="integer">2</partition_nr>
                <mount>swap</mount>
                <size>1024mb</size>
              </partition>
            </partitions>
          </drive>
        </partitioning>
        <software>
          <addons  config:type="list">
            <addon>Base-System</addon>
            <addon>Basis-Devel</addon>
            <addon>File-Server</addon>
            <addon>HA</addon>
            <addon>Linux-Tools</addon>
            <addon>Various-Tools</addon>
            <addon>YaST2</addon>
            <addon>analyze</addon>
            <addon>auth</addon>
          </addons>
          <base>default</base>
        </software>
        <users config:type="list">
          <user>
            <encrypted  config:type="boolean">false</encrypted>
            <user_password>your root  password here</user_password>
            <username>root</username>
          </user>
        </users>
      </install>
    </profile>
  6. Configure Apache to share /data/network-install/.
    …
    DocumentRoot "/data/"
    <Directory /data/network-install>
      Options +Indexes
      AllowOverride AuthConfig
      order allow,deny
      allow from all
    </Directory>
    …
  7. Copy /data/network-install/RPM/boot/x86_64/loader/linux to /tftpboot/vmlinuz.
  8. Copy /data/network-install/RPM/boot/x86_64/loader/initrd to /tftpboot/initrd.img.
  9. Create the appropriate tftpboot autoyast boot configuration file. Direct the http address to the head node's internal IP address.

    /tftpboot/pxelinux.cfg/autoyast:

    DEFAULT ay
    PROMPT 0
    TIMEOUT 30
    LABEL ay
        kernel vmlinuz
        append text initrd=initrd.img  ramdisk_size=8192 ip=dhcp install=http://10.0.0.200/network-install/rpm/ autoyast=http://10.0.0.200/network-install/autoyast/autoyast.xml

Copyright © 2011 Adaptive Computing Enterprises, Inc.®