Logical Volume Manager (LVM) dan contoh real penggunaannya

Attention: open in a new window. PDFPrintE-mail

Artikel ini ditulis berdasarkan pengalaman penulis karena kehabisan space di partisi /home. Dengan menggunakan LVM (Logical Volume Manager) maka kita dapat menggabungkan partisi lainnya ke dalam partisi /home untuk memperbesarnya. Sebelumnya, mari kita bahas dulu mengenai LVM. LVM adalah singkatan dari Logical Volume Manager. Dengan LVM ini pengaturan space dan partisi dalam harddisk menjadi lebih dari sekedar pengertian tradisional device dan partisi yang biasa kita ketahui selama ini. Secara tradisional, kita mengenal harddisk dari device namenya yaitu /dev/hda, /dev/hdb dstnya utk harddisk IDE dan /dev/sda, /dev/sdb dstnya untuk SCSI, dan partisi2nya seperti /dev/hda1, /dev/hda2, /dev/sda1, /dev/sda2 dstnya.

Tentu ada yang bertanya memangnya apa salahnya dengan pembagian partisi secara tradisional ini? Well, pernah bertanya2 bagaimana schema partisi yang sebaiknya kita pakai di Linux? Tidak jarang pertanyaan ini dijawab dengan kata2 "Pembagian partisi Linux lebih merupakan seni dan pengalaman daripada ilmu pasti". Mengapa begitu? Sebab kalau kita sampai salah mempartisi, dan kemudian ternyata partisi tersebut habis spacenya, maka akan cukup sulit dan memakan waktu untuk membetulkannya.

Tidak demikian bila kita menggunakan LVM. Dengan LVM, harddisk dibagi2 menjadi beberapa level Volume, yaitu Physical Volume, Volume Group, dan Logical Volume. Terlihat rumit? Jangan khawatir, LVM tidak sesulit yang dibayangkan.

Physical Volume (PV) adalah seperti arti harafiahnya yaitu partisi yang seperti kita kenal yaitu seperti /dev/hda1, /dev/hda2.
Volume Group (VG) adalah satu atau gabungan dari beberapa buah Physical Volume.
Logical Volume (LV) adalah volume2 yang kita buat di dalam Volume Group. LV ini nantinya bisa kita mount sesuai keinginan.


Sekarang bagaimana penerapannya?
Penulis baru2 ini menghadapi kendala dimana partisi /dev/hda6 yang di mount ke /home telah semakin sedikit free spacenya. Berikut ini adalah kondisi partisi berikut mount point harddisk saya sebelum LVM:

Filesystem            Size  Used Avail Use% Mounted on
/dev/hda5             6.4G  5.4G  617M  90% /
/dev/hda6              12G   10G    2G  83% /home
/dev/hda7               7G  3.1G  3.9G  44% /data
udev                  252M  156K  252M   1% /dev
/dev/hda1             9.9G  7.8G  2.1G  79% /winc
/dev/hda2             2.0G  1.6G  397M  81% /wind


Penulis ingin menggabungkan partisi /dev/hda6 dan /dev/hda7 untuk mount point /home. Bagaimana caranya? Dengan menggunakan LVM tentunya.

Berikut ini adalah langkah2nya:
1. Backup dahulu data2 yang ada di partisi /dev/hda6 (/home) dan /dev/hda7 (data). Sebab kita harus mengubah jenis partisinya menggunakan fdisk sehingga data2 yang ada di kedua partisi tersebut akan hilang. Dalam hal ini penulis membackupnya ke sebuah external usb harddisk.
2. Setelah kita memastikan bahwa data2 telah di backup. Kita akan mulai mengubah jenis partisinya dari ext3 ke LVM (8e). Tapi sebelumnya kita pindah dahulu ke run level 3.
init 3
3. Di run level ini kita login sebagai root. Mengapa tidak login sebagai user biasa? Sebab /home akan kita matikan. Kalau kita login sebagai user biasa maka kita tidak dapat meng-umount /home.
4. Umount /home dan /data
umount /home
umount /data

5. Kita mulai mengubah partisi. Perhatian. Pastikan benar2 bahwa kita tidak salah memilih partisi yang akan kita ubah. Dan juga pastikan bahwa kita telah membackupnya.
fdisk /dev/hda

