「vgchange(8)」-

  LINUX MANUAL PAGES
vgchange – Change volume group attributes

命令语法格式

vgchange option_args position_args
[ option_args ]

[ position_args ]

-a|–activate y|n|ay
–activationmode partial|degraded|complete

–addtag Tag

–alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit
-A|–autobackup y|n

-c|–clustered y|n
–commandprofile String

–config String
-d|–debug
–deltag Tag

–detachprofile

–driverloaded y|n
-f|–force

-h|–help

-K|–ignoreactivationskip
–ignorelockingfailure

–ignoremonitoring

–ignoreskippedcluster

–lockopt String

–lockstart

–lockstop

–locktype sanlock|dlm|none
-l|–logicalvolume Number
–longhelp
-p|–maxphysicalvolumes Number
–metadataprofile String

–monitor y|n

–noudevsync
-P|–partial

-s|–physicalextentsize Size[m|UNIT]
–poll y|n

–profile String

–pvmetadatacopies 0|1|2
-q|–quiet
–refresh

–reportformat basic|json
-x|–resizeable y|n

-S|–select String
–sysinit

–systemid String
-t|–test

-u|–uuid

-v|–verbose
–version

–[vg]metadatacopies all|unmanaged|Number
-y|–yes

修改常规VG属性

对于括号中列出的选项,任何一个都是必需的,之后其他选项是可选的。

vgchange
( -l|–logicalvolume Number,

-p|–maxphysicalvolumes Number,

-u|–uuid,

-c|–clustered y|n,

-s|–physicalextentsize Size[m|UNIT],

-x|–resizeable y|n,
–addtag Tag,

–deltag Tag,

–alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit,

–pvmetadatacopies 0|1|2,

–[vg]metadatacopies all|unmanaged|Number,

–profile String,

–detachprofile,

–metadataprofile String )
[ -A|–autobackup y|n ]

[ -S|–select String ]

[ -f|–force ]

[ –poll y|n ]

[ –ignoremonitoring ]

[ –ignoreskippedcluster ]

[ –noudevsync ]

[ –reportformat basic|json ]

[ COMMON_OPTIONS ]

[ VG|Tag|Select … ]

从dmeventd中启动或停止监控LV

vgchange –monitor y|n
[ -A|–autobackup y|n ]

[ -S|–select String ]

[ -f|–force ]

[ –sysinit ]

[ –ignorelockingfailure ]

[ –poll y|n ]

[ –ignoremonitoring ]

[ –ignoreskippedcluster ]

[ –noudevsync ]

[ –reportformat basic|json ]

[ COMMON_OPTIONS ]

[ VG|Tag|Select … ]

启动或停止处理LV转换

vgchange –poll y|n
[ -A|–autobackup y|n ]

[ -S|–select String ]

[ -f|–force ]

[ –ignorelockingfailure ]

[ –ignoremonitoring ]

[ –ignoreskippedcluster ]

[ –noudevsync ]

[ –reportformat basic|json ]

[ COMMON_OPTIONS ]

[ VG|Tag|Select … ]

激活或者停用LV

vgchange -a|–activate y|n|ay
[ -K|–ignoreactivationskip ]

[ -P|–partial ]

[ -A|–autobackup y|n ]

[ -S|–select String ]

[ -f|–force ]

[ –activationmode partial|degraded|complete ]

[ –sysinit ]

[ –ignorelockingfailure ]

[ –monitor y|n ]

[ –poll y|n ]

[ –ignoremonitoring ]

[ –ignoreskippedcluster ]

[ –noudevsync ]

[ –reportformat basic|json ]

[ COMMON_OPTIONS ]

[ VG|Tag|Select … ]

使用最新元数据重新激活LV

vgchange –refresh
[ -A|–autobackup y|n ]

[ -S|–select String ]

[ -f|–force ]

[ –sysinit ]

[ –ignorelockingfailure ]

[ –poll y|n ]

[ –ignoremonitoring ]

[ –ignoreskippedcluster ]

[ –noudevsync ]

[ –reportformat basic|json ]

[ COMMON_OPTIONS ]

[ VG|Tag|Select … ]

更改VG的系统ID

vgchange –systemid String VG
[ COMMON_OPTIONS ]

在lvmlockd中启动共享VG的锁空间

vgchange –lockstart
[ -S|–select String ]

[ –lockopt String ]

[ COMMON_OPTIONS ]

[ VG|Tag|Select … ]

在lvmlockd中停止共享VG的锁空间

vgchange –lockstop
[ -S|–select String ]

[ –lockopt String ]

[ COMMON_OPTIONS ]

[ VG|Tag|Select … ]

更改共享VG的锁定类型

vgchange –locktype sanlock|dlm|none VG
[ –lockopt String ]

