Tag

Setelah instalasi dilakukan kami ingin melakukan setting RAID 1.

Pada saat instalasi kami memiliki dua buah hardisk masing-masing memiliki ukuran 1 TB dan dikenali sebagai /dev/sda dan /dev/sdb. Kami telah melakukan instalasi pada /dev/sda dan akan menambahkan /dev/sdb sebagai bagian dari RAID 1.

Berikut ini adalah layout partisi yang ada di /dev/sda …

/dev/sda1   <-- / - root - ext4
/dev/sda2   <-- extended
/dev/sda5   <-- SWAP
/dev/sda6   <-- /home - ext4

Ringkasan yang dilakukan adalah:

– INSTALASI PAKET PENDUKUNG
– MEMPERSIAPKAN /dev/sdb
– MEMBUAT RAID ARRAY
– UPDATE /etc/fstab
– SETTING DAN INSTALASI GRUB 2
– COPY FILE DARI /dev/sda KE /dev/sdb
– REBOOT MESIN
– MESIN TIDAK BISA MELAKUKAN REBOOT
– MESIN BISA MELAKUKAN REBOOT
– MENAMBAHKAN /dev/sda KE RAID ARRAY
– FINISHING dan SARAN
– SUMBER

INSTALASI PAKET PENDUKUNG

# apt-get install initramfs-tools mdadm rsync

Saat muncul pilihan pada instalasi mdadm kurang lebih berisi “MD arrays needed for the root file system: ” masukkan pilihan dengan nilai “all”.

Kemudian lakukan load pada module kernel …

# modprobe linear
# modprobe raid0
# modprobe raid1
# modprobe raid5
# modprobe raid6
# modprobe raid10

Sekarang lakukan check up apakah mdadm berjalan dengan perintah …

# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>

MEMPERSIAPKAN /dev/sdb

Sampai disini langkah selanjutnya adalah mempersiapkan /dev/sdb.

Agar bisa digunakan maka /dev/sda dan /dev/sdb harus memiliki layout yang sama untuk partisinya. Disini akan dilakukan copy terhadap layout partisi yang dimiliki oleh /dev/sda ke /dev/sdb dengan perintah:

# sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Apabila proses copy berhasil maka saat dilakukan perintah fdisk -l semestinya layout partisi yang dimiliki /dev/sdb sama dengan /dev/sda!

Selanjutnya type partisi milik /dev/sdb haruslah memiliki tipe fd ( Linux raid autodetect ). Berikut langkah yang dilakukan pada permasalahan ini:

# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): <-- t
Partition number (1-6): <-- 1
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): <-- t
Partition number (1-6): <-- 5
Hex code (type L to list codes): <-- fd
Changed system type of partition 5 to fd (Linux raid autodetect)

Command (m for help): <-- t
Partition number (1-6): <-- 6
Hex code (type L to list codes): <-- fd
Changed system type of partition 6 to fd (Linux raid autodetect)

Command (m for help): <-- w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Perhatikan bahwa yang diset tidak termasuk partisi extended, sehingga untuk partisi nomor 2 tidak diset tipenya dan hanya dilakukan pada bagian 1, 5 dan 6. Dalam hal ini adalah untuk /dev/sdb1, /dev/sdb5 dan /dev/sdb6.

Untuk meyakinkan bahwa di /dev/sdb tidak terdapat informasi terhadap setting RAID lain sebelumnya (dan seharusnya tidak ada), maka dilakukan perintah zero-sized-superblock:

# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdb5
# mdadm --zero-superblock /dev/sdb6

Apabila muncul pesan error, hal tersebut menandakan tidak ada info mengenai RAID pada /dev/sdb, dan demikian sebaliknya.

MEMBUAT RAID ARRAY

Dalam hal ini kita akan membuat 3 buah RAID array, yaitu /dev/md0 untuk /dev/sdb1 dan /dev/sda1, /dev/md1 untuk /dev/sdb5 dan /dev/sda5, dan /dev/md2 untuk /dev/sdb6 dan /dev/sda6.

Karena /dev/sda masih digunakan oleh system maka kita set mode RAID ini sebagai degraded mode dengan mendeklarasikan salah satu disk ( ingat ini RAID 1 = 2 disk ) sebagai ‘missing’.

# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb5
# mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb6

