When the physical location of the server is not so important, sequential-based hardware discovery can be used to simplify the discovery work. The idea is: provided a node pool, each node in the pool will be assigned an IP address for host and an IP address for FSP/BMC, then the first physical server discovery request will be matched to the first free node in the node pool, and IP addresses for host and FSP/BMC will be assigned to that physical server.
In this document, the following configuration is used in the example
Management Node info:
MN Hostname: xcat1 MN NIC info for Management Network(Host network): eth1, 10.0.1.1/16 MN NIC info for Service Network(FSP/BMC network): eth2, 188.8.131.52/16 Dynamic IP range for Hosts: 10.0.100.1-10.0.100.100 Dynamic IP range for FSP/BMC: 184.108.40.206-220.127.116.11
Compute Node info:
CN Hostname: cn1 Machine type/model: 8247-22L Serial: 10112CA IP Address: 10.0.101.1 Root Password: cluster Desired FSP/BMC IP Address: 18.104.22.168 DHCP assigned FSP/BMC IP Address: 22.214.171.124 FSP/BMC username: ADMIN FSP/BMC Password: admin
Configure network table¶
Normally, there will be at least two entries for the two subnet on MN in
networks table after xCAT is installed:
#tabdump networks #netname,net,mask,mgtifname,gateway,dhcpserver,tftpserver,nameservers,ntpservers,logservers,dynamicrange,staticrange,staticrangeincrement,nodehostname,ddnsdomain,vlanid,domain,mtu,comments,disable "10_0_0_0-255_255_0_0","10.0.0.0","255.255.0.0","eth1","<xcatmaster>",,"10.0.1.1",,,,,,,,,,,,, "50_0_0_0-255_255_0_0","126.96.36.199","255.255.0.0","eth2","<xcatmaster>",,"188.8.131.52",,,,,,,,,,,,,
Run the following command to add networks in
networks table if there are no entries in it:
Set the correct NIC from which DHCP server provide service:
chdef -t site dhcpinterfaces=eth1,eth2
Add dynamic range in purpose of assigning temporary IP address for FSP/BMCs and hosts:
chdef -t network 10_0_0_0-255_255_0_0 dynamicrange="10.0.100.1-10.0.100.100" chdef -t network 50_0_0_0-255_255_0_0 dynamicrange="184.108.40.206-220.127.116.11"
Update DHCP configuration file:
makedhcp -n makedhcp -a
Config passwd table¶
Set required passwords for xCAT to do hardware management and/or OS provisioning by adding entries to the xCAT
# tabedit passwd # key,username,password,cryptmethod,authdomain,comments,disable
For hardware management with ipmi, add the following line:
Verify the genesis packages¶
The xcat-genesis packages should have been installed when xCAT was installed, but would cause problems if missing. xcat-genesis packages are required to create the genesis root image to do hardware discovery and the genesis kernel sits in
/tftpboot/xcat/. Verify that the
genesis-base packages are installed:
rpm -qa | grep -i genesis
dpkg -l | grep -i genesis
If missing, install them from the
xcat-deps package and run
mknb ppc64 to create the genesis network boot root image.
Prepare node pool¶
To prepare the node pool, shall predefine nodes first, then initialize the discovery process with the predefined nodes.
Predefine a group of nodes with desired IP address for host and IP address for FSP/BMC:
nodeadd cn1 groups=powerLE,all chdef cn1 mgt=ipmi cons=ipmi ip=10.0.101.1 bmc=18.104.22.168 netboot=petitboot installnic=mac primarynic=mac
[Optional] If more configuration planed to be done on BMC, the following command is also needed.
chdef cn1 bmcvlantag=<vlanid> # tag VLAN ID for BMC chdef cn1 bmcusername=<desired_username> chdef cn1 bmcpassword=<desired_password>
In order to do BMC configuration during the discovery process, set
chdef cn1 chain="runcmd=bmcsetup"
[Optional] More operation plan to do after hardware discovery is done,
ondiscover option can be used.
For example, configure console, copy SSH key for OpenBMC, then disable
powersupplyredundancychdef cn01 -p chain="ondiscover=makegocons|rspconfig:sshcfg|rspconfig:powersupplyredundancy=disabled"
|is used to split commands, and
:is used to split command with its option.
Set the target osimage into the chain table to automatically provision the operating system after the node discovery is complete.
chdef cn1 -p chain="osimage=<osimage_name>"
For more information about chain, refer to Chain
Initialize the discovery process¶
Specify the predefined nodes to the nodediscoverstart command to initialize the discovery process:
See nodediscoverstart for more information.
Display information about the discovery process¶
There are additional nodediscover* commands you can run during the discovery process. See the man pages for more details.
Verify the status of discovery using nodediscoverstatus:
Show the nodes that have been discovered using nodediscoverls:
nodediscoverls -t seq -l
Stop the current sequential discovery process using: nodediscoverstop:
Note: The sequential discovery process will stop automatically when all of the node names in the pool are consumed.
Start discovery process¶
To start the discovery process, the system administrator needs to power on the servers one by one manually. Then the hardware discovery process will start automatically.
Verify Node Definition¶
After discovery of the node, properties of the server will be added to the xCAT node definition.
Display the node definition and verify that the MAC address has been populated.