ผลกระทบของความล้มเหลวของโครงสร้างพื้นฐานใน Shard ใน Amazon OpenSearch Service

ผลกระทบของความล้มเหลวของโครงสร้างพื้นฐานใน Shard ใน Amazon OpenSearch Service

โหนดต้นทาง: 1783553

บริการ Amazon OpenSearch เป็นบริการที่มีการจัดการซึ่งทำให้ง่ายต่อการรักษาความปลอดภัย ปรับใช้ และดำเนินการ OpenSearch และคลัสเตอร์ Elasticsearch เดิมตามขนาดใน AWS Cloud Amazon OpenSearch Service จัดเตรียมทรัพยากรทั้งหมดสำหรับคลัสเตอร์ของคุณ เปิดใช้งาน และตรวจจับและแทนที่โหนดที่ล้มเหลวโดยอัตโนมัติ ช่วยลดค่าใช้จ่ายของโครงสร้างพื้นฐานที่จัดการด้วยตนเอง บริการนี้ช่วยให้คุณดำเนินการวิเคราะห์บันทึกแบบโต้ตอบ การตรวจสอบแอปพลิเคชันตามเวลาจริง การค้นหาเว็บไซต์ และอื่นๆ ได้ง่ายโดยนำเสนอ OpenSearch เวอร์ชันล่าสุด รองรับ Elasticsearch 19 เวอร์ชัน (เวอร์ชัน 1.5 ถึง 7.10) และความสามารถในการแสดงภาพที่ขับเคลื่อนโดย OpenSearch Dashboards และ Kibana (เวอร์ชัน 1.5 ถึง 7.10)

ในซอฟต์แวร์บริการรุ่นล่าสุด เราได้อัปเดตตรรกะการจัดสรรชาร์ดเป็น load-aware เพื่อที่ว่าเมื่อชาร์ดถูกแจกจ่ายใหม่ในกรณีที่โหนดล้มเหลว บริการจะไม่อนุญาตให้โหนดที่รอดจากการโอเวอร์โหลดโดยชาร์ดที่โฮสต์บนโหนดที่ล้มเหลวก่อนหน้านี้ นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับโดเมนหลาย AZ เพื่อให้ประสิทธิภาพของคลัสเตอร์สอดคล้องและคาดการณ์ได้

หากคุณต้องการพื้นหลังเพิ่มเติมเกี่ยวกับตรรกะการจัดสรรเศษส่วนโดยทั่วไป โปรดดู ทำให้การจัดสรรชิ้นส่วนของ Elasticsearch ชัดเจนขึ้น.

ความท้าทาย

โดเมน Amazon OpenSearch Service ได้รับการกล่าวขานว่า "สมดุล" เมื่อจำนวนโหนดมีการกระจายเท่าๆ กันทั่วทั้ง Availability Zone ที่กำหนดค่าไว้ และจำนวนชาร์ดทั้งหมดจะกระจายเท่าๆ กันในโหนดที่มีอยู่ทั้งหมดโดยไม่มีการกระจุกตัวของชาร์ดของดัชนีใดดัชนีหนึ่ง โหนด นอกจากนี้ OpenSearch ยังมีคุณสมบัติที่เรียกว่า “Zone Awareness” ซึ่งเมื่อเปิดใช้งาน จะทำให้แน่ใจว่าชาร์ดหลักและแบบจำลองที่สอดคล้องกันได้รับการจัดสรรใน Availability Zone ต่างๆ หากคุณมีสำเนาข้อมูลมากกว่าหนึ่งชุด การมี Availability Zone หลายโซนจะช่วยให้ยอมรับข้อผิดพลาดและความพร้อมใช้งานได้ดีขึ้น ในกรณีที่โดเมนถูกลดขนาดหรือขยายขนาดในหรือระหว่างความล้มเหลวของโหนด OpenSearch จะกระจายเศษใหม่โดยอัตโนมัติระหว่างโหนดที่มีอยู่ในขณะที่ปฏิบัติตามกฎการจัดสรรตามการรับรู้โซน

