Zephyrnet Logosu

Altyapı hatalarının Amazon OpenSearch Service'teki parça üzerindeki etkisi

Tarih:

Amazon Açık Arama Hizmeti AWS Cloud'da OpenSearch ve eski Elasticsearch kümelerinin güvenliğini sağlamayı, devreye almayı ve çalıştırmayı kolaylaştıran yönetilen bir hizmettir. Amazon OpenSearch Service, kümeniz için tüm kaynakları sağlar, kümenizi başlatır ve başarısız düğümleri otomatik olarak algılayıp değiştirerek kendi kendini yöneten altyapıların ek yükünü azaltır. Hizmet, OpenSearch'ün en son sürümlerini, Elasticsearch'ün 19 sürümü için desteği (1.5 ila 7.10 sürümleri) ve desteklenen görselleştirme yeteneklerini sunarak etkileşimli günlük analitiği, gerçek zamanlı uygulama izleme, web sitesi aramaları ve daha fazlasını gerçekleştirmenizi kolaylaştırır. OpenSearch Dashboards ve Kibana (1.5 ila 7.10 sürümleri).

En son hizmet yazılımı sürümünde, parça ayırma mantığını yüke duyarlı olacak şekilde güncelledik, böylece herhangi bir düğüm arızası durumunda parçalar yeniden dağıtıldığında hizmet, hayatta kalan düğümlerin daha önce başarısız olan düğümde barındırılan parçalar tarafından aşırı yüklenmesine izin vermez. Tutarlı ve öngörülebilir küme performansı sağlamak için bu özellikle Multi-AZ etki alanları için önemlidir.

Genel olarak parça ayırma mantığı hakkında daha fazla bilgi edinmek isterseniz, lütfen bkz. Elasticsearch parça tahsisinin gizemini çözme.

Meydan okuma

Düğüm sayısı yapılandırılmış Erişilebilirlik Alanları arasında eşit olarak dağıtıldığında ve toplam parça sayısı, herhangi bir dizinin parçaları herhangi bir dizin üzerinde yoğunlaşmadan mevcut tüm düğümler arasında eşit olarak dağıtıldığında bir Amazon OpenSearch Service etki alanının "dengeli" olduğu söylenir. düğüm. Ayrıca OpenSearch, etkinleştirildiğinde birincil parçanın ve ona karşılık gelen kopyanın farklı Erişilebilirlik Alanlarında tahsis edilmesini sağlayan "Bölge Farkındalığı" adlı bir özelliğe sahiptir. Birden fazla veri kopyanız varsa birden çok Erişilebilirlik Alanına sahip olmak daha iyi hata toleransı ve kullanılabilirlik sağlar. Alanın ölçeklenmesi veya küçültülmesi durumunda veya düğüm(ler)in başarısızlığı sırasında OpenSearch, bölge farkındalığına dayalı tahsis kurallarına uyarken parçaları mevcut düğümler arasında otomatik olarak yeniden dağıtır.

Parça dengeleme işlemi, parçaların Erişilebilirlik Alanları arasında eşit şekilde dağıtılmasını sağlarken, bazı durumlarda, tek bir bölgede beklenmeyen bir arıza olması durumunda parçalar, hayatta kalan düğümlere yeniden tahsis edilir. Bu, hayatta kalan düğümlerin bunalmasına ve küme kararlılığının etkilenmesine neden olabilir.

Örneğin, üç düğümlü bir kümedeki bir düğüm çökerse, OpenSearch aşağıdaki şemada gösterildiği gibi atanmamış parçaları yeniden dağıtır. Burada "P" birincil parça kopyasını temsil ederken, "R" bir kopya parça kopyasını temsil eder.

Etki alanının bu davranışı, arıza sırasında ve kurtarma sırasında olmak üzere iki bölümde açıklanabilir.

başarısızlık sırasında

Birden çok Erişilebilirlik Alanında dağıtılan bir etki alanı, kullanım ömrü boyunca birden çok türde hatayla karşılaşabilir.

Tam bölge hatası

