.TH VGCREATE 8 "LVM TOOLS 2.03.33(2)-RHEL9 (2025-09-25)" "Red Hat, Inc."
.
.ie t \{\
.\" PostScript/PDF with tabs
. ds TT \t
. ds DTT \t\t
.\}
.el \{\
. ds TT \&
. ds DTT \0\0\0
.\}
.
.de OPT
.ie \\n(.$>1 \\*[TT]\fB\-\\$1\fP|\\*[TT]\fB\-\-\\$2\fP\c
.el \\*[DTT]\fB\-\-\\$1\fP\c
..
.
.de OPA
.OPT \\$*
\ \c
..
.de OPS
.OPT \\$*
\&
..
.
.
.\"List of all options as O_string.
.
.de O_addtag
.OPA addtag
\fITag\fP
..
.de O_alloc
.OPA alloc
\%\fBcontiguous\fP|\:\
\fBcling\fP|\:\
\fBcling_by_tags\fP|\:\
\fBnormal\fP|\:\
\fBanywhere\fP|\:\
\fBinherit\fP
..
.de O_autobackup
.OPA A autobackup
\fBy\fP|\fBn\fP
..
.de O_clustered
.OPA c clustered
\fBy\fP|\fBn\fP
..
.de O_commandprofile
.OPA commandprofile
\fIString\fP
..
.de O_config
.OPA config
\fIString\fP
..
.de O_dataalignment
.OPA dataalignment
\fISize\fP[k|\:UNIT]
..
.de O_dataalignmentoffset
.OPA dataalignmentoffset
\fISize\fP[k|\:UNIT]
..
.de O_debug
.OPA d debug
\&\.\|.\|.\&
..
.de O_devices
.OPA devices
\fIPV\fP
..
.de O_devicesfile
.OPA devicesfile
\fIString\fP
..
.de O_driverloaded
.OPA driverloaded
\fBy\fP|\fBn\fP
..
.de O_force
.OPA f force
\&\.\|.\|.\&
..
.de O_help
.OPS h help
..
.de O_journal
.OPA journal
\fIString\fP
..
.de O_labelsector
.OPA labelsector
\fINumber\fP
..
.de O_lockopt
.OPA lockopt
\fIString\fP
..
.de O_locktype
.OPA locktype
\%\fBsanlock\fP|\:\
\fBdlm\fP|\:\
\fBnone\fP
..
.de O_longhelp
.OPS longhelp
..
.de O_maxlogicalvolumes
.OPA l maxlogicalvolumes
\fINumber\fP
..
.de O_maxphysicalvolumes
.OPA p maxphysicalvolumes
\fINumber\fP
..
.de O_metadataprofile
.OPA metadataprofile
\fIString\fP
..
.de O_metadatasize
.OPA metadatasize
\fISize\fP[m|\:UNIT]
..
.de O_metadatatype
.OPA M metadatatype
\fBlvm2\fP
..
.de O_nohints
.OPS nohints
..
.de O_nolocking
.OPS nolocking
..
.de O_physicalextentsize
.OPA s physicalextentsize
\fISize\fP[m|\:UNIT]
..
.de O_profile
.OPA profile
\fIString\fP
..
.de O_pvmetadatacopies
.OPA pvmetadatacopies
\fB0\fP|\fB1\fP|\fB2\fP
..
.de O_quiet
.OPA q quiet
\&\.\|.\|.\&
..
.de O_reportformat
.OPA reportformat
\%\fBbasic\fP|\:\
\fBjson\fP|\:\
\fBjson_std\fP
..
.de O_setautoactivation
.OPA setautoactivation
\fBy\fP|\fBn\fP
..
.de O_shared
.OPS shared
..
.de O_systemid
.OPA systemid
\fIString\fP
..
.de O_test
.OPS t test
..
.de O_verbose
.OPA v verbose
\&\.\|.\|.\&
..
.de O_version
.OPS version
..
.de O_vgmetadatacopies
.OPA \fP[\fBvg\fP]\fBmetadatacopies
\%\fBall\fP|\:\
\fBunmanaged\fP|\:\
\fINumber\fP
..
.de O_yes
.OPS y yes
..
.de O_zero
.OPA Z zero
\fBy\fP|\fBn\fP
..
.
.SH NAME
.
vgcreate \(em Create a volume group
.
.SH SYNOPSIS
.
.nh
.TP
\fBvgcreate\fP \fIposition_args\fP
[ \fIoption_args\fP ]
.hy
.
.ds TT \&
.ds DTT \&
.
.
.SH DESCRIPTION
.
vgcreate creates a new VG on block devices. If the devices were not
previously initialized as PVs with \fBpvcreate\fP(8), vgcreate will
initialize them, making them PVs. The pvcreate options for initializing
devices are also available with vgcreate.
.P
When vgcreate uses an existing PV, that PV's existing values for metadata
size, PE start, etc, are used, even if different values are specified in
the vgcreate command.  To change these values, first use pvremove on the
device.
.
.SH USAGE
.
.nh
.na
.B vgcreate
\fIVG\fP\fI_new\fP \fIPV\fP\ .\|.\|.\&
.RS
[
.O_autobackup
]
.br
[
.O_clustered
]
.br
[
.O_maxlogicalvolumes
]
.br
[
.O_maxphysicalvolumes
]
.br
[
.O_metadatatype
]
.br
[
.O_physicalextentsize
]
.br
[
.O_force
]
.br
[
.O_zero
]
.br
[
.O_addtag
]
.br
[
.O_alloc
]
.br
[
.O_metadataprofile
]
.br
[
.O_labelsector
]
.br
[
.O_metadatasize
]
.br
[
.O_pvmetadatacopies
]
.br
[
.O_vgmetadatacopies
]
.br
[
.O_reportformat
]
.br
[
.O_dataalignment
]
.br
[
.O_dataalignmentoffset
]
.br
[
.O_shared
]
.br
[
.O_systemid
]
.br
[
.O_locktype
]
.br
[
.O_setautoactivation
]
.br
[ COMMON_OPTIONS ]
.RE
.P
\(em
.P
Common options for lvm:
.RS
[
.O_debug
]
.br
[
.O_help
]
.br
[
.O_quiet
]
.br
[
.O_test
]
.br
[
.O_verbose
]
.br
[
.O_yes
]
.br
[
.O_commandprofile
]
.br
[
.O_config
]
.br
[
.O_devices
]
.br
[
.O_devicesfile
]
.br
[
.O_driverloaded
]
.br
[
.O_journal
]
.br
[
.O_lockopt
]
.br
[
.O_longhelp
]
.br
[
.O_nohints
]
.br
[
.O_nolocking
]
.br
[
.O_profile
]
.br
[
.O_version
]
.RE
.hy
.ad
.
.SH OPTIONS
.
.TP
.O_addtag
Adds a tag to a PV, VG or LV. This option can be repeated to add
multiple tags at once. See \fBlvm\fP(8) for information about tags.
.
.TP
.O_alloc
Determines the allocation policy when a command needs to allocate
Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
which can be changed with vgchange/lvchange, or overridden on the
command line.
\fBnormal\fP applies common sense rules such as not placing parallel stripes
on the same PV.
\fBinherit\fP applies the VG policy to an LV.
\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
\fBcling\fP places new PEs on the same PV as existing PEs in the same
stripe of the LV.
If there are sufficient PEs for an allocation, but normal does not
use them, \fBanywhere\fP will use them even if it reduces performance,
e.g. by placing two stripes on the same PV.
Optional positional PV args on the command line can also be used to limit
which PVs the command will use for allocation.
See \fBlvm\fP(8) for more information about allocation.
.
.TP
.O_autobackup
Specifies if metadata should be backed up automatically after a change.
Enabling this is strongly advised!
See \fBvgcfgbackup\fP(8) for more information.
.
.TP
.O_clustered
This option was specific to clvm and is now replaced by
the \-\-shared option with \fBlvmlockd\fP(8).
.
.TP
.O_commandprofile
The command profile to use for command configuration.
See \fBlvm.conf\fP(5) for more information about profiles.
.
.TP
.O_config
Config settings for the command. These override \fBlvm.conf\fP(5) settings.
The String arg uses the same format as \fBlvm.conf\fP(5),
or may use section/field syntax.
See \fBlvm.conf\fP(5) for more information about config.
.
.TP
.O_dataalignment
Align the start of a PV data area with a multiple of this number.
To see the location of the first Physical Extent (PE) of an existing PV,
use pvs \-o +pe_start. In addition, it may be shifted by an alignment offset,
see \-\-dataalignmentoffset.
Also specify an appropriate PE size when creating a VG.
.
.TP
.O_dataalignmentoffset
Shift the start of the PV data area by this additional offset.
.
.TP
.O_debug
Set debug level. Repeat from 1 to 6 times to increase the detail of
messages sent to the log file and/or syslog (if configured).
.
.TP
.O_devices
Restricts the devices that are visible and accessible to the command.
Devices not listed will appear to be missing. This option can be
repeated, or accepts a comma separated list of devices. This overrides
the devices file.
.
.TP
.O_devicesfile
A file listing devices that LVM should use.
The file must exist in \fI/etc/lvm/devices/\fP and is managed
with the \fBlvmdevices\fP(8) command.
This overrides the \fBlvm.conf\fP(5) \fBdevices/devicesfile\fP and
\fBdevices/use_devicesfile\fP settings.
.
.TP
.O_driverloaded
If set to no, the command will not attempt to use device-mapper.
For testing and debugging.
.
.TP
.O_force
Override various checks, confirmations and protections.
Use with extreme caution.
.
.TP
.O_help
Display help text.
.
.TP
.O_journal
Record information in the systemd journal.
This information is in addition to information
enabled by the lvm.conf log/journal setting.
command: record information about the command.
output: record the default command output.
debug: record full command debugging.
.
.TP
.O_labelsector
By default the PV is labelled with an LVM2 identifier in its second
sector (sector 1). This lets you use a different sector near the
start of the disk (between 0 and 3 inclusive \- see LABEL_SCAN_SECTORS
in the source). Use with care.
.
.TP
.O_lockopt
Used to pass options for special cases to lvmlockd.
See \fBlvmlockd\fP(8) for more information.
.
.TP
.O_locktype
Specify the VG lock type directly in place of using \-\-shared.
See \fBlvmlockd\fP(8) for more information.
.
.TP
.O_longhelp
Display long help text.
.
.TP
.O_maxlogicalvolumes
Sets the maximum number of LVs allowed in a VG.
.
.TP
.O_maxphysicalvolumes
Sets the maximum number of PVs that can belong to the VG.
The value 0 removes any limitation.
For large numbers of PVs, also see options \-\-pvmetadatacopies,
and \-\-vgmetadatacopies for improving performance.
.
.TP
.O_metadataprofile
The metadata profile to use for command configuration.
See \fBlvm.conf\fP(5) for more information about profiles.
.
.TP
.O_metadatasize
The approximate amount of space used for each VG metadata area.
The size may be rounded.
.
.TP
.O_metadatatype
Specifies the type of on-disk metadata to use.
\fBlvm2\fP (or just \fB2\fP) is the current, standard format.
\fBlvm1\fP (or just \fB1\fP) is no longer used.
.
.TP
.O_nohints
Do not use the hints file to locate devices for PVs. A command may read
more devices to find PVs when hints are not used. The command will still
perform standard hint file invalidation where appropriate.
.
.TP
.O_nolocking
Disable locking. Use with caution, concurrent commands may produce
incorrect results.
.
.TP
.O_physicalextentsize
Sets the physical extent size of PVs in the VG.
The value must be either a power of 2 of at least 1 sector
(where the sector size is the largest sector size of the PVs
currently used in the VG), or at least 128\ KiB.
Once this value has been set, it is difficult to change
without recreating the VG, unless no extents need moving.
.
.TP
.O_profile
An alias for \-\-commandprofile or \-\-metadataprofile, depending
on the command.
.
.TP
.O_pvmetadatacopies
The number of metadata areas to set aside on a PV for storing VG metadata.
When 2, one copy of the VG metadata is stored at the front of the PV
and a second copy is stored at the end.
When 1, one copy of the VG metadata is stored at the front of the PV.
When 0, no copies of the VG metadata are stored on the given PV.
This may be useful in VGs containing many PVs (this places limitations
on the ability to use vgsplit later.)
.
.TP
.O_quiet
Suppress output and log messages. Overrides \-\-debug and \-\-verbose.
Repeat once to also suppress any prompts with answer 'no'.
.
.TP
.O_reportformat
Overrides current output format for reports which is defined globally by
the report/output_format setting in \fBlvm.conf\fP(5).
\fBbasic\fP is the original format with columns and rows.
If there is more than one report per command, each report is prefixed
with the report name for identification. \fBjson\fP produces report
output in JSON format. \fBjson_std\fP produces report output in
JSON format which is more compliant with JSON standard.
See \fBlvmreport\fP(7) for more information.
.
.TP
.O_setautoactivation
Set the autoactivation property on a VG or LV.
Display the property with vgs or lvs "\-o autoactivation".
When the autoactivation property is disabled, the VG or LV
will not be activated by a command doing autoactivation
(vgchange, lvchange, or pvscan using \-aay.)
If autoactivation is disabled on a VG, no LVs will be autoactivated
in that VG, and the LV autoactivation property has no effect.
If autoactivation is enabled on a VG, autoactivation can be disabled
for individual LVs.
.
.TP
.O_shared
Create a shared VG using lvmlockd if LVM is compiled with lockd support.
lvmlockd will select lock type sanlock or dlm depending on which lock
manager is running. This allows multiple hosts to share a VG on shared
devices. lvmlockd and a lock manager must be configured and running.
See \fBlvmlockd\fP(8) for more information about shared VGs.
.
.TP
.O_systemid
Specifies the system ID that will be given to the new VG, overriding the
system ID of the host running the command. A VG is normally created
without this option, in which case the new VG is given the system ID of
the host creating it. Using this option requires caution because the
system ID of the new VG may not match the system ID of the host running
the command, leaving the VG inaccessible to the host.
See \fBlvmsystemid\fP(7) for more information.
.
.TP
.O_test
Run in test mode. Commands will not update metadata.
This is implemented by disabling all metadata writing but nevertheless
returning success to the calling function. This may lead to unusual
error messages in multi-stage operations if a tool relies on reading
back metadata it believes has changed but hasn't.
.
.TP
.O_verbose
Set verbose level. Repeat from 1 to 4 times to increase the detail
of messages sent to stdout and stderr.
.
.TP
.O_version
Display version information.
.
.TP
.O_vgmetadatacopies
Number of copies of the VG metadata that are kept.
VG metadata is kept in VG metadata areas on PVs in the VG,
i.e. reserved space at the start and/or end of the PVs.
Keeping a copy of the VG metadata on every PV can reduce performance
in VGs containing a large number of PVs.
When this number is set to a non-zero value, LVM will automatically
choose PVs on which to store metadata, using the metadataignore flags
on PVs to achieve the specified number.
The number can also be replaced with special string values:
\fBunmanaged\fP causes LVM to not automatically manage the PV
metadataignore flags.
\fBall\fP causes LVM to first clear the metadataignore flags on
all PVs, and then to become unmanaged.
.
.TP
.O_yes
Do not prompt for confirmation interactively but always assume the
answer yes. Use with extreme caution.
(For automatic no, see \-qq.)
.
.TP
.O_zero
Controls if the first 4 sectors (2048 bytes) of the device are wiped.
The default is to wipe these sectors unless either or both of
\-\-restorefile or \-\-uuid are specified.
.
.SH VARIABLES
.
.TP
.I VG
Volume Group name.  See \fBlvm\fP(8) for valid names.
.
.TP
.I PV
Physical Volume name, a device path under /dev.
For commands managing physical extents, a PV positional arg
generally accepts a suffix indicating a range (or multiple ranges)
of physical extents (PEs). When the first PE is omitted, it defaults
to the start of the device, and when the last PE is omitted it defaults to end.
.br
Start and end range (inclusive):
\fIPV\fP[\fB:\fP\fIPE\fP\fB\-\fP\fIPE\fP]\ .\|.\|.\&
.br
Start and length range (counting from 0):
\fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]\ .\|.\|.\&
.
.TP
.I String
See the option description for information about the string content.
.
.TP
.IR Size [UNIT]
Size is an input number that accepts an optional unit.
Input units are always treated as base two values, regardless of
capitalization, e.g. 'k' and 'K' both refer to 1024.
The default input unit is specified by letter, followed by |UNIT.
UNIT represents other possible input units:
.BR b | B
is bytes,
.BR s | S
is sectors of 512 bytes,
.BR k | K
is KiB,
.BR m | M
is MiB,
.BR g | G
is GiB,
.BR t | T
is TiB,
.BR p | P
is PiB,
.BR e | E
is EiB.
(This should not be confused with the output control \-\-units,
where capital letters mean multiple of 1000.)
.
.SH ENVIRONMENT VARIABLES
.
See \fBlvm\fP(8) for information about environment variables used by lvm.
For example, \fBLVM_VG_NAME\fP can generally be substituted
for a required VG parameter.
.
.SH EXAMPLES
.
Create a VG with two PVs, using the default physical extent size.
.br
.B vgcreate myvg /dev/sdk1 /dev/sdl1
.
.SH SEE ALSO
.
.nh
.na
.BR lvm (8),
.BR lvm.conf (5),
.BR lvmconfig (8),
.BR lvmdevices (8),
.P
.BR pvchange (8),
.BR pvck (8),
.BR pvcreate (8),
.BR pvdisplay (8),
.BR pvmove (8),
.BR pvremove (8),
.BR pvresize (8),
.BR pvs (8),
.BR pvscan (8),
.P
.BR vgcfgbackup (8),
.BR vgcfgrestore (8),
.BR vgchange (8),
.BR vgck (8),
.BR vgcreate (8),
.BR vgconvert (8),
.BR vgdisplay (8),
.BR vgexport (8),
.BR vgextend (8),
.BR vgimport (8),
.BR vgimportclone (8),
.BR vgimportdevices (8),
.BR vgmerge (8),
.BR vgmknodes (8),
.BR vgreduce (8),
.BR vgremove (8),
.BR vgrename (8),
.BR vgs (8),
.BR vgscan (8),
.BR vgsplit (8),
.P
.BR lvcreate (8),
.BR lvchange (8),
.BR lvconvert (8),
.BR lvdisplay (8),
.BR lvextend (8),
.BR lvreduce (8),
.BR lvremove (8),
.BR lvrename (8),
.BR lvresize (8),
.BR lvs (8),
.BR lvscan (8),
.P
.BR lvm\-fullreport (8),
.BR lvm\-lvpoll (8),
.BR blkdeactivate (8),
.BR lvmdump (8),
.P
.BR dmeventd (8),
.BR lvmpolld (8),
.BR lvmlockd (8),
.BR lvmlockctl (8),
.BR cmirrord (8),
.BR lvmdbusd (8),
.BR fsadm (8),
.P
.BR lvmsystemid (7),
.BR lvmreport (7),
.BR lvmcache (7),
.BR lvmraid (7),
.BR lvmthin (7),
.BR lvmvdo (7),
.BR lvmautoactivation (7)
