Skip to main content

Check cluster hardware and networking

Node requirements, recommended cluster configurations, and requirements for switching and network segments belong to vStack OS and are described in its documentation: Hardware and network requirements.

vStack Center shows the hardware that the cluster actually sees: hardware inventory and disk data come from the nodes, and port aggregate status comes from the network subsystem. After installation, use this data to verify that the nodes were assembled as planned.

Where to look​

After installation, you can compare the specified configuration with what the cluster actually sees. Hardware inventory comes from the nodes and is available both in the web UI and through the API.

In the web UI, per-node core and memory counts are in Server Nodes (nodes), in a table with the ID, Name, Health, CPU (Cores), and RAM (GB) columns. Disks and memory modules for a specific node are on its page in Hardware and Disk props. Storage-layer pools are in Storage Resources, in the ZFS pools table with the GUID, Name, Health, Consuming, Scrubbing, Resilvering, Current node, and Capacity (RAW) columns.

pd-list​

Lists the cluster's physical disks. Shows the model, size, and pool membership. Use it to verify that pools contain only SSD or NVMe drives of the required capacity.

Access: Cluster master only. The feature.physical_disc_management feature flag must be enabled.

{
"jsonrpc": "2.0",
"method": "pd-list",
"params": {
"auth": { "cookie": "..." }
},
"id": "1"
}

The response is a map keyed by disk serial number:

{
"jsonrpc": "2.0",
"id": "1",
"result": {
"code": 1,
"data": {
"S3Y1NX0M900XXX": {
"node_id": 1,
"device": "da0",
"model": "INTEL SSDSC2KB480G8",
"size": 480103981056,
"vdev_pool_name": "tank",
"pool_name": "tank",
"status": 0,
"lifecycle": 2,
"online_in_cluster": true
}
}
}
}

Expected: each storage-layer disk has online_in_cluster set to true, and size is at least the required capacity. The lifecycle field shows the disk's role: 0 — free, 1 — partitioned, 2 — in a pool, 3 — spare, -1 — error. Until the node reports the role, the field is empty (null).

Errors: -403 — the required privilege is missing; -24201 — Physical disc management is not enabled.

node-hw-list​

Node hardware inventory from SMBIOS data: manufacturer, core count, and memory modules. Use it to compare the processor model and memory capacity with the requirements.

Access: Cluster master only. The feature.hardware_inventory feature flag must be enabled.

{
"jsonrpc": "2.0",
"method": "node-hw-list",
"params": {
"auth": { "cookie": "..." }
},
"id": "1"
}

The response is a map of node_id → device → property:

{
"jsonrpc": "2.0",
"id": "1",
"result": {
"code": 1,
"data": {
"1": {
"0": {
"dev_id": 1,
"dev_name": "Processor",
"dev_serial": 0,
"3": { "prop_id": 3, "prop_name": "Manufacturer", "prop_value": "Intel" },
"4": { "prop_id": 4, "prop_name": "Core Count", "prop_value": 8 }
}
}
}
}
}

Errors: -403 — the method is available only to Cluster master; -26001 — Hardware inventory is not enabled.

portgroup-list​

Node port groups (aggregates): aggregation protocol, member ports, and their flags. The method shows whether LACP has formed on both switches.

Access: Cluster master only. The feature.network_ports_management feature flag must be enabled.

{
"jsonrpc": "2.0",
"method": "portgroup-list",
"params": {
"auth": { "cookie": "..." },
"node_id": 1
},
"id": "1"
}

Response for node 1 with two aggregates:

{
"jsonrpc": "2.0",
"id": "1",
"result": {
"code": 1,
"data": {
"1": {
"lagg10": {
"portgroup_name": "lagg10",
"portgroup_status": 1,
"portgroup_proto": "lacp",
"ports": {
"ix0": { "port_name": "ix0", "port_flag_active": 1, "port_status": 1 },
"ix1": { "port_name": "ix1", "port_flag_active": 0, "port_status": 0 }
}
}
}
}
}
}

Expected: portgroup_proto is lacp, and port_flag_active and port_status are 1 for every port in the aggregate. In the example above, port ix1 is down: the link to the second switch is not up.

Errors: -403 — the method is available only to Cluster master; -25001 — Network ports management is not enabled.

See also​