تأثیر خرابی های زیرساخت بر خرده در سرویس جستجوی باز آمازون

تأثیر خرابی های زیرساخت بر خرده در سرویس جستجوی باز آمازون

گره منبع: 1783553

سرویس جستجوی باز آمازون یک سرویس مدیریت شده است که ایمن کردن، استقرار و بهره برداری از OpenSearch و کلاسترهای Elasticsearch قدیمی را در مقیاس در AWS Cloud آسان می کند. سرویس جستجوی باز آمازون تمام منابع را برای خوشه شما فراهم می کند، آن را راه اندازی می کند و به طور خودکار گره های شکست خورده را شناسایی و جایگزین می کند و هزینه های زیرساخت های خود مدیریت را کاهش می دهد. این سرویس با ارائه آخرین نسخه های OpenSearch، پشتیبانی از 19 نسخه Elasticsearch (نسخه های 1.5 تا 7.10) و قابلیت های تجسم ارائه شده توسط شما، انجام تجزیه و تحلیل گزارش های تعاملی، نظارت بر برنامه های کاربردی، جستجوی وب سایت و موارد دیگر را برای شما آسان می کند. داشبوردهای OpenSearch و Kibana (نسخه های 1.5 تا 7.10).

در آخرین نسخه نرم‌افزار سرویس، منطق تخصیص خرده‌ها را برای آگاهی از بارگذاری به‌روزرسانی کرده‌ایم، به طوری که وقتی خرده‌ها در صورت خرابی گره‌ها دوباره توزیع می‌شوند، سرویس اجازه نمی‌دهد گره‌های باقی‌مانده توسط خرده‌هایی که قبلاً روی گره شکست خورده میزبانی شده بودند، بیش از حد بارگذاری شوند. این امر به ویژه برای دامنه های Multi-AZ برای ارائه عملکرد خوشه ای سازگار و قابل پیش بینی بسیار مهم است.

اگر مایلید پیشینه بیشتری در مورد منطق تخصیص خرده به طور کلی داشته باشید، لطفاً ببینید رمزگشایی تخصیص خرده Elasticsearch.

چالش

زمانی که تعداد گره‌ها به طور مساوی در مناطق دسترسی پیکربندی شده توزیع شده باشد، و تعداد کل خرده‌ها به طور مساوی در تمام گره‌های موجود بدون تمرکز خرده‌های هر یک از شاخص‌ها بر روی هر یک، به یک دامنه سرویس جستجوی باز آمازون «متعادل» گفته می‌شود. گره همچنین، OpenSearch دارای خاصیتی به نام "Zone Awareness" است که در صورت فعال بودن، اطمینان حاصل می کند که قطعه اولیه و ماکت مربوط به آن در مناطق مختلف در دسترس بودن تخصیص داده شده اند. اگر بیش از یک نسخه از داده ها دارید، داشتن چندین منطقه در دسترس بودن، تحمل خطا و در دسترس بودن بهتری را فراهم می کند. در صورت کوچک شدن یا کوچک شدن دامنه در داخل یا در حین شکست گره(ها)، OpenSearch به طور خودکار خرده ها را بین گره های موجود مجدداً توزیع می کند در حالی که از قوانین تخصیص بر اساس آگاهی منطقه پیروی می کند.

در حالی که فرآیند متعادل سازی خرده ها تضمین می کند که خرده ها به طور مساوی در مناطق در دسترس توزیع می شوند، در برخی موارد، اگر یک شکست غیرمنتظره در یک منطقه وجود داشته باشد، خرده ها دوباره به گره های باقی مانده تخصیص می یابند. این ممکن است منجر به غرق شدن گره های باقیمانده شود که بر پایداری خوشه تأثیر می گذارد.

