「pvscan(8)」-

  LINUX MANUAL PAGES

列出所有的PV

命令语法格式

pvscan option_args

pvscan [ option_args ]

pvscan [ position_args ]

显示PV信息

pvscan [ -e|–exported ] [ -n|–novolumegroup ] [ -s|–short ] [ -u|–uuid ] [ COMMON_OPTIONS ]

通过扫描PV填充lvmetad缓存

pvscan –cache [ -b|–background ] [ -a|–activate ay ] [ -j|–major Number ] [ –minor Number ] [ COMMON_OPTIONS ] [ String|PV … ]

命令的常规选项

[ –ignorelockingfailure ]

[ –reportformat basic|json ]

命令描述

命令pvscan扫描系统中所有支持的LVM块设备的PV。

用lvmetad扫描

当与lvmetad(8)守护进程一起使用时,pvscan的运行方式不同。

扫描磁盘需要读取LVM元数据,并识别LVM PV。读取后,lvmetad会缓存元数据,以便LVM命令可以读取它而无需重复扫描磁盘。这很有用,因为扫描磁盘非常耗时,频繁扫描可能会干扰系统和磁盘的正常工作。

未使用lvmetad时,LVM命令将恢复为扫描磁盘以读取元数据。任何需要元数据的LVM命令都会扫描磁盘;不需要“为了其他LVM命令”来运行pvscan命令。

使用lvmetad时,LVM命令通过从lvmetad读取元数据来避免扫描磁盘。当出现新磁盘时,必须对它们进行扫描,以便可以在lvmetad中缓存其元数据。这是通过命令pvscan –cache完成的,该命令扫描磁盘并将元数据传递给lvmetad守护进程。

当出现新设备时,pvscan –cache命令通常由系统服务自动运行。如果系统和lvmetad正常运行,用户通常不需要运行此命令。

由于历史原因,许多脚本包含不必要的pvscan(或vgscan)命令。为了避免系统被使用无关的磁盘扫描中断,普通的pvscan(没有–cache)将像其他LVM命令一样从lvmetad读取元数据。除了显示缓存的当前状态之外,它不会执行任何操作。

  • 当给定特定的设备名称参数时,pvscan –cache将只读取指定的设备。
  • LVM udev规则和systemd服务用于启动自动设备扫描。
  • 要防止pvscan –cache扫描设备,请将它们添加到lvm.conf(5)devices/global_filter。设置devices/filter不适用于系统级扫描。有关更多信息,请参阅:lvmconfig --withcomments devices/global_filter
  • 如果在设备可见后启动或重新启动lvmetad,或者global_filter已更改,则必须使用命令pvscan –cache重新扫描所有设备的元数据。
  • lvmetad不会缓存旧的元数据格式,例如lvm1,如果看到它们将被暂时禁用。
  • 要通知lvmetad有关不再存在的设备,必须给出主要和次要编号,而不是路径。

注意如上事项。

自动激活

当事件驱动的系统服务检测到新的LVM设备时,第一步是自动扫描和缓存来自设备的元数据。这是由pvscan –cache完成的。第二步是自动激活新设备上存在的LV。当包含选项–activate ay时,此自动激活由相同的pvscan –cache命令完成。

可以使用以下命令启用/禁用VG或LV的自动激活:lvm.conf(5)activation/auto_activation_volume_list

有关更多信息,请参阅:lvmconfig –withcomments activation/auto_activation_volume_list

如果未定义此设置,则会自动激活所有LV(当lvm与事件驱动的系统服务完全集成时)。

当VG或LV未自动激活时,需要使用vgchange或lvchange –activate进行传统激活。

  • 命令pvscan自动激活只能与–cache结合使用。
  • 自动激活由–activate ay中的“a”参数指定。这是为了区分系统生成的命令和显式用户命令,尽管它可以在任何激活命令中使用。无论何时使用,都会应用auto_activation_volume_list。
  • 对于属于“部分“或”群集卷组“的LV,尚不支持自动激活。

命令支持的选项及含义

-a|–activate y|n|ay
当被扫描的PV完成VG时,自动激活VG中的LV。 (只适用于“ay”)

-b|–background
如果操作需要轮询,则此选项会导致命令在操作完成之前返回,并且轮询在后台完成。

–cache
扫描一个或多个设备,并将元数据发送到lvmetad守护进程。

-e|–exported
仅显示属于导出VG的PV。

-j|–major Number
设备的主设备。

–minor Number
设备的次设备。

-n|–novolumegroup
仅显示不属于任何VG的PV。

-s|–short
简短的列出格式。

