「vgcreate(8)」-

创建VG

命令语法格式

vgcreate position_args [ option_args ]

vgcreate VG_new PV …
[ -A|–autobackup y|n ]

[ -c|–clustered y|n ]

[ -l|–maxlogicalvolumes Number ]

[ -p|–maxphysicalvolumes Number ]

[ -M|–metadatatype lvm2|lvm1 ]

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

[ -f|–force ]

[ -Z|–zero y|n ]

[ –addtag Tag ]

[ –alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit ]

[ –metadataprofile String ]

[ –labelsector Number ]

[ –metadatasize Size[m|UNIT] ]

[ –pvmetadatacopies 0|1|2 ]

[ –[vg]metadatacopies all|unmanaged|Number ]

[ –reportformat basic|json ]

[ –dataalignment Size[k|UNIT] ]

[ –dataalignmentoffset Size[k|UNIT] ]

[ –shared ]

[ –systemid String ]

[ –locktype sanlock|dlm|none ]

[ –lockopt String ]

[ COMMON_OPTIONS ]

命令描述

命令vgcreate在块设备上创建新的VG。如果先前没有使用pvcreate(8)将设备作为PV进行初始化,则vgcreate将初始化它们,使其成为PV。命令vgcreate也提供了用于初始化设备的pvcreate选项。

命令支持的选项及含义

–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
如果使用群集支持编译LVM,则使用clvmd创建群集VG。 这允许多个主机在共享设备上共享VG。 必须配置并运行clvmd和锁管理器。 (使用clvmd的集群VG与使用lvmlockd的共享VG不同。)有关集群VG的更多信息,请参阅clvmd(8)。

–dataalignment Size[k|UNIT]
将数据的开头对齐此数字的倍数。 在创建VG时也请指定适当的PE大小。要查看现有PV的第一个PE的位置,请使用pvs -o +pe_start。另外,它可以被对准偏移移动。 请参阅lvm.conf/data_alignment_offset_detection和–dataalignmentoffset。

–dataalignmentoffset Size[k|UNIT]
将数据区域的起点移动此附加偏移量。

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

–labelsector Number
默认情况下,PV在其第二个扇区(sector 1)中标有LVM2标识符。 这使您可以在磁盘起点附近使用不同的扇区(介于0和3之间 – 请参阅源中的LABEL_SCAN_SECTORS)。 小心使用。

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

–locktype sanlock|dlm|none
直接指定VG锁定类型,来代替–shared的使用。 有关更多信息,请参阅lvmlockd(8)。

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

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

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

–metadatasize Size[m|UNIT]
每个VG元数据区域使用的大致空间量。参数Size可能四舍五入。

-M|–metadatatype lvm2|lvm1
指定要使用的磁盘上元数据的类型。 lvm2(或只是2)是当前的标准格式。 lvm1(或只是1)是一种可用于访问旧数据的历史格式。

-s|–physicalextentsize Size[m|UNIT]
设置VG中PV的PE大小。 该值必须是至少1个扇区的2的幂(其中扇区大小是当前在VG中使用的PV的最大扇区大小),或者至少128KiB。 设置此值后,如果不重新创建VG,则很难更改,除非没有区域需要移动。

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

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

–shared
如果使用锁定支持编译LVM,则使用lvmlockd创建共享VG。 lvmlockd将根据正在运行的锁管理器选择锁类型sanlock或dlm。 这允许多个主机在共享设备上共享VG。 必须配置并运行lvmlockd和锁管理器。 (使用lvmlockd的共享VG与使用clvmd的群集VG不同。)有关共享VG的更多信息,请参阅lvmlockd(8)。

–systemid String
指定将为新VG提供的系统ID,从而覆盖运行该命令的主机的系统ID。 通常在没有此选项的情况下创建VG,在这种情况下,新VG将获得创建它的主机的系统ID。 使用此选项时需要注意,因为新VG的系统ID可能与运行该命令的主机的系统ID不匹配,导致VG无法访问主机。 有关更多信息,请参阅lvmsystemid(7)。

–[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标志,然后变为不受管理。

-Z|–zero y|n
控制是否擦除设备的前4个扇区(2048字节)。 除非指定了–restorefile或–uuid中的任何一个或两个,否则默认是擦除这些扇区。

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

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参数。

使用示例

使用默认PE大小,创建具有两个PV的VG:

# vgcreate myvg /dev/sdk1 /dev/sdl1

如上示例。

相关手册

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

更新日志

  • 10/09/2018 创建文章