Menghindari SPOFS dengan GlusterFS dan Windows

10

Kami memiliki cluster GlusterFS yang kami gunakan untuk fungsi pemrosesan kami. Kami ingin mengintegrasikan Windows ke dalamnya, tetapi mengalami beberapa masalah untuk mengetahui bagaimana menghindari satu-titik-kegagalan yaitu server Samba yang melayani volume GlusterFS.

File-flow kami berfungsi seperti ini:

Aliran Dokumen GlusterFS

  1. File dibaca oleh simpul pemrosesan Linux.
  2. File-file tersebut diproses.
  3. Hasil (bisa kecil, bisa sangat besar) ditulis kembali ke volume GlusterFS saat selesai.
    • Sebagai gantinya, hasil dapat ditulis ke basis data, atau mungkin menyertakan beberapa file dengan berbagai ukuran.
  4. Node pemrosesan mengambil pekerjaan lain dari antrian dan GOTO 1.

Gluster sangat bagus karena memberikan volume yang didistribusikan, serta replikasi instan. Ketahanan bencana bagus! Kami menyukainya.

Namun, karena Windows tidak memiliki klien GlusterFS asli, kami memerlukan beberapa cara agar simpul pemrosesan berbasis Windows kami untuk berinteraksi dengan penyimpanan file dengan cara yang sama tangguh. The negara GlusterFS dokumentasi bahwa cara untuk menyediakan akses Windows adalah dengan menyiapkan server Samba di atas yang dipasang volume yang GlusterFS. Itu akan menyebabkan aliran file seperti ini:

Doc-flow GlusterFS melalui Winders

Itu terlihat seperti titik kegagalan bagi saya.

Salah satu opsi adalah untuk mengelompokkan Samba , tetapi yang tampaknya didasarkan pada kode yang tidak stabil sekarang dan dengan demikian tidak berjalan.

Jadi saya mencari metode lain.

Beberapa detail kunci tentang jenis data yang kami lemparkan:

  • Ukuran file asli dapat berkisar dari beberapa KB hingga puluhan GB.
  • Ukuran file yang diproses dapat berkisar dari beberapa KB hingga satu atau dua GB.
  • Proses tertentu, seperti menggali dalam file arsip seperti .zip atau .tar dapat menyebabkan BANYAK penulisan lebih lanjut karena file yang terkandung diimpor ke file-store.
  • Penghitungan file bisa mencapai 10 dari jutaan.

Beban kerja ini tidak bekerja dengan pengaturan Hadoop "ukuran unit kerja statis". Demikian pula, kami telah mengevaluasi objek-toko S3-gaya, tetapi menemukan mereka kurang.

Aplikasi kami dibuat khusus dalam bahasa Ruby, dan kami memiliki lingkungan Cygwin pada node Windows. Ini mungkin membantu kita.

Salah satu opsi yang saya pertimbangkan adalah layanan HTTP sederhana pada sekelompok server yang memiliki volume GlusterFS terpasang. Karena semua yang kami lakukan dengan Gluster pada dasarnya adalah operasi GET / PUT, yang tampaknya mudah ditransfer ke metode transfer file berbasis HTTP. Tempatkan mereka di belakang pasangan loadbalancer dan node Windows dapat HTTP PUT ke konten hati biru kecil mereka.

Apa yang saya tidak tahu adalah bagaimana koherensi GlusterFS akan dipertahankan . Lapisan HTTP-proxy memperkenalkan latensi yang cukup antara ketika node pemrosesan melaporkan bahwa hal itu dilakukan dengan menulis dan ketika itu benar-benar terlihat pada volume GlusterFS, bahwa saya khawatir tentang tahap pemrosesan selanjutnya yang mencoba mengambil file tidak akan Temukan. Saya cukup yakin bahwa menggunakan direct-io-mode=enableopsi-mount akan membantu, tetapi saya tidak yakin apakah itu cukup . Apa lagi yang harus saya lakukan untuk meningkatkan koherensi?

Atau haruskah saya mengejar metode lain sepenuhnya?


Seperti yang ditunjukkan Tom di bawah, NFS adalah pilihan lain. Jadi saya menjalankan tes. Karena file-file yang disebutkan di atas memiliki nama yang disediakan klien yang perlu kami pertahankan, dan dapat dibuat dalam bahasa apa pun, kami perlu mempertahankan nama-nama file tersebut. Jadi saya membangun direktori dengan file-file ini:

Direktori NFS dengan nama baik, di server

Ketika saya memasangnya dari sistem Server 2008 R2 dengan NFS Client diinstal, saya mendapatkan daftar direktori seperti ini:

Direktori NFS dengan nama buruk, di klien

