solusi failover / ketersediaan tinggi yang baik untuk linux? [Tutup]

9

Saya memiliki beberapa kasus di mana saya perlu aplikasi untuk dimigrasi dari satu server ke yang lain jika terjadi kegagalan (server hang atau crash).

Pada solaris kami melakukan ini dengan VCS (Veritas Cluster Server). Opsi apa yang tersedia untuk Linux?

Harap tunjukkan tingkat upaya untuk pengaturan / pemeliharaan atau biaya (jika ada) untuk masing-masing.

- Lebih detail ditambahkan -

Untuk memberikan gambaran tentang tingkat kerumitan:

  • server yang gagal bisa hang atau crash tanpa pemberitahuan, mungkin masih 'bisa ping'
  • server pemulihan harus memulai aplikasi itu pada failover
  • sekali server gagal mem-boot / power-cycle, ia menjadi pasif karena tidak tertarik dengan server pemulihan.

Ini adalah kumpulan data atau komputasi node, bukan database, sehingga solusi yang lebih sederhana bisa bekerja.

- bahkan lebih detail (maaf) -

penyimpanan bersama bukanlah suatu pilihan, tetapi tidak banyak keadaan (jika ada) yang perlu dimigrasikan dari satu server ke yang lain. Kami menjaga kedua server tetap sinkron melalui rsync.

Terima kasih banyak untuk semua posting sejauh ini.

ericslaw
sumber

Jawaban:

10

http://linux-ha.org/ untuk semua kebutuhan ketersediaan tinggi Anda. Seperti yang dikatakan lagu itu, hal terbaik dalam hidup adalah gratis.

womble
sumber
dapatkah kamu merekomendasikan buku yang bagus?
slf
4

Saya telah menggunakan berbagai solusi cluster di Linux. Saya juga pendukung manajemen konfigurasi, jadi saya akan menambahkan sedikit tentang itu dalam deskripsi saya (yaitu Chef atau Wayang, yaitu)

Veritas Cluster Server (VCS). Sudah lama, tetapi kami menggunakan beberapa cluster Linux VCS di RHEL 3.0. Saya berharap ini tersedia di RHEL 5.0. Anda harus terbiasa dengan kesulitan dalam mengatur ini, sebagai wilayah yang sudah dikenalnya. Seperti yang Anda ketahui, VCS mahal. Secara anekdot, VCS tidak cocok untuk diatur oleh manajemen konfigurasi.

Berbicara tentang RHEL, Red Hat Cluster Suite telah jatuh tempo banyak sejak rilis aslinya dengan RHEL 2.1. Fase pengaturan / konfigurasi cukup mudah, dan dokumentasinya sangat lengkap dan bermanfaat, dan seperti VCS Anda dapat membeli dukungan dari vendor. Untuk produk HA komersial, RHCS harganya wajar. Saya hanya akan menggunakan manajemen konfigurasi untuk menginstal paket, dan memeliharanya "dengan tangan" melalui antarmuka web. Juga, saya pernah mendengar beberapa orang menggunakannya pada platform non-Red Hat, meskipun saya tidak punya pengalaman dengan itu secara langsung.

Linux-HA (drbd / heartbeat) juga bagus, meskipun berasal dari VCS konfigurasi mungkin tampak sederhana, namun sulit. Ini cukup mudah untuk diotomatisasi dengan alat manajemen konfigurasi.

Sebagai bukti konsep, saya telah menginstal cluster Linux dengan HACMP IBM - perangkat lunak clustering AIX mereka. Saya tidak akan merekomendasikan ini, karena saya ingat ini lebih mahal daripada VCS. IBM memiliki prosedur khusus untuk menginstal dan memelihara HACMP, saya tidak akan menggunakan manajemen konfigurasi di sini.

jtimberman
sumber
4

Michael benar bahwa komunitasnya sedikit retak sekarang, dan dokumentasi agak jarang.

