Membangun RAID dan LVM menggunakan Linux

From OnnoWiki
Jump to navigation Jump to search

Berikut ini adalah sebuah contoh panduan mensetup RAID-5 dan LVM di sebuah sistem Linux. Beberapa perintah yang diberikan disini umumnya berbasis pada kernel 2.6. Beberapa instruksi mungkin tidak dapat dijalankan di distro yang lain.

Apakah RAID dan LVM?

LVM merupakan singkatan dari Logical Volume Manager yang merupakan salah satu cara pengelompokan harddisk atau partisi. Dengan menggunakan LVM kita tidak perlu pusing dengan partisi fisik harddisk, akan tetapi data akan di manajed menggunakan partisi virtual yang memungkinkan partisi virtual di ubah besar / size-nya dengan mudah.

Salah satu kelemahan LVM, tidak dapat digunakan untuk /boot

Percobaan Menginisialisasi RAID-5

Sebelum kita secara serius menggunakan sistem RAID dan LVM untuk data yang penting, ada baiknya kita melakukan experimen / percobaan dengan RAID dan LVM. Salah satu cara yang paling sederhana adalah menggunakan beberapa harddisk tua dan membuat beberapa partisi di harddisk tersebut. Kemudian mencoba menggabungkan partisi-partisi tersebut menjadi partisi RAID. Dalam ujicoba yang akan di contohkan disini akan dibuat dua RAID-5 masing-masing terdiri dari tiga (3) partisi.

Dalam percobaan anda dapat secara manual membuat “fail” dan “hot remove” partisi dari RAID dan menambahkan secara manual kembali ke RAID untuk melihat bagaimana proses perbaikan berjalan. Biasanya kita akan memperoleh peringatan bahwa partisi sharing pada harddisk yang sama, hal ini dapat di abaikan dalam proses experimen ini. Dalam operasional yang betul, sebaiknya tidak ada partisi yang di share di harddisk yang sama pada pembuatan RAID.

Dalam contoh yang akan dilakukan ada dua sistem RAID, satu menggunakan dua harddisk SCSI 73Gbyte menjalankan RAID0 atau RAID1. Yang lain menggunakan tiga (3) harddisk IDE menjalankan RAID-5. Umumnya kita akan menggunakan RAID-5 dalam operasional karena ini lebih sering digunakan.

Pada sistem yang di contohkan, digunakan IDE controller extra yang memungkinkan kita mempunyai lebih dari empat (4) harddisk IDE. Oleh karena itu alokasi harddisk yang digunakan mungkin tidak standard dengan yang biasa kita lihat. Urutan alokasi harddisk tidak menjadi masalah di Linux, oleh karena itu kita tidak perlu takut dengan urutan yang aneh-aneh tersebut. Konfigurasi dasar yang digunakan dalam contoh adalah sebagai berikut,

hda 120Gbyte harddisk
hdb 120Gbyte harddisk
hde 60Gbyte boot harddisk bukan RAID
hdf 120Gbyte harddisk
hdg CD-ROM drive

Langkah pertama yang perlu dilakukan adalah membuat partisi di setiap harddisk yang nantikan akan dijadikan bagian dari RAID. Dalam contoh akan digunakan masing-masing 120Gbyte harddisk secara keseluruhan. Oleh karena itu semua harddisk 120Gbyte akan dipartisi sama satu sama lain. Sebagai contoh partisi hda adalah sebagai berikut:

Disk /dev/hda: 120.0 GB, 120034123776 bytes
16 heads, 63 sectors/track, 232581 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1      232581   117220792+  fd  Linux raid autodetect

Perhatikan bahwa ke tiga (3) harddisk di partisi menggunakan id fd atau Linux raid autodetect oleh karena itu kita dapat langsung menggabungkan seluruh seluruh partisi menjadi RAID melalui perintah:

# /sbin/mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 \
        /dev/hdb1 /dev/hda1 /dev/hdf1

Tampak sangat sederhana sekali cara membuat RAID. Proses RAID akan menghasilkan partisi / harddisk baru, yaitu /dev/md0, yang dapat digunakan seperti layaknya sebuah partisi tanpa perlu menyentuh partisi asalnya. Kita dapat dengan mudah mencek status RAID menggunakan perintah madm berikut, yaitu:

