Logical Volume Manager (LVM) dan contoh real penggunaannya

01.14 Unknown 0 Comments

Logical Volume Manager (LVM) dan contoh real penggunaannya
Written by maya

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=utf
/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.

0 komentar: