Saya telah mengkonfigurasi server MySQL baru di Amazon EC2 dan memutuskan untuk menyimpan data saya pada EBS RAID0 Array. Sejauh ini bagus, dan saya telah menguji pengambilan snapshot dari perangkat-perangkat itu dengan ec2-konsisten-snapshot, hebat.
Sekarang, bagaimana Anda membangun kembali array pada instance baru, dari snapshot ini, dengan cepat?
Saat Anda menggunakan ec2-konsisten-snapshot untuk membuat snapshot dari beberapa volume, Anda tidak memiliki cara untuk mengetahui volume mana yang digunakan untuk setiap perangkat di RAID. Saya mungkin benar-benar salah, tetapi karena Anda menghapus data di seluruh volume, masuk akal bahwa Anda harus meletakkan setiap volume BARU di lokasi yang sama pada RAID sebagai volume dari mana snapshot dibuat.
Sebuah contoh:
- Volume 3x200gb dalam konfigurasi RAID0.
- vol-1 adalah perangkat / dev / sdh 0 di RAID
- vol-2 adalah perangkat / dev / sdh1 1 di RAID
- vol-3 adalah perangkat / dev / sdh2 2 di RAID
Anda membuat snapshot EC2 dengan: ec2-consistent-snapshot <options> vol-1 vol-2 vol-3
.
Anda sekarang memiliki 3 snapshot, dan satu-satunya cara untuk melacak kembali perangkat mana mereka adalah dengan melihat id volume sumber, kemudian melihat pada perangkat mana volume id sumber dipasang seperti pada contoh, dan kemudian memeriksa rincian RAID konfigurasi pada instance volume sumber.
Ini jelas sangat manual ... dan tidak cepat (yang jelas membuat sulit untuk memunculkan instance mysql baru dengan cepat jika yang lain gagal. Belum lagi, Anda harus merekam posisi perangkat pada RAID pada saat itu) snapshot, karena jika instance volume sumber macet, Anda tidak memiliki cara untuk mendapatkan konfigurasi RAID).
Jadi, sebagai kesimpulan:
- Apakah saya kehilangan sesuatu dengan cara EC2-konsisten-snapshot dan array perangkat lunak RAID0 bekerja?
- Jika tidak, apakah ada solusi / praktik terbaik yang diketahui di sekitar masalah tidak mengetahui perangkat / posisi mana dalam array RAID yang dimiliki snapshot?
Saya harap ini jelas, dan terima kasih atas bantuan Anda!
sumber
Saya menjalankan konfigurasi yang sama ( RAID0 lebih dari 4 volume EBS ), dan akibatnya memiliki keprihatinan yang sama untuk menyusun kembali array RAID dari snapshots yang dibuat dengan ec2-konsisten-snapshot .
Untungnya, setiap perangkat dalam array serangan berisi metadata (dalam superblok) yang mencatat posisinya dalam array, UUID array dan level array (misalnya RAID0). Untuk menanyakan superblok ini pada perangkat apa pun, jalankan perintah berikut (baris yang cocok '^ ini' menjelaskan perangkat yang diminta):
Jika Anda melakukan kueri yang sama pada perangkat yang bukan bagian dari array, Anda memperoleh:
Yang membuktikan bahwa perintah ini sangat bergantung pada informasi yang tersimpan pada perangkat itu sendiri dan bukan pada beberapa file konfigurasi.
Satu juga dapat memeriksa perangkat array RAID mulai dari perangkat RAID, mengambil informasi serupa:
Saya menggunakan nanti bersama dengan ec2-menggambarkan-volume untuk membangun daftar volume untuk ec2-konsisten-snaptshot ( -n dan --debug memungkinkan untuk menguji perintah ini tanpa membuat snapshots). Perintah berikut mengasumsikan bahwa direktori / mysql adalah titik mount untuk volume dan bahwa wilayah AWS adalah us-west-1 :
sumber
Saya tahu ini tidak menjawab pertanyaan Anda, tetapi saya melakukan sesuatu yang serupa tetapi dengan alat ec2-create-snapshot basis Amazon dan skrip cron. Ini tidak secepat snapshot yang konsisten dengan ec2, tapi saya mendapatkan kontrol ekstra yang saya butuhkan: fsync, lock menulis, dan yang paling penting, beri nama snapshot dengan tepat sehingga dapat disusun kembali dalam urutan yang benar.
sumber