Edge for Private Cloud v. 4.17.01
ชุดของ ZooKeeper ได้รับการออกแบบมาให้ยังคงใช้งานได้โดยไม่สูญเสียข้อมูลแต่อย่างใด แม้ว่าจะมีโหนด ZooKeeper อย่างน้อย 1 โหนดสูญหายก็ตาม ความยืดหยุ่นนี้สามารถใช้ได้อย่างมีประสิทธิภาพเพื่อดำเนินการบำรุงรักษาโหนด ZooKeeper โดยที่ระบบไม่หยุดทำงาน
เกี่ยวกับ ZooKeeper และ Edge
ใน Edge นอต ZooKeeper มีข้อมูลการกําหนดค่าเกี่ยวกับตําแหน่งและการกำหนดค่าของคอมโพเนนต์ Edge ต่างๆ และแจ้งให้คอมโพเนนต์ต่างๆ ทราบถึงการเปลี่ยนแปลงการกําหนดค่า โทโพโลยี Edge ที่รองรับทั้งหมดสำหรับระบบที่ใช้งานจริงระบุให้ใช้โหนด ZooKeeper อย่างน้อย 3 โหนด
ใช้พร็อพเพอร์ตี้ ZK_HOSTS และ ZK_CLIENT_HOSTS ในไฟล์การกําหนดค่า Edge เพื่อระบุโหนด ZooKeeper เช่น
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
where:
- ZK_HOSTS - ระบุที่อยู่ IP ของโหนด ZooKeeper ที่อยู่ IP ต้องแสดงตามลําดับเดียวกันในโหนด ZooKeeper ทั้งหมด
ในสภาพแวดล้อมที่มีศูนย์ข้อมูลหลายแห่ง ให้แสดงรายการโหนด ZooKeeper ทั้งหมดจากศูนย์ข้อมูลทั้งหมด - ZK_CLIENT_HOSTS -
ระบุที่อยู่ IP ของโหนด ZooKeeper ที่ใช้โดยศูนย์ข้อมูลนี้เท่านั้น ที่อยู่ IP ต้องอยู่ในลำดับเดียวกันบนโหนด ZooKeeper ทั้งหมดในศูนย์ข้อมูล
ในการติดตั้งศูนย์ข้อมูลเดียว โหนดเหล่านี้จะเป็นโหนดเดียวกับที่ ZK_HOSTS ระบุ ในสภาพแวดล้อมของศูนย์ข้อมูลหลายแห่ง ไฟล์การกำหนดค่า Edge สำหรับแต่ละศูนย์ข้อมูลควรแสดงเฉพาะโหนด ZooKeeper สำหรับศูนย์ข้อมูลนั้นๆ
โดยค่าเริ่มต้น โหนด ZooKeeper ทั้งหมดจะถูกกำหนดเป็นโหนด voter ซึ่งหมายความว่าโหนดทั้งหมดจะเข้าร่วมในการเลือกตั้งผู้นำ ZooKeeper คุณสามารถใส่ตัวแก้ไข ZK_HOSTS ร่วมกับ observer เพื่อระบุว่าโน้ตเป็นโหนด observer ไม่ใช่โหนดที่โหวต โหนดผู้สังเกตการณ์ไม่ได้มีส่วนร่วมในการเลือกตั้งผู้นำ
โดยปกติแล้ว คุณจะต้องระบุตัวแก้ไข ":observer" เมื่อสร้างศูนย์ข้อมูล Edge หลายแห่ง หรือเมื่อศูนย์ข้อมูลแห่งเดียวมีโหนด ZooKeeper จํานวนมาก ตัวอย่างเช่น ในการติดตั้ง Edge 12 โฮสต์ที่มีศูนย์ข้อมูล 2 แห่ง ZooKeeper บนโหนด 9 ใน Data Center 2 คือผู้สังเกตการณ์ดังนี้
จากนั้นใช้การตั้งค่าต่อไปนี้ในไฟล์การกําหนดค่าสําหรับศูนย์ข้อมูล 1
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
และสำหรับศูนย์ข้อมูล
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
เกี่ยวกับผู้นำ ผู้ติดตาม ผู้ลงคะแนนเสียง และผู้สังเกตการณ์
ในการติดตั้ง ZooKeeper แบบหลายโหนด โหนดใดโหนดหนึ่งจะได้รับการกำหนดเป็นผู้นำ โหนด ZooKeeper อื่นๆ ทั้งหมดจะถูกกำหนดเป็นผู้ติดตาม แม้ว่าการอ่านจะมาจากโหนด ZooKeeper ใดก็ได้ แต่ระบบจะส่งต่อคำขอเขียนทั้งหมดไปยังโหนดหลัก เช่น เพิ่ม Message Processor ใหม่ลงใน Edge ระบบจะเขียนข้อมูลดังกล่าวลงใน ZooKeeper หลัก จากนั้นผู้ติดตามทั้งหมด จะจำลองข้อมูล
คุณจะกำหนดโหนด ZooKeeper แต่ละโหนดเป็นผู้ลงคะแนนเสียงหรือผู้สังเกตการณ์ได้เมื่อติดตั้ง Edge จากนั้นโหนด ZooKeeper ทั้งหมดที่มีสิทธิ์โหวตจะเลือกผู้นำ ข้อกำหนดข้อหนึ่งสำหรับการเลือกตั้งผู้นำคือ ต้องมีโถงผู้มีสิทธิเลือกตั้งของ ZooKeeper ที่ใช้งานได้ มติเป็นเอกฉันท์หมายความว่าโหนด ZooKeeper ทั้งหมดที่เป็นผู้ลงคะแนนเสียงในศูนย์ข้อมูลทั้งหมดทํางานได้มากกว่าครึ่ง
หากไม่มีโหนดผู้ลงคะแนนเสียงครบองค์ประชุม จะไม่มีการเลือกผู้นำได้ ในสถานการณ์สมมตินี้ ผู้ให้บริการ Zookeeper จะให้บริการคำขอไม่ได้ ซึ่งหมายความว่าคุณจะส่งคำขอไปยังเซิร์ฟเวอร์การจัดการ Edge, ประมวลผลคำขอ Management API หรือเข้าสู่ระบบ UI ของ Edge ไม่ได้จนกว่าจะมีจํานวนสมาชิกครบกำหนด
ตัวอย่างเช่น ในการติดตั้งศูนย์ข้อมูลแห่งเดียว
- คุณติดตั้งโหนด ZooKeeper 3 โหนด
- โฮสต์ ZooKeeper ทั้งหมดเป็นผู้โหวต
- ครบองค์ประชุมคือโหนดผู้มีสิทธิ์เลือกตั้งที่ใช้งานได้ 2 โหนด
- หากมีโหนดผู้ลงคะแนนเสียงเพียงโหนดเดียว หมู่ ZooKeeper จะใช้งานไม่ได้
ในการติดตั้งที่มีศูนย์ข้อมูล 2 แห่ง
- คุณติดตั้งโหนด ZooKeeper 3 โหนดต่อศูนย์ข้อมูล รวมเป็น 6 โหนด
- ศูนย์ข้อมูลที่ 1 มีโหนดผู้มีสิทธิ์เลือกตั้ง 3 จุด
- ศูนย์ข้อมูลที่ 2 มีโหนดผู้มีสิทธิ์เลือกตั้ง 2 โหนดและโหนดผู้สังเกตการณ์ 1 โหนด
- องค์ประชุมจะอิงตามผู้ลงคะแนนเสียง 5 คนจากทั้ง 2 ศูนย์ข้อมูล ดังนั้นจึงมีโหนดผู้ลงคะแนนเสียงที่ทำงานได้ 3 โหนด
- หากมีโหนดผู้ลงคะแนนเสียงเพียง 2 โหนดหรือน้อยกว่านั้น หมู่ ZooKeeper จะทํางานไม่ได้
การเพิ่มโหนดเป็นผู้ลงคะแนนเสียงหรือผู้สังเกตการณ์
ข้อกำหนดของระบบอาจกำหนดให้คุณเพิ่มโหนด ZooKeeper เพิ่มเติมลงในการติดตั้ง Edge เอกสารการเพิ่มโหนด ZooKeeper จะอธิบายถึงวิธีเพิ่มโหนด ZooKeeper เพิ่มเติมไปยัง Edge เมื่อเพิ่มโหนด ZooKeeper คุณต้องพิจารณาประเภทของโหนดที่จะเพิ่ม ได้แก่ ผู้มีสิทธิเลือกตั้งหรือผู้สังเกตการณ์
คุณต้องตรวจสอบว่ามีโหนดผู้มีสิทธิ์โหวตเพียงพอในกรณีที่โหนดผู้มีสิทธิ์โหวตอย่างน้อย 1 โหนดไม่ทำงาน เพื่อให้กลุ่ม ZooKeeper ยังคงทํางานได้ ซึ่งหมายความว่ายังมีโหนดผู้มีสิทธิ์โหวตครบจํานวน การเพิ่มโหนดผู้ลงคะแนนเสียงจะเพิ่มจํานวนผู้เข้าร่วมขั้นต่ำที่จำเป็น จึงสามารถรองรับโหนดผู้ลงคะแนนเสียงที่หยุดทำงานได้มากขึ้น
อย่างไรก็ตาม การเพิ่มโหนดผู้ลงคะแนนเสียงอาจส่งผลเสียต่อประสิทธิภาพการเขียน เนื่องจากการดำเนินการเขียนกำหนดให้มีจำนวนผู้เข้าร่วมครบกำหนดเพื่อตกลงเลือกผู้นำ เวลาที่ใช้ในการระบุผู้นำจะขึ้นอยู่กับจํานวนโหนดผู้ลงคะแนนเสียง ซึ่งจะเพิ่มขึ้นเมื่อคุณเพิ่มโหนดผู้ลงคะแนนเสียง ดังนั้น คุณจึงไม่ควรกำหนดให้โหนดทั้งหมดเป็นผู้โหวต
คุณเพิ่มโหนดผู้สังเกตการณ์แทนโหนดผู้ลงคะแนนเสียงได้ การเพิ่มโหนดผู้สังเกตการณ์จะเพิ่มประสิทธิภาพการอ่านของระบบโดยรวมโดยไม่เพิ่มค่าใช้จ่ายในการเลือกผู้นำ เนื่องจากโหนดผู้สังเกตการณ์จะไม่ลงคะแนนเสียงและจะไม่ส่งผลต่อจำนวนสมาชิกขั้นต่ำที่ต้องการ ดังนั้น หากโหนดผู้สังเกตการณ์ขัดข้อง ก็ไม่ส่งผลต่อความสามารถของกลุ่มที่จะเลือกผู้นำ อย่างไรก็ตาม การสูญเสียโหนดผู้สังเกตการณ์อาจทำให้ประสิทธิภาพการอ่านของกลุ่ม ZooKeeper ลดลงเนื่องจากมีโหนดที่พร้อมให้บริการคำขอข้อมูลน้อยลง
ในศูนย์ข้อมูลแห่งเดียว Apigee ขอแนะนำให้คุณมีผู้ลงคะแนนเสียงไม่เกิน 5 คน ไม่ว่าจำนวนโหนดผู้สังเกตการณ์จะมากน้อยเพียงใดก็ตาม ในศูนย์ข้อมูล 2 แห่ง Apigee จะแนะนำให้คุณไม่มีผู้มีสิทธิเลือกตั้งไม่เกิน 9 คน (5 คนในศูนย์ข้อมูล 1 แห่ง และอีก 4 คน) จากนั้นคุณจะเพิ่มโหนดสังเกตการณ์ได้มากเท่าที่ต้องการตามข้อกำหนดของระบบ
ข้อควรพิจารณาเกี่ยวกับการบำรุงรักษา
คุณสามารถดำเนินการบำรุงรักษา ZooKeeper ในคลัสเตอร์ที่ทำงานได้อย่างเต็มรูปแบบโดยไม่มีการหยุดทำงานได้หากดำเนินการกับโหนดเดียวในแต่ละครั้ง การตรวจสอบว่าโหนด ZooKeeper หยุดทำงานเพียงโหนดเดียวในแต่ละครั้งจะช่วยให้มั่นใจได้ว่าจะมีโหนดผู้มีสิทธิ์โหวตครบองค์ประชุมเสมอเพื่อเลือกผู้นำ
การบำรุงรักษาในศูนย์ข้อมูลหลายแห่ง
เมื่อทำงานกับศูนย์ข้อมูลหลายแห่ง โปรดทราบว่ากลุ่ม ZooKeeper จะไม่แยกความแตกต่างระหว่างศูนย์ข้อมูล แอสเซมบลี ZooKeeper จะดูโหนด ZooKeeper ทั้งหมดในศูนย์ข้อมูลทั้งหมดเป็นกลุ่มเดียวกัน
ตำแหน่งของโหนดผู้ลงคะแนนเสียงในศูนย์ข้อมูลหนึ่งๆ ไม่ได้เป็นปัจจัยเมื่อ ZooKeeper ทำการคํานวณจํานวนสมาชิกขั้นต่ำ แต่ละโหนดจะแยกย่อยในศูนย์ข้อมูลต่างๆ ได้ แต่ตราบใดที่ยังมีการเก็บรักษาองค์การทั้งกลุ่มไว้ ZooKeeper ก็จะยังคงใช้งานได้
ผลกระทบต่อการบำรุงรักษา
ในหลายๆ ช่วง คุณจะต้องปิดโหนด ZooKeeper เพื่อบำรุงรักษาโหนดของผู้มีสิทธิเลือกตั้งหรือโหนดผู้สังเกตการณ์ เช่น คุณอาจต้องอัปเกรดเวอร์ชันของ Edge ในโหนด คอมพิวเตอร์ที่โฮสต์ ZooKeeper อาจไม่ทำงาน หรือโหนดอาจใช้งานไม่ได้เนื่องจากสาเหตุอื่นๆ เช่น ข้อผิดพลาดเกี่ยวกับเครือข่าย
หากโหนดที่หยุดทำงานเป็นโหนดผู้สังเกตการณ์ ประสิทธิภาพของกลุ่ม ZooKeeper จะลดลงเล็กน้อยจนกว่าระบบจะกู้คืนโหนด หากโหนดเป็นโหนดที่โหวต ปัญหานี้อาจส่งผลต่อความมีชีวิตอยู่ของกลุ่ม ZooKeeper เนื่องจากสูญเสียโหนดที่เข้าร่วมกระบวนการเลือกตั้งผู้นำ ไม่ว่าสาเหตุที่โหวตเตอร์โหวตไม่สำเร็จจะมาจากอะไร คุณก็ควรรักษาจำนวนโหวตเตอร์ที่มีไว้ให้ครบองค์ประชุม
ขั้นตอนการบำรุงรักษา
คุณควรพิจารณาดำเนินการบำรุงรักษาหลังจากตรวจสอบแล้วว่ากลุ่ม ZooKeeper ทำงานได้ โดยสมมติว่าโหนดผู้สังเกตการณ์ใช้งานได้และมีโหนดของผู้มีสิทธิเลือกตั้งเพียงพอระหว่างการบำรุงรักษาเพื่อรักษาควอมไว้
เมื่อเป็นไปตามเงื่อนไขเหล่านี้ ชุดของ ZooKeeper ที่มีขนาดที่กำหนดเองสามารถทนต่อการสูญเสียโหนดเดียวได้ทุกเมื่อโดยไม่สูญเสียข้อมูลหรือผลกระทบที่สำคัญต่อประสิทธิภาพ ซึ่งหมายความว่าคุณจะบำรุงรักษาโหนดใดก็ได้ในคลัสเตอร์ ตราบใดที่ดำเนินการทีละโหนด
ในการบำรุงรักษา ให้ทำตามขั้นตอนต่อไปนี้เพื่อระบุประเภทของโหนด ZooKeeper (ผู้นำ ผู้ลงคะแนนเสียง หรือผู้สังเกตการณ์)
- หากยังไม่ได้ติดตั้งในโหนด ZooKeeper ให้ติดตั้ง nc
> sudo yum install nc - เรียกใช้คำสั่ง nc ต่อไปนี้บนโหนด
> echo stat | nc localhost 2181
โดยที่ 2181 คือพอร์ต ZooKeeper คุณควรเห็นเอาต์พุตในรูปแบบ
เวอร์ชัน Zookeeper: 3.4.5-1392090 สร้างขึ้นเมื่อวันที่ 30/09/2012 17:52 น.GMT
ไคลเอ็นต์: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
เวลาในการตอบสนองต่ำสุด/ค่าเฉลี่ย/สูงสุด: 0/0/0
ได้รับ: 1
ส่ง: 0
การเชื่อมต่อ: 1
รอดำเนินการ: 0
Zxid: 0xc00000044
โหมด: ผู้ติดตาม
จํานวนโหนด: 653
ในบรรทัดโหมดของเอาต์พุตสำหรับโหนด คุณควรเห็นผู้สังเกตการณ์ ผู้นำ หรือผู้ติดตาม (หมายถึงผู้ลงคะแนนเสียงที่ไม่ใช่ผู้นำ) ทั้งนี้ขึ้นอยู่กับการกำหนดค่าโหนด
หมายเหตุ: ในการติดตั้ง Edge แบบสแตนด์อโลนที่มีโหนด ZooKeeper เพียงโหนดเดียว ระบบจะตั้งค่าโหมดเป็นสแตนด์อโลน - ทำขั้นตอนที่ 1 และ 2 ซ้ำบนโหนด ZooKeeper แต่ละรายการ
สรุป
วิธีที่ดีที่สุดในการบำรุงรักษากลุ่ม ZooKeeper คือการดำเนินการทีละโหนด ข้อควรจำ:
- คุณต้องรักษาจำนวนโหนดผู้มีสิทธิ์ลงคะแนนเสียงให้ครบตามเกณฑ์ในระหว่างการบำรุงรักษาเพื่อให้กลุ่ม ZooKeeper ทำงานต่อไปได้
- การปิดโหนดผู้สังเกตการณ์จะไม่ส่งผลต่อองค์ประชุมหรือความสามารถในการเลือกผู้นำ
- ระบบจะคํานวณจํานวนสมาชิกขั้นต่ำที่ต้องการจากโหนด ZooKeeper ทั้งหมดในศูนย์ข้อมูลทั้งหมด
- ดำเนินการบำรุงรักษาไปยังเซิร์ฟเวอร์ถัดไปหลังจากที่เซิร์ฟเวอร์ก่อนหน้าทำงานได้
- ใช้คำสั่ง nc เพื่อตรวจสอบโหนด ZooKeeper