mirror filesystem di beberapa server


13

Saya mencari solusi untuk mirror atau mereplikasi satu direktori (atau satu filesystem) di beberapa server Linux. Solusi ideal adalah solusi yang mengizinkan semua server akses baca-tulis. Saya juga ingin agar saya tangguh, jika salah satu server turun, sisanya harus tetap bekerja tanpa kehilangan data sama sekali.

Saya telah melihat beberapa solusi:

  • DRBD : replikasi tingkat blok, tampaknya sedikit berlebihan;
  • lsyncd : terlihat sangat sederhana, tetapi saya ragu tentang kinerjanya;
  • GlusterFS : sepertinya itu akan menjadi pertandingan yang bagus, belum tahu bagaimana tepatnya mode replikasi bekerja. Apakah ini memiliki karakteristik yang saya butuhkan?

Saran lain dipersilahkan.


Apakah Anda melihat pengaturan shared-nothing atau Anda akan menghubungkan semua server ke backend SAN yang sama?
HampusLi

secara logis itu tidak dibagikan (secara fisik ini EC2 dengan EBS).
vartec

Jawaban:


6

Pertanyaan pertama yang akan saya tanyakan adalah apakah Anda ingin ini direplikasi ke dua server atau lebih dari dua server? Untuk dua server saya akan menggunakan DRDB, untuk tiga atau lebih saya akan menggunakan gluster.

Jika latensi I / O bukan masalah kritis saya akan pergi dengan gluster. Pengaturannya cukup mudah dan dapat dengan jelas melakukan apa yang Anda butuhkan. Yang perlu Anda lakukan adalah membuat server gluster yang melayani file di ketiga kotak dan kemudian juga membuat setiap kotak bertindak sebagai klien gluster yang memasang file.

DRDB akan menjadi rumit untuk dapat bekerja dalam mode master <-> master dengan 3 server atau lebih. Anda harus mengonfigurasi pengaturan berbasis cincin dan saya tidak akan merekomendasikannya. Namun untuk dua server, DRDB luar biasa. Master <-> Mode master tidak rumit untuk diatur dan Anda tidak perlu mempelajari hal-hal sistem file.

lsycd bagus untuk pengaturan master / slave, tetapi Anda tampaknya tidak menginginkannya.

Ceph masih cukup baru, terakhir kali saya memeriksanya bahkan belum memiliki dukungan fsck. Saya lebih suka mendasarkan infrastruktur saya pada sesuatu yang lebih stabil.

Lustre adalah produk yang fantastis untuk penggunaan skala besar, tetapi Anda perlu mengatur detak jantung dan failover untuk server mds atau yang akan memiliki satu titik kegagalan. Mengingat terbatasnya jumlah server yang dibicarakannya, saya curiga hal ini berlebihan dalam kasus ini.


Awalnya saya akan mulai dengan hanya 2 server per cluster, tetapi saya ingin memiliki opsi untuk memiliki lebih dari 2 server untuk skala-out; Pengaturan gluster yang Anda jelaskan, akankah ia menangani salah satu server yang mogok? apakah akan mudah untuk menambahkan server tambahan?
vartec


2

Anda harus melihat ke OpenAFS - ini adalah sistem file yang sebagian besar terdistribusi yang memungkinkan banyak salinan data terdistribusi di seluruh cluster dan semua orang dapat membaca / menulis ke FS pada saat yang sama.

Itu punya banyak fitur berguna lainnya (otentikasi yang baik, enkripsi pada kabel, built-in caching lokal pada klien, klien windows asli, portabel di banyak versi unix, dll)

Ini agak berat untuk diatur, meskipun.


pertanyaan yang sama seperti dengan NFS: "memungkinkan beberapa salinan". OK, tapi apakah benar-benar menyinkronkan salinan ini?
vartec

Ya. Dan adalah mungkin, meskipun menjengkelkan, untuk pulih dari kehilangan master utama. Tapi itu sepele untuk memiliki banyak penulis dan blok yang dihasilkan disimpan pada banyak host.
chris

Kunci untuk memahami OpenAFS adalah bahwa itu adalah sistem manajemen cache - ada satu namespace (IE hanya satu "file" ada) tetapi ada salinan cache file di mana-mana dan protokol untuk memastikan bahwa semua salinan cache yang konsisten . Jika Anda kehilangan master, Anda dapat mengubah salah satu salinan yang di-cache menjadi master, tetapi tidak ideal untuk berada dalam situasi itu.
chris

1

NFS mungkin juga berfungsi dengan baik, tergantung kebutuhan Anda.


AFAIK, NFS tidak menyediakan cara untuk me-mount server yang direplikasi, tetapi tidak replikasi itu sendiri. Tapi saya sudah lama tidak menggunakan NFS, jadi mungkin itu sudah berubah. Bisakah Anda menautkan ke dokumen NFS yang menjelaskan pengaturan seperti itu?
vartec

Sebuah cara dari atas kepala saya adalah untuk mereplikasi dir ke beberapa server nfs, salah satunya memiliki vip primer, dan memigrasikan vip melintasi server jika ada yang turun. Atau round robin dns mungkin. NFS sendiri mungkin tidak melakukan semua yang Anda butuhkan, tetapi dalam hubungannya dengan layanan kluster detak jantung atau topi merah, mungkin itu yang Anda butuhkan. Saya tidak yakin pertanyaan awal memiliki semua persyaratan di dalamnya. Anda bahkan dapat melakukan rsync di banyak server, katakan setiap jam, untuk solusi yang sangat cepat dan mudah.
lsd

Lewati bagian tentang rsync. Itu akan melakukan replikasi, tetapi terutama untuk pengaturan read-only, yang tidak sesuai dengan kebutuhan Anda. Saya bermaksud mengedit komentar saya di atas, tetapi tidak mengizinkan saya.
lsd

1

Mendapatkan ini untuk bekerja dengan DRBD akan menjadi sangat sulit - masalahnya bukan n8whnp tampaknya memikirkan masalah tentang replikasi multi-arah (Anda hanya membuat semua garis-garis node dalam set cermin) tetapi kontrol konkurensi - Anda ' d perlu menjalankan sistem file cluster di atas mirroring di atas DRBD.

lsyncd bahkan lebih buruk karena tidak ada solusi praktis untuk kontrol konkurensi.

Saya akan merekomendasikan solusi jenis AFS (AFS, OpenAFS) sebagai solusi yang matang, stabil, terbuka. Saya akan menghindari kilau sejak Oracle menutupnya. Tidak terlalu terbiasa dengan glusterfs tetapi karena ini bergantung pada penyimpanan terdistribusi daripada replikasi, saya sarankan Anda memiliki pandangan panjang tentang bagaimana ia akan berperilaku dalam operasi otak-terpisah (AFS OTOH dirancang untuk bekerja dalam mode terputus).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.