• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer navigation

The Geek Diary

  • OS
    • Linux
    • CentOS/RHEL
    • VCS
  • Interview Questions
  • Database
    • MariaDB
  • DevOps
    • Docker
    • Shell Scripting
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

CentOS / RHEL : How to create a Thinly Provisioned Logical Volume

by admin

LVM thin provisioning allows you to over-commit the physical storage. You can create file systems which are larger than the available physical storage. LVM thin provisioning allows you to create virtual disks inside a thin pool. The size of the virtual disk can be greater than the available space in the thin pool. It is important that you monitor the thin pool and add more capacity when it starts to become full.

Create Thin pool

Thin pools are created using the lvcreate command and as such, they are essentially logical volumes. Use either the –T option, or the –thin option, or the –thinpool option when creating a thin pool. The following example creates a thin pool named mythinpool from the centos volume group that is 100m in size:

# lvcreate -v -L 100m -T centos/mythinpool 
...
  Logical volume “mythinpool” created
# lvs
  LV         VG     Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  mythinpool centos twi-a-tz-- 100.00m               0.00

The “Data%” column shows the allocated pool data. The example shows 0.00% because virtual thin volumes have not yet been created in this thin-pool.

Create Thin Volume

Use the lvcreate command with the –V option to create a thin volume (a virtual disk) from a thin pool. The following example creates a 1 GB thin volume named mythinvol in the centos/mythinpool thin pool. Note that the size of the thin volume is larger than the size of the thin pool that contains it.

# lvcreate -V 1g -T centos/mythinpool -n mythinvol
  Logical volume "mythinvol" created
# lvs
  LV         VG     Attr       LSize   Pool       Origin Data%  Move Log Cpy%Sync Convert
  mythinpool centos twi-a-tz-- 100.00m                     0.00
  mythinvol  centos Vwi-a-tz--   1.00g mythinpool          0.00

Note the difference in attributes. The thin volume has a V attribute for virtual disk. The Data% column shows 0.00 until you create a file system on the thin volume.

Create File system

Lets create an ext4 filesystem on the thin volume we just created.

# mkfs.ext4 /dev/centos/mythinvol
# mkdir /myvol
# mount /dev/centos/mythinvol /myvol

Check the size of mount point in df -hP command output.

# df -hP | grep myvol
/dev/mapper/centos-mythinvol  976M  2.6M  907M   1% /myvol

Create a file of size 100MB using fallocate in the /myvol directory.

# cd /myvol
# fallocate -l 100m test_file
# df -hP | grep my
/dev/mapper/centos-mythinvol  976M  103M  807M  12% /myvol
# lvs
  LV         VG     Attr       LSize   Pool       Origin Data%  Move Log Cpy%Sync Convert
  mythinpool centos twi-a-tz-- 100.00m                    49.00
  mythinvol  centos Vwi-aotz--   1.00g mythinpool          4.79

This shows you have used 49% of the allocated pool data. This also shows that the thin volume has used 4.79% of 1 GB.

Extending thin pool

You can use the lvextend command to add space to a thin pool logical volume.

# lvextend -L 500m centos/mythinpool
  Extending logical volume mythinpool_tdata to 500.00 MiB
  Logical volume mythinpool successfully resized

Note that the size of the thin pool is now 500 MB and the percentage used is 9.81%.

# lvs
  LV         VG     Attr       LSize   Pool       Origin Data%  Move Log Cpy%Sync Convert
  mythinpool centos twi-a-tz-- 500.00m                     9.81
  mythinvol  centos Vwi-aotz--   1.00g mythinpool          4.79

Filed Under: Linux

Some more articles you might also be interested in …

  1. mate-screenshot Command Examples in Linux
  2. more Command Examples in Linux
  3. xz: command not found
  4. minetestserver Command Examples
  5. module Command Examples in Linux
  6. How to Remove/ Disable Bash shell Command History on Linux
  7. jstack Command Examples
  8. Time to live exceeded ping error
  9. eqn: Equation preprocessor for the groff (GNU Troff) document formatting system
  10. Understanding /etc/profile Configuration File in Linux

You May Also Like

Primary Sidebar

Recent Posts

  • Vanilla OS 2 Released: A New Era for Linux Enthusiasts
  • mk Command Examples
  • mixxx Command Examples
  • mix Command Examples

© 2025 · The Geek Diary

  • Archives
  • Contact Us
  • Copyright