Monthly Archives: December 2008

  • Linux Logical Volume manager – basics

    Logical Volume manager (LVM) creates an abstraction layer over physical storage, that allows us to create logical storage volumes. This provides much greater flexibility than using physical storage directly. A logical volume provides storage virtualization. With a logical volumes, you are not restricted to physical disk sizes. In addition, the hardware storage configuration is hidden from the software so it can be resized and moved without stopping applications.

    This tutorial has info on how to create Logical volumes & snapshots using LVM commands.

    LVM components: This diagram shows the components of LVM.

    Initialize physical disks:

    To make physical disks as part of LVM, the disks should be initialized first. “pvcreate” command is used to initialize physical disks. Let us say, you have 3 disks (/dev/sdb, /dev/sdc, /dev/sdd) and they are to be added to LVM. Use the pvcreate command as below to initialize the disks.

    [[email protected] ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd

    To list all the physical disks in LVM, you can use “pvdisplay” or “pvs” command.

    Volume-group creation:

    “vgcreate” command is used to create volume group out of the physical volumes. The vgcreate command creates a new volume group by name and adds at least one physical volume to it. The below command creates a volume group named “vg0” that contains physical volumes /dev/sdb, /dev/sdc and /dev/sdd.

    [[email protected] ~]# vgcreate vg0 /dev/sdb /dev/sdc /dev/sdd

    To list all the volume groups created , use “vgdisplay” or “vgs” command.

    [[email protected] ~]# vgdisplay vg0
      — Volume group —
      VG Name               vg0
      System ID
      Format                lvm2
      Metadata Areas        3
      Metadata Sequence No  11
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               0
      Max PV                0
      Cur PV                3
      Act PV                3
      VG Size               99.84 GB
      PE Size               4.00 MB

    Logical Volume creation:

    To create a logical volume, use the “lvcreate”command. You can create linear volumes, striped volumes, and mirrored volumes. This unixfoo example shows you only the linear logical volumes. Say, let us create a 40G volume of name “myvol01”. The command to create is ..

    [[email protected] ~]# lvcreate -L 40G -n myvol01 vg0

    This creates logical volume of name “myvol01” of size “40G” on the volume group vg0. The logical volume can be accessed on device path “/dev/vg0/myvol01”. You can display the properties of this logical volume using “lvdisplay” or “lvs” command. Now this volume is ready for filesystem creation – you can create ext2 or ext3 or any other linux filesystems on this using mkfs comamnd.

    Snapshot of a Logical volume:

    Snapshots are point-in-time or instantaneous copy of a logical volume. This is very helpful in cases like – instant backup of volume, online and accessible backup of volume, read-only copy of the volume, read-write copy of the volume. If you have a database or application that is running on the volume, the snapshot copy can be even used to debug and replicate the issues that occur on the application.

    Snapshot is created using the same “lvcreate” command with “-s” flag. You have to specify the size of snapshot, the snapshot name, parent volume name and volume group. Here is how we create ..

    [[email protected] ~]# lvcreate -s -L 2GB -n myvol_snap /dev/vg0/myvol01.

    This creates snapshot volume named “myvol_snap” , and the device path is /dev/vg0/myvol_snap. This is a read-write snapshot copy and you can mount it and read/write/modify the data in it. The data changed in snapshot volume or the parent volume doesnt affect one-other. You can monitor the percentage of snapshot change using “lvdisplay” and “lvs” commands.

    Checkout the LVM overview presentation below