Thursday, July 16, 2009

menyelamatkan harddisk server

semua berawal dari 2 minggu yang lalu, ketika tiba-tiba /dev/sdb3 (/home) mount access nya berubah jadi read-only. dan saat ini, sudah agak telat untuk menyelamatkan semua data karena ada beberapa directory yang hilang akibat auto-repair ext3. but all is not lost. mostly semua masih bisa berjalan.

prosedur penyelamatan:
  1. design.
    enakan ngambil 2 harddisk dan di RAID supaya ngga' terjadi seperti ini lagi, atau cukup 1 aja karena toh server sudah berumur 5 tahun lebih? akhirnya ngambil satu saja (dengan segala konsekuensinya)
  2. cari harddisk.
    susah untuk server type 5 tahun lalu. terpaksa ngambil yang mahal karena ngga' punya waktu untuk inden barang aslinya 6-8 minggu. kalo yang ready, cukup nunggu 1 malam saja.
  3. pasang.
    harusnya kalo udah tipe bracket dan hotswap, tinggal masukin aja langsung bisa. tapi, ternyata tokonya masang bracket aja ngga' bener. bracket ngga' mau masuk ke slot-slot yang tersedia (udah dicoba semua). harddisk jadi terpaksa menunggu tambahan satu malam lagi sampai teknisi dari tokonya bisa datang.
  4. partition.
    nah ini juga pake design. disediakan space buat /boot, /, /home, dan /var untuk mengantisipasi /dev/sda jebol. tools yang dipake cfdisk instead of fdisk, sesuai rekomendasi.
  5. format.
    format dengan reiserfs (good for read which is good for app server). bacaan: XFS good tapi auto-repairnya bisa menghilangkan data, ReiserFS untuk kebutuhan kecepatan dan keterbatasan I/O, XFS itu pemakan memory, dan teknisnya.
    mkfs.reiserfs -l [label_name] [device]
  6. clone data.
    supaya cepet, nyoba pake dd. baca artikel bagusnya tentang penggunaan dd untuk cloning.
    dd if=/dev/sb3 of=/dev/sdc7
    agak lama nunggunya. tidak ada status pula (tapi ternyata bisa lewat SIGUSR seperti diberitahu di artikelnya prefetch. tapi ternyata karena partisinya beda antara source dan destination, jadinya malah ngga' bisa dibaca partisi barunya. format ulang lagi. dan copy dengan tar+cd+tar seperti disarankan oleh salah satu komentator di artikel linuxjournal:
    tar --preserve --sparse --totals -cf - /mnt/Source | (cd /mnt/Dest; tar --preserve --totals -xvf -)
    jauh lebih lama dari dd. tapi sabar aja deh
  7. ubah fstab untuk mengarahkan ke yang baru
    not as easy. ternyata fstab sudah berdasarkan UUID instead of /dev/sdXX. coba trial-and-error dulu. tadi sempet ngeliat tulisan uuid pas format ke reiserfs pake cfdisk. coba boot, gagal total dan masuk ke single user. ternyata UUID di cfdisk itu adalah UUID yang akan di-assign kalo format _jadi_ dilakukan bukan UUID partisi tersebut saat ini. jadi harus update ilmu lagi dari unix tutorial
    vol_id /dev/sdc7 -u
  8. restart
nah sekarang waktunya untuk memperbaiki possible damages:
  1. file-file script yang belum updated
    debugging lagi deh. mudah-mudahan masih inget masalahnya
  2. file-file data lain yang _mungkin_ hilang
    mari kita mengais backup
perjalanan masih panjang nak...