Mengubah volume EBS Amazon EC2 ext4 ke sistem file XFS

8

Saya perlu mengubah sistem file Amazon EC2 ext4 saya menjadi XFS sehingga saya dapat mengambil snapshot yang konsisten dan mengirimkannya ke S3. Saya menggunakan gambar kecil khusus dari server ubuntu 10.10 dengan arsitektur i686 di us-east. Masalahnya adalah saya hanya menggunakan satu drive EBS untuk semua file dan sekarang membuat saya sakit kepala, karena saya tidak bisa benar-benar melepas, memformat atau benar-benar melakukan apa saja pada drive ketika masuk ke instance dari ssh. Dugaan saya adalah saya perlu membagi volume EBS menjadi 2 dan memindahkan / var / www dan / var / lib ke volume EBS kedua dan mengubahnya menjadi XFS. Saya menggunakan apache2, mysql, ispconfig, bind, postfix, kurir, pureftp ( http://www.howtoforge.com/perfect-server-ubuntu-10.10-maverick-meerkat-ispconfig-3 )

Terima kasih.

jaz
sumber

Jawaban:

9

Anda dapat mengonversi volume root menjadi XFS atau membuat volume kedua. Secara pribadi, saya akan menyukai yang terakhir karena menawarkan lebih banyak fleksibilitas.

Opsi 1: Konversi Volume Root ke XFS

  1. Hentikan instance Anda (tidak berakhir) (sebut saja instance A)
  2. Mulai instance baru (sebut saja instance B)
  3. Lepaskan volume root dari instance A dan pasangkan ke instance B
  4. Buat volume EBS kedua, pasangkan ke instance B
  5. Format volume EBS baru sebagai XFS (instal xfsprogsjika belum dilakukan)
  6. Salin semua data dari volume pertama ke yang baru (misalnya menggunakan rsync -aHAXxSP /source /target)
  7. Lepaskan volume baru dari instance B dan lampirkan sebagai volume root instance A
  8. Mulai instance A
  9. Hentikan instance B (volume root asli harus tetap ada, simpan di sekitar sampai hal-hal bekerja sesuai keinginan Anda).

Alasan untuk melampirkan volume root ke instance lain adalah untuk mendapatkan konsistensi, yang akan sulit dengan volume yang digunakan.

Opsi 2: Pindahkan data ke volume EBS kedua

  1. Buat volume EBS kedua dan pasangkan ke instance Anda; format sebagai XFS dan pasang
  2. Identifikasi direktori mana yang ingin Anda pindahkan ke volume baru (beberapa untuk dipertimbangkan termasuk: / var / log, / var / lib / mysql, / var / www, / var / spool / mail, / var / vmail)
  3. Hentikan layanan sebanyak mungkin untuk menghapus kunci tulis
  4. Gunakan lsof | grep /path/to/diruntuk memeriksa sisa kunci tulis
  5. Pindahkan direktori ke volume EBS baru
  6. Mount mengikat direktori baru ke lokasi yang lama (yaitu mount -o bind /mnt/path/to/dir /orig/path/to/dir)
  7. Ulangi untuk setiap direktori
  8. Mulai layanan Anda untuk memastikan semua berfungsi
  9. Edit /etc/fstabfile Anda untuk menjadikan mount point permanen; misalnya:/mnt/path/to/dir /orig/path/to/dir bind defaults,noatime,bind 0 0

Mulai ulang untuk memastikan semuanya tetap ada dan berfungsi sebagaimana mestinya. Anda mungkin juga ingin mempertimbangkan untuk mengecilkan volume root Anda sedikit karena, semoga, itu tidak boleh tumbuh (atau berubah) banyak dengan semua data dihapus dari itu.

(Sebagai tambahan, dimungkinkan untuk membekukan sistem file ext4 menggunakan fsfreeze, yang termasuk dalam util-linux-ng).

cyberx86
sumber
Terima kasih, saya akan menggunakan opsi 1 karena saya tidak yakin saya dapat memulihkan dari cadangan dengan metode kedua, jika ada masalah.
jaz
Anda dapat mengembalikan setiap volume EBS secara independen - Anda dapat menyimpan snapshot dari kedua volume secara terpisah, mengembalikan yang mana yang Anda butuhkan. Snapshot EBS Amazon berbeda dan dikompresi, sehingga total ruang yang digunakan tidak akan jauh berbeda dengan data pada dua volume yang bertentangan dengan satu.
cyberx86
1
Untuk Opsi 1: Versi ubuntu terbaru akan gagal untuk boot karena label "cloudimg-rootfs" terlalu panjang untuk XFS. Anda perlu memperbaikinya dengan memperpendek label yang digunakan; langkah-langkah ini dari tautan di bawah ini: Beri label perangkat / dev / xvdf sebagai '/'. Jalankan saja: xfs_admin -L \ / / dev / xvdf Mount / dev / xvdf di direktori / xfs. Edit file fstab terkait dengan volume XFS baru (/ xfs / etc / fstab) dan pastikan / dikaitkan dengan volume berlabel / dan sistem file xfs dikonfigurasikan untuk mountpoint root Dari sini: jsianes.blogspot.com/2014/06/…
JaredBroad