ในขณะที่กระบวนการปรับสมดุลของชาร์ดทำให้มั่นใจได้ว่าชาร์ดจะกระจายอย่างสม่ำเสมอทั่วทั้ง Availability Zone ในบางกรณี หากเกิดความล้มเหลวที่ไม่คาดคิดในโซนเดียว ชาร์ดจะถูกจัดสรรใหม่ไปยังโหนดที่รอด ซึ่งอาจส่งผลให้โหนดที่รอดตายล่ม ส่งผลต่อความเสถียรของคลัสเตอร์

ตัวอย่างเช่น หากโหนดหนึ่งในคลัสเตอร์สามโหนดหยุดทำงาน OpenSearch จะแจกจ่ายชาร์ดที่ไม่ได้กำหนดใหม่ ดังแสดงในแผนภาพต่อไปนี้ ในที่นี้ "P" แทนสำเนาสำรองหลัก ในขณะที่ "R" แทนสำเนาสำรอง

พฤติกรรมของโดเมนนี้สามารถอธิบายได้ในสองส่วน – ระหว่างความล้มเหลวและระหว่างการกู้คืน

ระหว่างความล้มเหลว

โดเมนที่ใช้งานใน Availability Zone หลายแห่งอาจประสบกับความล้มเหลวหลายประเภทในระหว่างวงจรการใช้งาน

ความล้มเหลวของโซนที่สมบูรณ์

คลัสเตอร์อาจสูญเสีย Availability Zone เดียวเนื่องจากสาเหตุหลายประการ รวมถึงโหนดทั้งหมดในโซนนั้นด้วย วันนี้ บริการพยายามวางโหนดที่หายไปใน Availability Zone ที่สมบูรณ์ที่เหลืออยู่ บริการยังพยายามสร้างชาร์ดที่หายไปใหม่ในโหนดที่เหลือในขณะที่ยังคงปฏิบัติตามกฎการจัดสรร ซึ่งอาจส่งผลให้เกิดผลที่ตามมาโดยไม่ได้ตั้งใจ

  • เมื่อชาร์ดของโซนที่ได้รับผลกระทบถูกจัดสรรใหม่ไปยังโซนที่เหมาะสม พวกมันจะเปิดใช้การกู้คืนชาร์ดที่สามารถเพิ่มเวลาแฝงได้เนื่องจากใช้วงจร CPU และแบนด์วิธเครือข่ายเพิ่มเติม
  • สำหรับการตั้งค่า n-AZ, n-copy (n>1) โซนความพร้อมใช้งาน n-1 ที่เหลือจะได้รับการจัดสรรด้วยสำเนาที่ n ซึ่งอาจเป็นสิ่งที่ไม่พึงปรารถนาเนื่องจากอาจทำให้เกิดความเบ้ในการกระจายชิ้นส่วน ซึ่งอาจส่งผลให้ การรับส่งข้อมูลที่ไม่สมดุลข้ามโหนด โหนดเหล่านี้อาจได้รับการโอเวอร์โหลด ซึ่งนำไปสู่ความล้มเหลวเพิ่มเติม

โซนบางส่วนล้มเหลว