# /sbin/mdadm --detail /dev/md0
        Version : 00.90.01
  Creation Time : Wed May 11 20:00:18 2005
     Raid Level : raid5
     Array Size : 234436352 (223.58 GiB 240.06 GB)
    Device Size : 117218176 (111.79 GiB 120.03 GB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Jun 10 04:13:11 2005
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0 

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : 36161bdd:a9018a79:60e0757a:e27bb7ca
         Events : 0.10670 

    Number   Major   Minor   RaidDevice State
       0       3        1        0      active sync   /dev/hda1
       1       3       65        1      active sync   /dev/hdb1
       2      33       65        2      active sync   /dev/hdf1 

Parameter yang perlu diperhatikan dengan baik adalah State. State harus bersih, jika tidak kemungkinan besar kita akan memperoleh masalah. Dibawah State pastikan bahwa semua harddisk pada kondisi “active sync” yang pada dasarnya menyatakan bahwa masing-masing harddisk secara aktif masuk ke RAID. Kita juga dapat menambahkan harddisk cadangan jika salah satu harddisk RAID tewas.

Hal yang perlu diperhatikan besarnya RAID hanya sekitar 240Gbyte padahal harddisk yang digunakan adalah 120Gbyte. Hal ini terjadi karena extra harddisk digunakan untuk menyimpan data parity yang diperlukan untuk me-recover data jika salah satu harddisk gagal.

Menginisialisasi LVM di atas RAID

Setelah kita mempunyai partisi /dev/md0 kita dapat membuat Logical Volume di atasnya. Mengapa kita ingin menggunakan LVM? Jika kita membuat file system ext3 di atas RAID secara langsung, dan pada suatu hari ingin menambah kapasitas harddisk maka melalui proses panjang mulai dari backup data, membuat RAID baru dan mengembalikan data yang di backup. Pengalaman saya membutuhkan waktu tidak kurang dari 24 jam untuk membackup 250Gbyte data. Dengan menggunakan LVM kita dapat menambahkan (atau mengurangi) besarnya filesystem tanpa mengganggu data yang ada.

Berikut adalah langkah yang perlu dilakukan untuk menambahkan RAID ke sistem LVM. Perintah pertama yang digunakan adalah pvcreate yang akan "menginisialisasi harddisk atau partisi untuk digunakan oleh LVM”. Perintah ke dua adalah vgcreate yang akan membuat Volume Group, dalam hal ini dinamakan lvm-raid:

# pvcreate /dev/md0
# vgcreate lvm-raid /dev/md0

Nilai default untuk physical extent size mungkin terlalu rendah untuk RAID yang besar. Jika hal ini terjadi, maka kita perlu mengunakan option -s untuk membuat physical extent size yang lebih besar dari default. Default yang ada biasanya 4MByte. Sebagai contoh. agar 550Gbyte RAID berhasil dengan baik maka sebaiknya digunakan size 2Gbyte, melalui perintah,

# vgcreate -s 2G <volume group name>

Sampai tahapan ini, kita pada dasarnya telah membuat tempat kosong. Selanjutnya kita perlu memberitahukan berapa physical extent dari physical device (dalam hal ini /dev/md0) yang akan dialokasikan ke Volume Group. Dalam contoh ini, kita akan mengalokasikan semua data dari /dev/md0 untuk Volume Group. Jika di kemudian hari kita akan menambahkan harddisk tambahan, kita perlu membuat RAID baru dan menambahkan partisi RAID baru tersebut ke Volume Group.

Untuk mengetahui berapa Physical Extent yang tersedia untuk digunakan dapat menggunakan perintah vgdisplay. Selanjutnya, kita dapat membuat Logical Volume menggunakan semua (atau sebagian) dari tempat yang ada di Logical Group. Dalam contoh, kita akan menamakan Logical Volume sebagai lvm0.

# vgdisplay lvm-raid
        .
        .
   Free  PE / Size       57235 / 223.57 GB
# lvcreate -l 57235 lvm-raid -n lvm0

Pada akhirnya kita akan mempunyai sebuah partisi yang mirip dengan partisi lama yang dinamakan /dev/lvm-raid/lvm0. Kita dapat mencek status dari Logical Volume menggunakan perintah lvdisplay. Partisi tersebut selanjutnya dapat di format untuk meletakan filesystem yang kita inginkan.

# lvdisplay /dev/lvm-raid/lvm0 
  --- Logical volume ---
  LV Name                /dev/lvm-raid/lvm0
  VG Name                lvm-raid
  LV UUID                FFX673-dGlX-tsEL-6UXl-1hLs-6b3Y-rkO9O2
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                223.57 GB
  Current LE             57235
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:2
# mkfs.ext3 /dev/lvm-raid/lvm0
        .
        .
# mount /dev/lvm-raid/lvm0 /mnt

# df -h /mnt
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/lvm--raid-lvm0
                       224G   93M  224G   1% /mnt


Pranala Menarik