Sekarang coba check status RAIDnya …

# cat /proc/mdstat

Tanda [_U] menandakan bahwa RAID array dalam mode degraded, atau ada salah satu hardisk yang tidak masuk dalam array RAID 1 dari yang seharusnya ada 2 DISK.

Lalu kita format device array tersebut dengan /dev/md1 dijadikan sebagai swap ( /dev/sda5 merupakan swap di /dev/sda ).

# mkfs.ext4 /dev/md0
# mkswap /dev/md1
# mkfs.ext4 /dev/md2

Kemudian konfigurasi mdadm kita update dengan setting RAID yang dimiliki, dengan sebelumnya kita simpan konfigurasi aslinya.

# cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf-ORI
# mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Pastikan agar pada baris akhir /etc/mdadm/mdadm.conf terdapat baris baru yang merupakan konfigurasi RAID arraynya, atau pastikan dengan perintah diff dengan file aslinya.

# diff /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf-ORI

Selain itu tambahkan nilai pada /etc/mdadm/mdadm.conf setting berikut:

DEVICE /dev/sda* /dev/sdb*

Lakukan rekonfigurasi mdadm dan check status RAID sekarang …

# dpkg-reconfigure mdadm
# cat /proc/mdstat

UPDATE /etc/fstab

Seperti yang dijelaskan diatas bahwa terdapat 3 buah partisi dengan

– /dev/sda1 untuk root ( / )
– /dev/sda5 untuk swap
– /dev/sda6 untuk home ( /home )

Maka harus diubah agar mounting Debian akan merujuk ke array RAID 1 yang dimiliki, sehingga untuk masing-masing setting di /etc/fstab diubah :

– /dev/sda1 untuk root diubah menjadi /dev/md0
– /dev/sda5 untuk swap diubah menjadi /dev/md1
– /dev/sda6 untuk home diubah menjadi /dev/md2

Apabila yang tampil di fstab berupa UUID maka untuk memastikan yang mana bagian /dev/sda1 dst bisa di check dengan perintah

# blkid

SETTING DAN INSTALASI GRUB 2

Karena tidak menggunakan UUID lagi maka di setting /etc/default/grub diubah dengan nilai:

GRUB_DISABLE_LINUX_UUID=true
GRUB_TERMINAL=console

Lalu untuk membuat menu custom:

# cp /etc/grub.d/40_custom /etc/grub.d/09_swraid1_setup
# nano /etc/grub.d/09_swraid1_setup

Isinya adalah …

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'Debian RAID GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
    insmod raid
    insmod mdraid1x
	insmod part_msdos
	insmod ext2
	set root='(md/0)'
	echo	'Loading Linux 2.6.32-5-amd64 ...'
	linux	/boot/vmlinuz-2.6.32-5-amd64 root=/dev/md0 ro quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.32-5-amd64
}

Perhatikan nilai dari 2.6.32-5-amd64 diatas agar digantikan dengan nilai dari kernel yang digunakan saat ini. Atau bisa dipastikan dengan perintah ..

uname -r

Kemudian karena /dev/md0 adalah root maka di bagian set root diberikan nilai ‘(md/0)’ serta pada bagian loading kernel di set root=/dev/md0!

Lalu edit file /etc/initramfs-tools/conf.d/mdadm (kalau tidak ada tambahkan) …

nano /etc/initramfs-tools/conf.d/mdadm

Berikan nilai berikut …

BOOT_DEGRADED=true

Kemudian update grub agar menuliskan setting yang dituliskan di /etc/grub.d/09_swraid1_setup ke /boot/grub/grub.cfg …

# update-grub

Lalu update ram disk agar menyesuaikan dengan setting baru …

# update-initramfs -u

Pastikan pula grub terinstall di kedua hardisk …

# grub-install /dev/sda
# grub-install /dev/sdb

COPY FILE DARI /dev/sda KE /dev/sdb

Disini yang diperlukan berdasarkan kondisi partisi adalah proses copy dari /dev/sda1 ke /dev/md0 dan /dev/sda6 ke /dev/md2.

Pertama kita lakukan mounting /dev/md0 dan /dev/md1 …

# mkdir /mnt/md0
# mkdir /mnt/md2
# mount /dev/md0 /mnt/md0
# mount /dev/md2 /mnt/md2