[ COMMON_OPTIONS ]

命令描述

命令vgchange更改VG属性,更改内核中的LV激活,并包含其他VG维护实用程序。

命令支持的选项及含义

-a|–activate y|n|ay
更改LV的活动状态。可以通过块设备使用活动LV,从而允许访问LV上的数据。 y使LV活跃或可用。 n使LV无效或不可用。使用内核中的device-mapper在系统中添加或删除LV的块设备。还会添加/删除了指向设备节点的符号链接/dev/VGName/LVName。所有软件和脚本都应通过符号链接访问设备,并将其作为设备名称。底层设备节点的位置和名称可以取决于发行版、配置(例如,udev)、发布版本。 ay指定自动激活,在这种情况下,LV仅在与lvm.conf中的activation/auto_activation_volume_list中的项匹配时才被激活。如果未设置列表,则认为所有LV都匹配,如果列表已设置但为空,则没有LV匹配。系统启动期间应使用自动激活,以便选择系统自动激活哪些LV。有关共享VG的激活选项ey和sy的更多信息,请参阅lvmlockd(8)。有关群集VG的激活选项ey,sy,ly和ln的详细信息,请参阅clvmd(8)。

–activationmode partial|degraded|complete
当PV缺失时,确定是否允许LV激活,例如 因为设备故障。“complete”只允许激活没有丢失PV的LV,并且是最严格的模式。“degraded”允许激活缺少PV的RAID LV。(这不包括“mirror”类型,请参见“raid1”。)“partial”允许激活任何缺少PV的LV,并且只应用于恢复或修复。 默认情况下,请参阅lvm.conf/activation_mode。有关更多信息,请参阅lvmraid(7)。

–addtag Tag
将标签添加到PV,VG,LV。 可以重复此选项以一次添加多个标签。 有关标签的信息,请参阅lvm(8)。

–alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit
当命令需要从VG分配PE时,确定分配策略。 每个VG和LV都有一个分配策略,可以使用vgchange/lvchange进行更改,也可以在命令行上覆盖。

  • normal适用共同规则,例如不在同一PV上放置平行条带。
  • inherit将VG策略应用于LV。
  • contiguous要求将新PE放置在现有PE附近。
  • cling将新PE放在”与LV相同条带中的现有PE相同“的PV上。
  • 如果有足够的PE用于分配,但是正常不使用它们,即使它降低了性能,anywhere都会使用它们,例如,在同一个PV上放置两个条纹。

命令行上的可选位置PV参数也可用于限制命令将用于分配的PV。 有关分配的更多信息,请参阅lvm(8)。

-A|–autobackup y|n
指定更改后是否应自动备份元数据。 强烈建议启用此功能! 有关更多信息,请参见vgcfgbackup(8)。

-c|–clustered y|n
修改使用clvmd的VG的集群属性。有关集群VG的更多信息,请参阅clvmd(8)。

–deltag Tag
从PV,VG,LV中删除标签。 可以重复此选项以一次删除多个标签。 有关标签的信息,请参阅lvm(8)。

–detachprofile
从VG或LV分离元数据配置文件。 有关配置文件的更多信息,请参阅lvm.conf(5)。

-f|–force …
覆盖各种检查,确认和保护。 使用时要格外小心。

-K|–ignoreactivationskip
在激活期间忽略“activation skip”LV标志,以允许激活设置了该标志的LV。

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

–ignoremonitoring
除非指定了–monitor,否则不要与dmeventd交互。 如果dmeventd已在监视设备,请不要使用此选项。

–ignoreskippedcluster
如果在没有集群锁定的情况下运行该命令,并且跳过了集群VG,则用于避免使用非零状态代码退出。

–lockopt String
用于将特殊情况的选项传递给lvmlockd。 有关更多信息,请参阅lvmlockd(8)。

–lockstart
在lvmlockd中启动共享VG的锁空间。 lvmlockd锁可用于VG,允许LVM使用VG。 有关更多信息,请参阅lvmlockd(8)。

–lockstop
在lvmlockd中停止共享VG的锁空间。 lvmlockd锁对VG不可用,阻止LVM使用VG。 有关更多信息,请参阅lvmlockd(8)。

–locktype sanlock|dlm|none
将VG锁类型更改为与lvmlockd一起使用的共享锁类型。 有关更多信息,请参阅lvmlockd(8)。

-l|–logicalvolume Number
设置VG中允许的最大LV数。

-p|–maxphysicalvolumes Number
设置可以属于VG的最大PV数。 值0删除任何限制。 对于大量PV,还可以参考选项–pvmetadatacopies和–vgmetadatacopies以提高性能。

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

–monitor y|n
用dmeventd开始(y)或停止(n)监视LV。 dmeventd监视LV的内核事件,并在响应特定事件时对LV执行自动维护。 有关更多信息,请参阅dmeventd(8)。

