Customizing the network boot server environment

Many companies use a preboot execution environment (PXE) to boot, install, and deploy hypervisors and operating systems. To use your company's network boot server, you might need to make some configuration changes to match the DPM implementation for the network boot server environment. Use the information in this procedure to customize your existing configuration files to work with the DPM NetworkBoot function.

Before you begin

  • A network boot server environment usually consists of a Dynamic Host Configuration Protocol (DHCP) server, a Trivial File Transfer Protocol (TFTP) server and, optionally, a Domain Name System (DNS) server. These network boot server environments are based on the Intel Preboot eXecution Environment specification and specific Internet Engineering Task Force (IEFT) requests for comments (RFCs) related to networking.

    Before you complete the steps in this procedure, your installation must set up a DHCP server and a TFTP server, according to the IEFT RFCs. These servers can reside on the same or on different systems within the network. Note that the configuration examples in this procedure work for Internet Systems Consortium (ISC) DHCP servers; the configuration statements for other DHCP servers are different.

  • When communicating with network boot servers, DPM sends the universally unique identifier (UUID) of the partition in DHCP option 61, so the DHCP server must be configured to use that option and UUID in class or pool definitions.

    You need to know the UUID of the partition, and the UUIDs of any other partitions for which you want to use the network boot server to install the hypervisor or operating system. To determine the UUID, open the Partition Details task for a specific partition, and find the value listed for Object ID in the General section.

    To indicate that a request comes from an IBM Z® or IBM LinuxONE (LinuxONE) system, DPM also sends an identifier in DHCP option 93. This client-arch option has a fixed value of 32. You can use this option to tailor the processing related to a request from an IBM® system.