به عنوان مثال، اگر یک گره در یک خوشه سه گره پایین بیاید، OpenSearch خرده های تخصیص نیافته را مجدداً توزیع می کند، همانطور که در نمودار زیر نشان داده شده است. در اینجا "P" یک کپی خرده اصلی را نشان می دهد، در حالی که "R" یک کپی خرده ماکت را نشان می دهد.

این رفتار دامنه را می توان در دو بخش توضیح داد - در هنگام شکست و در هنگام بازیابی.

در طول شکست

دامنه ای که در چندین منطقه دسترس پذیری مستقر شده است می تواند در طول چرخه عمر خود با انواع مختلفی از خرابی ها مواجه شود.

شکست منطقه کامل

یک خوشه ممکن است یک منطقه در دسترس را به دلایل مختلف و همچنین تمام گره های موجود در آن منطقه را از دست بدهد. امروز، این سرویس سعی می کند گره های از دست رفته را در مناطق سالم باقی مانده در دسترس قرار دهد. این سرویس همچنین سعی می‌کند در حالی که قوانین تخصیص را دنبال می‌کند، خرده‌های گمشده را در گره‌های باقی‌مانده دوباره ایجاد کند. این می تواند منجر به برخی عواقب ناخواسته شود.

  • وقتی خرده‌های ناحیه آسیب‌دیده دوباره به مناطق سالم تخصیص داده می‌شوند، بازیابی خرده‌ها را آغاز می‌کنند که می‌تواند تاخیرها را افزایش دهد زیرا چرخه‌های CPU اضافی و پهنای باند شبکه مصرف می‌شود.
  • برای تنظیم n-AZ، n-copy، (n>1)، مناطق در دسترس n-1 باقی مانده با n ام کپی تخصیص داده می شود، که می تواند نامطلوب باشد، زیرا می تواند باعث ایجاد چولگی در توزیع خرده شود، که همچنین می تواند منجر به ترافیک نامتعادل در سراسر گره ها این گره ها می توانند بیش از حد بارگیری شوند و منجر به خرابی های بیشتر شوند.

شکست منطقه جزئی

در صورت شکست جزئی منطقه یا زمانی که دامنه فقط برخی از گره‌های موجود در منطقه دسترسی را از دست می‌دهد، سرویس جستجوی باز آمازون سعی می‌کند تا در سریع‌ترین زمان ممکن گره‌های شکست خورده را جایگزین کند. با این حال، در صورتی که جایگزینی گره‌ها بیش از حد طول بکشد، OpenSearch سعی می‌کند تکه‌های تخصیص‌نخورده آن ناحیه را به گره‌های باقی‌مانده در منطقه دسترس‌پذیری اختصاص دهد. اگر سرویس نتواند گره‌ها را در منطقه دسترسی تأثیرگذار جایگزین کند، ممکن است آنها را در منطقه دسترسی پیکربندی‌شده دیگر تخصیص دهد، که ممکن است توزیع خرده‌ها را هم در داخل و هم در منطقه تغییر دهد. این دوباره عواقب ناخواسته ای دارد.

  • اگر گره‌های دامنه فضای ذخیره‌سازی کافی برای قرار دادن خرده‌های اضافی نداشته باشند، دامنه را می‌توان مسدود کرد و بر عملکرد نمایه‌سازی تأثیر گذاشت.
  • به دلیل توزیع کج‌شدن خرده‌ها، دامنه ممکن است ترافیک ناهنجاری را در سراسر گره‌ها تجربه کند، که می‌تواند تأخیر یا زمان‌بندی عملیات خواندن و نوشتن را بیشتر افزایش دهد.

بهبود

امروزه، به منظور حفظ تعداد گره های مورد نظر دامنه، سرویس جستجوی باز آمازون، گره های داده را در مناطق سالم باقی مانده راه اندازی می کند، مشابه سناریوهای توضیح داده شده در بخش شکست بالا. به منظور اطمینان از توزیع مناسب گره در تمام مناطق در دسترس پس از چنین حادثه ای، مداخله دستی توسط AWS مورد نیاز بود.