ในกรณีที่โซนบางส่วนล้มเหลวหรือเมื่อโดเมนสูญเสียโหนดเพียงบางส่วนใน Availability Zone Amazon OpenSearch Service จะพยายามแทนที่โหนดที่ล้มเหลวโดยเร็วที่สุด อย่างไรก็ตาม ในกรณีที่ใช้เวลานานเกินไปในการแทนที่โหนด OpenSearch จะพยายามจัดสรรเศษส่วนที่ไม่ได้กำหนดของโซนนั้นไปยังโหนดที่ยังมีชีวิตรอดใน Availability Zone หากบริการไม่สามารถแทนที่โหนดใน Availability Zone ที่ได้รับผลกระทบ บริการอาจจัดสรรโหนดใน Availability Zone อื่นที่กำหนดค่าไว้ ซึ่งอาจทำให้การกระจายเศษข้อมูลคลาดเคลื่อนไปทั้งภายในโซนและภายในโซน สิ่งนี้มีผลที่ไม่ได้ตั้งใจอีกครั้ง

  • หากโหนดบนโดเมนมีพื้นที่เก็บข้อมูลไม่เพียงพอเพื่อรองรับชาร์ดเพิ่มเติม โดเมนนั้นอาจถูกบล็อกการเขียน ซึ่งส่งผลต่อการดำเนินการจัดทำดัชนี
  • เนื่องจากการกระจายชิ้นส่วนที่เบ้ โดเมนยังอาจพบการรับส่งข้อมูลที่เบ้ข้ามโหนด ซึ่งสามารถเพิ่มเวลาแฝงหรือหมดเวลาสำหรับการดำเนินการอ่านและเขียน

การฟื้นตัว

วันนี้ เพื่อรักษาจำนวนโหนดที่ต้องการของโดเมน Amazon OpenSearch Service เปิดใช้งานโหนดข้อมูลใน Availability Zone ที่สมบูรณ์ที่เหลืออยู่ ซึ่งคล้ายกับสถานการณ์ที่อธิบายไว้ในส่วนความล้มเหลวด้านบน เพื่อให้แน่ใจว่ามีการกระจายโหนดอย่างเหมาะสมทั่วทั้ง Availability Zone หลังจากเหตุการณ์ดังกล่าว AWS จำเป็นต้องดำเนินการด้วยตนเอง

มีอะไรเปลี่ยนแปลง

เพื่อปรับปรุงการจัดการความล้มเหลวโดยรวมและลดผลกระทบของความล้มเหลวที่มีต่อความสมบูรณ์และประสิทธิภาพของโดเมน Amazon OpenSearch Service กำลังทำการเปลี่ยนแปลงต่อไปนี้:

  • การรับรู้โซนบังคับ: OpenSearch มีการกำหนดค่าการปรับสมดุลชาร์ดที่มีอยู่ก่อนซึ่งเรียกว่าการรับรู้ที่ถูกบังคับซึ่งใช้เพื่อตั้งค่า Availability Zones ที่จำเป็นต้องจัดสรรชาร์ด ตัวอย่างเช่น หากคุณมีแอตทริบิวต์การรับรู้ที่เรียกว่าโซน และกำหนดค่าโหนดใน 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 มี

Amazon OpenSearch Service จะใช้การกำหนดค่าการรับรู้แบบบังคับบนโดเมนหลาย AZ เพื่อให้แน่ใจว่าเศษชิ้นส่วนจะได้รับการจัดสรรตามกฎของการรับรู้โซนเท่านั้น วิธีนี้จะป้องกันไม่ให้โหลดเพิ่มขึ้นอย่างกะทันหันบนโหนดของ Availability Zone ที่ปกติ

  • การจัดสรรส่วนแบ่งการรับรู้การโหลด: Amazon OpenSearch Service จะพิจารณาปัจจัยต่างๆ เช่น ความจุที่เตรียมใช้งาน ความจุจริง และสำเนาชาร์ดทั้งหมด เพื่อคำนวณว่าโหนดใดๆ มีชาร์ดมากเกินไปหรือไม่ โดยอิงจากชาร์ดเฉลี่ยที่คาดไว้ต่อโหนด ซึ่งจะป้องกันการมอบหมายชาร์ดเมื่อโหนดใดๆ ได้จัดสรรจำนวนชาร์ดที่เกินขีดจำกัดนี้