Procedure

  1. Create a configuration file for the DHCP server (for example: /etc/dhcp/dhcpd.conf), for IPv4 addresses.
    1. Specify the following options.
      allow booting;
      allow bootp;
    2. In the subnet specification for your network boot server environment, add one of the following statements, substituting the IPv4 address of your TFTP server for the variable ipv4_addr.
      option tftp-server-name <ipv4_addr>;   
                OR 
      next-server <ipv4_addr>
    3. Complete one of the following options.
      Option 1
      1. Define a class with a match for the option dhcp-client-identifier. This class can be used for program selection.
        class "NetworkBoot" {
                match if option dhcp-client-identifier = "df7f2566-05aa-11e6-a31d-9abe94227999";
        }
        
      2. Define a pool that includes both the dynamic address range and the boot configuration to load for all members of the class defined in the previous step. For example:
        pool {
                allow members of "NetworkBoot";
                option bootfile-name            "NetworkBoot.PCI_D22H_004";
                filename                 "NetworkBoot.PCI_D22H_004";
                range 192.168.1.10 192.168.1.30;
             }
        • To specify the boot configuration, you can use either option bootfile-name (as shown in the previous example), or the filename keyword.
        • For the boot configuration, specify the file name, optionally preceded by a relative path.
        • The boot configuration has to be located under the file-root directory of the TFTP server, as described in step 2.
      Option 2
      Specify the dynamic address range and the boot configuration to load globally for your subnet. Use the same statements as described for the pool definition in Option 1.
    4. Optional: Create a configuration file for the DHCP server (for example: /etc/dhcp/dhcpd6.conf), for IPv6 addresses.
      The DHCP server configuration for IPv6 is similar to that for IPv4, only with different keywords. The key difference is the use of a URL to specify the boot configuration; for example:
      option dhcp6.bootfile-url "tftp://[[2001:0db8:0000:0000:0202:b3ff:fe1e:8329]/NetworkBoot.RHEL-7.0";
  2. Verify the structure of the file-root directory of the TFTP server.
    The file-root directory of the TFTP server is the top-level directory, where the TFTP server loads and stores files. It is specified by the -s file root option to tfpd. This directory contains the files associated with the program components to be loaded, as specified in the boot configuration. The supported program components are:
    kernel
    A required component; the kernel of the program to load.
    initrd
    A required component; a RAM disk for the program to load.
    append
    An optional component; additional parameters to the command line of the program to load.

    To work with the DPM NetworkBoot function, the files associated with the kernel and initrd program components must reside under the file-root directory of the TFTP server. The file names can be preceded by a relative path.

    The following examples illustrate boot configuration files. (Note that the examples are formatted to fit on this page, so line breaks might not match the formatting required for a boot configuration file.)
    Example: Boot configuration file for an automated KVM server installation
    ~ # cat /tftpboot/kvm.DPM
    PROMPT 1
    DEFAULT linux
    TIMEOUT 60
    label linux       
            kernel=s390x/kernel.kvm.s390x       
            initrd=s390x/initrd.kvm.s390x
            append=ro systemd.show_status=0 ramdisk_size=40000 cio_ignore=all,!condev,
                !0.0.eb00-0.0.eb02,!0.0.7000,!0.0.7100
    rd.zfcp=0.0.7000,0x500507680210d2ce,0x0000000000000000 rd.zfcp=0.0.7100,0x500507680220d2ce,
                0x0000000000000000
    rd.znet=qeth,0.0.eb00,0.0.eb01,0.0.eb02,layer2=1,portno=1,portname=DUMMY
    ip=192.0.2.0::198.51.100.0:255.255.255.0:zkvm231:enccw0.0.eb00:none nameserver=203.0.113.0 
                searchdomain=z0plex.com vnc 
    vncpassword=pw4demo RUNKS=1 inst.repo=http://203.0.113.0/kvmibm 
                inst.auto=http://203.0.113.0/kvmibm/auto/zkvm231.ks rd_NO_LUKS 
    rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8
    Example: Boot configuration file for an Ubuntu network installation system
    ~ # cat /tftpboot/ubuntu.DPM
    PROMPT 1
    DEFAULT linux
    TIMEOUT 60
    label linux       
            kernel=s390x/kernel.ubuntu.s390x       
            initrd=s390x/initrd.ubuntu.s390x
            append=ro locale=C DEBCONF_DEBUG=5 s390-netdevice/choose_networktype=qeth 
                s390-netdevice/qeth/choose=0.0.eb00-0.0.eb01-0.0.eb02 s390-netdevice/qeth/port=1 
                s390-netdevice/qeth/layer2=true netcfg/use_autoconfig=false 
                netcfg/disable_dhcp=true 
    netcfg/get_ipaddress=192.0.2.30 netcfg/get_netmask=255.255.255.0 
                netcfg/get_gateway= 192.0.2.0 netcfg/get_nameservers=198.51.100.0
    netcfg/get_hostname=zkvm251 netcfg/get_domain=z0plex.com network-console/password=lin390 
                network-console/password-again=lin390 
    preseed/url=http://192.0.2.24/auto/ubuntu.preseed ro systemd.show_status=0 
                ramdisk_size=40000
    For these examples of boot configuration files, the file structure under the file-root directory of the TFTP server must look as follows:
    ~ # ls -al /tftpboot/s390x/
    total 83524
    drwxrwxr-x 2 atftp root      4096 15. Sep 12:41 .
    drwxrwxr-x 5 atftp users     4096 21. Jul 19:12 ..
    -rwxr-xr-x 1 atftp root  26113392 22. Feb 2016  initrd.kvm.s390x
    -rwxr-xr-x 1 atftp root  30881788 21. Apr 21:02 initrd.sles121.s390x
    -rwxr-xr-x 1 atftp root  10605354 21. Apr 14:46 initrd.ubuntu.s390x
    -rwxr-xr-x 1 atftp root   3859968 25. Jan 2016  kernel.kvm.s390x
    -rwxr-xr-x 1 atftp root  10245888 21. Apr 21:02 kernel.sles121.s390x
    -rwxr-xr-x 1 atftp root   3687400 21. Apr 14:46 kernel.ubuntu.s390x
    ~ #
  3. On the HMC, complete the following steps to specify the network boot server as the method of booting the operating system or hypervisor for the partition.
    1. Define a network interface card (NIC) to connect the partition to the network on which the network boot server resides.
      This NIC must be associated with either an OSA port or a HiperSockets adapter. How you define the NIC depends the adapter card type.
      • For a NIC that is associated with an OSA adapter, use the Network section of the Partition Details task.
      • For HiperSockets adapter, use one of the following tasks, depending on the DPM version that is installed on the system.
        DPM R5.2
        Use the Configure Partition Links task to either create a new or use an existing HiperSockets partition link. Add the partition to the list of partitions that can use the partition link; this action automatically creates a NIC for the partition. Next, go to the Define devices section to review information about the NIC and its device numbers.
        DPM R5.1 and earlier versions
        Use the Network section of the Partition Details task to create the NIC.
    2. In the Boot section of the Partition Details task on the HMC:
      1. Select the Network server (PXE) option from the Boot from menu list.
      2. Select the NIC for the adapter that connects the partition to the network on which the network boot server resides.
    3. Click OK to create the partition or to save your changes.
  4. Edit the configuration file for the DHCP server to contain the Object ID value of each partition that is to be a client of the network boot server.
    The following sample shows the option dhcp-client-identifier specified in a partial DHCP server configuration file.
      pool {
                    option bootfile-name        "NetworkBoot.DPM";
                    filename               "NetworkBoot.DPM";
                    range 192.0.2.0 192.0.2.4;
                  }
    host zkvm251 {    
        option dhcp-client-identifier "df7f2566-05aa-11e6-a31d-9abe94227999";
        fixed-address 192.0.2.9;
        option bootfile-name        "kvm.DPM";
        filename       "kvm.DPM";
      }

Results

The network boot server environment is ready for use, and you can successfully start the partitions that use the Network server (PXE) boot option to load and initialize the operating system or hypervisor.