This blog post was originally written by Syama Poluri and Aditi Satam. Send your suggestions or comments to WinServerBlogs@dell.com.
The Dell VRTX Chassis is a converged infrastructure solution that includes separate compute nodes, network infrastructure, and a shared storage subsystem. This blog post illustrates system management tasks related to the management of the PCIe slots and adapters in the VRTX chassis.
Dell Chassis Management Controller (CMC) helps manage, monitor, configure and deploy different hardware components in Dell PowerEdge VRTX Solution.
VRTX chassis provides fully expandable input-output capability with 5x SFF (Small Form Factor) PCIe slots (Gen 2) each 25W capacity and 3xFHFL (Full Height Full Length) PCIe slots (Gen 2) each 150W capacity. The 3XFHFL slots can be used with Double wide PCIe cards that require 225 W. These can be assigned to the servers in the chassis. A server must be turned off before mapping / unmapping a PCIe device to it. A server may have multiple mapped PCIe Adapters. However, each individual PCIe adapter may only be mapped to one server. A maximum of 2 PCIe adapters can be assigned per server if the VRTX CMC has an Express License and 4 if it has Enterprise license. These operations can be done using the CMC UI or out-of-band from the operating system using PowerShell and WSMAN profiles. The PowerShell examples given in this blog use the Dell Chassis PCI Management WSMAN Profile. The profile description and explanation of different classes and properties is located at http://en.community.dell.com/techcenter/extras/m/white_papers/20399998.aspx
The following PowerShell script creates a CIM session to the CMC of the VRTX Chassis and demonstrates enumeration of the PCI Adapters basic properties, PCI Slot properties. The script demonstrates how using PowerShell you can manage assignment of PCI slots to a blade or slot. Please see the attached script VRTX_PCIeSlotMgmt.ps1
First step is to setup a CIM session to the CMC.
#Enter the CMC IP Address
$ipaddress=Read-Host -Prompt "Enter the CMC IP Address"
#Enter the Username and password
$username=Read-Host -Prompt "Enter the Username"
$password=Read-Host -Prompt "Enter the Password" -AsSecureString
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $username,$password
# Setting the CIM Session Options
$cimop=New-CimSessionOption -SkipCACheck -SkipCNCheck -Encoding Utf8 -UseSsl
$session=New-CimSession -Authentication Basic -Credential $credentials -ComputerName $ipaddress -Port 443 -SessionOption $cimop -OperationTimeoutSec 10000000
echo $session
You can enumerate the PCI adapter/device and its properties using the DCIM_ChassisPCIDeviceView class.
Get-CimInstance -CimSession $session -ResourceUri "http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_ChassisPCIDeviceView" -Namespace root/dell/cmc
You can enumerate all the PCIe slots and its properties using the DCIM_ChassisPCISlot class. It gives Fully Qualified Device Descriptor (FQDD) of the assigned blade and slot number. For more information, please refer to Section 7.2.3 of the Dell Chassis PCI Management Profile.
Note: Slot 9 and 10 are reserved for the SPERC8 RAID Controller.
Get-CimInstance -CimSession $session -ResourceUri "http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_ChassisPCISlot" -Namespace root/dell/cmc
The following command illustrates how you can query DCIM_ChassisPCISlot to get slot information where assigned blade is ‘Blade 4’.
Get-CimInstance -CimSession $session -ResourceUri "http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_ChassisPCISlot" -Namespace root/dell/cmc -QueryDialect "http://schemas.microsoft.com/wbem/wsman/1/WQL" -Query "select * from DCIM_ChassisPCISlot WHERE AssignedBladeFQDD='System.Modular.04'"
The AssignPCISlotstoBlades( ) method is used to assign the modular chassis PCI slots to blade servers. The PCIe slots referenced by the SlotFQDDs parameter will be assigned the blades in the BladeFQDDs parameter. In this example, Slot 1 is assigned to Blade 4, Slot 2 to Blade 2 and Slot 3 is assigned to Blade 2 as well.
##Assign PCIe slots to blades
$PCIServiceobj=Get-CimInstance -CimSession $session -ResourceUri "http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_ChassisPCIService" -Namespace root/dell/cmc -Filter 'CreationClassName="DCIM_ChassisPCIService" ; SystemCreationClassName="Dell_ChassisMgr" ; SystemName="srv:system" ; Name="DCIM:ChassisPCIService"'
$slotfqdd=@("PCIE.ChassisSlot.1"; "PCIE.ChassisSlot.2";"PCIE.ChassisSlot.3")
$bladeslotfqdd=@("System.Modular.04";"System.Modular.02";"System.Modular.02")
$assignmethodobj=Invoke-CimMethod -ResourceUri "http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_ChassisPCIService" -InputObject $PCIServiceobj -CimSession $session -MethodName AssignPCISlotstoBlades -Arguments @{SlotFQDDs=$slotfqdd;BladeSlotFQDDs=$bladeslotfqdd}
$assignmethodobj
The UnassignPCISlotsfromBlades( ) method is used to unassign the modular chassis PCIe slots from blade servers. PCIe slots referenced by the SlotFQDDs parameter will be unassigned from the blades in the BladeFQDDs parameter.
## Unassign PCIe slots from blades
$PCIServiceobj=Get-CimInstance -CimSession $session -ResourceUri "http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_ChassisPCIService" -Namespace root/dell/cmc -Filter 'CreationClassName="DCIM_ChassisPCIService" ; SystemCreationClassName="Dell_ChassisMgr" ; SystemName="srv:system" ; Name="DCIM:ChassisPCIService"'
$slotfqdd=@("PCIE.ChassisSlot.1"; "PCIE.ChassisSlot.2";"PCIE.ChassisSlot.3")
$bladeslotfqdd=@("System.Modular.04";"System.Modular.02";"System.Modular.02")
$unassignmethodobj=Invoke-CimMethod -ResourceUri "http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_ChassisPCIService" -InputObject $PCIServiceobj -CimSession $session -MethodName UnassignPCISlotsfromBlades -Arguments @{SlotFQDDs=$slotfqdd;BladeSlotFQDDs=$bladeslotfqdd}
$unassignmethodobj
Additional Resources:
Managing Dell PowerEdge Servers with Windows PowerShell and Dell iDRAC
For more related articles visit Managing Dell PowerEdge VRTX using Windows PowerShell