Saya memiliki dua server, ditempatkan di pusat data di Belanda dan Perancis. Keduanya menjalankan Debian Wheezy. Saya perlu berbagi / pulang di antara mereka, dengan kinerja yang baik. Ada 300-an pengguna di server, sekitar 30 di antaranya harus dapat memiliki proses aktif pada server tertentu pada waktu tertentu, masing-masing memiliki 50 kbit membaca dan dan 20 kbit menulis / detik, dengan puncak pendek sekitar 2000 kbit / sedang membaca. tindakan dengan iotop pada penyimpanan lokal. Saya memiliki banyak file kecil, total sekitar 500000 dan membutuhkan latensi serendah mungkin. Ping antar server adalah 17 ms, dan koneksi dapat mencapai sekitar 20-30 MB / s saat menggunakan scp dan wget. Sepertinya harus ada banyak bandwidth yang tersedia untuk itu juga berfungsi, tetapi ...
Apa yang telah saya telusuri sejauh ini: sshfs: Sepertinya memiliki kinerja yang lebih baik daripada nfs, tetapi secara umum mengubah izin file untuk di-root, membuat aplikasi macet.
nfs: Cara untuk memperlambat, mencoba noatime banyak opsi lain, tetapi tetap bertindak lamban, bahkan ketika hanya beberapa proses yang aktif.
drbd: 5 jam kerja buntu, ketika saya menyadari saya tidak bisa benar-benar me-mount filesystem pada kedua sistem :-(
glusterfs: Memiliki salinan lokal dari semua data benar-benar terdengar menjanjikan, tetapi akses file acak benar-benar lambat dan setelah berjalan beberapa saat, itu menjadi lambat luar biasa dan hampir hang. noatime tidak membantu.
nfs lagi: Masih lesu.
Menangis ke keyboard: Tidak ada perbaikan sama sekali.
Apa yang harus dicoba selanjutnya? Setiap percobaan yang gagal telah berlangsung satu malam atau mungkin lebih selama minggu lalu, dan saya sangat ingin metode selanjutnya bekerja. Dan ya, sangat penting bahwa sistem file dibagi di antara kedua server.
Terima kasih atas gagasan baru tentang masalah ini.
sumber
Jawaban:
Ada beberapa solusi yang mungkin untuk ini:
Anda bisa menggunakan penyimpanan blok yang direplikasi seperti DRBD (atau MARS seperti yang disebutkan di atas), tetapi Anda harus menyiapkan sistem file cluster di atas penyimpanan blok. Sistem file tersebut dapat berupa GFS2 atau OCFS2 yang keduanya tersedia di kernel Debian afaik. DRBD dapat menangani primer / primer dan Anda dapat memasangnya di kedua server secara bersamaan. Tetapi jika Anda melakukan ini dengan sistem file standar, satu server tidak tahu tentang yang lain dan Anda akan menghancurkan sistem file Anda dalam beberapa detik. Sistem file cluster di atas akan menangani komunikasi dan penguncian sehingga kedua node dapat menulis ke blok yang sama.
Gunakan sistem file terdistribusi untuk / home. Anda akan menemukan daftar sistem file tersebut di http://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems . Namun waspadalah dan pilihlah dengan bijak. Mereka semua tidak bisa melakukan sihir dan semua memiliki kekurangan. Gluster adalah sistem file seperti itu. Untuk beberapa sistem, Anda mungkin perlu lebih dari dua node.
Jika itu tidak harus direplikasi secara real time dan sinkronisasi file yang hampir real-time sudah mencukupi, maka lihat BitTorrent Sync ( http://www.getsync.com/ ), Dropbox atau alternatif. Setiap server memiliki itu sendiri / rumah, tetapi perubahan bisa direplikasi berdasarkan file ke server lain.
sumber