Untuk proyek saya memiliki tugas merencanakan pengaturan ketersediaan tinggi untuk toko web dan sistem CMS. Namun, tentu saja proyek ini dengan anggaran yang ketat. Jadi solusi kelas atas mungkin tidak ada dalam anggaran.
Akan ada dua mesin yang menjalankan server web (CMS, shop), satu mesin yang menjalankan database, dan satu mesin untuk menjalankan server faks yang diperlukan untuk mengirimkan pesanan ke mitra. Semua sistem menjalankan Linux. Semua komponen ini harus sangat tersedia dan harus mendukung kegagalan yang transparan.
Untuk mengurangi biaya perangkat keras saya memikirkan lingkungan yang tervirtualisasi. Ada banyak informasi di luar sana, tetapi saya tidak tahu persis harus mulai dari mana. Tampak jelas bahwa setidaknya untuk server diperlukan sebagai host untuk mesin virtual, sehingga tidak ada titik kegagalan tunggal.
Mana cara terbaik untuk mendukung ketersediaan tinggi?
Pertanyaan pertama adalah solusi virtualisasi mana yang terbaik dalam situasi ini. Perlu ada semacam antarmuka manajemen. Perlu ada cara untuk memindahkan mesin virtual yang berjalan dari satu host ke yang lain, sehingga pemeliharaan host dapat dilakukan. Perlu ada semacam mekanisme, sehingga mesin virtual masih tersedia jika satu host gagal. Bisakah Anda memberi saran tentang solusi yang valid di sini?
Penyimpanan file bersama tampaknya menjadi prasyarat ketersediaan tinggi dalam kebanyakan kasus (harapkan VMware vSphere yang agak mahal). Namun, lebih suka menaruh lebih banyak uang di host mesin virtual daripada menambahkan dua server lain ke pengaturan untuk menyediakan penyimpanan file NFS yang berlebihan. Apakah ada kemungkinan untuk bergaul dengan hanya dua host mesin virtual? Sebuah solusi mungkin menggunakan dua ini sebagai host NFS juga. Apakah ada banyak penalti kinerja untuk melakukan ini?
EDIT: Saya menargetkan ketersediaan 99,9%. Namun, tidak diperlukan ketersediaan 24/7 karena ada jam kerja reguler, yang memberikan ruang untuk bermanuver. Periode ketersediaan yang harus dijamin antara pukul 10:00 hingga tengah malam.
Jawaban:
Sebagai gambaran umum, untuk mencapai Ketersediaan Tinggi yang Anda butuhkan:
Nomor 1 sesederhana kedengarannya - beli dua server yang identik.
Nomor 2 dapat dicapai dengan mereplikasi SAN (mahal, sangat cepat, sangat andal), atau sistem file yang direplikasi pada masing-masing server (murah, kecepatan dan keandalan dapat bergantung pada pengetahuan Anda tentang teknologi yang dipilih).
Nomor 3 dapat dicapai oleh SAN (satu LUN penyimpanan, diakses oleh dua server), atau sistem file yang direplikasi (dua area penyimpanan terpisah, masing-masing server hanya dapat melihat sendiri).
Nomor 4 dapat dicapai dengan aplikasi detak jantung.
Untuk melakukan ini dengan anggaran kecil, katakanlah VMWare vSphere, Anda dapat menggunakan SAN atau VMWare sekarang menawarkan alat penyimpanan replikasi diri yang menawarkan dua penyimpanan data yang berbeda pada dua server yang dapat digunakan untuk ketersediaan tinggi. vSphere juga menawarkan detak jantung bawaan dan konfigurasi ketersediaan tinggi.
Untuk melakukan ini tanpa anggaran, Anda bisa pergi ke jalur Xen, dan menggunakan DRBD untuk mereplikasi penyimpanan antara dua node. Kemudian Anda mengatur detak jantung untuk mengganti node penyimpanan DRBD aktif dan Xen instance untuk mem-boot VM pada host ke-2 ketika yang pertama turun.
Anda tidak akan mendapatkan 5-sembilan ini (99,999%) uptime menggunakan ini rekomendasi dasar, tetapi Anda bisa easilly mendapatkan 3-sembilan (99,9%) dengan menggunakan metode termurah jika Anda tahu apa yang Anda lakukan.
sumber
Anda berbicara tentang "pengeluaran" dalam hal "berapa banyak uang tunai yang akan dibeli dengan biaya ini" ketika membahas penyimpanan bersama. Tentu saja itu poin yang benar-benar valid, uang sangat ketat di mana-mana .
Tetapi jika Anda berbicara tentang Ketersediaan Tinggi maka Anda juga perlu bertanya " mengapa kami ingin ketersediaan tinggi?" dan jika jawabannya adalah, misalnya, "karena bisnis menghasilkan lebih dari $ 2000 per jam dalam penjualan online, jadi jika kita libur selama satu jam maka kita telah kehilangan $ 2000" maka pertanyaan tentang biaya dan keterjangkauan bisa menjadi "Bisakah kita tidak mampu membeli sesuatu yang memungkinkan atau sangat meningkatkan penyebaran ketersediaan tinggi kami? "
Ini adalah detail penting dan komentar Anda tentang anggaran - 'ekor' TI tidak boleh mengibaskan 'anjing' bisnis dengan menekankan solusi yang terlalu rumit dan mahal untuk masalah kecil, tetapi pada saat yang sama jika bisnis memiliki persyaratan tertentu dari infrastruktur TI-nya maka harus dipersiapkan untuk menganggarkan dengan baik atau menyesuaikan persyaratannya.
Saya pikir virtualisasi memiliki banyak potensi dalam meningkatkan ketersediaan sistem, tetapi itu bukan tongkat ajaib. Sisi perangkat keras, meskipun penting, sangat sekunder untuk persyaratan perangkat lunak - tidak ada gunanya memiliki cluster basis data SQL yang jatuh tanpa masalah jika salah satu server SQL mogok jika aplikasi front-end yang berbicara ke database tersedak karena tidak dapat menangani failover.
Dan dua server "sangat tersedia" yang duduk bersebelahan di pusat data masih rentan terhadap kegagalan daya, pencurian, dll. Sekali lagi, tergantung pada jawaban untuk " mengapa kita melakukan ini?", Anda mungkin perlu mempertimbangkan aspek ini dengan cukup hati-hati karena dapat menambah biaya dan kompleksitas ke beberapa bagian dari proyek Anda.
sumber
...no good having a SQL database cluster that falls over with no trouble in the event of one of the SQL servers crashing if the front-end application that talks to the database chokes because it can't handle the failover.
- Saya tidak bisa cukup menekankan hal ini. Kami memiliki klien yang meminta kami menerapkan cluster HA SQL Server pada SAN besar dan pada akhirnya perangkat lunak mereka harus dihidupkan ulang jika terjadi kegagalan karena tidak dapat menangani gangguan komunikasi. Itu adalah latihan mahal yang sia-sia ketika SQL Mirror dan NLB akan mencukupi.Tanpa mengetahui DB dan server aplikasi yang Anda gunakan, saya akan merekomendasikan:
HA-Contoh:
Jika Anda melakukan HA pada layer aplikasi, layer itu paling tahu bagaimana mereplikasi sesi. Jika satu simpul turun (terencana atau tidak terencana), simpul yang masih hidup akan mengambil alih - termasuk sesi.
sumber
Mengapa Anda ingin membeli host Anda sendiri? Mengapa Anda tidak menemukan penyedia Enterprise Cloud / IaaS seperti BlueLock atau Terremark yang akan menyediakan infrastruktur yang Anda butuhkan. Mereka akan menyediakan layanan seperti vSphere HA (lebih seperti pengurangan downtime daripada layanan HA tetapi ini merupakan solusi yang hemat biaya), Firewall, LTM / SSL Offloader, SAN (dengan rak berlebih), Pemantauan / Peringatan, dll. Perhatikan bahwa kami tidak berbicara tentang solusi cloud konsumen di sini jadi bersiaplah untuk membayar nilai.
sumber
Anda dapat melihat solusi replikasi tervirtualisasi / penyimpanan semua-dalam-satu.
Sistem file ZFS memungkinkan hal ini, sebagaimana diuraikan dalam posting blog ini .
Opsi lain akan mengikuti tutorial yang merinci solusi dengan Red Hat KVM .
sumber