How to Minimize Guest Domain Outages When Removing a PCIe Card

This procedure enables you to avoid an outage to a guest domain that does not have direct I/O or SR-IOV device assigned to it and that has multiple paths configured. Note that this procedure requires two reboots of the primary domain.

  1. Stop the guest domain that has the PCIe slot assigned to it.
    primary# ldm stop domain-name
  2. Remove the PCIe slot from the guest domain.
    primary# ldm remove-io PCIe-slot domain-name
  3. Stop the guest domains that have PCIe slots and SR-IOV virtual functions assigned to them.
    primary# ldm stop domain-name

    Note:

    You do not need to stop guest domains that have PCIe buses assigned to them because they might be providing alternate paths to network and disk devices to the guest domains.
  4. Initiate a delayed reconfiguration on the primary domain so that you can assign this slot to it.
    primary# ldm start-reconf primary
  5. Add the PCIe slot to the primary domain.
    primary# ldm add-io PCIe-slot domain-name
  6. Reboot the primary domain.
    primary# shutdown -i6 -g0 -y
  7. Use the hotplug commands to replace the PCIe card.

    For information about Oracle Solaris OS hotplug capabilities, see Chapter 2, Dynamically Configuring Devices in Managing Devices in Oracle Solaris 11.4.

  8. After the card is replaced, perform the following steps if you must reassign this same PCIe slot to the guest domain:
    1. Initiate a delayed reconfiguration on the primary domain.
      primary# ldm start-reconf primary
    2. Remove the PCIe slot from the primary domain.
      primary# ldm remove-io PCIe-slot domain-name
    3. Reboot the primary domain to cause the removal of the PCIe slot to take effect.
      primary# shutdown -i6 -g0 -y
    4. Reassign the PCIe slot to the guest domain.
      primary# ldm add-io PCIe-slot domain-name
    5. Start the guest domains to which you want to assign PCIe slots and SR-IOV virtual functions.
      primary# ldm start-domain domain-name