mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
133 lines
5.9 KiB
Plaintext
133 lines
5.9 KiB
Plaintext
The LVM devices file lists devices that lvm can use. The default file is
|
|
\fI#DEFAULT_SYS_DIR#/devices/system.devices\fP, and the \fBlvmdevices\fP(8) command is used to
|
|
add or remove device entries. If the file does not exist, or if lvm.conf
|
|
includes use_devicesfile=0, then lvm will not use a devices file.
|
|
.P
|
|
To use a device with lvm, add it to the devices file with the command
|
|
lvmdevices --adddev, and to prevent lvm from seeing or using a device,
|
|
remove it from the devices file with lvmdevices --deldev. The
|
|
vgimportdevices(8) command adds all PVs from a VG to the devices file,
|
|
and updates the VG metadata to include device IDs of the PVs.
|
|
.P
|
|
Commands that add new devices to the devices file necessarily look outside
|
|
the existing devices file to find the devices being added. pvcreate,
|
|
vgcreate, and vgextend also look outside the devices file to create new
|
|
PVs and add those PVs to the devices file.
|
|
.P
|
|
LVM records devices in the devices file using hardware-specific IDs, such
|
|
as the WWID, and attempts to use subsystem-specific IDs for virtual device
|
|
types (which also aim to be as unique and stable as possible.) These
|
|
device IDs are also written in the VG metadata. When no hardware or
|
|
virtual ID is available, lvm falls back using the unstable device name as
|
|
the device ID. When devnames are used as IDs, lvm performs extra scanning
|
|
to find devices if their devname changes, e.g. after reboot.
|
|
.P
|
|
When proper device IDs are used, an lvm command will not look at devices
|
|
outside the devices file, but when devnames are used as a fallback, lvm
|
|
will scan devices outside the devices file to locate PVs on renamed
|
|
devices. A config setting search_for_devnames can be used to control the
|
|
scanning for renamed devname entries.
|
|
.P
|
|
Related to the devices file, the command option --devices <devnames>
|
|
allows a list of devices to be specified for the command to use,
|
|
overriding the devices file. The listed devices act as a sort of devices
|
|
file in terms of limiting which devices lvm will see and use. Devices
|
|
that are not listed will appear to be missing to the lvm command.
|
|
.P
|
|
Multiple devices files can be kept in \fI#DEFAULT_SYS_DIR#/devices\fP, which
|
|
allows lvm to be used with different sets of devices. For example, system
|
|
devices do not need to be exposed to a specific application, and the
|
|
application can use lvm on its own devices that are not exposed to the
|
|
system. The option --devicesfile <filename> is used to select the devices
|
|
file to use with the command. Without the option set, the default system
|
|
devices file is used.
|
|
.P
|
|
Setting --devicesfile "" causes lvm to not use a devices file.
|
|
.P
|
|
With no devices file, lvm will use any device on the system, and applies
|
|
the filter to limit the full set of system devices. With a devices file,
|
|
the regex filter is not used, and the filter settings in lvm.conf or the
|
|
command line are ignored. The vgimportdevices command is one exception
|
|
which does apply the regex filter when looking for a VG to import.
|
|
.P
|
|
If a devices file exists, lvm will use it, even if it's empty. An empty
|
|
devices file means lvm will see no devices.
|
|
.P
|
|
If the system devices file does not yet exist, the pvcreate or vgcreate
|
|
commands will create it if they see no existing VGs on the system.
|
|
lvmdevices --addev and vgimportdevices will always create a new devices file
|
|
if it does not yet exist.
|
|
.P
|
|
It is recommended to use lvm commands to make changes to the devices file to
|
|
ensure proper updates.
|
|
.P
|
|
The device ID and device ID type are included in the VG metadata and can
|
|
be reported with pvs -o deviceid,deviceidtype. (Note that the lvmdevices
|
|
command does not update VG metadata, but subsequent lvm commands modifying
|
|
the metadata will include the device ID.)
|
|
.P
|
|
Possible device ID types are:
|
|
.br
|
|
.IP \[bu] 2
|
|
.B sys_wwid
|
|
uses the wwid reported by the wwid sysfs file. This is the first choice.
|
|
.IP \[bu] 2
|
|
.B wwid_naa
|
|
uses the naa wwid decoded from the vpd_pg83 sysfs file.
|
|
.IP \[bu] 2
|
|
.B wwid_eui
|
|
uses the eui wwid decoded from the vpd_pg83 sysfs file.
|
|
.IP \[bu] 2
|
|
.B wwid_t10
|
|
uses the t10 wwid decoded from the vpd_pg83 sysfs file.
|
|
.IP \[bu] 2
|
|
.B sys_serial
|
|
uses the serial number reported by the serial sysfs file or the vpd_pg80
|
|
file. A serial number is used if no wwid is available.
|
|
.IP \[bu] 2
|
|
.B mpath_uuid
|
|
is used for dm multipath devices, reported by sysfs.
|
|
.IP \[bu] 2
|
|
.B crypt_uuid
|
|
is used for dm crypt devices, reported by sysfs.
|
|
.IP \[bu] 2
|
|
.B md_uuid
|
|
is used for md devices, reported by sysfs.
|
|
.IP \[bu] 2
|
|
.B lvmlv_uuid
|
|
is used if a PV is placed on top of an lvm LV, reported by sysfs.
|
|
.IP \[bu] 2
|
|
.B loop_file
|
|
is used for loop devices, the backing file name reported by sysfs.
|
|
.IP \[bu] 2
|
|
.B devname
|
|
the device name is used if no other type applies.
|
|
.P
|
|
The default choice for device ID type can be overridden using lvmdevices
|
|
--addev --deviceidtype <type>. If the specified type is available for the
|
|
device it will be used, otherwise the device will be added using the type
|
|
that would otherwise be chosen.
|
|
|
|
LVM commands run by dmeventd will use the devices file
|
|
\fI#DEFAULT_SYS_DIR#/devices/dmeventd.devices\fP if it exists,
|
|
otherwise system.devices is used. VGs that require the dmeventd
|
|
service should be included in system.devices, even if they are
|
|
included in dmeventd.devices.
|
|
|
|
.SS Device ID refresh
|
|
.P
|
|
A machine identifier is saved in the devices file, and is used to detect
|
|
when the devices file has been created by a different machine. If the
|
|
devices file was created by a different machine, it indicates that PVs may
|
|
have been copied or restored onto new devices on a new machine. In this
|
|
case, lvm will search for the PVs listed in system.devices on new devices.
|
|
If found, the device IDs will be updated in system.devices for the
|
|
existing PVIDs (assuming the original device IDs are also no longer
|
|
found.)
|
|
.P
|
|
The machine identifier used in system.devices will be either the DMI
|
|
product_uuid from /sys/devices/virtual/dmi/id/product_uuid, or the
|
|
hostname from uname(2). See lvm.conf device_ids_refresh_checks to
|
|
configure this.
|
|
|