หมายเหตุ ที่ยังไม่ได้มอบหมาย ประถม การคัดลอกจะยังคงได้รับอนุญาตบนโหนดที่โอเวอร์โหลดเพื่อป้องกันคลัสเตอร์จากการสูญหายของข้อมูลที่ใกล้เข้ามา

ในทำนองเดียวกัน เพื่อแก้ไขปัญหาการกู้คืนด้วยตนเอง (ตามที่อธิบายไว้ในส่วนการกู้คืนด้านบน) Amazon OpenSearch Service ก็ทำการเปลี่ยนแปลงส่วนประกอบการปรับขนาดภายในด้วยเช่นกัน ด้วยการเปลี่ยนแปลงใหม่ Amazon OpenSearch Service จะไม่เปิดใช้งานโหนดใน Availability Zone ที่เหลือแม้ว่าจะผ่านสถานการณ์ความล้มเหลวที่อธิบายไว้ก่อนหน้านี้ก็ตาม

การแสดงภาพพฤติกรรมปัจจุบันและใหม่

ตัวอย่างเช่น โดเมน Amazon OpenSearch Service ได้รับการกำหนดค่าด้วย 3-AZ, 6 โหนดข้อมูล, ชาร์ดหลัก 12 ชาร์ด และชาร์ดจำลอง 24 ชาร์ด โดเมนได้รับการจัดเตรียมทั่วทั้ง AZ-1, AZ-2 และ AZ-3 โดยมีสองโหนดในแต่ละโซน

การจัดสรรชิ้นส่วนปัจจุบัน:
จำนวนเศษทั้งหมด: 12 ชิ้นหลัก + แบบจำลอง 24 ชิ้น = 36 ชิ้น
จำนวนโซนความพร้อมใช้งาน: 3
จำนวนเศษต่อโซน (การรับรู้โซนเป็นจริง): 36/3 = 12
จำนวนโหนดต่อ Availability Zone: 2
จำนวนชาร์ดต่อโหนด: 12/2 = 6

ไดอะแกรมต่อไปนี้แสดงภาพการตั้งค่าโดเมน วงกลมแสดงจำนวนเศษที่จัดสรรให้กับโหนด Amazon OpenSearch Service จะจัดสรรหกชาร์ดต่อโหนด

ระหว่างโซนบางส่วนล้มเหลว โดยที่โหนดหนึ่งใน AZ-3 ล้มเหลว โหนดที่ล้มเหลวจะถูกกำหนดให้กับโซนที่เหลือ และชิ้นส่วนในโซนจะถูกแจกจ่ายใหม่ตามโหนดที่มีอยู่ หลังจากการเปลี่ยนแปลงที่อธิบายไว้ข้างต้น คลัสเตอร์จะไม่สร้างโหนดใหม่หรือแจกจ่ายชิ้นส่วนอีกครั้งหลังจากความล้มเหลวของโหนด


ในแผนภาพด้านบน เมื่อสูญเสียโหนดหนึ่งโหนดใน AZ-3 แล้ว Amazon OpenSearch Service จะพยายามเปิดใช้ความจุทดแทนในโซนเดียวกัน อย่างไรก็ตาม เนื่องจากการหยุดทำงานบางส่วน โซนอาจบกพร่องและไม่สามารถเปิดใช้งานการทดแทนได้ ในกรณีดังกล่าว บริการจะพยายามเปิดใช้ความจุขาดดุลในโซนปกติอื่น ซึ่งอาจนำไปสู่ความไม่สมดุลของโซนทั่วทั้ง Availability Zone ชิ้นส่วนในโซนที่ได้รับผลกระทบจะถูกยัดลงบนโหนดที่รอดตายในโซนเดียวกัน อย่างไรก็ตาม ด้วยลักษณะการทำงานใหม่ บริการจะพยายามเปิดใช้ความจุในโซนเดียวกัน แต่จะหลีกเลี่ยงการเปิดใช้ความจุขาดดุลในโซนอื่นเพื่อหลีกเลี่ยงความไม่สมดุล ตัวจัดสรรเศษจะตรวจสอบให้แน่ใจว่าโหนดที่รอดตายจะไม่ได้รับการโหลดมากเกินไป