Bir küme, çeşitli nedenlerle tek bir Erişilebilirlik Alanını ve ayrıca o bölgedeki tüm düğümleri kaybedebilir. Bugün hizmet, kayıp düğümleri kalan sağlıklı Erişilebilirlik Alanlarına yerleştirmeye çalışıyor. Hizmet ayrıca, ayırma kurallarına uymaya devam ederken kalan düğümlerdeki kayıp parçaları yeniden oluşturmaya çalışır. Bu, bazı istenmeyen sonuçlara yol açabilir.

  • Etkilenen bölgenin parçaları sağlıklı bölgelere yeniden tahsis edildiğinde, ek CPU döngülerini ve ağ bant genişliğini tükettiği için gecikmeleri artırabilen parça kurtarma işlemlerini tetikler.
  • n-AZ, n-kopya kurulumu (n>1) için, hayatta kalan n-1 Erişilebilirlik Alanları, n'inci parça kopyası ile tahsis edilir; düğümler arasında dengesiz trafik. Bu düğümler aşırı yüklenebilir ve daha fazla arızaya yol açabilir.

Kısmi bölge hatası

Kısmi bir bölge arızası durumunda veya alan adı Erişilebilirlik Alanındaki düğümlerin yalnızca bir kısmını kaybettiğinde, Amazon OpenSearch Service başarısız olan düğümleri mümkün olan en kısa sürede değiştirmeye çalışır. Ancak, düğümlerin değiştirilmesinin çok uzun sürmesi durumunda OpenSearch, o bölgenin atanmamış parçalarını Erişilebilirlik Alanındaki hayatta kalan düğümlere tahsis etmeye çalışır. Hizmet, etkilenen Erişilebilirlik Alanındaki düğümleri değiştiremezse, onları diğer yapılandırılmış Erişilebilirlik Alanında tahsis edebilir ve bu da, hem bölge genelinde hem de bölge içinde parçaların dağılımını daha da bozabilir. Bunun yine istenmeyen sonuçları vardır.

  • Etki alanındaki düğümlerin ek parçaları barındırmak için yeterli depolama alanı yoksa, etki alanı yazma engellenebilir ve bu da dizin oluşturma işlemini etkiler.
  • Parçaların çarpık dağılımı nedeniyle, etki alanı, düğümler arasında çarpık trafik yaşayabilir ve bu, okuma ve yazma işlemleri için gecikmeleri veya zaman aşımlarını daha da artırabilir.

Tedavi Süreci

Bugün, etki alanının istenen düğüm sayısını korumak için Amazon OpenSearch Service, yukarıdaki başarısızlık bölümünde açıklanan senaryolara benzer şekilde kalan sağlıklı Erişilebilirlik Alanlarında veri düğümleri başlatır. Böyle bir olaydan sonra tüm Erişilebilirlik Alanlarında uygun düğüm dağılımı sağlamak için AWS'nin manuel müdahalesi gerekiyordu.

Ne değişiyor

Genel hata işlemeyi iyileştirmek ve hatanın alan sağlığı ve performansı üzerindeki etkisini en aza indirmek için Amazon OpenSearch Service aşağıdaki değişiklikleri gerçekleştiriyor:

  • Zorunlu Bölge Farkındalığı: OpenSearch, parçaların tahsis edilmesi gereken Erişilebilirlik Alanlarını ayarlamak için kullanılan, zorunlu farkındalık adı verilen önceden var olan bir parça dengeleme yapılandırmasına sahiptir. Örneğin, bölge adı verilen bir farkındalık özniteliğiniz varsa ve düğümleri zone1 ve zone2, yalnızca bir bölge mevcutsa, OpenSearch'ün kopyaları tahsis etmesini önlemek için zorlamalı farkındalığı kullanabilirsiniz:
cluster.routing.allocation.awareness.attributes: zone
cluster.routing.allocation.awareness.force.zone.values: zone1,zone2

Bu örnek konfigürasyonda, iki düğümü şu şekilde başlatırsanız: node.attr.zone ayarlandığında zone1 ve beş parça ve bir eşleme içeren bir dizin oluşturun, OpenSearch dizini oluşturur ve beş birincil parçayı ayırır, ancak eşleme yapmaz. Kopyalar yalnızca bir kez düğümlere tahsis edilir. node.attr.zone ayarlandığında zone2 kullanılabilir.

Amazon OpenSearch Service, parçaların yalnızca bölge farkındalığı kurallarına göre tahsis edilmesini sağlamak için Multi-AZ etki alanlarında zorunlu farkındalık yapılandırmasını kullanacaktır. Bu, sağlıklı Erişilebilirlik Alanlarının düğümlerindeki ani yük artışını önleyecektir.

  • Yüke Duyarlı Parça Tahsisi: Amazon OpenSearch Service, düğüm başına beklenen ortalama parça sayısına göre herhangi bir düğümün daha fazla parçayla aşırı yüklenip yüklenmediğini hesaplamak için sağlanan kapasite, gerçek kapasite ve toplam parça kopyaları gibi faktörleri dikkate alacaktır. Herhangi bir düğüm, bu sınırı aşan bir parça sayısı tahsis ettiğinde, parça atamasını engeller.