Jelas, Unicode tidak dilestarikan. Jadi NFS tidak akan bekerja untuk saya.

sysadmin1138
sumber
Saya percaya tim Samba menganggap ctdbstabil dan siap untuk digunakan produksi dan kalimat pertama dalam tautan yang Anda berikan membuat yang kedua tidak valid karena jika tidak pernah diperbarui. Saya berencana membuat ini, tetapi sebelum saya melakukan ini, saya pindah pekerjaan ke lingkungan yang hampir bebas jendela.
Sven
Versi windows apa yang Anda cari gunakan?
Tom O'Connor
@ TomO'Connor Seperti kata tag, Windows 7. Padahal, Server 2008 R2 akan ada di sana di beberapa titik.
sysadmin1138
Saya kira Cygwin keluar dari pertanyaan?
Tom O'Connor

Jawaban:

5

Saya suka GlusterFS. Sebenarnya, saya suka GlusterFS. Selama Anda bisa memberikan beberapa bandwidth khusus semuanya baik-baik saja.

Salah satu hal terbaik tentang GlusterFS adalah menggunakannya dengan NFS. Salah satu hal mengejutkan yang telah saya kerjakan belakangan ini adalah NFS pada Windows 7 dan 2k8R2 .

Inilah yang akan saya lakukan.

  1. Menyiapkan 2 server GlusterFS yang dapat mengekspor NFS.
  2. Siapkan tautan detak jantung di antara mereka.
  3. Menyebarkan sesuatu seperti Detak Jantung / Alat Pacu Jantung mungkin?
  4. Siapkan IP virtual (VIP) di antara Gluster Nodes Anda.
  5. Hubungkan drive jaringan yang dipetakan kotak Windows menggunakan alamat IP VIP.
  6. Tes semua yang Anda bisa bayangkan.

Mengelompokkan Samba terdengar menakutkan, dan bahkan jika Anda melakukannya, Samba masih kurang memiliki kemampuan untuk berperilaku andal di beberapa jaringan windows (semua kompatibilitas domain NT4, sepertinya tidak pernah bisa melewati itu).

Saya pikir itu karena setiap gluster node dalam mode terdistribusi, direplikasi maka Anda secara teoritis dapat terhubung ke salah satu dan membiarkannya khawatir tentang memindahkan data Anda. Akibatnya, detak jantung harus menjadi hal yang melakukan pengalihan dan kontrol ke mana Anda berbicara.

Seperti untuk Anda

  • Penghitungan file bisa mencapai 10 dari jutaan.

Saya menyarankan Anda menyelidiki menggunakan XFS sebagai sistem file yang mendasarinya, karena cukup baik dengan filesystem besar, dan didukung di bawah GlusterFS

Tom O'Connor
sumber
Saya sedang menggunakan XFS! Kami melihat NFS3 beberapa waktu lalu untuk menangani fungsi konsumsi awal tetapi terbukti tidak bisa dijalankan karena kurangnya dukungan Unicode. Ini dengan server NFS di Windows. "会計 2012.xls" tidak akan membuat yang benar, dan itu sangat penting. Tapi ... saya tidak tahu tentang 7 / R2, dan layak diselidiki!
sysadmin1138
Jadi saya menjalankan tes. Sayangnya, itu tidak memberikan hasil yang baik (lihat pembaruan pada pertanyaan). Masalah Unicode sepertinya dua arah.
sysadmin1138
Bersetubuh. Saya kehabisan ide, kalau begitu. Saya ingin tahu apakah Anda dapat menempatkan Samba di belakang VIP.
Tom O'Connor
Workgroup ya, Domain (yang kami gunakan) tidak. Jadi, masalah saya.
sysadmin1138
Di sisi lain, setelah bercakap-cakap dengan para pengembang menjaga nama file tidak sepenting yang saya harapkan. Rupanya, selama kita bisa mendapatkannya di tahap pertama (menelan) database akan melacak nama. Jadi NFS adalah opsi yang valid di sini (setelah kami mendapatkan versi Windows yang tepat).
sysadmin1138
1

Mungkin Anda dapat berpikir dalam solusi HA ... gunakan LDAP untuk otentikasi (dapat direplikasi karena banyak server LDAP yang Anda inginkan) dan tempatkan IP untuk mendengarkan layanan SMB.

IP ini akan mengambang di server utama. Ketika ini turun, Detak Jantung dapat memulai layanan di server kedua.

Server ini akan memiliki mountpoint ke glusterfs, dan kemudian semua data akan ada di sana.

Ini adalah solusi yang mungkin dan sangat mudah untuk dikelola ...

Saxa
sumber