2.2.0 Confluent release
There is an update to the HPC software stack, bringing xCAT to 2.14.5.lenovo1, based on 2.14.5, and confluent is brought to 2.2.0.
Here are some of the highlighted changes:
nodersync
command
Like nodeshell
does for ssh commands, nodersync supervises using rsync to
push a file or directory to multiple nodes.
nodestorage command
Ability to create and delete volumes and arrays through the xClarity Controller. Examples:
$ nodestorage d5 show
d5: Disk drive_0 Description: 1.00TB 7.2K 6Gbps SATA 2.5" HDD
d5: Disk drive_0 State: unconfigured
d5: Disk drive_0 FRU: 00LF039
d5: Disk drive_0 Serial Number: S470YV16
d5: Disk drive_1 Description: 1.00TB 7.2K 6Gbps SATA 2.5" HDD
d5: Disk drive_1 State: unconfigured
d5: Disk drive_1 FRU: 00LF039
d5: Disk drive_1 Serial Number: S470RYXR
d5: Disk drive_2 Description: 1.00TB 7.2K 6Gbps SATA 2.5" HDD
d5: Disk drive_2 State: unconfigured
d5: Disk drive_2 FRU: 00LF039
d5: Disk drive_2 Serial Number: S470Z5QA
d5: Disk drive_3 Description: 1.00TB 7.2K 6Gbps SATA 2.5" HDD
d5: Disk drive_3 State: unconfigured
d5: Disk drive_3 FRU: 00LF039
d5: Disk drive_3 Serial Number: S470XWRZ
d5: Disk m.2-0 Description: 128GB M.2 SATA SSD
d5: Disk m.2-0 State: unconfigured
d5: Disk m.2-0 FRU: 00LF428
d5: Disk m.2-0 Serial Number: H688001Y
d5: Disk m.2-1 Description: 128GB M.2 SATA SSD
d5: Disk m.2-1 State: unconfigured
d5: Disk m.2-1 FRU: 00LF428
d5: Disk m.2-1 Serial Number: H688001Z
$ nodestorage d5 create -r 0 -d drive_0,drive_1,drive_2,drive_3 -n data
d5: Volume data: Size: 3.811 TB
d5: Volume data: State: Optimal
d5: Volume data: Array 1-4
$ nodestorage d5 create -r 1 -d rest -n os
d5: Volume os: Size: 122.040 GB
d5: Volume os: State: Optimal
d5: Volume os: Array 0-0
$ nodestorage d5 show
d5: Disk drive_0 Description: 1.00TB 7.2K 6Gbps SATA 2.5" HDD
d5: Disk drive_0 State: online
d5: Disk drive_0 FRU: 00LF039
d5: Disk drive_0 Serial Number: S470YV16
d5: Disk drive_0 Array: 1-4
d5: Disk drive_1 Description: 1.00TB 7.2K 6Gbps SATA 2.5" HDD
d5: Disk drive_1 State: online
d5: Disk drive_1 FRU: 00LF039
d5: Disk drive_1 Serial Number: S470RYXR
d5: Disk drive_1 Array: 1-4
d5: Disk drive_2 Description: 1.00TB 7.2K 6Gbps SATA 2.5" HDD
d5: Disk drive_2 State: online
d5: Disk drive_2 FRU: 00LF039
d5: Disk drive_2 Serial Number: S470Z5QA
d5: Disk drive_2 Array: 1-4
d5: Disk drive_3 Description: 1.00TB 7.2K 6Gbps SATA 2.5" HDD
d5: Disk drive_3 State: online
d5: Disk drive_3 FRU: 00LF039
d5: Disk drive_3 Serial Number: S470XWRZ
d5: Disk drive_3 Array: 1-4
d5: Disk m.2-0 Description: 128GB M.2 SATA SSD
d5: Disk m.2-0 State: online
d5: Disk m.2-0 FRU: 00LF428
d5: Disk m.2-0 Serial Number: H688001Y
d5: Disk m.2-0 Array: 0-0
d5: Disk m.2-1 Description: 128GB M.2 SATA SSD
d5: Disk m.2-1 State: online
d5: Disk m.2-1 FRU: 00LF428
d5: Disk m.2-1 Serial Number: H688001Z
d5: Disk m.2-1 Array: 0-0
d5: Array 1-4 Available Capacity: 0.000 MB
d5: Array 1-4 Total Capacity: 3.811 TB
d5: Array 1-4 RAID: RAID 0
d5: Array 1-4 Disks: drive_0,drive_1,drive_2,drive_3
d5: Array 1-4 Volumes: data
d5: Array 0-0 Available Capacity: 0.000 MB
d5: Array 0-0 Total Capacity: 131.072 GB
d5: Array 0-0 RAID: RAID 1
d5: Array 0-0 Disks: m.2-0,m.2-1
d5: Array 0-0 Volumes: os
d5: Volume data: Size: 3.811 TB
d5: Volume data: State: Optimal
d5: Volume data: Array 1-4
d5: Volume os: Size: 122.040 GB
d5: Volume os: State: Optimal
d5: Volume os: Array 0-0
$ nodestorage d5 delete -n data
Deleted: data
Revamped nodediscover command behavior
Fields can now be selected and the results can be ordered by any requested field. New fields include switch, port, otherip, and bay.
$ nodediscover list -o node -f node,serial,model,type,switch,port,bay -t lenovo-xcc
Node| Serial| Model| Type| Switch| Port| Bay
------|---------|-----------|-----------|-------|-----------|----
| J30001C1| 7X83CTO3WW| lenovo-xcc| r8e1| Ethernet48|
| J30008VD| 7X02CTO1WW| lenovo-xcc| r8e1| Ethernet48|
d1| DVJJ1086| 7X2106Z009| lenovo-xcc| r8e1| Ethernet35| 1
d2| J1001PNG| 7X21CTO1WW| lenovo-xcc| r8e1| Ethernet35| 2
d3| DVJJ1042| 7X2104Z000| lenovo-xcc| r8e1| Ethernet35| 3
d4| DVJJ1022| 7X2104Z000| lenovo-xcc| r8e1| Ethernet35| 4
d5| J1001PNF| 7X21CTO1WW| lenovo-xcc| r8e1| Ethernet37| 1
d6| J1001PNE| 7X21CTO1WW| lenovo-xcc| r8e1| Ethernet37| 2
d7| 00000864| 7X2104Z023| lenovo-xcc| r8e1| Ethernet37| 3
d8| DVJJ1003| 7X2104Z000| lenovo-xcc| r8e1| Ethernet37| 4
r8u32| J30002HG| 7X07CTO1WW| lenovo-xcc| r8e1| Ethernet32|
r8u33| J30002H3| 7X03CTO1WW| lenovo-xcc| r8e1| Ethernet33|
switches may now be added directly and indirectly
Switches previously could only be indirectly referenced to appear in the /networking apis, now setting a node with type=’switch’ will cause it to be included even if it has no nodes.
$ nodedefine r8t1 type=switch
r8t1: created
Default autofill of collective.manager on discovery
If in a collective, confluent now by default selects the node that performs discovery as the collective manager. It continues to honor manually indicated collective.manager, this only changes the behavior if confluent is in a collective, a node is discovered, and no collective.manager is set. collective.manager still must be manually set if bypassing the discovery facility in a collective configuration.
confluent2lxca, confluent2xcat, and confluent2ansible
Commands to generate import data for xClarity Administrator, xCAT, and ansible from confluent attributes.
$ confluent2xcat d3-d6 -m mac.csv
$ cat mac.csv
#node,mac
d3,08:94:ef:3f:e1:32
d4,08:94:ef:41:01:f0
d5,08:94:ef:50:be:c2
d6,08:94:ef:50:23:60
$ confluent2xcat d3-d6 -o nodes.stanza
$ cat nodes.stanza
d3:
objtype=node
arch=x86_64
netboot=xnba
mgt=ipmi
bmc=fe80::a94:efff:fe3f:e0af%eth1
mac=08:94:ef:3f:e1:32
slotid=3
groups=everything,hoplite,dense,compute
mpa=smm1
d4:
objtype=node
arch=x86_64
netboot=xnba
mgt=ipmi
bmc=fe80::a94:efff:fe41:1b5%eth1
mac=08:94:ef:41:01:f0
slotid=4
groups=everything,dense,compute
mpa=smm1
d5:
objtype=node
arch=x86_64
netboot=xnba
mgt=ipmi
bmc=fe80::a94:efff:fe50:b75d%eth1
mac=08:94:ef:50:be:c2
slotid=1
groups=everything,dense,compute
mpa=smm2
d6:
objtype=node
arch=x86_64
netboot=xnba
mgt=ipmi
bmc=fe80::a94:efff:fe50:1c6b%eth1
mac=08:94:ef:50:23:60
slotid=2
groups=everything,dense,compute
mpa=smm2
PAM enabled by default, usable alongside internal database
PAM passwords for confluent accounts is new enabled by default. Unlike before, internal accounts can be used while PAM is also enabled. Performance is also improved with PAM authentication.
nodeconsole can now open terminals tiled
nodeconsole -t
can be used to open a noderange of consoles in a terminal, using tmux to share the screen
nodeconfig now accepts batch scripts
The batch files can mix and match three syntaxes:
$ cat settings.batch
set Processors.HyperThreading Disable
Processors.IntelVirtualizationTechnology: Disable
Processors.SNC=Enable
$ nodeconfig d3 -b settings.batch
$ nodeconfig d3 processors.hyperthreading processors.intelvirtualizationtechnology processors.snc
d3: Processors.HyperThreading: Disable
d3: Processors.IntelVirtualizationTechnology: Disable
d3: Processors.SNC: Enable
Improved performance of nodesensors/nodehealth
IPMI SDR caches are now retained across restarts of the service.
nodelicense
command now available to manage firmware license keys
nodemedia
can now take a parameterized filename to be unique per node
$ nodemedia d4,d6 attach http://172.30.0.254/install/isos/{node}.iso
d6: http://172.30.0.254/install/isos/d6.iso (insecure)
d4: http://172.30.0.254/install/isos/d4.iso (insecure)
Discovery process can now relax reuse and complexity password policies
A commonly requested set of behaviors is shown:
$ nodeattrib d3 discovery.passwordrules=expiration=no,loginfailures=no,reuse=0,complexity=no
d3: expiration=no,loginfailures=no,reuse=0,complexity=no
collate
now alows selection of the base for comparison
collate -d -b <node>
indicates to collate that
nodeattrib now provides some error checking of select attributes
$ nodeattrib d3 discovery.policy=invalid
Error: Bad Request - Attribute discovery.policy does not accept list member invalid (valid values would be manual,permissive,pxe,open)
nodeattrib
and nodegroupattrib
now provide tab completion for attribute names
Tab may now be pressed while entering attribute names into the nodeattrib
and nodegroupattrib
commands.
nodefirmware and nodeinventory provide more detail about PSUs in ThinkSystem servers
$ nodefirmware r8u32|grep PSU
r8u32: PSU 1 FSF055: 2.50
r8u32: PSU 2 FSF055: 2.50
$ nodeinventory r8u32|grep PSU
r8u32: PSU 1 Board model: SP50L09195
r8u32: PSU 1 Wattage: 750
r8u32: PSU 1 Board manufacturer: ACBE
r8u32: PSU 1 FRU Number: 01GV266
r8u32: PSU 1 Board product name: LENOVO Product
r8u32: PSU 1 Board manufacture date: 2017-01-02T12:00
r8u32: PSU 1 Board serial number: A1DB7131023
r8u32: PSU 1 Revision:
r8u32: PSU 2 Board model: SP50L09195
r8u32: PSU 2 Wattage: 750
r8u32: PSU 2 Board manufacturer: ACBE
r8u32: PSU 2 FRU Number: 01GV266
r8u32: PSU 2 Board product name: LENOVO Product
r8u32: PSU 2 Board manufacture date: 2017-01-02T12:00
r8u32: PSU 2 Board serial number: A1DB7131052
r8u32: PSU 2 Revision:
noderanges may now operate against wildcard attrib names (net.*hwaddr
)
$ nodeattrib net.*hwaddr=08:94:ef:3f:e1:32 net.*hwaddr
d3: net.hwaddr:
d3: net.pxe.hwaddr: 08:94:ef:3f:e1:32
New CNOS plugin for nodehealth
on Lenovo NE series switches
$ nodedefine r8t1 hardwaremanagement.method=cnos
r8t1: created
$ nodehealth r8t1
r8t1: critical (Power Supply 1:12V Output Fail)