ในทำนองเดียวกัน ในกรณีที่โหนดทั้งหมดใน AZ-3 สูญหาย หรือ AZ-3 บกพร่อง Amazon OpenSearch Service จะนำโหนดที่สูญหายนั้นขึ้นมาใน Availability Zone ที่เหลือ และกระจายชิ้นส่วนบนโหนดอีกครั้ง อย่างไรก็ตาม หลังจากการเปลี่ยนแปลงใหม่ Amazon OpenSearch Service จะไม่จัดสรรโหนดไปยังโซนที่เหลือ หรือจะพยายามจัดสรรชิ้นส่วนที่สูญหายไปยังโซนที่เหลืออีกครั้ง Amazon OpenSearch Service จะรอให้การกู้คืนเกิดขึ้นและเพื่อให้โดเมนกลับสู่การกำหนดค่าเดิมหลังจากการกู้คืน

หากโดเมนของคุณไม่ได้รับการจัดเตรียมให้มีความจุเพียงพอที่จะรองรับการสูญเสีย Availability Zone คุณอาจพบว่าปริมาณงานลดลงสำหรับโดเมนของคุณ ดังนั้นจึงแนะนำอย่างยิ่งให้ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดในขณะที่ปรับขนาดโดเมนของคุณ ซึ่งหมายความว่ามีทรัพยากรเพียงพอในการรองรับการสูญเสียจากความล้มเหลวของ Availability Zone เดียว


ในปัจจุบัน เมื่อโดเมนกู้คืนได้ บริการต้องการการแทรกแซงด้วยตนเองเพื่อสร้างสมดุลของความจุทั่วทั้ง Availability Zone ซึ่งเกี่ยวข้องกับการเคลื่อนย้ายชิ้นส่วนด้วย อย่างไรก็ตาม ด้วยลักษณะการทำงานใหม่ ไม่จำเป็นต้องมีการแทรกแซงในระหว่างกระบวนการกู้คืน เนื่องจากการส่งคืนความจุในโซนที่ได้รับผลกระทบ และเศษจะถูกจัดสรรโดยอัตโนมัติไปยังโหนดที่กู้คืน สิ่งนี้ทำให้มั่นใจได้ว่าไม่มีลำดับความสำคัญที่แข่งขันกันในทรัพยากรที่เหลืออยู่

สิ่งที่คุณสามารถคาดหวัง

หลังจากที่คุณอัปเดตโดเมน Amazon OpenSearch Service เป็นซอฟต์แวร์บริการรุ่นล่าสุดแล้ว โดเมนที่ได้รับ กำหนดค่าด้วยแนวทางปฏิบัติที่ดีที่สุด จะมีประสิทธิภาพที่คาดเดาได้มากขึ้นแม้ว่าจะสูญเสียโหนดข้อมูลหนึ่งหรือหลายโหนดใน Availability Zone จะมีกรณีของการจัดสรรเศษเกินในโหนดที่ลดลง เป็นแนวปฏิบัติที่ดีในการจัดหาความจุที่เพียงพอเพื่อให้สามารถทนต่อความล้มเหลวของโซนเดียวได้

บางครั้งคุณอาจเห็นโดเมนเปลี่ยนเป็นสีเหลืองระหว่างความล้มเหลวที่ไม่คาดคิด เนื่องจากเราจะไม่กำหนดเศษส่วนจำลองให้กับโหนดที่โอเวอร์โหลด อย่างไรก็ตาม ไม่ได้หมายความว่าข้อมูลในโดเมนที่กำหนดค่าไว้อย่างดีจะสูญหาย เราจะยังคงตรวจสอบให้แน่ใจว่าได้กำหนดหลักทั้งหมดในระหว่างที่ไฟดับ มีการกู้คืนอัตโนมัติซึ่งจะดูแลสมดุลของโหนดในโดเมนและตรวจสอบให้แน่ใจว่ามีการมอบหมายแบบจำลองเมื่อเกิดความล้มเหลวในการกู้คืน