چه چیزی تغییر می کند

برای بهبود مدیریت کلی خرابی و به حداقل رساندن تأثیر شکست بر سلامت و عملکرد دامنه، سرویس جستجوی باز آمازون تغییرات زیر را انجام می دهد:

  • آگاهی از منطقه اجباری: OpenSearch دارای یک پیکربندی تعادل بخشی از قبل به نام آگاهی اجباری است که برای تنظیم مناطق در دسترس بودن که خرده ها باید به آنها تخصیص داده شوند استفاده می شود. برای مثال، اگر یک ویژگی آگاهی به نام zone دارید و گره‌ها را در آن پیکربندی کنید zone1 و zone2، می توانید از آگاهی اجباری برای جلوگیری از تخصیص نسخه های مشابه در OpenSearch استفاده کنید اگر فقط یک منطقه در دسترس باشد:
cluster.routing.allocation.awareness.attributes: zone
cluster.routing.allocation.awareness.force.zone.values: zone1,zone2

با این پیکربندی مثال، اگر دو گره را با node.attr.zone مجموعه را به zone1 و یک نمایه با پنج خرده و یک ماکت ایجاد کنید، OpenSearch ایندکس را ایجاد می کند و پنج خرده اصلی را اختصاص می دهد اما هیچ کپی ندارد. کپی ها فقط یک بار به گره ها اختصاص داده می شوند node.attr.zone مجموعه را به zone2 در دسترس هستند.

سرویس جستجوی باز آمازون از پیکربندی آگاهی اجباری در دامنه‌های Multi-AZ استفاده می‌کند تا اطمینان حاصل کند که خرده‌ها فقط بر اساس قوانین آگاهی منطقه تخصیص داده می‌شوند. این امر از افزایش ناگهانی بار روی گره‌های مناطق در دسترس سالم جلوگیری می‌کند.

  • Load-Aware Shard Allocation: سرویس جستجوی باز آمازون فاکتورهایی مانند ظرفیت ارائه شده، ظرفیت واقعی و کل کپی های خرده را در نظر می گیرد تا بر اساس میانگین خرده های مورد انتظار در هر گره، اگر هر گره ای با خرده های بیشتری بارگیری شود. هنگامی که هر گره تعداد خرده ای را که فراتر از این حد است اختصاص داده باشد، از تخصیص خرده ها جلوگیری می کند.

توجه داشته باشید که هر غیر اختصاص داده شده است اصلی برای جلوگیری از از دست دادن اطلاعات قریب‌الوقوع، کپی همچنان در گره بارگذاری شده مجاز است.

به طور مشابه، برای رسیدگی به مشکل بازیابی دستی (همانطور که در بخش بازیابی در بالا توضیح داده شد)، سرویس جستجوی باز آمازون نیز تغییراتی را در مؤلفه مقیاس داخلی خود ایجاد می کند. با اعمال تغییرات جدیدتر، سرویس جستجوی باز آمازون گره‌ها را در مناطق در دسترس باقی‌مانده راه‌اندازی نمی‌کند، حتی زمانی که از سناریوی شکستی که قبلاً توضیح داده شد، عبور کند.

تجسم رفتار فعلی و جدید

به عنوان مثال، یک دامنه سرویس جستجوی باز آمازون با 3-AZ، 6 گره داده، 12 خرده اصلی و 24 قطعه مشابه پیکربندی شده است. دامنه در سراسر AZ-1، AZ-2، و AZ-3، با دو گره در هر یک از مناطق ارائه شده است.

تخصیص خرده فعلی:
تعداد کل خرده ها: 12 Primary + 24 Replica = 36 Shard
تعداد مناطق در دسترس: 3
تعداد خرده ها در هر منطقه (آگاهی منطقه درست است): 36/3 = 12
تعداد گره ها در هر منطقه در دسترس: 2
تعداد خرده ها در هر گره: 12/2 = 6

