เพิ่มการรองรับชั้นวาง Cassandra

ส่วนนี้จะให้คำแนะนำทั่วไปสำหรับการปรับขนาดการทำงานของ Cassandra โดยทำให้ Cassandra ใน Apigee Edge สำหรับ Private Cloud ทราบถึงแร็ก

ดูข้อมูลเพิ่มเติมเกี่ยวกับความสำคัญของการทำให้ Cassandra Ring ทราบถึงแร็กได้จากแหล่งข้อมูลต่อไปนี้

แร็คคืออะไร

แร็ก Cassandra คือการจัดกลุ่มเชิงตรรกะของโหนด Cassandra ภายในริง Cassandra ใช้แร็กเพื่อให้แน่ใจว่ามีการกระจายตัวจำลองไปยังการจัดกลุ่มเชิงตรรกะต่างๆ ด้วยเหตุนี้ ระบบจึงส่งการดำเนินการไปยังโหนดหลายโหนด ไม่ใช่แค่โหนดเดียว โดยแต่ละโหนดจะอยู่บนแร็กแยกต่างหาก ซึ่งช่วยให้คงทนต่อความเสียหายและมีความพร้อมใช้งานมากขึ้น

ตัวอย่างในส่วนนี้ใช้แร็ก Cassandra 3 แร็ก ซึ่งเป็นจำนวนแร็กที่ Apigee รองรับในโทโพโลยีเวอร์ชันที่ใช้งานจริง

การติดตั้ง Cassandra ใน Apigee Edge สำหรับ Private Cloud โดยค่าเริ่มต้นจะถือว่ามีแร็กเชิงตรรกะเดียวและวางโหนดทั้งหมดในศูนย์ข้อมูลไว้ภายในแร็กนั้น แม้ว่าการกำหนดค่านี้จะติดตั้งและจัดการได้ง่าย แต่ก็อาจเกิดความล้มเหลวได้หากการดำเนินการล้มเหลวในโหนดใดโหนดหนึ่ง

รูปภาพต่อไปนี้แสดงการกำหนดค่าเริ่มต้นของวงแหวน Cassandra

1 แร็กที่มี 3 โหนด
(รูปที่ 1) การกำหนดค่าเริ่มต้น: โหนดทั้งหมดในแร็กเดียว

ในการกำหนดค่าที่มีประสิทธิภาพมากขึ้น ระบบจะกำหนดโหนดแต่ละโหนดให้กับแร็กแยกต่างหาก และการดำเนินการจะทำงานในตัวจำลองบนแร็กแต่ละแร็กด้วย

รูปภาพต่อไปนี้แสดงวงแหวน 3 โหนด รูปภาพนี้แสดงลำดับการจำลองการดำเนินการในวงแหวน (ตามเข็มนาฬิกา) และไฮไลต์ข้อเท็จจริงที่ว่าไม่มีโหนด 2 โหนดอยู่บนแร็กเดียวกัน

แร็ก 3 ตัว โดยมี 1 โหนดในแต่ละแร็ก
(รูปที่ 2) การกำหนดค่าที่คำนึงถึงแร็ก: โหนด 3 โหนด โดยแต่ละโหนดอยู่บนแร็กแต่ละตัว

ในการกำหนดค่านี้ ระบบจะส่งการดำเนินการไปยังโหนด แต่จะส่งไปยังตัวจำลองของโหนดนั้นในแร็กอื่นๆ ด้วย (ตามลำดับเข็มนาฬิกา)

เพิ่มการรับรู้แร็ก (ที่มี 3 โหนด)

โทโพโลยีการติดตั้งเวอร์ชันที่ใช้งานจริงทั้งหมดของ Apigee Edge สำหรับ Private Cloud มีโหนด Cassandra อย่างน้อย 3 โหนด ซึ่งส่วนนี้จะเรียกว่า "IP1", "IP2" และ "IP3" โดยค่าเริ่มต้น โหนดแต่ละโหนดจะอยู่ในแร็กเดียวกันคือ "ra-1"

ส่วนนี้จะอธิบายวิธีมอบหมายโหนด Cassandra ให้แยกแร็กเพื่อให้การดำเนินการทั้งหมดถูกส่งไปยังโหนดจำลองในการจัดกลุ่มเชิงตรรกะที่แยกกันภายในริง