–noudevsync
禁用udev同步。 该进程不会等待来自udev的通知。 无论后台有任何可能的udev进程,它都将继续。 仅在udev未运行或具有忽略LVM创建的设备的规则时才使用此选项。

-P|–partial
命令将尽力激活缺少PV范围的LV。 根据lvm.conf中missing_stripe_filler设置,缺少的区域可能会被错误或零段替换。 使用此选项可能无法更改元数据。

-s|–physicalextentsize Size[m|UNIT]
设置VG中PV的PE大小。 该值必须是至少1个扇区的2的幂(其中扇区大小是当前在VG中使用的PV的最大扇区大小),或者至少128KiB。 设置此值后,如果不重新创建VG,则很难更改,除非没有区域需要移动。 在增加PE大小之前,您可能需要使用lvresize,pvresize,pvmove以便一切都适合。 例如,LV中使用的每个连续范围都必须在范围边界上开始和结束。

–poll y|n
如果y,则启动LV的后台转换。 不完整的转换,例如pvmove或lvconvert因重启或崩溃而中断,可以使用–poll y从上一个检查点重新启动。 如果不是,则不会发生LV的后台转换,并且转换将无法完成。在激活后立即轮询LV可能并不合适,在这种情况下,可以使用–poll n将轮询推迟到稍后的-poll y命令。

–pvmetadatacopies 0|1|2
在PV上用于”存储VG元数据“的元数据区域的数量。 当2时,VG元数据的一个副本存储在PV的前面,而第二个副本存储在最后。 当1时,VG元数据的一个副本存储在PV的前面(从第5个扇区开始)。 为0时,不会在给定PV上存储VG元数据的副本。 这在包含许多PV的VG中可能很有用(这限制了以后使用vgsplit的能力。)

–refresh
如果LV处于活动状态,请重新加载其元数据。 这在正常操作中不是必需的,但如果出现问题,或者正在使用某种形式的手动LV共享,则可能很有用。

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

-x|–resizeable y|n
启用或禁用”向VG添加/删除“或”从VG添加/删除“PV(通过vgextend/vgreduce)。

-S|–select String
根据指定的条件选择要处理和报告的对象。标准语法由–select help和lvmreport(7)描述。 对于报告命令,将为符合条件的每个对象显示一行。 有关可选对象字段,请参阅--options help。 可以使用附加的“selected”字段(-o selected)显示行,如果行与选择匹配则显示”1“,否则显示”0“。 对于处理LVM实体的非报告命令,该选择用于选择要处理的项目。

–sysinit
表示在可写文件系统可用之前,从早期系统初始化脚本(例如rc.sysinit或initrd)调用vgchange/lvchange。 因此,需要禁用某些功能,此选项充当选择适当选项集的快捷方式。 目前,这相当于使用–ignorelockingfailure,–ignoremonitoring,–poll n和设置env var LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES。 当与lvmetad一起使用并运行时,vgchange/lvchange跳过自动激活,并推迟到pvscan自动激活。

–systemid String
更改VG的系统ID。 使用此选项需要谨慎,因为VG可能会对运行该命令的主机产生异议,导致主机无法访问它。 有关更多信息,请参阅lvmsystemid(7)。

-u|–uuid
为指定的VG生成新的随机UUID。

–[vg]metadatacopies all|unmanaged|Number
保留的VG元数据的副本数。 VG元数据保存在VG中的PV上的VG元数据区域中,即PV的开始和/或结束处的预留空间。 在每个PV上保留VG元数据的副本可以降低包含大量PV的VG的性能。 当此数字设置为非零值时,LVM将自动选择用于存储元数据的PV,使用PV上的metadataignore标志来达到指定的数量。 该数字也可以替换为特殊字符串值:unmanaged导致LVM不自动管理PV的metadataignore标志。”all“导致LVM首先清除所有PV上的metadataignore标志,然后变为不受管理。

用于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)。

命令行参数

VG
VG的名称。关于有效的VG名参考lvm(8)手册。

Tag
标签名称。 有关标签名称和使用标签代替VG,LV,PV的信息,请参阅lvm(8)。

Select
表示如果使用–select选项,则可以省略所需的位置参数。 这个位置没有参数出现。

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的倍数。)

注意事项

如果vgchange识别出“由于空间不足而丢弃的”COW快照LV,则会显示一条消息,通知管理员应删除快照。

相关环境变量

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

使用示例

激活所有现有设备上所有VG中的所有LV:

# vgchange -a y

更改非活动VG的最大LV数:

# vgchange -l 128 vg00

相关手册

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 vgchange, Version 2.02.176-4.1

更新日志

  • 12/06/2018 创建文章