---
name: "Sys::Virt::NodeDevice"
section: "3pm"
platform: "linux"
package: "perl-sys-virt"
version: "12.7.0-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Sys::Virt::NodeDevice"
---

# Sys::Virt::NodeDevice(3pm)

Represent & manage a libvirt storage pool

## NAME

Sys::Virt::NodeDevice - Represent & manage a libvirt storage pool

## DESCRIPTION

The `"Sys::Virt::NodeDevice"` module represents a storage pool managed by libvirt. There are a variety of storage pool implementations for LVM, Local directories/filesystems, network filesystems, disk partitioning, iSCSI, and SCSI.

## METHODS

- my $name = $dev-\>**get\_name()**

  Returns a string with a locally unique name of the device

- my $parentname = $dev-\>**get\_parent()**

  Returns a string with a locally unique name of the parent of the device, or undef if there is no parent

- my $xml = $dev-\>get\_xml\_description($flags=0)

  Returns an XML document containing a complete description of the node device's configuration. The optional `$flags` parameter controls generation of the XML document, defaulting to 0 if omitted. It can be one or more of the XML DUMP constants listed later in this document.

- $dev-\>**reattach()**

  Rebind the node device to the host OS device drivers.

- $dev-\>**dettach()**

  Unbind the node device from the host OS device driver

- $dev-\>**reset()**

  Reset the node device. The device must be unbound from the host OS drivers for this to work

- $dev-\>create($flags=0)

  Start a node device whose configuration was previously defined using the `"define_node_device"` method in Sys::Virt. The `$flags` parameter is currently unused and defaults to zero.

- $dev-\>undefine($flags=0)

  Delete a node device whose configuration was previously defined using the `"define_node_device"` method in Sys::Virt. The `$flags` parameter is currently unused and defaults to zero.

- $flag = $dev-\>**get\_autostart()**;

  Return a true value if the node device is configured to automatically start upon boot. Return false, otherwise

- $dev-\>set\_autostart($flag)

  Set the state of the autostart flag, which determines whether the node device will automatically start upon boot of the host OS.

- $dev-\>**is\_active()**

  Returns a true value if the node device is currently running

- $dev-\>**is\_persistent()**

  Returns a true value if the node device has a persistent configuration file defined

- $dev-\>**destroy()**

  Destroy the virtual device releasing any OS resources associated with it.

- my @caps = $dev-\>**list\_capabilities()**

  Return a list of all capabilities in the device.

- $dev-\>update($xml, $flags=0)

  Update the definition of an existing node device with `$xml`. The `$flags` parameter can be use to control which config is affected (see XML UPDATE FLAGS) and defaults to zero (affect current state of the node device).

## CONSTANTS

This section documents constants that are used with various APIs described above

### LIST FILTERING

The following constants are used to filter object lists

- Sys::Virt::NodeDevice::LIST\_CAP\_NET

  Include devices with the network capability

- Sys::Virt::NodeDevice::LIST\_CAP\_PCI\_DEV

  Include devices with the PCI device capability

- Sys::Virt::NodeDevice::LIST\_CAP\_SCSI

  Include devices with the SCSI capability

- Sys::Virt::NodeDevice::LIST\_CAP\_SCSI\_HOST

  Include devices with the SCSI host capability

- Sys::Virt::NodeDevice::LIST\_CAP\_SCSI\_TARGET

  Include devices with the SCSI target capability

- Sys::Virt::NodeDevice::LIST\_CAP\_STORAGE

  Include devices with the storage capability

- Sys::Virt::NodeDevice::LIST\_CAP\_SYSTEM

  Include devices with the system capability

- Sys::Virt::NodeDevice::LIST\_CAP\_USB\_DEV

  Include devices with the USB device capability

- Sys::Virt::NodeDevice::LIST\_CAP\_USB\_INTERFACE

  Include devices with the USB interface capability

- Sys::Virt::NodeDevice::LIST\_CAP\_FC\_HOST

  Include devices with the fibre channel host capability

- Sys::Virt::NodeDevice::LIST\_CAP\_VPORTS

  Include devices with the NPIV vport capability