not herhangi bir atanmamış birincil Kümenin herhangi bir olası veri kaybını önlemek için aşırı yüklenmiş düğümde kopyalamaya yine de izin verilir.

Benzer şekilde, manuel kurtarma sorununu çözmek için (yukarıdaki Kurtarma bölümünde açıklandığı gibi), Amazon OpenSearch Hizmeti de dahili ölçeklendirme bileşeninde değişiklikler yapıyor. Daha yeni değişikliklerin uygulanmasıyla Amazon OpenSearch Service, daha önce açıklanan başarısızlık senaryosundan geçse bile kalan Erişilebilirlik Alanlarında düğüm başlatmayacaktır.

Mevcut ve yeni davranışı görselleştirme

Örneğin, bir Amazon OpenSearch Service etki alanı, 3-AZ, 6 veri düğümü, 12 birincil parça ve 24 kopya parçasıyla yapılandırılır. Etki alanı, bölgelerin her birinde iki düğüm olacak şekilde AZ-1, AZ-2 ve AZ-3'te sağlanır.

Mevcut parça tahsisi:
Toplam parça sayısı: 12 Birincil + 24 Kopya = 36 parça
Erişilebilirlik Alanı Sayısı: 3
Bölge başına parça sayısı (bölge farkındalığı doğrudur): 36/3 = 12
Erişilebilirlik Alanı başına düğüm sayısı: 2
Düğüm başına parça sayısı: 12/2 = 6

Aşağıdaki diyagram, etki alanı kurulumunun görsel bir temsilini sağlar. Daireler, düğüme tahsis edilen parça sayısını gösterir. Amazon OpenSearch Service, düğüm başına altı parça tahsis edecektir.

AZ-3'teki bir düğümün arızalandığı kısmi bölge hatası sırasında, başarısız olan düğüm kalan bölgeye atanır ve bölgedeki parçalar mevcut düğümlere göre yeniden dağıtılır. Yukarıda açıklanan değişikliklerden sonra, küme yeni bir düğüm oluşturmayacak veya düğümün arızalanmasından sonra parçaları yeniden dağıtmayacaktır.


Yukarıdaki şemada, AZ-3'te bir düğümün kaybedilmesiyle Amazon OpenSearch Service, aynı alt bölgede değiştirme kapasitesini başlatmaya çalışır. Ancak, bazı kesintiler nedeniyle bölge bozulabilir ve yenisini başlatamayabilir. Böyle bir durumda hizmet, başka bir sağlıklı bölgede açık kapasite başlatmaya çalışır, bu da Erişilebilirlik Alanları arasında bölge dengesizliğine yol açabilir. Etkilenen bölgedeki kırıklar, aynı bölgedeki hayatta kalan düğümde doldurulur. Bununla birlikte, yeni davranışla hizmet, aynı bölgede kapasite başlatmayı deneyecek, ancak dengesizliği önlemek için diğer bölgelerde açık kapasite başlatmaktan kaçınacaktır. Parça ayırıcı, hayatta kalan düğümlerin aşırı yüklenmemesini de sağlar.


Benzer şekilde, AZ-3'teki tüm düğümlerin kaybolması veya AZ-3'ün bozulması durumunda Amazon OpenSearch Service, kalan Erişilebilirlik Alanındaki kayıp düğümleri getirir ve ayrıca kırıkları düğümler üzerinde yeniden dağıtır. Ancak yeni değişikliklerden sonra Amazon OpenSearch Service, düğümleri kalan bölgeye tahsis etmeyecek veya kaybolan parçaları kalan bölgeye yeniden tahsis etmeye çalışmayacaktır. Amazon OpenSearch Service, Kurtarma işleminin gerçekleşmesini ve alan adının kurtarma sonrasında orijinal yapılandırmasına dönmesini bekleyecektir.

Etki alanınız, bir Erişilebilirlik Alanının kaybına dayanacak kadar yeterli kapasiteyle donatılmamışsa etki alanınız için aktarım hızında bir düşüş yaşayabilirsiniz. Bu nedenle, etki alanınızı boyutlandırırken en iyi uygulamaları izlemeniz önemle tavsiye edilir; bu, tek bir Erişilebilirlik Alanı hatasının kaybına dayanacak yeterli kaynağa sahip olmak anlamına gelir.