อัปเดตซอฟต์แวร์บริการของโดเมน Amazon OpenSearch Service เพื่อรับการเปลี่ยนแปลงใหม่เหล่านี้ใช้กับโดเมนของคุณ รายละเอียดเพิ่มเติมเกี่ยวกับกระบวนการอัปเดตซอฟต์แวร์บริการอยู่ใน เอกสารประกอบของ Amazon OpenSearch Service.

สรุป

ในโพสต์นี้ เราเห็นว่า Amazon OpenSearch Service เพิ่งปรับปรุงตรรกะเพื่อกระจายโหนดและชาร์ดข้าม Availability Zone ได้อย่างไรในช่วงที่โซนหยุดทำงาน

การเปลี่ยนแปลงนี้จะช่วยให้บริการมั่นใจได้ถึงประสิทธิภาพที่สม่ำเสมอและคาดการณ์ได้มากขึ้นระหว่างความล้มเหลวของโหนดหรือโซน โดเมนจะไม่เห็นเวลาแฝงที่เพิ่มขึ้นหรือบล็อกการเขียนระหว่างการประมวลผลการเขียนและการอ่าน ซึ่งเคยปรากฏก่อนหน้านี้ในบางครั้งเนื่องจากการจัดสรรชิ้นส่วนบนโหนดมากเกินไป


เกี่ยวกับผู้แต่ง

บุคตาวาร์ ข่าน เป็นวิศวกรซอฟต์แวร์อาวุโสที่ทำงานเกี่ยวกับ Amazon OpenSearch Service เขาสนใจในระบบกระจายและอิสระ เขาเป็นผู้มีส่วนร่วมอย่างแข็งขันใน OpenSearch

อันชู อากาวาล เป็นวิศวกรซอฟต์แวร์อาวุโสที่ทำงานเกี่ยวกับ AWS OpenSearch ที่ Amazon Web Services เธอมีความกระตือรือร้นในการแก้ปัญหาที่เกี่ยวข้องกับการสร้างระบบที่ปรับขนาดได้และมีความน่าเชื่อถือสูง

โสรยา ดุตตะ บิสวาส เป็นวิศวกรซอฟต์แวร์ที่ทำงานเกี่ยวกับ AWS OpenSearch ที่ Amazon Web Services เขาหลงใหลเกี่ยวกับการสร้างระบบกระจายที่มีความยืดหยุ่นสูง

ริชาบ นะหะตะ เป็นวิศวกรซอฟต์แวร์ที่ทำงานเกี่ยวกับ OpenSearch ที่ Amazon Web Services เขาสนใจเกี่ยวกับการแก้ปัญหาในระบบกระจาย เขาเป็นผู้มีส่วนร่วมอย่างแข็งขันใน OpenSearch

รันจิธ รามจันทรา เป็นผู้จัดการฝ่ายวิศวกรรมที่ทำงานเกี่ยวกับ Amazon OpenSearch Service ที่ Amazon Web Services

จอน แฮนด์เลอร์ เป็นสถาปนิกด้านโซลูชันหลักอาวุโส ซึ่งเชี่ยวชาญด้านเทคโนโลยีการค้นหา AWS – Amazon CloudSearch และ Amazon OpenSearch Service เขาประจำอยู่ที่ Palo Alto ช่วยให้ลูกค้าหลากหลายกลุ่มได้รับภาระงานการวิเคราะห์การค้นหาและบันทึกที่ปรับใช้อย่างถูกต้องและทำงานได้ดี

ประทับเวลา:

เพิ่มเติมจาก AWS ข้อมูลขนาดใหญ่