MTMS-based Discovery

MTMS is short for Machine Type/Model and Serial which is unique for a physical server. The idea of MTMS based hardware discovery is that the admin know the physical location information of the server with specified MTMS. Then the admin can assign nodename and host ip address for the 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 nework): eth2, 50.0.1.1/16
Dynamic IP range for Hosts: 10.0.100.1-10.0.100.100
Dynamic IP range for FSP/BMC: 50.0.100.1-50.0.100.100

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: 50.0.101.1
DHCP assigned FSP/BMC IP Address: 50.0.100.1
FSP/BMC username: ADMIN
FSP/BMC Password: admin

Configure xCAT

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,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","50.0.0.0","255.255.0.0","eth2","<xcatmaster>",,"50.0.1.1",,,,,,,,,,,,

Run the following command to add networks in networks table if there are no entries in it:

makenetworks

Setup DHCP

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 adddress 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="50.0.100.1-50.0.100.100"

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 passwd table:

# tabedit passwd
# key,username,password,cryptmethod,authdomain,comments,disable

For hardware management with ipmi, add the following line:

"ipmi","ADMIN","admin",,,,

Verify the genesis packages

Genesis packages are used to create the root image for network boot and MUST be installed before doing hardware discovery.

  • [RH]:

    # rpm -qa |grep -i genesis
    xCAT-genesis-scripts-ppc64-2.10-snap201507240527.noarch
    xCAT-genesis-base-ppc64-2.10-snap201505172314.noarch
    
  • [ubuntu]:

    # dpkg -l | grep genesis
    ii  xcat-genesis-base-ppc64 2.10-snap201505172314   all          xCAT Genesis netboot image
    ii  xcat-genesis-scripts    2.10-snap201507240105   ppc64el      xCAT genesis
    

Note: If the two packages are not installed, install them first and then run mknb ppc64 to create the network boot root image.

Discover server and define

After environment is ready, and the server is powered, we can start server discovery process. The first thing to do is discovering the FSP/BMC of the server. It is automatically powered on when the physical server is powered.

The following command can be used to discover BMC(s) within an IP range and write the discovered node definition(s) into a stanza file:

bmcdiscover -s nmap --range 50.0.100.1-100 -z > ./bmc.stanza

Note: bmcdiscover will use username/password pair set in passwd table with key equal ipmi. If you’d like to use other username/password, you can use

bmcdiscover -s nmap --range 50.0.100.1-100 -z -u <username> -p <password> > ./bmc.stanza

You need to modify the node definition(s) in stanza file before using them, the stanza file will be like this:

# cat pbmc.stanza
cn1:
    objtype=node
    bmc=50.0.100.1
    mtm=8247-42L
    serial=10112CA
    groups=pbmc,all
    mgt=ipmi

Then, define it into xCATdb:

# cat pbmc.stanza | mkdef -z
1 object definitions have been created or modified.

The server definition will be like this:

# lsdef cn1
Object name: cn1
    bmc=50.0.100.1
    groups=pbmc,all
    hidden=0
    mgt=ipmi
    mtm=8247-42L
    nodetype=mp
    postbootscripts=otherpkgs
    postscripts=syslog,remoteshell,syncfiles
    serial=10112CA

After the physical server is defined into xCATdb, the next thing is update the node definition with the example node attributes:

chdef cn1 ip=10.0.101.1

In order to do BMC configuration during the discovery process, set runcmd=bmcsetup. For more info about chain, please refer to Chain

chdef cn1 chain="runcmd=bmcsetup"

Then, add node info into /etc/hosts and DNS:

makehosts cn1
makedns -n

Start discovery process

To start discovery process, just need to power on the host remotely with the following command, and the discovery process will start automatically after the host is powered on:

rpower cn1 on

[Optional] If you’d like to monitor the discovery process, you can use:

chdef cn1 cons=ipmi
makeconservercf
rcons cn1

Verify node definition

The following is an example of the server node definition after hardware discovery:

# lsdef cn1
Object name: cn1
    arch=ppc64
    bmc=50.0.100.1
    cons=ipmi
    cpucount=192
    cputype=POWER8E (raw), altivec supported
    groups=powerLE,all
    installnic=mac
    ip=10.0.101.1
    mac=6c:ae:8b:02:12:50
    memory=65118MB
    mgt=ipmi
    mtm=8247-22L
    netboot=petitboot
    postbootscripts=otherpkgs
    postscripts=syslog,remoteshell,syncfiles
    primarynic=mac
    serial=10112CA
    supportedarchs=ppc64