Şu anda, alan kurtarıldıktan sonra hizmet, Erişilebilirlik Alanları genelinde kapasiteyi dengelemek için parça hareketlerini de içeren manuel müdahale gerektiriyor. Bununla birlikte, yeni davranışla, etkilenen bölgede kapasite geri döndüğü ve kırıklar da kurtarılan düğümlere otomatik olarak tahsis edildiği için kurtarma işlemi sırasında herhangi bir müdahaleye gerek yoktur. Bu, kalan kaynaklar üzerinde rekabet eden önceliklerin olmamasını sağlar.

Ne bekleyebilirsiniz

Amazon OpenSearch Hizmeti etki alanınızı en son hizmet yazılımı sürümüne güncelledikten sonra, en iyi uygulamalarla yapılandırılmış Erişilebilirlik Alanındaki bir veya daha fazla veri düğümünü kaybettikten sonra bile daha öngörülebilir bir performansa sahip olacaktır. Bir düğümde parça fazla tahsisi vakaları azaltılacaktır. Tek bir bölge arızasını tolere edebilmek için yeterli kapasite sağlamak iyi bir uygulamadır.

Aşırı yüklenmiş düğümlere replika kırıkları atamayacağımız için, bu tür beklenmeyen hatalar sırasında bazen bir alanın sarardığını görebilirsiniz. Ancak bu, iyi yapılandırılmış bir etki alanında veri kaybı olacağı anlamına gelmez. Kesintiler sırasında tüm ön seçimlerin atandığından emin olmaya devam edeceğiz. Etki alanındaki düğümlerin dengelenmesiyle ilgilenecek ve hata düzeldikten sonra kopyaların atanmasını sağlayacak otomatik bir kurtarma mevcuttur.

Bu yeni değişikliklerin alanınıza uygulanması için Amazon OpenSearch Service alanınızın hizmet yazılımını güncelleyin. Hizmet yazılımı güncelleme işlemiyle ilgili daha fazla ayrıntı, Amazon OpenSearch Hizmeti belgeleri.

Sonuç

Bu gönderide, Amazon OpenSearch Service'in yakın zamanda bölgesel kesintiler sırasında düğümleri ve parçaları Erişilebilirlik Alanları arasında dağıtma mantığını nasıl iyileştirdiğini gördük.

Bu değişiklik, hizmetin düğüm veya bölgesel arızalar sırasında daha tutarlı ve öngörülebilir performans sağlamasına yardımcı olacaktır. Etki alanları, yazma ve okuma işlemleri sırasında artan gecikmeleri veya yazma bloklarını görmez;


yazarlar hakkında

Buktaver Han Amazon OpenSearch Hizmeti üzerinde çalışan Kıdemli Yazılım Mühendisidir. Dağıtılmış ve otonom sistemlerle ilgileniyor. OpenSearch'e aktif olarak katkıda bulunmaktadır.

Anshu Agarwal Amazon Web Services'ta AWS OpenSearch üzerinde çalışan Kıdemli Yazılım Mühendisidir. Ölçeklenebilir ve son derece güvenilir sistemler oluşturmaya ilişkin sorunları çözme konusunda tutkulu.

Shourya Dutta Biswas Amazon Web Services'ta AWS OpenSearch üzerinde çalışan bir Yazılım Mühendisidir. Son derece esnek dağıtılmış sistemler oluşturma konusunda tutkulu.

Rişab Nahata Amazon Web Services'ta OpenSearch üzerinde çalışan bir Yazılım Mühendisidir. Dağıtılmış sistemlerde problem çözme konusunda büyülenmiştir. OpenSearch'e aktif olarak katkıda bulunmaktadır.

Ranjith Ramachandra Amazon Web Services'de Amazon OpenSearch Service üzerinde çalışan bir Mühendislik Yöneticisidir.

Jon işleyici AWS arama teknolojileri - Amazon CloudSearch ve Amazon OpenSearch Service - konusunda uzmanlaşmış bir Kıdemli Baş Çözüm Mimarıdır. Palo Alto merkezli olarak, geniş bir müşteri yelpazesine arama ve günlük analitiği iş yüklerinin doğru dağıtılmasına ve iyi çalışmasına yardımcı oluyor.

spot_img

En Son İstihbarat

spot_img