1PVCREATE(8) System Manager's Manual PVCREATE(8)
2
3
4
6 pvcreate - Initialize physical volume(s) for use by LVM
7
9 pvcreate position_args
10 [ option_args ]
11
13 pvcreate initializes a Physical Volume (PV) on a device so the device
14 is recognized as belonging to LVM. This allows the PV to be used in a
15 Volume Group (VG). An LVM disk label is written to the device, and LVM
16 metadata areas are initialized. A PV can be placed on a whole device
17 or partition.
18
19 Use vgcreate(8) to create a new VG on the PV, or vgextend(8) to add the
20 PV to an existing VG. Use pvremove(8) to remove the LVM disk label
21 from the device.
22
23 The force option will create a PV without confirmation. Repeating the
24 force option (-ff) will forcibly create a PV, overriding checks that
25 normally prevent it, e.g. if the PV is already in a VG.
26
27 Metadata location, size, and alignment
28
29 The LVM disk label begins 512 bytes from the start of the device, and
30 is 512 bytes in size.
31
32 The LVM metadata area begins at an offset (from the start of the de‐
33 vice) equal to the page size of the machine creating the PV (often 4
34 KiB.) The metadata area contains a 512 byte header and a multi-KiB cir‐
35 cular buffer that holds text copies of the VG metadata.
36
37 With default settings, the first physical extent (PE), which contains
38 LV data, is 1 MiB from the start of the device. This location is con‐
39 trolled by default_data_alignment in lvm.conf, which is set to 1 (MiB)
40 by default. The pe_start will be a multiple of this many MiB. This
41 location can be checked with:
42 pvs -o pe_start PV
43
44 The size of the LVM metadata area is the space between the the start of
45 the metadata area and the first PE. When metadata begins at 4 KiB and
46 the first PE is at 1024 KiB, the metadata area size is 1020 KiB. This
47 can be checked with:
48 pvs -o mda_size PV
49
50 The mda_size cannot be increased after pvcreate, so if larger metadata
51 is needed, it must be set during pvcreate. Two copies of the VG meta‐
52 data must always fit within the metadata area, so the maximum VG meta‐
53 data size is around half the mda_size. This can be checked with:
54 vgs -o mda_free VG
55
56 A larger metadata area can be set with --metadatasize. The resulting
57 mda_size may be larger than specified due to default_data_alignment
58 placing pe_start on a MiB boundary, and the fact that the metadata area
59 extends to the first PE. With metadata starting at 4 KiB and de‐
60 fault_data_alignment 1 (MiB), setting --metadatasize 2048k results in
61 pe_start of 3 MiB and mda_size of 3068 KiB. Alternatively, --metadata‐
62 size 2044k results in pe_start at 2 MiB and mda_size of 2044 KiB.
63
64 The alignment of pe_start described above may be automatically overri‐
65 den based on md device properties or device i/o properties reported in
66 sysfs. These automatic adjustments can be enabled/disabled using
67 lvm.conf settings md_chunk_alignment and data_alignment_offset_detec‐
68 tion.
69
70 To use a different pe_start alignment, use the --dataalignment option.
71 The --metadatasize option would also typically be used in this case be‐
72 cause the metadata area size also determines the location of pe_start.
73 When using these two options together, pe_start is calculated as: meta‐
74 data area start (page size), plus the specified --metadatasize, rounded
75 up to the next multiple of --dataalignment. With metadata starting at
76 4 KiB, --metadatasize 2048k, and --dataalignment 128k, pe_start is 2176
77 KiB and mda_size is 2172 KiB. The pe_start of 2176 KiB is the nearest
78 even multiple of 128 KiB that provides at least 2048 KiB of metadata
79 space. Always check the resulting alignment and metadata size when us‐
80 ing these options.
81
82 To shift an aligned pe_start value, use the --dataaligmentoffset op‐
83 tion. The pe_start alignment is calculated as described above, and
84 then the value specified with --dataaligmentoffset is added to produce
85 the final pe_start value.
86
88 pvcreate PV ...
89 [ -f|--force ]
90 [ -M|--metadatatype lvm2 ]
91 [ -u|--uuid String ]
92 [ -Z|--zero y|n ]
93 [ --dataalignment Size[k|UNIT] ]
94 [ --dataalignmentoffset Size[k|UNIT] ]
95 [ --bootloaderareasize Size[m|UNIT] ]
96 [ --labelsector Number ]
97 [ --[pv]metadatacopies 0|1|2 ]
98 [ --metadatasize Size[m|UNIT] ]
99 [ --metadataignore y|n ]
100 [ --norestorefile ]
101 [ --setphysicalvolumesize Size[m|UNIT] ]
102 [ --reportformat basic|json ]
103 [ --restorefile String ]
104 [ COMMON_OPTIONS ]
105
106 Common options for lvm:
107 [ -d|--debug ]
108 [ -h|--help ]
109 [ -q|--quiet ]
110 [ -t|--test ]
111 [ -v|--verbose ]
112 [ -y|--yes ]
113 [ --commandprofile String ]
114 [ --config String ]
115 [ --driverloaded y|n ]
116 [ --lockopt String ]
117 [ --longhelp ]
118 [ --nolocking ]
119 [ --profile String ]
120 [ --version ]
121
123 --bootloaderareasize Size[m|UNIT]
124 Reserve space for the bootloader between the LVM metadata area
125 and the first PE. The bootloader area is reserved for bootload‐
126 ers to embed their own data or metadata; LVM will not use it.
127 The bootloader area begins where the first PE would otherwise be
128 located. The first PE is moved out by the size of the boot‐
129 loader area, and then moved out further if necessary to match
130 the data alignment. The start of the bootloader area is always
131 aligned, see also --dataalignment and --dataalignmentoffset. The
132 bootloader area may be larger than requested due to the align‐
133 ment, but it's never less than the requested size. To see the
134 bootloader area start and size of an existing PV use pvs -o
135 +pv_ba_start,pv_ba_size.
136
137 --commandprofile String
138 The command profile to use for command configuration. See
139 lvm.conf(5) for more information about profiles.
140
141 --config String
142 Config settings for the command. These override lvm.conf set‐
143 tings. The String arg uses the same format as lvm.conf, or may
144 use section/field syntax. See lvm.conf(5) for more information
145 about config.
146
147 --dataalignment Size[k|UNIT]
148 Align the start of a PV data area with a multiple of this num‐
149 ber. To see the location of the first Physical Extent (PE) of
150 an existing PV, use pvs -o +pe_start. In addition, it may be
151 shifted by an alignment offset, see --dataalignmentoffset. Also
152 specify an appropriate PE size when creating a VG.
153
154 --dataalignmentoffset Size[k|UNIT]
155 Shift the start of the PV data area by this additional offset.
156
157 -d|--debug ...
158 Set debug level. Repeat from 1 to 6 times to increase the detail
159 of messages sent to the log file and/or syslog (if configured).
160
161 --driverloaded y|n
162 If set to no, the command will not attempt to use device-mapper.
163 For testing and debugging.
164
165 -f|--force ...
166 Override various checks, confirmations and protections. Use
167 with extreme caution.
168
169 -h|--help
170 Display help text.
171
172 --labelsector Number
173 By default the PV is labelled with an LVM2 identifier in its
174 second sector (sector 1). This lets you use a different sector
175 near the start of the disk (between 0 and 3 inclusive - see LA‐
176 BEL_SCAN_SECTORS in the source). Use with care.
177
178 --lockopt String
179 Used to pass options for special cases to lvmlockd. See lvm‐
180 lockd(8) for more information.
181
182 --longhelp
183 Display long help text.
184
185 --metadataignore y|n
186 Specifies the metadataignore property of a PV. If yes, metadata
187 areas on the PV are ignored, and lvm will not store metadata in
188 the metadata areas of the PV. If no, lvm will store metadata on
189 the PV.
190
191 --metadatasize Size[m|UNIT]
192 The approximate amount of space used for each VG metadata area.
193 The size may be rounded.
194
195 -M|--metadatatype lvm2
196 Specifies the type of on-disk metadata to use. lvm2 (or just 2)
197 is the current, standard format. lvm1 (or just 1) is no longer
198 used.
199
200 --nolocking
201 Disable locking.
202
203 --norestorefile
204 In conjunction with --uuid, this allows a uuid to be specified
205 without also requiring that a backup of the metadata be pro‐
206 vided.
207
208 --profile String
209 An alias for --commandprofile or --metadataprofile, depending on
210 the command.
211
212 --[pv]metadatacopies 0|1|2
213 The number of metadata areas to set aside on a PV for storing VG
214 metadata. When 2, one copy of the VG metadata is stored at the
215 front of the PV and a second copy is stored at the end. When 1,
216 one copy of the VG metadata is stored at the front of the PV.
217 When 0, no copies of the VG metadata are stored on the given PV.
218 This may be useful in VGs containing many PVs (this places limi‐
219 tations on the ability to use vgsplit later.)
220
221 -q|--quiet ...
222 Suppress output and log messages. Overrides --debug and --ver‐
223 bose. Repeat once to also suppress any prompts with answer
224 'no'.
225
226 --reportformat basic|json
227 Overrides current output format for reports which is defined
228 globally by the report/output_format setting in lvm.conf. basic
229 is the original format with columns and rows. If there is more
230 than one report per command, each report is prefixed with the
231 report name for identification. json produces report output in
232 JSON format. See lvmreport(7) for more information.
233
234 --restorefile String
235 In conjunction with --uuid, this reads the file (produced by
236 vgcfgbackup), extracts the location and size of the data on the
237 PV, and ensures that the metadata produced by the program is
238 consistent with the contents of the file, i.e. the physical ex‐
239 tents will be in the same place and not be overwritten by new
240 metadata. This provides a mechanism to upgrade the metadata for‐
241 mat or to add/remove metadata areas. Use with care.
242
243 --setphysicalvolumesize Size[m|UNIT]
244 Overrides the automatically detected size of the PV. Use with
245 care, or prior to reducing the physical size of the device.
246
247 -t|--test
248 Run in test mode. Commands will not update metadata. This is
249 implemented by disabling all metadata writing but nevertheless
250 returning success to the calling function. This may lead to un‐
251 usual error messages in multi-stage operations if a tool relies
252 on reading back metadata it believes has changed but hasn't.
253
254 -u|--uuid String
255 Specify a UUID for the device. Without this option, a random
256 UUID is generated. This option is needed before restoring a
257 backup of LVM metadata onto a replacement device; see vgcfgre‐
258 store(8). As such, use of --restorefile is compulsory unless the
259 --norestorefile is used. All PVs must have unique UUIDs, and
260 LVM will prevent certain operations if multiple devices are seen
261 with the same UUID. See vgimportclone(8) for more information.
262
263 -v|--verbose ...
264 Set verbose level. Repeat from 1 to 4 times to increase the de‐
265 tail of messages sent to stdout and stderr.
266
267 --version
268 Display version information.
269
270 -y|--yes
271 Do not prompt for confirmation interactively but always assume
272 the answer yes. Use with extreme caution. (For automatic no,
273 see -qq.)
274
275 -Z|--zero y|n
276 Controls if the first 4 sectors (2048 bytes) of the device are
277 wiped. The default is to wipe these sectors unless either or
278 both of --restorefile or --uuid are specified.
279
281 PV
282 Physical Volume name, a device path under /dev. For commands
283 managing physical extents, a PV positional arg generally accepts
284 a suffix indicating a range (or multiple ranges) of physical ex‐
285 tents (PEs). When the first PE is omitted, it defaults to the
286 start of the device, and when the last PE is omitted it defaults
287 to end. Start and end range (inclusive): PV[:PE-PE]... Start
288 and length range (counting from 0): PV[:PE+PE]...
289
290 String
291 See the option description for information about the string con‐
292 tent.
293
294 Size[UNIT]
295 Size is an input number that accepts an optional unit. Input
296 units are always treated as base two values, regardless of capi‐
297 talization, e.g. 'k' and 'K' both refer to 1024. The default
298 input unit is specified by letter, followed by |UNIT. UNIT rep‐
299 resents other possible input units: bBsSkKmMgGtTpPeE. b|B is
300 bytes, s|S is sectors of 512 bytes, k|K is KiB, m|M is MiB, g|G
301 is GiB, t|T is TiB, p|P is PiB, e|E is EiB. (This should not be
302 confused with the output control --units, where capital letters
303 mean multiple of 1000.)
304
306 See lvm(8) for information about environment variables used by lvm.
307 For example, LVM_VG_NAME can generally be substituted for a required VG
308 parameter.
309
311 Initialize a partition and a full device.
312 pvcreate /dev/sdc4 /dev/sde
313
314 If a device is a 4KiB sector drive that compensates for windows parti‐
315 tioning (sector 7 is the lowest aligned logical block, the 4KiB sectors
316 start at LBA -1, and consequently sector 63 is aligned on a 4KiB bound‐
317 ary) manually account for this when initializing for use by LVM.
318 pvcreate --dataalignmentoffset 7s /dev/sdb
319
321 lvm(8) lvm.conf(5) lvmconfig(8)
322
323 pvchange(8) pvck(8) pvcreate(8) pvdisplay(8) pvmove(8) pvremove(8)
324 pvresize(8) pvs(8) pvscan(8)
325
326 vgcfgbackup(8) vgcfgrestore(8) vgchange(8) vgck(8) vgcreate(8) vgcon‐
327 vert(8) vgdisplay(8) vgexport(8) vgextend(8) vgimport(8) vgimport‐
328 clone(8) vgmerge(8) vgmknodes(8) vgreduce(8) vgremove(8) vgrename(8)
329 vgs(8) vgscan(8) vgsplit(8)
330
331 lvcreate(8) lvchange(8) lvconvert(8) lvdisplay(8) lvextend(8) lvre‐
332 duce(8) lvremove(8) lvrename(8) lvresize(8) lvs(8) lvscan(8)
333
334 lvm-fullreport(8) lvm-lvpoll(8) lvm2-activation-generator(8) blkdeacti‐
335 vate(8) lvmdump(8)
336
337 dmeventd(8) lvmpolld(8) lvmlockd(8) lvmlockctl(8) cmirrord(8) lvmd‐
338 busd(8)
339
340 lvmsystemid(7) lvmreport(7) lvmraid(7) lvmthin(7) lvmcache(7)
341
342
343
344Red Hat, Inc. LVM TOOLS 2.03.11(2) (2021-01-08) PVCREATE(8)