[Seri HA 0] Kloning Sistem

Apa hubungannya HA (High Availability) dengan kloning sistem? He.. he.. he.., saya ingin memasang HA ini di mesin virtual dulu, semacam simulasi dulu lah, baru nanti pasang di mesin sebenarnya. Ada beberapa catatan untuk mengkloning sistem di mesin virtual ini, dan ada yang berlaku juga apabila kita ingin menginstal sistem operasi dengan cara menyalin partisi. Mesin virtual yang digunakan adalah VirtualBox keluaran SUN. Ingin mencoba juga dengan qemu, tapi itu nanti dulu lah.

Kita mulai dengan membuat mesin virtual di VirtualBox dan menginstall sistem operasi, yang saya gunakan disini adalah Fedora 10. Setelah lengkap software-software yang terinstall, kita kloning hardisk virtualnya untuk dipakai di mesin virtual kedua. VirtualBox sebenarnya menyediakan alat untuk mengkloning hardisk virtual, perintahnya:

[hansen@hansen ~]$ VBoxManage clonehd HB1.vdi HB2.vdi

Tapi sayangnya hasil kloning dengan cara seperti itu menghasilkan hardisk virtual yang korup dan belum bisa dipakai (tiket 2813) dan berdasarkan tiket diatas bug tersebut sudah diperbaiki untuk rilis selanjutnya. Tetapi untungnya ada solusi yang dituliskan di komentar bug diatas. Kopi saja virtual hardisk yang sudah terinstall lengkap dan rubah uuid dari virtual hardisk hasil kopian dengan perintah:

[hansen@hansen ~]$ VBoxManage internalcommands sethduuid HB2.vdi

Mengapa semua perintah diatas diperlukan? Karena hardisk virtual mempunyai uuid unik untuk tiap filenya dan VirtualBox tidak bisa memakai hardisk virtual yang mempunyai uuid sama. Setelah beres, hardisk virtual kedua siap dipasang untuk mesin virtual kedua. Nyalakan mesin virtual kedua dan ternyata ada beberapa pernak-pernik kecil yang masih perlu dibenahi didalam sistemnya. Pembenahan ini bisa dilakukan juga untuk penginstallan sistem operasi dengan cara menyalin partisi hardisk.

Yang penting untuk dirubah: host key dari ssh server. Sistem hasil kloning akan mempunyai host key ssh server sama persis dengan master-nya. Hal ini harus dirubah demi keamanan dan host key ssh server tidak boleh sama untuk setiap mesin. Caranya ternyata gampang, di generate ulang. Fedora (atau ssh server) akan membuat host key saat pertama kali dijalankan. Nah dimana file-file host key tersebut? File-file tersebut berada di /etc/ssh/

[hansen@hansen ~]$ ll /etc/ssh/
total 160
-rw------- 1 root root 125811 2008-10-17 15:44 moduli
-rw-r--r-- 1 root root   1964 2008-10-17 15:44 ssh_config
-rw------- 1 root root   3711 2008-10-17 15:44 sshd_config
-rw------- 1 root root    668 2008-08-21 14:52 ssh_host_dsa_key
-rw-r--r-- 1 root root    590 2008-08-21 14:52 ssh_host_dsa_key.pub
-rw------- 1 root root    963 2008-08-21 14:52 ssh_host_key
-rw-r--r-- 1 root root    627 2008-08-21 14:52 ssh_host_key.pub
-rw------- 1 root root   1675 2008-08-21 14:52 ssh_host_rsa_key
-rw-r--r-- 1 root root    382 2008-08-21 14:52 ssh_host_rsa_key.pub

File-file yang di generate adalah ssh_host* Jadi hapus saja file-file tersebut agar nanti waktu ssh server dijalankan akan men-generate lagi. Sebelum menghapus matikan dulu service sshd dengan perintah ‘service sshd stop’, setelah itu hapus file ssh_host* tersebut dan jalankan lagi service sshdnya. Viola, akan ada file ssh_host* yang baru dan berbeda dengan ssh_host* dari master.

Yang tidak terlalu penting tapi menggelitik saja: kartu jaringan mesin virtual kedua penomorannya tidak dimulai dari 0 (eth0). Kenapa begitu? Fedora (udev tepatnya) ternyata merekan penomoran kartu jaringan yang dikaitkan dengan MAC address suatu kartu jaringa. Jadi praktis nomor 0 adalah milik kartu jaringan pertama dari master (no seterusnya juga kalau di master ada lebih dari satu kartu jaringan). Kapan dan dimana rekamannya? Saat pertama kali boot dan tertulis di file 70-persisten-net.rules di folder /etc/udev/rules.d Coba kita lihat isi file tersebut:

[hansen@hansen ~]$ cat /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.

# Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rule written by anaconda)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:19:21:6e:72:43", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Dua baris terakhir adalah rekaman tersebut, jadi hapus saja kedua baris terakhir dan boot ulang (ugh.. kenapa harus boot ulang? Mungkin resart service-nya udev bisa juga, belum coba)

Nah dua mesin virtual sudah siap untuk di-setup sebagai HA! Lanjut ke seri 1.

Join the Conversation

3 Comments

  1. menarik mas,

    kejadiannya sama pas mau deploy virtual mesin yang saya hosting di os dan tempat berbeda, akan ketemu masalah di file 70-persisten-net.rules 😀

    keren dokumentasinya, dua jempol!

Leave a comment

Leave a Reply