วิธีมอบหมายโหนด Cassandra ให้กับแร็กต่างๆ ระหว่างการติดตั้ง

  1. ก่อนเรียกใช้โปรแกรมติดตั้ง ให้เข้าสู่ระบบโหนด Cassandra และเปิดไฟล์การกำหนดค่าแบบไม่โต้ตอบต่อไปนี้เพื่อแก้ไข
    /opt/silent.conf

    สร้างไฟล์หากยังไม่มี และตรวจสอบว่าได้กำหนดให้ผู้ใช้ "apigee" เป็นเจ้าของ

  2. แก้ไขพร็อพเพอร์ตี้ CASS_HOSTS ซึ่งเป็นรายการที่อยู่ IP ที่คั่นด้วยเว้นวรรค (ไม่ใช่รายการ DNS หรือชื่อโฮสต์) ซึ่งใช้ไวยากรณ์ต่อไปนี้
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    ค่าเริ่มต้นคือวงแหวน Cassandra แบบ 3 โหนด โดยแต่ละโหนดจะกำหนดให้กับแร็ก 1 และศูนย์ข้อมูล 1 ดังตัวอย่างต่อไปนี้

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. เปลี่ยนการกำหนดแร็กเพื่อให้โหนด 2 ได้รับการกำหนดให้กับแร็ก 2 และโหนด 3 ได้รับการกำหนดให้กับแร็ก 3 ดังตัวอย่างต่อไปนี้
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    การเปลี่ยนการกำหนดแร็คจะเป็นการสั่งให้ Cassandra สร้างการจัดกลุ่มเชิงตรรกะ (แร็ค) เพิ่มเติมอีก 2 กลุ่ม ซึ่งจะให้ตัวจำลองที่ได้รับการดำเนินการทั้งหมดที่โหนดแรกได้รับ

    ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้พร็อพเพอร์ตี้การกำหนดค่า CASS_HOSTS ได้ที่ข้อมูลอ้างอิงไฟล์การกำหนดค่า Edge

  4. บันทึกการเปลี่ยนแปลงในไฟล์การกำหนดค่า แล้วเรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง Cassandra ด้วยการกำหนดค่าที่อัปเดตแล้ว
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    เช่น

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. ทำขั้นตอนนี้ซ้ำสำหรับโหนด Cassandra แต่ละโหนดในวงแหวนตามลำดับที่กำหนดโหนดในพร็อพเพอร์ตี้ CASS_HOSTS ในกรณีนี้ คุณต้องติดตั้ง Cassandra ตามลำดับต่อไปนี้
    1. โหนด 1 (IP1)
    2. โหนด 2 (IP2)
    3. โหนด 3 (IP3)

หลังจากติดตั้งแล้ว คุณควรตรวจสอบการกำหนดค่า Cassandra

ตรวจสอบการกำหนดค่า Cassandra

หลังจากติดตั้งการกำหนดค่า Cassandra ที่รับรู้แร็กแล้ว คุณสามารถตรวจสอบว่ามีการกำหนดโหนดให้กับแร็กต่างๆ โดยใช้คำสั่ง nodetool status ดังตัวอย่างต่อไปนี้

/opt/apigee/apigee-cassandra/bin/nodetool status

(คุณเรียกใช้คำสั่งนี้ในโหนด Cassandra โหนดใดโหนดหนึ่ง)

ผลลัพธ์ควรมีลักษณะคล้ายกับตัวอย่างต่อไปนี้ โดยคอลัมน์ Rack จะแสดงรหัสแร็กที่แตกต่างกันสำหรับแต่ละโหนด

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

หากเปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra คุณต้องส่งชื่อผู้ใช้และรหัสผ่านไปยัง nodetool ด้วย ดูข้อมูลเพิ่มเติมได้ที่หัวข้อใช้ nodetool เพื่อจัดการโหนดคลัสเตอร์

ติดตั้งวงแหวน 6 โหนด

หากต้องการเพิ่มความซ้ำซ้อน คุณสามารถขยายวงแหวน Cassandra เป็น 6 โหนดได้ ในกรณีนี้ คุณจะกำหนดโหนด 2 โหนดให้กับแต่ละแร็กจากทั้งหมด 3 แร็ก การกำหนดค่านี้ต้องใช้โหนดเพิ่มเติม 3 โหนด ได้แก่ โหนด 4 (IP4), โหนด 5 (IP5) และโหนด 6 (IP6)

รูปภาพต่อไปนี้แสดงลำดับการจำลองการดำเนินการในวงแหวน (ตามเข็มนาฬิกา) และไฮไลต์ข้อเท็จจริงที่ว่าในระหว่างการจำลอง ไม่มีโหนดที่อยู่ติดกัน 2 โหนดอยู่บนแร็กเดียวกัน