- Sys::Virt::NodeDevice::LIST\_CAP\_SCSI\_GENERIC

  Include devices with the SCSI generic capability

- Sys::Virt::NodeDevice::LIST\_CAP\_DRM

  Include devices with the DRM capability

- Sys::Virt::NodeDevice::LIST\_CAP\_MDEV

  Include mediated devices

- Sys::Virt::NodeDevice::LIST\_CAP\_MDEV\_TYPES

  Include devices capable of mediated devices

- Sys::Virt::NodeDevice::LIST\_CAP\_CCW\_DEV

  Include CCW devices

- Sys::Virt::NodeDevice::LIST\_CAP\_CSS\_DEV

  Include CSS devices

- Sys::Virt::NodeDevice::LIST\_CAP\_VDPA

  Include VDPA devices

- Sys::Virt::NodeDevice::LIST\_CAP\_AP\_CARD

  Include s390 AP card devices

- Sys::Virt::NodeDevice::LIST\_CAP\_AP\_MATRIX

  Include s390 AP matrix devices

- Sys::Virt::NodeDevice::LIST\_CAP\_AP\_QUEUE

  Include s390 AP queue devices

- Sys::Virt::NodeDevice::LIST\_CAP\_VPD

  Include PCI devices with VPD

- Sys::Virt::NodeDevice::LIST\_CAP\_CCWGROUP\_DEV

  Include s390 CCW group devices

- Sys::Virt::NodeDevice::LIST\_CAP\_CCWGROUP\_MEMBER

  Include s390 CCW group members

- Sys::Virt::NodeDevice::LIST\_ACTIVE

  Include active devices

- Sys::Virt::NodeDevice::LIST\_INACTIVE

  Include inactive devices

- Sys::Virt::NodeDevice::LIST\_PERSISTENT

  Include persistent devices

- Sys::Virt::NodeDevice::LIST\_TRANSIENT

  Include transient devices

### EVENT ID CONSTANTS

- Sys::Virt::NodeDevice::EVENT\_ID\_LIFECYCLE

  Node device lifecycle events

- Sys::Virt::NodeDevice::EVENT\_ID\_UPDATE

  Node device config update events

### LIFECYCLE CHANGE EVENTS

The following constants allow node device lifecycle change events to be interpreted. The events contain both a state change, and a reason though the reason is currently unused.

- Sys::Virt::NodeDevice::EVENT\_CREATED

  Indicates that a device was created

- Sys::Virt::NodeDevice::EVENT\_DELETED

  Indicates that a device has been deleted

- Sys::Virt::NodeDevice::EVENT\_DEFINED

  Indicates that a device configuration has been created

- Sys::Virt::NodeDevice::EVENT\_UNDEFINED

  Indicates that a device configuration has been deleted

### NODE DEVICE CREATION

- Sys::Virt::NodeDevice::CREATE\_XML\_VALIDATE

  Validate the XML document against schema

### NODE DEVICE DEFINE

- Sys::Virt::NodeDevice::DEFINE\_XML\_VALIDATE

  Validate the XML document against schema

### NODE DEVICE UPDATE

- Sys::Virt::NodeDevice::UPDATE\_AFFECT\_CURRENT

  Affect live if node device is active, config if it's not active

- Sys::Virt::NodeDevice::UPDATE\_AFFECT\_LIVE

  Affect live state of node device only

- Sys::Virt::NodeDevice::UPDATE\_AFFECT\_CONFIG

  Affect persistent config only

### XML DUMP OPTIONS

The following constants are used to control the information included in the XML configuration dump

- Sys::Virt::NodeDevice::XML\_INACTIVE

  Report the persistent inactive configuration for the node device.

## AUTHORS

Daniel P. Berrange \<berrange@redhat.com\>

## COPYRIGHT

Copyright (C) 2006-2009 Red Hat Copyright (C) 2006-2009 Daniel P. Berrange

## LICENSE

This program is free software; you can redistribute it and/or modify it under the terms of either the GNU General Public License as published by the Free Software Foundation (either version 2 of the License, or at your option any later version), or, the Artistic License, as specified in the Perl README file.

## SEE ALSO

Sys::Virt, Sys::Virt::Error, `"http://libvirt.org"`
