Gunakan Partisi Terbesar di Server Amazon EC2

Untuk yang pernah menggunakan (me-launch) instance baru di Amazon EC2, biasanya mendapatkan setingan partisi default : 10 GB untuk sistem operasi, dan sisanya di /mnt. Beberapa waktu lalu saya juga membuat instance baru di Amazon EC2. Kali ini bukan Debian, tapi Ubuntu 10.04. Instance kali ni merupakan instance yang large : Prosessor AMD 64 (virtual tentunya), RAM 7,8GB, dan hardisk 400GB-an (lupa pastinya). AMI yang saya gunakan, yang resmi dari Canonical.

Sama seperti instance untuk server Debian. 10 GB digunakan untuk sistem operasi, dan sisanya (414 GB) dimount ke partisi /mnt.  Nah berhubung website ini membutuhkan banyak space, dan space terbesar justru berada di /var, maka /mnt itu akan saya ganti jadi /var.

Catatan : /var banyak makan space, karena di dalamnya ada direktori untuk script web (/var/www), direktori untuk data MySQL (/var/lib/mysql), dan jangan lupa LOG ! Kasus saya dulu partisi utama cepat penuh justru karena Log Apache (Thanks to agan Yuda Nugrahadi atas petunjuknya). Ah iya, Log apache terletak di /var/log/apache2/

Nah. Kembali ke topik. Jadi ini langkah – langkah yang saya lakukan agar space 414 GB itu menjadi direktori /var sistem.

1. Login ssh ke server (karena pakai Amazon EC2, jangan lupa gunakan file key pairing nya *.pem, atau kalau tidak mau repot lakukan : ssh-add fileKey.pem).

2. sudo -s (biar jadi root)

3. pico /etc/fstab.

ganti baris :

/dev/sdb    /mnt    auto    defaults,comment=cloudconfig    0    0

jadi :

/dev/sdb    /var    ext3    defaults    0    0

4. rsync -avz /var/* /mnt/

5. mv /var  /var-old

6. umount /dev/sdb

7. mount /dev/sdb

8. Kalau mau lebih yakin : reboot

Nah langkah – langkah di atas berjalan dengan baik untuk 2 server yang saya sempat senggol. Tapi cukup riskan juga sebenarnya. Jika tidak yakin, jangan coba – coba.. He..he..

MySQL di Hari Minggu

Semalam dapet kabar kalau webserver F tewas lagi (kedua kalinya dalam bulan ini). Masalahnya sederhana sebenarnya, hardisknya penuh.

Jadi dengan menggunakan Debian 5.0 di Amazon EC2, default setting partisnya dibagi dua. Total kapasitas hardisknya sekitar 500GB, 10 GB nya buat system (/), sisanya dimount di partisi antah berantah. Dulu sudah saya set agar partisi satunya digunakan untuk DocumentRoot Apache. Karena total file di DocumentRoot nya itu nyampe 44GB.., ya harus masuk di partisi kedua. (baru nyadar kalo web F itu total file nya 44GB, pantes dulu pindah dari dedicated server ke Amazon EC2 prosesnya lama banget.., rsync dari jam 11-an malem, pas sahur baru selesai..)

Tapi ada yg saya enggak tahu. Di partisi sistem itu, 10GB saya rasa sudah cukup. Tapi ternyata tidak.., dari hasil monitoring setiap hari space nya selalu terpakai makin banyak, hingga mencapai 100%. Otomatis /tmp nggak bisa ditulisi.., /var/lib/mysql juga nggak bisa ditulisi.. matilah sudah MySQL nya.. Dan tewaslah webnya.. Sampai sekarang saya masih bertanya – tanya apa yang bikin space hardisknya terus – menerus habis, lalu tiba – tiba berkurang lagi.

df-week

Jadi terpaksa lah diambil alternatif lain, bagaimana caranya agar web F tetap jalan sementara saya mencari tahu apa yang memakan space terus menerus..

Beginilah jadinya :

  1. Buat direktori /var/labanux
  2. Ubah /etc/fstab, saya set agar partisi kedua di mount di /var/labanux
  3. Buat direktori /var/labanux/www
  4. Semua file web dipindah ke /var/labanux/www (ini nih yang 44GB itu)
  5. rsync -avz /var/lib/mysql /var/labanux/   (Tadinya pake copy aja.., tapi sepertinya ada yang ndak beres, makanya ganti rsync aja)
  6. Rename /var/lib/mysql /var/lib/mysql-lama
  7. Ubah konfigurasi /etc/mysql/my.cnf (‘datadir  = /var/lib/mysql’ diganti jadi ‘datadir  = /var/labanux/mysql’
  8. Buat direktori /var/labanux/tmp
  9. Delete /tmp
  10. Link : ln -s /var/labanux/tmp /tmp
  11. /etc/init.d/mysql start
  12. GAGAL…!! Error mysqlnya…
  13. Oh iya : chown -R mysql /var/labanux/mysql (karena tadi yang bikin direktori dll nya adalah root, jadi user mysql ndak punya akses toh.., makanya diganti ownernya)
  14. /etc/init.d/mysql start
  15. GAGAL lagi…. Masih masalah disk full..
  16. Ya udah, nekat delete /var/lib/mysql (sekitar 500MB)
  17. /etc/init.d/mysql start
  18. Yiihaaa….! Dah jalan lagi

Jadi sekarang semua data – data MySQL sudah masuk di partisi kedua (sekitar 490-an GB), begitu juga /tmp sekarang masuk di partisi tersebut. Jadi sementara ini partisi root (/) masih bersisa 500-an MB, yang mana nanti juga saya curiga bakal penuh lagi. Tapi setidaknya sementara web F udah bisa jalan lagi.. Tidur lagi ah…