HostOnNet Blog

Create Volume Group with vgcreate

vgcreate is used to create LVM volume group.

Before we can create a volume group, we need to create physical volume. To list available physical volume, run pvdisplay

If you don’t have a physical volume, create one with pvcreate.

root@server2:~# pvdisplay
  "/dev/md4" is a new physical volume of "1.80 TiB"
  --- NEW Physical volume ---
  PV Name               /dev/md4
  VG Name
  PV Size               1.80 TiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               h1kshf-do9O-y3jn-eVs3-Rl4V-WLeQ-aSYd9h


From the above command, we see found we have physical volume with name /dev/md4, lets create a volume group using it.

root@server2:~# vgcreate myVolumeGroup1 /dev/md4
  Volume group "myVolumeGroup1" successfully created

Verify volume group created properly with vgdisplay.

root@server2:~# vgdisplay
  --- Volume group ---
  VG Name               myVolumeGroup1
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               1.80 TiB
  PE Size               4.00 MiB
  Total PE              470906
  Alloc PE / Size       0 / 0
  Free  PE / Size       470906 / 1.80 TiB
  VG UUID               o16EQL-mDbw-7yPG-iDcX-lh6X-gWwN-X9TCnT


Before we can use LVM, we need to create a logical volume with lvcreate

root@server2:~# lvcreate -L 100G --name dataVolume myVolumeGroup1
WARNING: ext3 signature detected on /dev/myVolumeGroup1/dataVolume at offset 1080. Wipe it? [y/n]: y
  Wiping ext3 signature on /dev/myVolumeGroup1/dataVolume.
  Logical volume "dataVolume" created.

List all available logical volumes with

root@server2:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/myVolumeGroup1/dataVolume
  LV Name                dataVolume
  VG Name                myVolumeGroup1
  LV UUID                9oDlaW-gJFc-FmNI-TSYh-XGbu-F6R8-DmTAyK
  LV Write Access        read/write
  LV Creation host, time server2, 2015-12-13 00:14:35 -0500
  LV Status              available
  # open                 0
  LV Size                100.00 GiB
  Current LE             25600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0


Create file system

root@server2:~# mkfs.xfs /dev/myVolumeGroup1/dataVolume
meta-data=/dev/myVolumeGroup1/dataVolume isize=256    agcount=4, agsize=6553600 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=26214400, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=12800, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Here i used xfs file system, for ext4 use mkfs.ext4 command.

mkfs.ext4 /dev/myVolumeGroup1/dataVolume

Now we have LVM ready, mount it with command

root@server2:~# mount /dev/myVolumeGroup1/dataVolume /var/lib/vz/
root@server2:~# df -h
Filesystem                             Size  Used Avail Use% Mounted on
udev                                    10M     0   10M   0% /dev
tmpfs                                   13G  9.1M   13G   1% /run
/dev/md2                                20G  1.7G   17G   9% /
tmpfs                                   32G   25M   32G   1% /dev/shm
tmpfs                                  5.0M     0  5.0M   0% /run/lock
tmpfs                                   32G     0   32G   0% /sys/fs/cgroup
tmpfs                                  100K     0  100K   0% /run/lxcfs/controllers
cgmfs                                  100K     0  100K   0% /run/cgmanager/fs
/dev/fuse                               30M   12K   30M   1% /etc/pve
/dev/mapper/myVolumeGroup1-dataVolume  100G   33M  100G   1% /var/lib/vz

To auto mount, add following to /etc/fstab

/dev/mapper/myVolumeGroup1-dataVolume /var/lib/vz       xfs     defaults        1       2

See lvm

Posted in Linux