Saya sedang membangun aplikasi yang perlu mendistribusikan server file standar di beberapa situs melalui WAN. Pada dasarnya, setiap situs perlu menulis banyak file misc dengan ukuran yang bervariasi (beberapa di kisaran 100-an MB, tetapi yang paling kecil), dan aplikasi ditulis sedemikian rupa sehingga tabrakan tidak menjadi masalah. Saya ingin memiliki pengaturan sistem yang memenuhi kualifikasi berikut:
- Setiap situs dapat menyimpan file dalam "namespace" bersama. Artinya, semua file akan muncul di sistem file yang sama.
- Setiap situs tidak akan mengirim data melalui WAN kecuali diperlukan. Yaitu, akan ada penyimpanan lokal di setiap sisi WAN yang akan "digabungkan" ke sistem file logis yang sama.
- Linux & Gratis ($$$) adalah Plus
Pada dasarnya, sesuatu seperti pusat NFS akan memenuhi sebagian besar persyaratan, namun itu tidak akan membiarkan data yang ditulis secara lokal tetap lokal. Semua data dari sisi remote WAN akan disalin secara lokal setiap saat.
Saya telah melihat ke dalam Lustre, dan telah menjalankan beberapa tes yang berhasil dengannya, namun, tampaknya mendistribusikan file dengan cukup merata di seluruh penyimpanan terdistribusi. Saya telah menggali melalui dokumentasi dan belum menemukan apa pun yang secara otomatis akan "lebih suka" penyimpanan lokal daripada penyimpanan jarak jauh. Bahkan sesuatu yang pergi dengan penyimpanan latensi terendah akan baik-baik saja. Itu akan bekerja sebagian besar waktu, yang akan memenuhi persyaratan aplikasi ini.
Beberapa jawaban untuk beberapa pertanyaan yang diajukan di bawah ini:
- Node server: 2 atau 3 untuk memulai. Setiap server akan memiliki lusinan klien baca / tulis simultan yang terhubung.
- Topologi WAN adalah mesh penuh dan dapat diandalkan. (perusahaan besar, biaya tidak sebatas pita merah)
- Kegagalan klien: Saya sebenarnya tidak berpikir tentang kegagalan klien (kebanyakan karena aplikasi kami saat ini tidak melakukan ini di satu situs). Saya kira jawaban praktiknya adalah bahwa server di setiap situs yang didistribusikan secara geografis diharapkan menjadi titik kegagalan tunggal bagi klien yang mereka layani. Padahal, jika Anda berpikir tentang sesuatu yang spesifik di sini, saya pikir itu akan sangat erat dengan diskusi.
- Roll-my-own: Saya sudah memikirkan rsync / unison, namun saya akan memerlukan sedikit logika mewah untuk membuat bagian "dinamis" dari pekerjaan ini mulus. Yaitu, file tampaknya bersifat lokal, tetapi hanya diambil berdasarkan permintaan.
- MS-DFS: Tampaknya memang sesuatu yang harus saya perhatikan. Masalah utama saya mungkin berpotensi menjadi tidak yakin tentang konfigurasi server NFS / keandalan / kinerja pada Windows, karena banyak klien yang terhubung adalah klien NFS.