Senin, 21 Oktober 2013

LVM (Logical Volume Manager)



          Pengertian LVM 

            Logical Volume Management (LVM) adalah sebuah metode yang digunakan untuk mengalokasikan space pada perangkat penyimpanan yang lebih fleksibel dari pada skema partisi konvensional.
            Dengan adanya LVM maka management partisi akan bisa 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. 
            Selain itu, LVM dapat memberikan Anda fitur yang sistem file tradisional tidak mampu melakukan. Sebagai contoh, ext3 tidak memiliki dukungan untuk live snapshot, tetapi jika Anda menggunakan LVM Anda memiliki kemampuan untuk mengambil snapshot dari logical volume Anda tanpa perlu unmount disk.

           Jadi intinya LVM adalah alat untuk manajemen volume logis yang meliputi mengalokasikan disk, striping, mirroring dan ukuran volume logis.
          Dengan LVM, hard drive atau set hard drive dialokasikan untuk satu atau lebih volume fisik. LVM volume fisik dapat ditempatkan pada perangkat blok lainnya yang mungkin rentang dua atau lebih disk.
         Volume fisik digabungkan menjadi volume logis, dengan pengecualian dari  boot / partisi. Partisi / boot / tidak dapat di kelompokan oleh volume logis karena boot loader tidak bisa membacanya. Jika root (/) partisi pada volume logis, membuat / boot terpisah / partisi yang bukan merupakan bagian dari kelompok volume.
         Karena volume fisik tidak dapat span selama beberapa drive, untuk span lebih dari satu drive, membuat satu atau lebih volume fisik per drive.




            Kelompok-kelompok volume dapat dibagi menjadi volume logis, yang ditugaskan titik mount, seperti / home dan / dan jenis sistem file, seperti ext2 atau ext3. Ketika "partisi" mencapai kapasitas penuh mereka, ruang bebas dari kelompok volume dapat ditambahkan ke volume logis untuk meningkatkan ukuran partisi. Ketika sebuah hard drive baru ditambahkan ke sistem, maka dapat ditambahkan ke grup volume, dan partisi yang volume logis dapat meningkat dalam ukuran.



             Ada 3 konsep yang LVM kelola :
  •     Grup Volume
  •     Volume fisik
  •     Volume logis

            Sebuah Volume Group koleksi bernama volume fisik dan logis . Sistem khas hanya perlu satu Volume Grup untuk menampung semua dari volume fisik dan logis pada sistem, dan saya ingin nama saya setelah nama mesin . Volume fisik sesuai dengan disk , mereka adalah blok perangkat yang menyediakan ruang untuk menyimpan volume logis. Volume logis sesuai dengan partisi mereka memegang filesystem . Meskipun tidak seperti partisi, volume logis mendapatkan nama dari angka, mereka dapat span di beberapa disk , dan tidak harus berdekatan secara fisik.


         

Keuntungan dan kerugian LVM

KEUNTUNGAN

  •  Mudah untuk merubah ukuran partisi (memperbesar atau mengurangi)
  •  Mampu menggabungkan partisi lain menjadi satu untuk memperoleh space yang lebih besar
  • Mudah dalam hal management partisi hard disk

KERUGIAN

  • Dapat membuat proses booting lebih rumit dan membuat perbaikan dari bencana sulit dilakukan.
  • LV dapat menderita karena fragmentasi eksternal ketika PE tidak dialokasikan secara berdampingan  pada storage dibawahnya yang dapat membuat kinerja I/O menurun.



Cara Kerja LVM

            LVM membuat header metadata pada awal setiap PV, yang masing-masing secara unik diidentifikasi oleh UUID (Universal Unique Identifier). Setiap Header PV adalah salinan lengkap dari seluruh Layout VG , termasuk UUID dari semua PV lain, UUID dari semua LVs dan peta alokasi PE ke LE. Metode ini menyederhanakan pemulihan data jika terjadi hilangnya salah satu atau lebih PV.
Dalam Kernel Linux seri 2.6, LVM diimplementasikan dalam hal pemetaan perangkat (Device Mapper), sebuah skema block-level sederhana untuk menciptakan perangkat block-device virtual dan pemetaan isi perangkat block-device ke perangkat blok lainnya.

            Cara ini meminimalkan jumlah kode kernel yang relatif sulit untuk di-debug yang diperlukan untuk mengimplementasikan LVM. Hal ini juga memungkinkan I/O untuk mengarahkanservice yang kemudian untuk dibagikan dengan manajer volume lainnya (seperti EVMS). Setiap kode LVM secara spesifik didorong menjadi media penyimpanan, yang hanya memanipulasi pemetaan dan merekonstruksi kondisi metadata mereka dari setiap pemanggilan.


Dasar dari LVM adalah:
  • Physical volume (PV): Partisi pada hard disk (atau bahkan hard disk itu sendiri atau berkas loopback) di mana Anda dapat memiliki kelompok volume. Ini memiliki header khusus dan dibagi menjadi luasan fisik. Pikirkan volume fisik sebagai blok bangunan besar yang dapat digunakan untuk membangun hard drive Anda. 
  • Kelompok Volume (VG): Kelompok volume fisik yang digunakan sebagai volume penyimpanan (sebagai salah satu disk). Mereka berisi volume logis. Pikirkan kelompok volume sebagai hard drive.
  • Volume logis (LV): Sebuah "virtual / logical partition" yang berada dalam kelompok volume dan terdiri dari luasan fisik. Pikirkan volume logis sebagai partisi normal.
  • Batas fisik (PE): Sebuah bagian kecil dari disk (biasanya 4MB) yang dapat ditugaskan untuk Volume logis. Pikirkan luasan fisik sebagai bagian dari disk yang dapat dialokasikan untuk setiap partisi.  
     
     contoh :
     
       Physical disks
                    
      Disk1 (/dev/sda):
         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
        |Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume)     |
        |/dev/sda1                         |/dev/sda2                             |
        |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
                                      
      Disk2 (/dev/sdb):
         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
        |Partition1 120GB (Physical volume)                 |
        |/dev/sdb1                                          |
        | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|
     
      LVM logical volumes
    
      Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):
         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
        |Logical volume1 15GB  |Logical volume2 35GB      |Logical volume3 200GB               |
        |/dev/MyStorage/rootvol|/dev/MyStorage/homevol    |/dev/MyStorage/mediavol             |
        |_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
    
                                                                                                        Berikut ini adalah langkah-langkah konfigurasinya:
     
    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.... Kini kita telah berhasil menggabungkan 2 buah partisi menjadi 1 buah ‘partisi’ yang lebih besar menggunakan LVM.
                        

Tidak ada komentar:

Posting Komentar