Sebenarnya, semua ada di sana, tidak mungkin dipahami. Yang benar-benar Anda inginkan adalah ebook "Pacemaker Configuration Explained" ... ( Tautan ke PDF ). Anda akan ingin membacanya sekitar selusin kali, dan kemudian mencoba mengimplementasikannya, dan kemudian membacanya selusin kali lagi sehingga Anda dapat benar-benar menggosoknya.

Implementasi terbaik yang didukung layanan cluster untuk Linux pada saat ini mungkin akan menjadi SLES11 Novell dan itu adalah High Availability Extension (HAE). Ini HANYA keluar satu atau dua bulan yang lalu, dan ia datang dengan manual 200 halaman tebal yang bagus yang menjelaskan cara mengaturnya dan membuat semuanya berjalan. Novell juga sangat baik dalam mendukung konfigurasi alat pacu jantung dalam berbagai bentuk.

Di luar itu, ada implementasi RHEL5, yang memiliki paket yang sama dan dokumentasi yang layak, tapi saya pikir ini lebih mahal daripada SLES. Setidaknya, ini untuk kita.

Saya akan menghindari Detak Jantung sekarang dan pergi dengan Pacekmaker / OpenAIS karena mereka akan jauh lebih baik didukung pergi ke masa depan. NAMUN, keadaan masyarakat saat ini sedemikian rupa sehingga ada beberapa ahli, ada beberapa orang yang menjalankannya dalam produksi, dan ada banyak orang yang benar-benar tidak mengerti. Bergabunglah dengan milis Pacemaker dan perhatikan seorang pria bernama Andrew Beekhof.

Edit untuk memberikan detail yang diminta:

Alat pacu jantung / OpenAIS menggunakan operasi 'monitor' pada 'sumber daya primitif' (misalnya nfs-server) untuk melacak apa yang dilakukan sumber daya. Jika server NFS contoh berjalan tidak responsif ke seluruh cluster selama X jumlah detik, maka cluster akan menjalankan operasi STONITH (Tembak Node Lain Di Kepala) untuk mematikan node primer, mempromosikan node sekunder menjadi aktif. Anda memutuskan dalam konfigurasi apa yang harus dibawa setelahnya dan tindakan terkait yang harus diambil. Detail implementasi dari sana tergantung pada layanan apa yang Anda coba gagal, jendela eksekusi untuk operasi tertentu (seperti mempromosikan simpul utama kembali ke master) dan semuanya cukup dapat dikonfigurasi.

Karl Katzke
sumber
1

Komunitas Linux HA sedikit dipartisi saat ini.

Alat-alat yang sebelumnya dikenal sebagai Linux HA saat ini adalah Alat Pacu Jantung dan OpenAIS , ini paling sering dijalankan dalam kombinasi dengan DRBD ketika arsitektur shared-nothing diperlukan.

Saya sarankan untuk mendapatkan buku yang bagus tentang topik ini sebelum menyelam, karena ini adalah area yang cukup komprehensif, dan keadaan proyek belum tentu ramah pengguna seperti beberapa solusi vendor.

Ada juga solusi Linux oleh beberapa vendor perangkat lunak cluster, tetapi saya tidak bisa memberi tahu Anda banyak tentang itu karena saya belum pernah menggunakannya sendiri.

Michael Renner
sumber
1
Bisakah Anda menyarankan satu atau dua buku bagus tentang hal ini?
Matt Simmons
1

Dengan Linux, kami telah mengimplementasikan pengelompokan dengan detak jantung dan drbd. Detak jantung memeriksa status server. DRBD digunakan untuk sinkronisasi data antar server. Kami memiliki layanan oracle yang berjalan di satu server dan apache di server lain. Ketika server menjalankan oracle gagal, detak jantung merasakan hal yang sama dan mengembalikan layanan oracle pada server yang menjalankan apache. dan sebaliknya. Telah menggunakan pengaturan ini untuk banyak tujuan lain dan dapat diandalkan hingga saat ini.

Viky
sumber
1

Red Hat Cluster Suite akan melakukan apa yang Anda inginkan untuk hampir setiap aplikasi yang mungkin. Dalam kombinasi dengan GFS dan Cluster LVM Anda dapat memiliki penyimpanan bersama yang solid.