نمودار زیر یک نمایش بصری از راه اندازی دامنه ارائه می دهد. دایره ها تعداد خرده های تخصیص یافته به گره را نشان می دهند. سرویس جستجوی باز آمازون به ازای هر گره، شش قطعه را اختصاص خواهد داد.

در طول یک نارسایی جزئی منطقه، که در آن یک گره در AZ-3 از کار می افتد، گره شکست خورده به منطقه باقی مانده اختصاص داده می شود و خرده های موجود در منطقه بر اساس گره های موجود دوباره توزیع می شوند. پس از تغییراتی که در بالا توضیح داده شد، خوشه یک گره جدید ایجاد نمی کند یا پس از شکست گره، خرده ها را دوباره توزیع نمی کند.


در نمودار بالا، با از دست دادن یک گره در AZ-3، سرویس جستجوی باز آمازون سعی می کند ظرفیت جایگزین را در همان منطقه راه اندازی کند. با این حال، به دلیل برخی قطعی ها، منطقه ممکن است آسیب ببیند و جایگزینی را راه اندازی نکند. در چنین رویدادی، سرویس تلاش می‌کند تا ظرفیت کسری را در منطقه سالم دیگری راه‌اندازی کند، که ممکن است منجر به عدم تعادل منطقه در مناطق در دسترس شود. خرده‌های ناحیه آسیب‌دیده روی گره باقی‌مانده در همان ناحیه پر می‌شوند. با این حال، با رفتار جدید، این سرویس تلاش خواهد کرد تا ظرفیت پرتاب را در همان منطقه انجام دهد، اما از راه اندازی ظرفیت کسری در مناطق دیگر برای جلوگیری از عدم تعادل جلوگیری می کند. تخصیص دهنده خرده نیز اطمینان حاصل می کند که گره های باقی مانده بیش از حد بارگذاری نمی شوند.


به طور مشابه، در صورتی که تمام گره‌ها در AZ-3 از بین بروند، یا AZ-3 دچار اختلال شود، سرویس جستجوی باز آمازون گره‌های از دست رفته را در منطقه دسترسی باقی‌مانده نمایش می‌دهد و همچنین خرده‌ها را روی گره‌ها توزیع مجدد می‌کند. با این حال، پس از تغییرات جدید، سرویس جستجوی باز آمازون نه گره‌ها را به منطقه باقی‌مانده اختصاص می‌دهد و نه تلاش می‌کند تا خرده‌های گمشده را دوباره به منطقه باقی‌مانده تخصیص دهد. Amazon OpenSearch Service منتظر می ماند تا Recovery اتفاق بیفتد و دامنه پس از بازیابی به پیکربندی اصلی بازگردد.

اگر دامنه شما دارای ظرفیت کافی برای مقاومت در برابر از دست دادن یک منطقه در دسترس نیست، ممکن است با کاهش توان عملیاتی دامنه خود مواجه شوید. بنابراین اکیداً توصیه می‌شود که بهترین روش‌ها را در حین اندازه‌گیری دامنه خود دنبال کنید، که به این معنی است که منابع کافی برای مقاومت در برابر از دست دادن یک نارسایی منطقه دسترسی داشته باشید.


در حال حاضر، پس از بازیابی دامنه، سرویس به مداخله دستی برای متعادل کردن ظرفیت در مناطق در دسترس نیاز دارد، که شامل حرکات خرد نیز می شود. با این حال، با رفتار جدید، در طول فرآیند بازیابی نیازی به مداخله نیست زیرا ظرفیت در ناحیه آسیب دیده برمی‌گردد و خرده‌ها نیز به طور خودکار به گره‌های بازیابی شده تخصیص می‌یابند. این تضمین می کند که هیچ اولویت رقابتی در مورد منابع باقی مانده وجود ندارد.

چه شما می توانید انتظار