3 แร็ก โดยมี 2 โหนดในแต่ละแร็ก
(รูปที่ 3) วงแหวน Cassandra แบบ 6 โหนด: โหนด 2 โหนดในแต่ละแร็กจาก 3 แร็ก

ในการกำหนดค่านี้ แต่ละโหนดจะมีตัวจำลองอีก 2 รายการ โดยอยู่ในแร็กอื่นๆ อีก 2 แร็ก แร็กละ 1 รายการ ตัวอย่างเช่น โหนด 1 ในแร็ก 1 มีข้อมูลจำลองในแร็ก 2 และแร็ก 3 การดำเนินการที่ส่งไปยังโหนด 1 จะส่งไปยังตัวจำลองในแร็กอื่นๆ ตามลำดับตามเข็มนาฬิกาด้วย

หากต้องการขยายวงแหวน Cassandra แบบ 3 โหนดเป็นวงแหวน Cassandra แบบ 6 โหนด ให้กำหนดค่าโหนดในลักษณะต่อไปนี้ในไฟล์การกำหนดค่าแบบไม่มีการโต้ตอบ

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

เช่นเดียวกับวงแหวน 3 โหนด คุณต้องติดตั้ง Cassandra ตามลำดับเดียวกับที่โหนดปรากฏในพร็อพเพอร์ตี้ CASS_HOSTS ดังนี้

  1. โหนด 1 (IP1)
  2. โหนด 4 (IP4)*
  3. โหนด 2 (IP2)
  4. โหนด 5 (IP5)
  5. โหนด 3 (IP3)
  6. Node 6 (IP6)

* ทำการเปลี่ยนแปลงในไฟล์การกำหนดค่าแบบไม่โต้ตอบก่อนเรียกใช้ยูทิลิตีการตั้งค่าในโหนดที่ 4 (เครื่องที่ 2 ในลำดับการติดตั้ง Cassandra)

ขยายเป็น 12 โหนด

หากต้องการเพิ่มความคงทนต่อความเสียหายและความพร้อมใช้งาน คุณสามารถเพิ่มจำนวนโหนด Cassandra ในริงจาก 6 เป็น 12 โหนดได้ การกำหนดค่านี้ต้องใช้โหนดเพิ่มเติม 6 โหนด (IP7 ถึง IP12)

รูปภาพต่อไปนี้แสดงลำดับการจำลองการดำเนินการในวงแหวน (ตามเข็มนาฬิกา) และไฮไลต์ข้อเท็จจริงที่ว่าในระหว่างการจำลอง ไม่มีโหนดที่อยู่ติดกัน 2 โหนดอยู่บนแร็กเดียวกัน

3 แร็ก โดยแต่ละแร็กมี 4 โหนด
(รูปที่ 4) วงแหวน Cassandra 12 โหนด: 4 โหนดในแต่ละแร็กจาก 3 แร็ก

ขั้นตอนการติดตั้งวงแหวน 12 โหนดจะคล้ายกับการติดตั้งวงแหวน 3 หรือ 6 โหนด โดยตั้งค่า CASS_HOSTS เป็นค่าที่กำหนดและเรียกใช้โปรแกรมติดตั้งตามลำดับที่ระบุ

หากต้องการขยายเป็นวงแหวน Cassandra แบบ 12 โหนด ให้กำหนดค่าโหนดในลักษณะต่อไปนี้ในไฟล์การกำหนดค่าแบบไม่มีการโต้ตอบ

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

เช่นเดียวกับวงแหวนแบบ 3 และ 6 โหนด คุณต้องเรียกใช้โปรแกรมติดตั้งในโหนดตามลำดับที่โหนดปรากฏในไฟล์การกำหนดค่า ดังนี้

  1. โหนด 1 (IP1)
  2. Node 7 (IP7)*
  3. โหนด 4 (IP4)
  4. Node 8 (IP8)
  5. โหนด 2 (IP2)
  6. Node 9 (IP9)
  7. โหนด 5 (IP5)
  8. Node 10 (IP10)
  9. โหนด 3 (IP3)
  10. Node 11 (IP11)
  11. Node 6 (IP6)
  12. Node 12 (IP12)

* คุณต้องทำการเปลี่ยนแปลงเหล่านี้ก่อนติดตั้ง Apigee Edge สำหรับ Private Cloud ในโหนดที่ 7 (เครื่องที่ 2 ในลำดับการติดตั้ง Cassandra)