Layanan Pencarian Terbuka Amazon baru-baru ini diperkenalkan Multi-AZ dengan Siaga, opsi penerapan yang dirancang untuk memberikan peningkatan ketersediaan dan kinerja yang konsisten bagi bisnis untuk beban kerja penting. Dengan fitur ini, klaster yang dikelola dapat mencapai ketersediaan 99.99% namun tetap tahan terhadap kegagalan infrastruktur zonal.
Dalam postingan ini, kami mengeksplorasi cara kerja penelusuran dan pengindeksan dengan Multi-AZ dengan Standby dan mempelajari mekanisme mendasar yang berkontribusi terhadap keandalan, kesederhanaan, dan toleransi kesalahannya.
Latar Belakang
Multi-AZ dengan Standby menyebarkan instans domain OpenSearch Service di tiga Availability Zone, dengan dua zona ditetapkan sebagai aktif dan satu zona sebagai siaga. Konfigurasi ini memastikan kinerja yang konsisten, bahkan jika terjadi kegagalan zona, dengan mempertahankan kapasitas yang sama di seluruh zona. Yang penting, zona siaga ini mengikuti a desain yang stabil secara statis, menghilangkan kebutuhan akan penyediaan kapasitas atau perpindahan data selama kegagalan.
Selama operasi reguler, zona aktif menangani lalu lintas koordinator untuk permintaan baca dan tulis, serta lalu lintas kueri shard. Sebaliknya, zona siaga hanya menerima lalu lintas replikasi. OpenSearch Service menggunakan protokol replikasi sinkron untuk permintaan tulis. Hal ini memungkinkan layanan untuk segera meningkatkan zona siaga ke status aktif jika terjadi kegagalan (waktu rata-rata untuk melakukan failover <= 1 menit), yang dikenal sebagai a kegagalan zona. Zona yang sebelumnya aktif kemudian diturunkan ke mode siaga, dan operasi pemulihan dimulai untuk memulihkan kondisi sehatnya.
Perutean lalu lintas pencarian dan failover untuk menjamin ketersediaan tinggi
Dalam domain OpenSearch Service, a koordinator adalah node mana pun yang menangani permintaan HTTP(S), terutama permintaan pengindeksan dan pencarian. Dalam domain Multi-AZ dengan Siaga, simpul data di zona aktif bertindak sebagai koordinator untuk permintaan pencarian.
Selama fase kueri permintaan pencarian, koordinator menentukan pecahan yang akan dikueri dan mengirimkan permintaan ke node data yang menghosting salinan pecahan. Kueri dijalankan secara lokal pada setiap pecahan dan dokumen yang cocok dikembalikan ke node koordinator. Node koordinator, yang bertanggung jawab mengirimkan permintaan ke node yang berisi salinan shard, menjalankan proses dalam dua langkah. Pertama, ini membuat iterator yang menentukan urutan node yang perlu dikueri untuk salinan shard sehingga lalu lintas didistribusikan secara merata ke seluruh salinan shard. Selanjutnya, permintaan tersebut dikirim ke node terkait.
Untuk membuat daftar urutan node yang akan dikueri untuk salinan shard, node koordinator menggunakan berbagai algoritma. Algoritme ini mencakup pemilihan round-robin, pemilihan replika adaptif, perutean shard berbasis preferensi, dan round-robin tertimbang.
Untuk Multi-AZ dengan Standby, algoritme round-robin berbobot digunakan untuk pemilihan salinan shard. Dalam pendekatan ini, zona aktif diberi bobot 1, dan zona siaga diberi bobot 0. Hal ini memastikan bahwa tidak ada lalu lintas baca yang dikirim ke node data di Availability Zone siaga.
Bobot disimpan dalam metadata status cluster sebagai objek JSON:
Seperti yang ditunjukkan pada tangkapan layar berikut, us-east-1b
Wilayah mempunyai status zona sebagai StandBy
, menunjukkan bahwa node data di Availability Zone ini berada dalam keadaan siaga dan tidak menerima permintaan pencarian atau pengindeksan dari penyeimbang beban.
Untuk menjaga operasi tetap stabil, Availability Zone siaga dirotasi setiap 30 menit, memastikan semua bagian jaringan tercakup di seluruh Availability Zone. Pendekatan proaktif ini memverifikasi ketersediaan jalur baca, sehingga semakin meningkatkan ketahanan sistem jika terjadi potensi kegagalan. Diagram berikut menggambarkan arsitektur ini.
Pada diagram sebelumnya, Zona-C memiliki bobot round-robin tertimbang yang disetel ke nol. Hal ini memastikan bahwa node data di zona siaga tidak menerima lalu lintas pengindeksan atau pencarian apa pun. Saat koordinator mengkueri node data untuk salinan shard, ia menggunakan bobot round-robin berbobot untuk memutuskan urutan node mana yang akan dikueri. Karena bobotnya nol untuk Availability Zone siaga, permintaan koordinator tidak dikirim.
Di kluster OpenSearch Service, zona aktif dan siaga dapat diperiksa kapan saja menggunakan metrik rotasi Availability Zone, seperti yang ditunjukkan pada tangkapan layar berikut.
Selama pemadaman zonal, Availability Zone siaga dengan mulus beralih ke mode buka-gagal untuk permintaan pencarian. Ini berarti lalu lintas kueri shard dirutekan ke semua Availability Zone, bahkan yang berada dalam keadaan siaga, ketika salinan shard yang sehat tidak tersedia di Availability Zone yang aktif. Pendekatan fail-open ini melindungi permintaan pencarian dari gangguan selama kegagalan, memastikan layanan berkelanjutan. Diagram berikut menggambarkan arsitektur ini.
Dalam diagram sebelumnya, selama kondisi stabil, lalu lintas kueri shard dikirim ke node data di Availability Zone aktif (Zona-A dan Zona-B). Karena kegagalan simpul di Zona-A, Availability Zone siaga (Zona-C) gagal dibuka untuk mengambil lalu lintas kueri shard sehingga tidak ada dampak apa pun terhadap permintaan pencarian. Akhirnya, Zona-A terdeteksi tidak sehat dan failover baca mengalihkan siaga ke Zona-A.
Bagaimana failover memastikan ketersediaan tinggi selama gangguan penulisan
Model replikasi OpenSearch Service mengikuti model pencadangan utama, yang dicirikan oleh sifatnya yang sinkron, yang mengharuskan pengakuan dari semua salinan shard sebelum permintaan tulis dapat diakui kepada pengguna. Salah satu kelemahan penting dari model replikasi ini adalah kerentanannya terhadap perlambatan jika terjadi gangguan pada jalur tulis. Sistem ini mengandalkan node pemimpin yang aktif untuk mengidentifikasi kegagalan atau penundaan dan kemudian menyiarkan informasi ini ke semua node. Durasi yang diperlukan untuk mendeteksi masalah ini (waktu rata-rata untuk mendeteksi) dan kemudian menyelesaikannya (waktu rata-rata untuk memperbaiki) sangat menentukan berapa lama sistem akan beroperasi dalam keadaan rusak. Selain itu, peristiwa jaringan apa pun yang memengaruhi komunikasi antar-zona dapat secara signifikan menghambat permintaan tulis karena sifat replikasi yang sinkron.
OpenSearch Service menggunakan protokol komunikasi internal node-to-node untuk mereplikasi lalu lintas tulis dan mengoordinasikan pembaruan metadata melalui pemimpin terpilih. Akibatnya, menempatkan zona yang mengalami tekanan dalam keadaan siaga tidak akan secara efektif mengatasi masalah gangguan tulis.
Kegagalan penulisan zona: Memotong lalu lintas replikasi antar zona
Untuk Multi-AZ dengan Siaga, untuk memitigasi potensi masalah kinerja yang disebabkan oleh peristiwa tak terduga seperti kegagalan zona dan peristiwa jaringan, kegagalan penulisan zona adalah pendekatan yang efektif. Pendekatan ini melibatkan penghapusan secara hati-hati node-node di zona yang terkena dampak dari klaster, sehingga secara efektif memutus lalu lintas masuk dan keluar antar zona. Dengan memutus lalu lintas replikasi antar-zona, dampak kegagalan zona dapat diatasi dalam zona yang terkena dampak. Hal ini memberikan pengalaman yang lebih dapat diprediksi bagi pelanggan dan memastikan bahwa sistem terus beroperasi dengan andal.
Kegagalan penulisan yang anggun
Orkestrasi failover tulis dalam Layanan OpenSearch dilakukan oleh node pemimpin terpilih melalui mekanisme yang ditentukan dengan baik. Mekanisme ini melibatkan protokol konsensus untuk publikasi status cluster, memastikan kesepakatan bulat di antara semua node untuk menunjuk satu zona (setiap saat) untuk dekomisioning. Yang penting, metadata yang terkait dengan zona yang terkena dampak direplikasi di seluruh node untuk memastikan keberlangsungannya, bahkan selama restart penuh jika terjadi pemadaman listrik.
Selain itu, node pemimpin memastikan transisi yang mulus dan anggun dengan terlebih dahulu menempatkan node di zona yang terkena dampak dalam keadaan siaga selama 5 menit sebelum memulai pagar I/O. Pendekatan yang disengaja ini mencegah lalu lintas koordinator baru atau lalu lintas kueri shard diarahkan ke node dalam zona yang terkena dampak. Hal ini, pada gilirannya, memungkinkan node-node ini menyelesaikan tugas-tugas mereka yang sedang berjalan dengan baik dan secara bertahap menangani permintaan dalam penerbangan sebelum dihentikan layanannya. Diagram berikut menggambarkan arsitektur ini.
Dalam proses penerapan failover tulis untuk node pemimpin, OpenSearch Service mengikuti langkah-langkah penting berikut:
- Turun tahta pemimpin – Jika node pemimpin kebetulan berada di zona yang dijadwalkan untuk failover tulis, sistem memastikan bahwa node pemimpin secara sukarela mengundurkan diri dari peran kepemimpinannya. Pengunduran diri ini dilakukan secara terkendali, dan seluruh proses diserahkan ke node lain yang memenuhi syarat, yang kemudian mengambil alih tindakan yang diperlukan.
- Mencegah terpilihnya kembali pemimpin yang akan dinonaktifkan – Untuk mencegah terpilihnya kembali seorang pemimpin dari zona yang ditandai untuk failover tulis, ketika node pemimpin yang memenuhi syarat memulai tindakan failover tulis, diperlukan tindakan untuk memastikan bahwa node pemimpin yang akan dinonaktifkan tidak berpartisipasi dalam pemilihan selanjutnya. Hal ini dicapai dengan mengecualikan node pemimpin yang akan dinonaktifkan dari konfigurasi pemungutan suara, sehingga secara efektif mencegahnya melakukan pemungutan suara selama fase penting operasi klaster.
Metadata yang terkait dengan zona failover tulis disimpan dalam status klaster, dan informasi ini dipublikasikan ke semua node di klaster OpenSearch Service terdistribusi sebagai berikut:
Tangkapan layar berikut menggambarkan bahwa selama terjadi perlambatan jaringan di suatu zona, kegagalan tulis membantu memulihkan ketersediaan.
Pemulihan zona setelah failover tulis
Proses komisioning ulang zonal memainkan peran penting dalam fase pemulihan setelah kegagalan penulisan zonal. Setelah zona yang terkena dampak dipulihkan dan dianggap stabil, node yang sebelumnya dinonaktifkan akan bergabung kembali dengan cluster. Pengoperasian ulang ini biasanya terjadi dalam jangka waktu 2 menit setelah zona tersebut diaktifkan kembali.
Hal ini memungkinkan mereka melakukan sinkronisasi dengan node rekannya dan memulai proses pemulihan pecahan replika, sehingga secara efektif memulihkan klaster ke kondisi yang diinginkan.
Kesimpulan
Pengenalan OpenSearch Service Multi-AZ dengan Standby memberi bisnis solusi yang kuat untuk mencapai ketersediaan tinggi dan kinerja yang konsisten untuk beban kerja penting. Dengan opsi penerapan ini, bisnis dapat meningkatkan ketahanan infrastruktur mereka, menyederhanakan konfigurasi dan pengelolaan klaster, serta menerapkan praktik terbaik. Dengan fitur seperti pemilihan salinan shard round-robin berbobot, mekanisme failover proaktif, dan Availability Zone siaga fail-open, OpenSearch Service Multi-AZ dengan Standby memastikan pengalaman pencarian yang andal dan efisien untuk lingkungan perusahaan yang menuntut.
Untuk informasi lebih lanjut tentang Multi-AZ dengan Siaga, lihat Layanan Amazon OpenSearch Di Balik Terpal: Multi-AZ dengan Siaga.
tentang Penulis
Anshu Agarwal adalah Insinyur Perangkat Lunak Senior yang mengerjakan AWS OpenSearch di Amazon Web Services. Dia bersemangat memecahkan masalah yang terkait dengan membangun sistem yang dapat diskalakan dan sangat andal.
Rishab Nahata adalah Insinyur Perangkat Lunak yang mengerjakan OpenSearch di Amazon Web Services. Dia terpesona tentang pemecahan masalah dalam sistem terdistribusi. Dia adalah kontributor aktif untuk OpenSearch.
Bukhtawar Khan adalah Insinyur Utama yang bekerja di Amazon OpenSearch Service. Dia tertarik pada sistem terdistribusi dan otonom. Dia adalah kontributor aktif untuk OpenSearch.
Ranjith Ramachandra adalah Manajer Teknik yang bekerja di Amazon OpenSearch Service di Amazon Web Services.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/big-data/achieve-high-availability-in-amazon-opensearch-multi-az-with-standby-enabled-domains-a-deep-dive-into-failovers/
- :memiliki
- :adalah
- :bukan
- :Di mana
- 1
- 10
- 100
- 12
- 30
- 501
- a
- Tentang Kami
- Mencapai
- dicapai
- diakui
- di seluruh
- Bertindak
- Tindakan
- tindakan
- aktif
- adaptif
- Selain itu
- alamat
- terpengaruh
- Setelah
- Persetujuan
- algoritma
- algoritma
- Semua
- mengizinkan
- Amazon
- Amazon Web Services
- antara
- an
- dan
- Lain
- Apa pun
- pendekatan
- arsitektur
- ADALAH
- AS
- ditugaskan
- At
- otonom
- sistem otonom
- tersedianya
- kesadaran
- AWS
- backup
- ayunan
- BE
- karena
- menjadi
- sebelum
- makhluk
- TERBAIK
- Praktik Terbaik
- antara
- kedua
- menyiarkan
- Bangunan
- bisnis
- by
- CAN
- Kapasitas
- dilakukan
- disebabkan
- ditandai
- biaya
- diperiksa
- Kelompok
- Komunikasi
- komunikasi
- lengkap
- konfigurasi
- Konsensus
- Karena itu
- dianggap
- konsisten
- konsul
- berisi
- terus
- kontinu
- menyumbang
- penyumbang
- dikendalikan
- koordinasi
- Koordinator
- koordinator
- salinan
- tercakup
- membuat
- menciptakan
- kritis
- sangat penting
- pelanggan
- pemotongan
- data
- memutuskan
- mendalam
- menyelam dalam
- Mendefinisikan
- keterlambatan
- menggali
- menuntut
- penyebaran
- menyebarkan
- ditunjuk
- dirancang
- diinginkan
- menemukan
- terdeteksi
- ditentukan
- diarahkan
- Gangguan
- didistribusikan
- sistem terdistribusi
- menyelam
- do
- dokumen
- domain
- domain
- Dont
- turun
- dua
- lamanya
- selama
- setiap
- Efektif
- efektif
- efisien
- terpilih
- Pemilihan
- berhak
- menghilangkan
- diaktifkan
- memungkinkan
- melaksanakan
- insinyur
- Teknik
- mempertinggi
- ditingkatkan
- meningkatkan
- memastikan
- Memastikan
- memastikan
- Enterprise
- Seluruh
- lingkungan
- terutama
- Eter (ETH)
- Bahkan
- Acara
- peristiwa
- akhirnya
- Setiap
- tidak termasuk
- pengalaman
- mengalami
- menyelidiki
- gagal
- Kegagalan
- kegagalan
- Fitur
- Fitur
- pagar
- Pertama
- berikut
- berikut
- Untuk
- FRAME
- dari
- penuh
- lebih lanjut
- gif
- Anggun
- bertahap
- menjamin
- tangan
- menangani
- Menangani
- Terjadi
- he
- sehat
- membantu
- High
- sangat
- kap
- tuan
- Seterpercayaapakah Olymp Trade? Kesimpulan
- http
- HTTPS
- mengenali
- if
- menggambarkan
- Dampak
- dampak
- pelemahan
- mengimplementasikan
- penting
- in
- memasukkan
- Menunjukkan
- informasi
- Infrastruktur
- mulanya
- Inisiat
- memulai
- contoh
- tertarik
- intern
- ke
- diperkenalkan
- Pengantar
- melibatkan
- isu
- masalah
- IT
- NYA
- jpg
- json
- kunci
- dikenal
- sebagian besar
- pemimpin
- Kepemimpinan
- 'like'
- Daftar
- memuat
- lokal
- terletak
- Panjang
- memelihara
- mempertahankan
- berhasil
- pengelolaan
- manajer
- cara
- ditandai
- cocok
- berarti
- cara
- ukuran
- mekanisme
- mekanisme
- Metadata
- Metrik
- menit
- menit
- Mengurangi
- mode
- model
- lebih
- gerakan
- Alam
- perlu
- Perlu
- jaringan
- jaringan
- New
- tidak
- simpul
- node
- penting
- obyek
- of
- lepas
- on
- ONE
- terus-menerus
- hanya
- Buka
- beroperasi
- operasi
- Operasi
- pilihan
- or
- teknik mengatur musik
- urutan
- Lainnya
- di luar
- outage
- Padam
- lebih
- ikut
- bagian
- bergairah
- path
- jalan
- buah pir
- prestasi
- ketekunan
- tahap
- penempatan
- plato
- Kecerdasan Data Plato
- Data Plato
- memainkan
- Pos
- potensi
- kuat
- praktek
- mendahului
- Bisa ditebak
- mencegah
- mencegah
- mencegah
- sebelumnya
- primer
- Utama
- Proaktif
- masalah
- proses
- mendorong
- protokol
- memberikan
- menyediakan
- Publikasi
- diterbitkan
- Puting
- query
- Baca
- menerima
- menerima
- baru-baru ini
- Memulihkan
- pulih
- pemulihan
- lihat
- wilayah
- reguler
- terkait
- relevan
- keandalan
- dapat diandalkan
- mengandalkan
- yang tersisa
- pemindahan
- memperbaiki
- menjawab
- direplikasi
- replikasi
- permintaan
- permintaan
- wajib
- ketahanan
- tabah
- menyelesaikan
- tanggung jawab
- mengembalikan
- pulih
- memulihkan
- Peran
- rute
- Run
- berjalan
- s
- pengamanan
- sama
- terukur
- dijadwalkan
- mulus
- Pencarian
- seleksi
- mengirim
- mengirimkan
- senior
- mengirim
- layanan
- Layanan
- set
- dia
- ditunjukkan
- signifikan
- kesederhanaan
- menyederhanakan
- tunggal
- Pelan - pelan
- perlambatan
- kelancaran
- So
- Perangkat lunak
- Software Engineer
- larutan
- Memecahkan
- stabil
- Negara
- Status
- mantap
- Tangga
- tersimpan
- tekanan
- Kemudian
- sukses
- kerawanan
- sistem
- sistem
- Mengambil
- diambil
- Dibutuhkan
- tugas
- bahwa
- Grafik
- mereka
- Mereka
- kemudian
- Sana.
- Ini
- ini
- itu
- tiga
- Melalui
- waktu
- kali
- untuk
- toleransi
- lalu lintas
- transisi
- MENGHIDUPKAN
- dua
- khas
- bawah
- pokok
- tidak terduga
- Pembaruan
- bekas
- Pengguna
- kegunaan
- menggunakan
- memanfaatkan
- berbagai
- sukarela
- Pemungutan suara
- we
- jaringan
- layanan web
- berat
- BAIK
- terdefinisi dengan baik
- adalah
- ketika
- yang
- sementara
- akan
- dengan
- dalam
- kerja
- bekerja
- menulis
- zephyrnet.dll
- nol
- zona