Menggunakan Fasilitas Software RAID di Linux
Document Sample


Praktik - Menggunakan Fasilitas Software RAID di Linux - CHIP Online... http://www.chip.co.id/index2.php?option=com_content&task=view&i...
Praktik - Menggunakan Fasilitas Software RAID di Linux
Saturday, 02 August 2008
Implementasi Software RAID di Linux
Bagaimana cara memaksimalkan kinerja disk sekaligus menjamin integritas data di dalamnya?
Jawabannya adalah gunakan RAID!
Mungkin Anda sering mendengar istilah RAID saat membeli motherboard atau saat melakukan
setting PC server. Apa sebenarnya RAID itu? Ini adalah singkatan dari Redundant Array of
Inexpensive Disk atau kalau di-Indonesiakan kira-kira maknanya 'kumpulan disk berharga
terjangkau yang saling menunjang”. Terjemahan ini memang tidak benar-benar pas, tetapi
sudah menggambarkan dua sifat utama RAID:
1. Terdiri atas kumpulan hard disk biasa, bukan dibentuk dari disk khusus atau berharga sangat
mahal.
2. RAID dibuat untuk meningkatkan performa baca-tulis dan tingkat keamanan data.
Poin 2 inilah yang paling menarik untuk dibahas karena inilah alasan utama mengapa seseorang
ingin menggunakan konfigurasi RAID. Untuk memahaminya, kita harus terlebih dahulu
mempelajari macam-macam jenis RAID:
a) RAID 0, sering disebut striping without parity. Data akan ditulis merata pada semua partisi
disk yang menjadi anggota RAID . Konfigurasi ini bisa diandaikan seperti seseorang yang
memiliki bola biliar dengan nomor 1 sampai dengan 10. Nomor ganjil masuk ke keranjang
berwarna biru dan nomor genap masuk ke keranjang warna merah.
Dengan susunan ini, jika dua orang ditugaskan mengambil bola nomor 1 sampai dengan 6,
masing-masingnya dapat segera mengambil tiga bola dari masing-masing keranjang. Tiap
orang hanya boleh memakai tangan kanan (dikondisikan mirip seperti head hard disk yang
cuma satu) yang bergerak secara acak membaca data. Bisa Anda bayangkan bahwa pekerjaan
ini menjadi dua kali lebih cepat dibanding dikerjakan hanya oleh satu orang.
b) RAID 1, dikenal dengan nama mirroring. Data akan ditulis sama persis ke semua anggota
RAID. Keuntungan dari pola ini adalah jika terjadi kerusakan pada salah satu partisi anggota
RAID, maka Anda bisa langsung menggunakan data cadangan di partisi lainnya. Hal ini berbeda
dengan RAID 0 karena kerusakan salah satu partisi anggota akan menyebabkan kegagalan
baca-tulis secara keseluruhan.
Kembali ke analogi sebelumnya, RAID 1 bertindak menduplikasi 10 bola yang ada sehingga ada
20 bola. Ada 10 bola yang masuk ke satu keranjang dan sisanya ke keranjang lainnya. Apabila
10 bola di keranjang biru rusak, maka 10 bola di keranjang merah bisa langsung digunakan
untuk bermain biliar.
c) RAID 5, biasa disebut striping with parity. Pada dasarnya, konfigurasi ini mirip seperti RAID
0, hanya saja sekarang ada tambahan suatu data pengaman yang disebut parity. Parity ini
1 of 8 11/28/2008 12:04 AM
Praktik - Menggunakan Fasilitas Software RAID di Linux - CHIP Online... http://www.chip.co.id/index2.php?option=com_content&task=view&i...
memungkinkan struktur RAID dipulihkan seperti semula jika salah satu partisi rusak.
Apabila diringkas, tingkat keamanan data yang paling maksimal ditawarkan oleh RAID 1.
Pengguna yang menginginkan peningkatan performa baca-tulis sebaiknya memilih RAID 5.
Secara implisit, keuntungan penggunaan RAID baru terasa jika Anda menggunakan lebih dari
satu disk (bisa bertipe Parallel ATA atau Serial ATA). Alasannya cukup sederhana, jika hanya
satu disk yang terlibat, head akan bergerak maju-mundur (saat menulis atau membaca) dalam
interval waktu yang singkat sehingga malah menurunkan kinerja. Dengan banyaknya disk, data
akan bisa diakses secara paralel dan independen.
Raid 1: Pada RAID 1, data ditulis secara identik ke semua partisi array.
Sekarang Anda dapat mulai praktik penggunaan RAID. Anda disarankan menggunakan distro
Linux terbaru, misalnya Fedora 6 atau 7, Ubuntu 7.04 atau 7.10, OpenSuSE 10.3, dan
seterusnya. Apabila tidak bisa menggunakan distro baru, setidaknya gunakan kernel versi
terbaru (2.6.23.13 saat tulisan ini dibuat). Ini dimaksudkan agar dukungan RAID benar-benar
maksimal dan sesedikit mungkin mengandung kesalahan program.
Hal ini patut dimaklumi karena fasilitas RAID masih aktif dikembangkan. Pada penulisan ini,
pengujian mengikuti prosedur berbasis distro Fedora 7 yang menggunakan kernel
2.6.21-1.3194. Seperti biasa, prompt $ berarti perintah dikerjakan sebagai user nonroot dan
prompt # berarti sebagai root.
2 of 8 11/28/2008 12:04 AM
Praktik - Menggunakan Fasilitas Software RAID di Linux - CHIP Online... http://www.chip.co.id/index2.php?option=com_content&task=view&i...
Raid 5: RAID 5 agak berbeda karena data disebar ke seluruh partisi.
Persiapan Instan
Langkal awal dimulai dengan membuat konfigurasi mirroring. Di sini, diasumsikan ada dua hard
disk, masing-masing sebagai primary master dan primary slave. Pada distro terkini, mereka
dikenali dengan nama /dev/sda dan /dev/sdb. Di samping itu, periksa apakah paket mdadm
sudah ter-install:
# rpm -qa | grep mdadm
mdadm-2.6.1-4.fc7
Karena mirroring membutuhkan minimal dua partisi yang sama besar, perlu disiapkan dulu dua
partisi kosong. Kenapa harus kosong? Karena jika partisi ini sudah berisi data (dalam arti sudah
diformat dan ada file di dalamnya), informasi tersebut akan ditimpa oleh informasi RAID.
Raid 5: Status awal RAID setelah terbentuk. Perhatikan status “sync” di semua
Dengan kata lain, data Anda sebelumnya menjadi tidak dapat diakses lagi! Catatan penting
lainnya adalah semua partisi yang terlibat harus berukuran sama persis. Apabila tidak sama,
driver RAID akan mengambil patokan ukuran partisi terkecil. Hal ini akan lebih jelas setelah kita
jalani percobaan pertama.
Pada disk pertama, buat partisi berukuran 500 MB:
# parted /dev/sda mkpart logical 20000
20500
Hal yang sama untuk disk kedua:
# parted /dev/sdb mkpart logical 15000
15500
Informasikan adanya perubahan partisi agar segera dikenali:
# partprobe
Sesuaikan perintah di atas menurut kondisi struktur partisi sebenarnya. Partisi bisa berupa
partisi primary maupun logical. Proses format tidak dilakukan pada tahap ini, melainkan setelah
device RAID terbentuk. Perintah berikut akan menjadikan dua partisi ini (dinamakan sda3 dan
sdb3) sebagai anggota RAID:
# mdadm -C /dev/md0 -l 1 -n 2 /dev/sda5
/dev/sdb5 t
Arti dari perintah di atas adalah:
-C untuk membuat device RAID sesuai dengan parameter yang diberikan. Dalam hal ini
digunakan /dev/md0. Nama “md” adalah konvensi untuk perangkat RAID.
-l menentukan tipe RAID yang dipakai. Angka 1 berarti konfigurasi mirroring yang dipakai.
3 of 8 11/28/2008 12:04 AM
Praktik - Menggunakan Fasilitas Software RAID di Linux - CHIP Online... http://www.chip.co.id/index2.php?option=com_content&task=view&i...
-n menunjukkan jumlah partisi yang dimasukkan dalam struktur RAID. Logikanya, angka ini
harus lebih besar dari 1 karena jelas tidak mungkin hanya dengan satu partisi bisa dilakukan
mirroring/striping.
Berikutnya adalah nama-nama partisi yang dilibatkan. Isikan sesuai nama-nama partisi yang
telah disiapkan. Setelah perintah di atas diberikan, file device RAID akan terbentuk dan siap
digunakan. Untuk memastikannya, periksa output dari file /proc/mdstat:
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda5[1] sdb5[0]
409472 blocks [2/2] [UU]
[==================>..] resync
= 93.2% (382848/409472) finish=0.0min
speed=9475K/sec
unused devices: <none>
Output di atas menandakan sistem RAID sedang melakukan inisialisasi untuk memastikan kedua
partisi berada pada kondisi yang 100% sama. Tidak lama kemudian, output akan berganti
menjadi seperti ini:
$ cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda5[1] sdb5[0]
XXXXXX blocks [2/2] [UU]
unused devices: <none>
Aktif saat Booting: Pada bagian ini dapat diketahui bahwa bahwa device RAID telah terdeteksi dan
disetup saat booting.
Selanjutnya, format device baru ini dengan perintah:
# mkfs.ext3 -v /dev/md0
mkf#s.e#xt3 -v /dev/md0
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
XXXXXX inodes, XXXXXX blocks
XXXXX blocks (5.00%) reserved for the
4 of 8 11/28/2008 12:04 AM
Praktik - Menggunakan Fasilitas Software RAID di Linux - CHIP Online... http://www.chip.co.id/index2.php?option=com_content&task=view&i...
super user
....
Writing inode tables: 0/50
....
done
Creating journal (8192 blocks): done
Writing superblocks and filesystem
accounting information: done
Seperti Anda perhatikan, proses formatnya tidak berbeda dengan proses format device biasa.
Sekarang Anda cukup melakukan proses mount ke suatu direktori dan siap membaca-tulis ke
perangkat RAID 1 tersebut.
# mkdir /mnt/raid
# mount /dev/md0 /mnt/raid
# ls -al /mnt/raid/
drwxr-xr-x 3 root root 1024 2008-01-17
15:21 .
drwxr-xr-x 3 root root 4096 2008-01-14
03:47 ..
drwx------ 2 root root 12288 2008-01-17
15:21 lost+found
# df -h /mnt/raid
Filesystem Size Used Avail Use%
Mounted on
/dev/md0 500M 11M 489M 2%
/mnt/raid
Mount point /mnt/raid/ dapat Anda ganti dengan direktori lain yang Anda kehendaki. Kini, Anda
telah sukses menyiapkan RAID! secara instam. Sedikit "quiz" untuk Anda, mengapa ukuran
partisi /dev/md0 hanya 500 MB dan bukan 1000MB? (jawaban pada akhir tulisan).
Mengaktifkan RAID Otomatis Setiap Booting
Sebenarnya masih ada satu tahapan konfigurasi lagi yang perlu dilakukan sebelumnya
me-restart PC. Apabila sistem Linux di-reboot tanpa melakukan tahapan ini, konfigurasi
RAID-nya seperti hilang. File /proc/mdstat juga tidak menunjukkan adanya device RAID aktif:
$ cat /proc/mdstat
Personalities : [raid1]
unused devices: <none>
Apa yang sebenarnya terjadi? Di saat fase inisialisasi, salah satu yang dilakukan sistem Linux
adalah melakukan pengecekan apakah ada file yang berisi daftar device RAID beserta partisi
penyusunnya. File yang perlu Anda buat adalah /etc/mdadm.conf. Apabila device RAID yang
telah dibuat didaftarkan, maka isi file menjadi:
# cat /etc/mdadm.conf
ARRAY /dev/md0 devices=/dev/sda5,/dev/
sdb5
Penjelasan format di atas cukup sederhana, device RAID md0 terdiri atas partisi sda5 dan sdb5.
Sekarang coba reboot Linux dan periksa sekali lagi isi file /proc/mdstat. Otomatis terkonfigurasi
bukan? Anda cukup meng-update isi /etc/fstab dengan baris seperti ini agar device RAID
tersebut juga langsung di-mount:
/dev/md0 /mnt/raid ext3
defaults 1 2.
Mengganti Anggota RAID yang Rusak
Siapa pun tidak menghendaki kerusakan hard disk, tetapi inilah inti mengapa RAID digunakan.
5 of 8 11/28/2008 12:04 AM
Praktik - Menggunakan Fasilitas Software RAID di Linux - CHIP Online... http://www.chip.co.id/index2.php?option=com_content&task=view&i...
Kita anggap saja partisi sdb5 mengalami kerusakan akibat bad sector. Untuk memastikan
kerusakan semacam ini tidaklah mudah, tetapi program badblocks bisa membantu Anda.
Diulang : Penggantian partisi yang rusak akan memaksa terjadinya proses sinkronisasi ulang.
Pertama, unmount device RAID. Sebelumnya, simpan dulu semua file yang sedang diedit dan
hentikan program yang membaca-tulis ke RAID:
# umount /dev/md0
Berikutnya cek adanya bad sector:
# badblocks -s -v /dev/md0
Apabila terlihat ada pesan yang mengindikasikan adanya kesalahan baca, pengecekan perlu
dilakukan untuk mengetahui partisi mana yang sebenarnya perlu diperbaiki. Namun
sebelumnya, hentikan dulu aktivitas RAID:
# mdadm --stop /dev/md0
Barulah ulangi operasi pengecekan bad sector ke setiap partisi:
# badblocks -s -v /dev/sda5
# badblocks -s -v /dev/sdb5
Diasumsikan setelah pengecekan, diketahui sdb5 rusak parah. Anda punya beberapa pilihan,
mengganti hard disk atau membuat partisi baru di disk yang sama tetapi dengan ukuran yang
kurang lebih sama. Karena kemungkinan besar Anda menggunakan sistem PC desktop yang
biasanya tidak dilengkapi fasilitas hot swap, maka Anda cenderung memilih membuat partisi
baru pada disk yang sama.
Catatan: menghentikan RAID boleh diabaikan jika Anda harus tetap melayani operasi
baca-tulis, namun cara ini bukan pilihan terbaik.
Misalnya partisi baru yang dibuat bernama sdb6 dengan ukuran 500 MB dan Anda harus cepat
kembali mengaktifkan RAID agar bisa kembali bekerja. Untuk itu, aktifkan kembali RAID:
# mdadm -A --run /dev/md0 /dev/sda5
Option --run harus digunakan mengingat Anda memerintahkan RAID 1 aktif, tetapi hanya
dengan satu partisi anggota array (normalnya harus ada dua).
# mount /dev/md0 /mnt/raid
Saat ini Anda dapat kembali bekerja membaca-tulis data yang tersimpan. Berikutnya
tambahkan partisi sdb6 secara on-the-fly (sambil terus berjalan):
6 of 8 11/28/2008 12:04 AM
Praktik - Menggunakan Fasilitas Software RAID di Linux - CHIP Online... http://www.chip.co.id/index2.php?option=com_content&task=view&i...
# mdadm --add /dev/md0 /dev/sdb6
Dapat dilihat adanya progress bar yang menunjukkan proses perbaikan. Pada fase ini, data di
partisi sda5 dan sdb6 disinkronisasikan sehingga kembali identik. Relatif terhadap ukuran
partisi, tidak lama kemudian sinkronisasi selesai dan RAID bisa kembali bekerja 100% normal.
“Ah, saya perlu yang lebih cepat. Mematikan RAID tidak bisa saya toleransi!” Tuntutan seperti
ini memang memusingkan, tetapi lagi-lagi RAID memang dibuat untuk memenuhi kebutuhan
kritis seperti ini. Jika memang demikian, langkahnya menjadi sedikit berbeda.
Berangkat dari asumsi yang mirip bahwa partisi sdb5 rusak dan Anda sudah membuat partisi
sdb6 yang sama besarnya. RAID tidak perlu dihentikan, dan hanya perlu melakukan:
# mdadm --fail /dev/md0 /dev/sdb5
Pada titik ini, partisi sdb5 secara efektif tidak lagi terpakai dan dapat Anda singkirkan dari
array:
# mdadm --remove /dev/md0 /dev/sdb5
Mungkin Anda bertanya, “Apa saya aman melakukan hal seperti ini saat saya menulis sesuatu
ke RAID?” Secara umum dapat dikatakan, 99,99% persen langkah ini aman asalkan dalam saat
yang hampir bersamaan, sda5 juga sedang tidak mengalami kerusakan (apapun sebabnya).
Sekarang anda tinggal memasukkan partisi sdb6:
# mdadm --add /dev/md0 /dev/sdb6
Proses recovery akan dimulai. Sambil menunggu, Anda tetap bisa membaca-tulis tanpa terhenti
sama sekali. Sangat membantu bukan?
Terakhir yang perlu dilakukan adalah meng-update /etc/mdadm.conf agar merefleksikan kondisi
terkini:
ARRAY /dev/md0 devices=/dev/sda5,/dev/
sdb6
Cara ini mungkin tidak efektif karena bisa saja Anda salah ketik dan tanpa sengaja
memasukkan nama partisi yang salah. Cara yang lain yang lebih cepat dan akurat adalah
memerintahkan program mdadm untuk melakukan scanning dan memasukkan hasilnya sebagai
entry di /etc/mdadm.conf:
# mdadm -Ebsc partitions > /etc/mdadm.
conf
Isi file konfigurasi akan menjadi sedikit lain:
# cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid1 num-
devices=2 UUID=e22dec1a:88e263a1:
c88e430b:65d86d06
Parameter terakhir memang terlihat aneh. Pada dasarnya, ini adalah semacam tanda pengenal
yang dituliskan pada setiap partisi hard disk yang terpasang di komputer Anda. Saat array RAID
dibentuk setiap kali Linux diinisialisasi, tanda ini akan dicari untuk mencari tahu partisi mana
saja yang menjadi anggota RAID (dalam hal ini /dev/md0). Dengan demikian, Anda tidak perlu
mendaftar sendiri anggota partisi yang terlibat dalam suatu device RAID. Menjawab pertanyaan
(quiz) yang disampaikan sebelumnya, karena bersifat mirroring, maka ukuran partisi efektif
adalah sesuai besaran salah satu partisi yang terkecil.
Source: CHIP 03/2008
Author: Mulyadi, Penulis@CHIP.co.id
7 of 8 11/28/2008 12:04 AM
Praktik - Menggunakan Fasilitas Software RAID di Linux - CHIP Online... http://www.chip.co.id/index2.php?option=com_content&task=view&i...
Close Window
8 of 8 11/28/2008 12:04 AM
Get documents about "