-u|–uuid
除设备名称外,还显示UUID值。

–reportformat basic|json
覆盖报告的当前输出格式,该格式由lvm.conf中的report/output_format设置全局定义。 basic是包含列和行的原始格式。 如果每个命令有多个报告,则每个报告都以报告名称为前缀进行标识。 json以JSON格式生成报告输出。 有关更多信息,请参阅lvmreport(7)。

–ignorelockingfailure
锁定失败后,允许命令继续执行只读元数据操作。

用于lvm的公共选项

-y|–yes
不要以交互方式提示确认,但总是假设答案是肯定的。 使用时要格外小心。 (对于自动no,请参阅-qq。)

-v|–verbose …
设置详细级别。 重复1到4次以增加发送到标准输出和标准错误的消息的详细信息。

-t|–test
在测试模式下运行。 命令不会更新元数据。 这是通过禁用所有元数据写入,但仍然将成功返回到调用函数来实现的。 如果工具依赖于读回它认为已更改但尚未更改的元数据,则可能会在多阶段操作中导致异常错误消息。

-q|–quiet …
抑制输出和日志消息。 覆盖–debug和–verbose。 重复一次也可以通过回答“no”来抑制任何提示。

-h|–help
显示帮助信息。

-d|–debug …
设置调试级别。 重复1到6次以增加发送到日志文件和/或syslog(如果已配置)的消息的详细信息。

–version
显示版本信息并退出。

–profile String
选项–commandprofile或–metadataprofile的别名,具体取决于命令。

–longhelp
显示长帮助文本。

–driverloaded y|n
如果设置为no,则该命令不会尝试使用device-mapper。 用于测试和调试。

–config String
配置命令的设置。 这些覆盖lvm.conf设置。参数String使用与lvm.conf相同的格式,或者可以使用section/field语法。 有关config的更多信息,请参阅lvm.conf(5)。

–commandprofile String
用于命令配置的命令配置文件。 有关配置文件的更多信息,请参阅lvm.conf(5)。

命令行参数

PV
物理卷名称,在/dev下的设备路径。 对于管理PE的命令,PV位置参数通常接受指示物理范围(PE)的范围(或多个范围)的后缀。 省略第一个PE时,默认为设备的起始位置,省略最后一个PE时,默认为结束。

开始和结束范围(包括在内):PV[:PE-PE]…
开始和长度范围(从0开始计算):PV [:PE+PE]…

String
有关String的内容的信息,请参阅选项说明。

Size[UNIT]
参数Size是接受可选单位UNIT的输入数字。 无论大小写如何,输入单位UNIT始终被视为基数两个值,例如 ‘k’和’K’都指1024。默认输入单位由字母指定,后跟|UNIT。

参数UNIT代表其他可能的输入单位:bBsSkKmMgGtTpPeE。 b|B是字节,s|S是512字节的扇区,k|K是千字节,m|M是兆字节,g|G是千兆字节,t|T是太字节,p|P是petabytes,e|E是exabytes。 (这不应该与输出控制–units混淆,大写字母表示1000的倍数。)

相关环境变量

有关lvm使用的环境变量的信息,请参阅lvm(8)。 例如,LVM_VG_NAME通常可以替换所需的VG参数。

相关手册

lvm(8) lvm.conf(5) lvmconfig(8)

pvchange(8) pvck(8) pvcreate(8) pvdisplay(8) pvmove(8) pvremove(8) pvresize(8) pvs(8) pvscan(8)

vgcfgbackup(8) vgcfgrestore(8) vgchange(8) vgck(8) vgcreate(8) vgconvert(8) vgdisplay(8) vgexport(8) vgextend(8) vgimport(8) vgimportclone(8) vgmerge(8) vgmknodes(8) vgreduce(8) vgremove(8) vgrename(8) vgs(8) vgscan(8) vgsplit(8)

lvcreate(8) lvchange(8) lvconvert(8) lvdisplay(8) lvextend(8) lvreduce(8) lvremove(8) lvrename(8) lvresize(8) lvs(8) lvscan(8)

lvm-fullreport(8) lvm-lvpoll(8) lvm2-activation-generator(8) blkdeactivate(8) lvmdump(8)

dmeventd(8) lvmetad(8) lvmpolld(8) lvmlockd(8) lvmlockctl(8) clvmd(8) cmirrord(8) lvmdbusd(8)

lvmsystemid(7) lvmreport(7) lvmraid(7) lvmthin(7) lvmcache(7)

参考文献

  • man 8 pvscan, Version 2.02.176-4.1

更新日志

  • 11/26/2018 创建文章