The number of cylinders for this disk is set to 4864.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):

t

Partition number (1-8): 6
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (LVM)


Ubah lagi untuk hda7

t

Partition number (1-8): 7
Hex code (type L to list codes): 8e
Changed system type of partition 7 to 8e (LVM)

Setelah itu kita save:
w

The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

Kita akan kembali ke prompt. Kernel menyimpan informasi partisi di memory, yang dibaca pada saat booting. Bila kita tidak ingin melakukan booting ulang, maka kita bisa menggunakan command ini untuk memaksa kernel membaca kembali table partisi:
partprobe

6. Kita cek apakah sudah benar partisinya:
fdisk -l /dev/hda

Disk /dev/hda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1281    10289601    7  HPFS/NTFS
/dev/hda2            1282        1536     2048287+   b  W95 FAT32
/dev/hda3            1537        4864    26732160    5  Extended
/dev/hda5            1537        2374     6731203+  83  Linux
/dev/hda6            2414        3942    12281661   8e  Linux LVM <--- sudah berubah
/dev/hda7            3943        4864     7405933+  8e  Linux LVM <--- sudah berubah
/dev/hda8            2375        2413      313236   82  Linux swap / Solaris


7. Kita mulai membuat LVMnya:
7a. Buat PVnya:
pvcreate /dev/hda6 /dev/hda7

Physical volume "/dev/hda6" successfully created
Physical volume "/dev/hda7" successfully created


7a2. Kita dapat melihat statusnya:
pvdisplay

  --- Physical volume ---
  PV Name               /dev/hda6
  VG Name               vghome
  PV Size               11.71 GB / not usable 0
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              2998
  Free PE               0
  Allocated PE          2998
  PV UUID               f9IDtR-6Xmo-Hnvu-Ou4T-77rW-nhM9-chIdqG

  --- Physical volume ---
  PV Name               /dev/hda7
  VG Name               vghome
  PV Size               7.06 GB / not usable 0
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              1807
  Free PE               0
  Allocated PE          1807
  PV UUID               2oN8gs-B77y-Ks1I-LDnc-KBYX-faEN-tAbYhF


7b. Buat VGnya:
vgcreate vghome /dev/hda6 /dev/hda7

Volume Group "vghome" successfully created

7b2. Kita dapat melihat statusnya:
vgdisplay

--- Volume group ---
  VG Name               vghome
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               18.77 GB
  PE Size               4.00 MB
  Total PE              4805
  Alloc PE / Size       4805 / 18.77 GB
  Free  PE / Size       0 / 0
  VG UUID               SB7NBc-aqXR-k32e-2K7T-tji8-Y0Nt-6UiLZ4



7c. Buat LVnya:
lvcreate -l 4805 -n lvhome vghome

Logical Volume "lvhome" successfully created


Dari mana kita tahu angka 4805 ini? Ia adalah banyaknya PE (Physical Extend) yang ada di dalam suatu VG. Dalam hal ini penulis memutuskan untuk memakai seluruh PE yang ada untuk LV lvhome.

7c2. Kita dapat melihat statusnya:
lvdisplay

  --- Logical volume ---
  LV Name                /dev/vghome/lvhome
  VG Name                vghome
  LV UUID                Fe4kLr-Xn7R-ewnt-5TZj-4iWl-WIPF-S4qOFo
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                18.77 GB
  Current LE             4805
  Segments               2
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0


8. Setelah membuat LVnya, kini kita dapat memformatnya. Penulis menggunakan ext3.
mke2fs -j /dev/vghome/lvhome

mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type=Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
246432 inodes, 4920320 blocks
246016 blocks (5%) reserved for the super user
First data block=0
151 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group

writing inode tables: done
Creating journal (32768 blocks): done


9. Kemudian jangan lupa kita update file /etc/fstab. Hapus baris /dev/hda6 dan /dev/hda7. Kemudian ganti dengan:
/dev/vghome/lvhome    /home    ext3    defaults    1 2

10. Kita pastikan bahwa LVM yang kita buat tersebut dapat berjalan dengan baik dengan cara memboot Linux kita.

