Saya punya 2 server web, dengan kemungkinan harus menambahkan lebih banyak server di sepanjang jalan. Saat ini saya menjaga server-server ini selaras menggunakan lsyncd + csync2. Ini berfungsi dengan baik berdasarkan kinerja karena semua file ada di kedua server (tidak ada akses jaringan yang diperlukan untuk membuka file secara lokal), tetapi tidak begitu baik dalam kasus lain.
Salah satu contohnya adalah jika saya menghapus file di server 1 dan segera mengunggah file baru ke server 1 yang memiliki nama yang sama. File kemudian akan dihapus dari server 2 sementara itu, menyebabkan file yang baru diunggah di server 1 dihapus karena server 2 mengirimkan acara penghapusan ke server 1 untuk menyelesaikan "lingkaran pembaruan".
Saya tidak dapat berhenti berpikir bahwa harus ada cara yang lebih baik untuk menjaga server tetap selaras. Saya telah melihat GlusterFS, dan saya melihat bahwa pengaturan di mana semua file direplikasi ke semua server tidak disarankan. Namun, saya menjalankan sistem CMS seperti Drupal di server ini. Sistem CMS seperti itu sering membuka beberapa file, dan saya khawatir terlalu banyak lalu lintas jaringan untuk mendapatkan file-file ini akan memperlambat permintaan.
Apakah itu ide untuk mengganti lsyncd + csync2 dengan GlusterFS yang diatur untuk mereplikasi semua file ke semua node, atau apakah itu ide yang buruk?
sumber
Jawaban:
Sinkronisasi BitTorrent dapat melakukan perbuatan untuk Anda. Saya menggunakannya untuk menyimpan file dalam sinkronisasi antara beberapa server internal di rumah saya dan melakukan pekerjaan luar biasa. Hal lain yang perlu Anda pikirkan adalah database backend ketika aplikasi Anda menggunakan CMS. Pastikan ada replikasi MySQL yang sedang berlangsung, atau semacamnya.
sumber
Gluster akan memecahkan masalah yang Anda miliki karena dapat menahan kunci, menyebarkan perubahan - menghapus file di semua node lain, tetapi mungkin menambah latensi tambahan yang bisa menjadi masalah bagi server web. Alternatif berikutnya adalah DRBD + OCFS2 atau GFS, tapi itu mungkin lebih kompleks karena dengan gluster Anda menggunakan sistem file yang mendasarinya - itu tidak beroperasi pada tingkat blok sehingga jika server tidak sinkron itu tidak terlalu sulit untuk diperbaiki, file dapat mudah rusak karena otak terpecah, dll ...
Kami menggunakannya untuk server surat dan sangat lambat untuk direktori dengan banyak file. Anda harus menguji semuanya sebelum melakukan penyebaran. Saya sedang menguji mount NFS karena berfungsi lebih baik untuk file kecil.
sumber
GlusterFS sulit untuk digunakan. Untuk data web, tingkat sinkronisasi file seperti Unison jauh lebih mudah untuk digunakan dan dipelihara.
DRBD adalah solusi sempurna untuk menjaga sinkronisasi data pada level blok. Tetapi Anda harus memformatnya ke format khusus seperti OCFS2 atau yang serupa.
sumber
Mengapa Anda tidak menggunakan alat seperti boneka ? Menulis sekali dalam satu sumber dan sekali siap menyebarkannya ke target menggunakan "tendangan boneka" atau mcolletive. Ini didokumentasikan dengan baik. Dan Anda dapat dengan mudah menambahkan server nanti jika diperlukan.
Anda juga dapat mengandalkan alat yang menggunakan inotify, seperti lsyncd, yang bekerja pada level kernel. Ini mengawasi perubahan dalam folder dan memicu sinkronisasi. Tetapi jika alat yang didedikasikan untuk sinkronisasi file pada cluster seperti csync2 tidak cukup saya tidak tahu apa yang akan terjadi.
Hanya untuk memastikan, apakah modifikasi terjadi juga di server 2 atau hanya di server 1?
sumber