Lalu kita gunakan rsync …

# rsync -auHxv --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* /* /mnt/md0/
# rsync -auHxv /home/* /mnt/md2/

Tunggu hingga complete dan kemudian setelah itu mesin di reboot …

REBOOT MESIN

# reboot

Sampai disini BERDOALAH DENGAN SANGAT KUAT agar proses booting berjalan sempurna😀

MESIN TIDAK BISA MELAKUKAN REBOOT

Apabila booting tidak berjalan di loading GRUB, biasanya ada beberapa hal …

– perhatikan kode kernel
– perhatikan device yang diload sebagai root

Pada saat loading awal di pilihan bisa kita tekan tombol “e” dan kemudian dirubah setting partisi yang harus dipilih.

Apabila tidak bisa juga, gunakan DEBIAN RESCUE MODE dan edit /etc/grub/grub.cfg di /dev/sda1 dan hilangkan tambahan dari file /etc/grub.d/09_swraid1_setup.

Intinya adalah: pastikan bahwa mesin melakukan reboot dari hardisk pertama yaitu /dev/sda lagi.

MESIN BISA MELAKUKAN REBOOT

Apabila ini yang terjadi, SELAMAT😀

Sekarang gunakan perintah “df -h” atau “mount” dan pastikan bahwa:

– nilai device yang merujuk ke / (root) adalah /dev/md0
– nilai device yang merujuk ke swap adalah /dev/md1
– nilai device yang merujuk ke /home adalah /dev/md2

Apabila demikian maka proses instalasi dan setting berjalan baik.

MENAMBAHKAN /dev/sda KE RAID ARRAY

Setelah bisa dipastikan semua aplikasi berjalan sempurna menggunakan RAID maka sekarang waktunya untuk menambahkan /dev/sda ke dalam RAID array ( ingat bahwa sampai langkah ini RAID 1 dalam kondisi degraded ).

Tambahkan /dev/sda1 ke /dev/md0, /dev/sda5 ke /dev/md1, dan /dev/sda6 ke /dev/md2:

# mdadm /dev/md0 -a /dev/sda1
# mdadm /dev/md1 -a /dev/sda5
# mdadm /dev/md2 -a /dev/sda6

Sampai disini maka semua data yang ada di /dev/sda bisa dipastikan hilang😀 dan langkah selanjutnya adalah menunggu proses sinkronisasi diantara /dev/sda dan /dev/sdb selesai dilakukan. Untuk melihat prosesnya bisa dilihat dengan melakukan perintah …

# cat /proc/mdstat

Atau agar bisa dilihat secara terus menerus dengan perintah …

# watch -n 10 cat /proc/mdstat

Pastikan proses tersebut selesai dilakukan dan Lamanya waktu tergantung dari besar data serta kecepatan akses diantara 2 hardisk tersebut. Pada hardisk dengan besar 1 TB menghabiskan waktu hingga lebih kurang 5 jam.

FINISHING dan SARAN

Setelah proses sinkronisasi selesai dilakukan maka langkah selanjutnya adalah menghapus /etc/grub.d/09_swraid1_setup, melakukan update untuk GRUB.

# rm /etc/grub.d/09_swraid1_setup
# update-grub
# update-initramfs -u
# grub-install /dev/sda
# grub-install /dev/sdb

Lalu reboot system …

# reboot

Check lagi setting partisi dan juga status RAID …

# df -h
# cat /proc/mdstat

Langkah selanjutnya yaitu testing, tapi langkah ini menunggu saat penulisan berikutnya😀

Selain itu saran yang bisa diberikan adalah:
– seharusnya pada saat implementasi sebelumnya dilakukan survey dahulu tentang kompabilitas distro linux yang kita gunakan dengan mesin
– RAID akan lebih mudah diinstall apabila dilakukan instalasi SEJAK PERTAMA KALI PADA WAKTU INSTALASI linux

SUMBER:
http://feeding.cloud.geek.nz/posts/setting-up-raid-on-existing/
http://blog.devplug.org/2013/01/12/debian-how-to-set-upraid1-soft-madadm-remotely-on-running-system/
http://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-system-incl-grub2-configuration-debian-squeeze
http://www.ducea.com/2009/03/08/mdadm-cheat-sheet/