11. Setelah boot, coba kita lihat apakah /home telah termount dengan baik, dan juga kita cek free spacenya.
mount

/dev/hda5 on / type ext3 (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/mapper/vghome-lvhome on /home type ext3 (rw) <--- telah termount dengan baik
/dev/hda1 on /winc type ntfs (ro,noexec,nosuid,nodev,gid=100,umask=0002,nls=utf8)
/dev/hda2 on /wind type vfat (rw,noexec,nosuid,nodev,gid=100,umask=0002,utf8=true)


Juga cek free spacenya:
df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/hda5             6.4G  5.4G  618M  90% /
udev                  252M  164K  252M   1% /dev
/dev/mapper/vghome-lvhome
                       19G   12G  5.8G  68% /home <-- telah menjadi 19GB dan setelah kita copy balik data2 ke /home
/dev/hda1             9.9G  7.8G  2.1G  79% /winc
/dev/hda2             2.0G  1.6G  397M  81% /wind


Bandingkan dengan sebelum LVM:

Filesystem            Size  Used Avail Use% Mounted on
/dev/hda5             6.4G  5.4G  617M  90% /
/dev/hda6              12G   10G    2G  83% /home
/dev/hda7               7G  3.1G  3.9G  44% /data
udev                  252M  156K  252M   1% /dev
/dev/hda1             9.9G  7.8G  2.1G  79% /winc
/dev/hda2             2.0G  1.6G  397M  81% /wind



12. Selesai deeehhh... Kini kita telah berhasil menggabungkan 2 buah partisi menjadi 1 buah 'partisi' yang lebih besar menggunakan LVM.

Kesimpulan
Dengan adanya LVM maka management partisi menjadi lebih fleksible. Kapanpun kita membutuhkan space tambahan di salah satu partisi, kita akan dapat selalu memperbesarnya bila kita menggunakan LVM. Ada beberapa variasi yang dapat kita lakukan, seperti dengan sengaja tidak mengalokasikan beberapa persen dari space harddisk kita agar nanti dapat kita pakai bila ada salah satu partisi membutuhkannya, dll. Dengan adanya LVM kita tidak perlu khawatir lagi di dalam bagaimana mempartisi Linux kita.

LVM adalah produk yang telah cukup matang. Hal ini dapat kita lihat dimana beberapa distro besar telah menjadikannya default dalam installasinya. Jadi bila kamu akan menginstall Linux, bila memungkinkan gunakanlah LVM.

Merdeka!
Ilmu Pengetahuan adalah Milik Bersama.

Bahan bacaan lebih lanjut:
http://www.tldp.org/HOWTO/LVM-HOWTO/
http://sources.redhat.com/lvm2/
http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html


v.1.0 by ari_stress a.k.a tiger74 a.k.a Fajar Priyanto Bukit Sentul, 8 October 2006. Email: fajarpri at arinet dot org. He is a Microsoft Certified Professional who falls in love with Linux. Now he is a Redhat Certified Engineer (RHCE).

Comments (3)
  • andre
    walah mantap
  • jaya
    Pak Pri,,,
    Terima kasih artikelnya, sebagai pemula untuk pengguna Linux system ini sanget berguna sekali. se
    dan gimana cara configure LAN, dan configure hardisk baru?

    Terima kasih atas perhatiannya.
  • jaya
    Pak Pri..saya punya Linux system, sekarang /usr 99%, gimana cara extend agar tidak full.
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda6 396623 162018 214124 44% /
    /dev/sda1 101086 9381 86486 10% /boot
    none 322892 0 322892 0% /dev/shm
    /dev/sda7 194442 8123 176280 5% /opt
    /dev/sda9 101086 5929 89938 7% /tmp
    /dev/sda2 1715620 1604400 24068 99% /usr
    /dev/sda5 497829 86258 385869 19% /var
    /dev/sda8 13662112 4665976 8302132 36% /data
    /dev/sda10 101086 62815 33052 66% /home
    phoenix:/>

    Linux phoenix 2.6.9-5.0.3.EL

    Terima kasih atas perhatiannya.

    Salam
    tea99
Only registered users can write comments!