پس از اینکه دامنه سرویس جستجوی باز آمازون خود را به آخرین نسخه نرم افزار سرویس، دامنه هایی که بوده اند، به روز کردید با بهترین شیوه ها پیکربندی شده است حتی پس از از دست دادن یک یا چند گره داده در یک منطقه دسترسی، عملکرد قابل پیش بینی بیشتری خواهد داشت. موارد تخصیص بیش از حد خرده در یک گره کاهش خواهد یافت. فراهم کردن ظرفیت کافی برای تحمل شکست یک منطقه یک روش خوب است

ممکن است در مواقعی شاهد زرد شدن یک دامنه در طول چنین خرابی‌های غیرمنتظره‌ای باشید، زیرا ما تکه‌های کپی را به گره‌های بارگذاری شده اختصاص نمی‌دهیم. با این حال، این بدان معنا نیست که داده ها در یک دامنه به خوبی پیکربندی شده از دست خواهند رفت. ما همچنان مطمئن خواهیم شد که تمام دوره های مقدماتی در طول قطعی ها تعیین می شوند. یک بازیابی خودکار در محل وجود دارد، که مراقب تعادل گره‌ها در دامنه و اطمینان از تخصیص کپی‌ها پس از بازیابی شکست است.

نرم افزار خدمات دامنه سرویس جستجوی باز آمازون خود را به روز کنید تا این تغییرات جدید در دامنه شما اعمال شود. جزئیات بیشتر در مورد فرآیند به‌روزرسانی نرم‌افزار خدمات در این قسمت موجود است اسناد سرویس جستجوی باز آمازون.

نتیجه

در این پست دیدیم که چگونه سرویس جستجوی باز آمازون اخیراً منطق توزیع گره‌ها و خرده‌ها را در مناطق دسترسی در طول قطع‌های منطقه‌ای بهبود داده است.

این تغییر به سرویس کمک می‌کند تا عملکرد سازگارتر و قابل پیش‌بینی‌تری را در هنگام خرابی‌های گره یا ناحیه‌ای تضمین کند. دامنه‌ها در طول پردازش نوشتن و خواندن، هیچ تأخیر یا بلوک نوشتن افزایش‌یافته‌ای را مشاهده نمی‌کنند، که در برخی مواقع به دلیل تخصیص بیش از حد خرده‌ها روی گره‌ها، زودتر ظاهر می‌شدند.


درباره نویسندگان

بوختوارخان یک مهندس نرم افزار ارشد است که در سرویس جستجوی باز آمازون کار می کند. او به سیستم های توزیع شده و مستقل علاقه مند است. او یک مشارکت کننده فعال در OpenSearch است.

انشو آگاروال یک مهندس نرم افزار ارشد است که روی AWS OpenSearch در خدمات وب آمازون کار می کند. او مشتاق حل مشکلات مربوط به ساخت سیستم های مقیاس پذیر و بسیار قابل اعتماد است.

شوریا دوتا بیسواس یک مهندس نرم افزار است که روی AWS OpenSearch در خدمات وب آمازون کار می کند. او مشتاق ساخت سیستم های توزیع شده بسیار انعطاف پذیر است.

ریشاب ناهاتا یک مهندس نرم افزار است که روی OpenSearch در خدمات وب آمازون کار می کند. او شیفته حل مشکلات در سیستم های توزیع شده است. او مشارکت کننده فعال OpenSearch است.

رانجیت راماچاندرا یک مدیر مهندسی است که روی سرویس جستجوی باز آمازون در خدمات وب آمازون کار می کند.

جان هندلر یک معمار ارشد راه حل است که در فن آوری های جستجوی AWS - Amazon CloudSearch و Amazon OpenSearch Service تخصص دارد. او که در Palo Alto مستقر است، به طیف وسیعی از مشتریان کمک می کند تا حجم کار تجزیه و تحلیل جستجو و گزارش خود را به درستی اجرا کنند و به خوبی کار کنند.

تمبر زمان:

بیشتر از داده های بزرگ AWS