Dengan kebutuhan 10TB untuk didukung ini menjadi sedikit rumit.
Replika bukan pengganti cadangan yang tepat
Sementara anggota set replika yang tertunda dapat menyediakan cara yang relatif mudah untuk membantu Anda dengan operasi yang tidak disengaja, tidak ada pengganti untuk cadangan yang tepat, sangat mirip dengan RAID bukan pengganti untuk cadangan berbasis sistem file.
Rekomendasi
Itu sangat tergantung pada bagaimana pengaturan Anda terlihat.
Snapshot SAN
Dengan 10TB, saya berasumsi Anda memiliki semacam SAN terlampir. Cara termudah untuk membuat cadangan MongoDB di lingkungan tersebut adalah untuk memastikan Anda telah mengaktifkan penjurnalan pada sistem file dan MongoDB dan cukup mengambil snapshot dari volume SAN dari salah satu dari kedua, mungkin yang tersembunyi untuk memastikan operasi Anda tidak akan terganggu. Ini biasanya hanya butuh beberapa detik, tapi tolong _membuat _bahwa jendela oplog replikasi Anda sudah cukup. Jika tidak, Anda mungkin perlu menyinkronkan kembali yang kedua.
Jangan gunakan mongodump
Saya harus tidak setuju dengan RolandoMySQLDBA tentang penggunaan mongodump. Pertama-tama, itu memaksakan kunci di server. Meskipun mereka diangkat relatif cepat, jumlah kunci di sana mungkin bertambah dan mengganggu operasi Anda, kecuali dijalankan pada simpul tersembunyi atau ketika tidak ada preferensi baca yang mengenai yang kedua. Plus, itu tidak terlalu cepat. Saya berharap ini berjalan selama berjam-jam, setidaknya, kemungkinan besar akan lebih lama dari jendela cadangan Anda. Catatan: Selalu jalankan mongodump dengan --oplog
opsi. Juga perlu diingat bahwa mongodump tidak membuat cadangan indeks, tetapi operasi untuk membuat indeks. Indeks-indeks tersebut harus dibuat ulang selama pemulihan, yang mungkin secara besar-besaran menambah waktu yang Anda perlukan untuk itu. Dari pengalaman saya, jika Anda harus mengembalikan database, Anda ingin memilikinya secepat mungkin. Poin lain mengapa mongodump tidak cocok untuk membuat cadangan 10TB.
Catatan tentang snapshot LVM
Anda dapat melakukan snapshot LVM pada instance mongod yang sedang berjalan asalkan Anda mengaktifkan penjurnalan dalam mongod (dan dari pengalaman saya, tidak ada salahnya untuk mengaktifkannya di level FS juga). Namun, snapshot LVM datang dengan beberapa implikasi. Pertama, Anda jelas perlu memiliki cukup ruang disk yang dapat mengambil perubahan selama operasi pencadangan. Izinkan saya menjelaskannya.
Mari kita asumsikan Anda memiliki tingkat perubahan 500GB per jam. Dan Anda ingin cadangan Anda diblokir sebelum diunggah ke beberapa penyimpanan. Bahkan ketika menggunakan bzip2 paralel , kompresi 10TB akan membutuhkan beberapa jam untuk menyelesaikannya, hanya karena fakta bahwa kemungkinan besar throughput penyimpanan massal Anda akan menjadi faktor pembatas Anda. Mari kita asumsikan akan memakan waktu 2 jam untuk mengompres data ke 2TB. Jadi sekarang kita akan membutuhkan 2TB + 2 * 500GB total ruang disk kosong, 1TB diperlukan untuk snapshot LVM. Setidaknya ini akan menciptakan kebutuhan penyediaan sistem file Anda secara berlebihan30%. Jika Anda ingin memiliki margin keamanan yang tepat, ini dapat dengan mudah meningkat menjadi 60-70% (20% untuk faktor pemanfaatan 0,8 untuk sistem file asli, sama untuk ukuran snapshot ditambah ruang yang dibutuhkan untuk cadangan bzipped itu sendiri ). Di sebagian besar lingkungan produksi, itu tidak dapat diterima, karena ketentuan yang berlebihan akan statis (Anda tidak ingin skrip cadangan untuk memotong dengan LVM Anda secara dinamis, bukan?).
Cadangan MMS
Sementara cadangan MMS memiliki beberapa fitur luar biasa (cadangan terus-menerus, pemulihan waktu dengan mudah), namun disertai dengan beberapa kelemahan serius: label harganya untuk penggunaan besar bisa dengan mudah mencapai ribuan. Dengan asumsi tingkat perubahan per jam sebesar 500GB pada 10TB itu, itu akan menjadi jumlah sedang enam digit untuk cadangan cloud . Bulanan.
Saran saya dia akan mengambil langganan perusahaan untuk server Anda karena memenuhi syarat untuk memiliki instance MMS premis, termasuk cadangan.
Ringkasan
Berikut adalah opsi yang akan saya ambil dalam urutan preferensi.
- Snapshots SAN: mudah diimplementasikan, relatif murah
- Langganan perusahaan: Fitur terbaik. Instal, konfigurasikan, lupakan, itu ada di sana saat Anda membutuhkannya
- Snapshots LVM: mudah diimplementasikan, tetapi biaya yang diperlukan untuk penyediaan lebih sedikit dari waktu ke waktu.