Pemeliharaan tidak jauh lebih sulit daripada menjaga kotak individual berjalan. Migrasi aplikasi membuatnya lebih mudah, sebenarnya, untuk menambal kotak-kotak individual.

RHCS dilengkapi dengan frontend web (Luci) dan frontend GTK (system-config-cluster) untuk membuat konfigurasi dan migrasi dapat diklik. Ini akan memungkinkan Anda mengkonfigurasi domain failover per aplikasi, kebijakan pemulihan, pagar, semua dari satu pusat, manajemen berbasis web konsol.

Mempertimbangkan fakta bahwa RHCS sebenarnya memiliki opsi dukungan yang cukup solid, saya akan memilih RHCS.

Tidak yakin berapa banyak biaya yang harus Anda keluarkan, tetapi saya pikir harganya berkisar beberapa ribu dolar.

wzzrd
sumber
1

UltraMonkey , sebagian dibangun di atas kerangka Linux-HA. Saya selalu menganggapnya lebih sebagai solusi load-balancing daripada cluster yang sebenarnya, tetapi menangani kegagalan-lebih baik.

gbjbaanb
sumber
Apakah itu masih diperbarui? situs web mengatakan:Copyright © 2000-2005, Horms Last Updated: Sat Mar 4 16:33:57 2006 +0900
NickW
0

Kami menggunakan Linux Virtual Server dan tetap disimpan untuk ketersediaan tinggi kami. keepalived dapat melakukan VRRP pada host sendiri (yang saya percaya bergantung pada server lain sekarat) atau Anda dapat mengaturnya pada host terpisah untuk melakukan load balancing, yang dapat memiliki pemeriksaan ketersediaan layanan. Dimungkinkan untuk mengkonfigurasi pemeriksaan layanan dalam situasi pertama tetapi saya belum memeriksanya. Situasi kedua sangat baik jika Anda dapat membuat kedua server berjalan pada saat yang sama, jika tidak, Anda dapat melakukan perpindahan manual.

David Pashley
sumber
0

Saya menulis load balancer berbasis perangkat lunak untuk TCP yang tidak memerlukan mesin terpisah. Ini berbagi alamat IP tunggal dengan mengumumkannya pada alamat tingkat tautan multicast dan bernegosiasi antara mesin untuk menghindari dua mesin yang melayani koneksi TCP yang sama.

Sisi buruknya adalah itu tidak benar-benar siap produksi - tetapi jika Anda ingin mengujinya di jaringan pengujian Anda, saya akan senang.

Cluster berbulu ada di sini

Saya tidak perlu mendeteksi situasi "hidup tapi sakit", tetapi saya melakukan load-balancing antara server anggota (jika proses userspace mati, node lain akan melihat dan menghapus simpul yang gagal)

MarkR
sumber
0

Ini tidak gratis, tetapi mereka yang tidak memiliki waktu atau keahlian untuk menginstal solusi HA mereka sendiri di Linux, jawabannya ada di www.rapidscaleclusters.com. Dalam beberapa menit Anda sudah aktif dan berjalan, mudah untuk menginstal dan menjalankan, itu juga didukung.

Vince Bryant
sumber
tidak yakin mengapa seseorang menandai ini ... ini tampak seperti solusi yang layak (meskipun selalu ada gotcha teknis ... setidaknya ini tidak terlihat seperti 'layanan' yang merupakan kesan pertama saya).
ericslaw
0

Saya sedang mengerjakan open source failover cluster manager yang ditulis dalam skrip shell. Ini dalam kondisi yang baik bahkan jika itu dapat kehilangan beberapa integrasi yang Anda perlukan. Lihat dan beri tahu saya jika ada beberapa fitur yang hilang yang ingin Anda lihat dan gunakan: https://github.com/nackstein/back-to-work/

jika Anda pandai pemrograman shell (POSIX shell) Anda dipersilakan untuk bergabung dengan pengembangan proyek: D

Luigi
sumber