ส่วนนี้จะอธิบายงานบำรุงรักษาตามระยะสำหรับ Cassandra
การบำรุงรักษาเพื่อป้องกันการสูญเสียข้อมูล
โหนดวงแหวนของ Apache Cassandra ต้องได้รับการบำรุงรักษาตามระยะเพื่อให้มั่นใจถึงความสอดคล้องกันในทุก โหนด หากต้องการทำการบำรุงรักษานี้ ให้ใช้คำสั่งต่อไปนี้
apigee-service apigee-cassandra apigee_repair -pr
Apigee ขอแนะนำให้ทำดังนี้เมื่อเรียกใช้คำสั่งนี้
- เรียกใช้ในทุกโหนด Cassandra (ในทุกภูมิภาคหรือศูนย์ข้อมูล)
เรียกใช้ในโหนดทีละโหนดเพื่อให้มั่นใจถึงความสอดคล้องกันในทุกโหนดในวงแหวน การเรียกใช้การซ่อมในหลายโหนดพร้อมกันอาจ ส่งผลเสียต่อสถานะของ Cassandra
หากต้องการตรวจสอบว่างานซ่อมในโหนดเสร็จสมบูรณ์แล้วหรือไม่ ให้ดูไฟล์
system.logของโหนดเพื่อหารายการ ที่มี UUID ของเซสชันการซ่อมล่าสุดและวลี "session completed successfully." ตัวอย่างรายการบันทึกมีดังนี้INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully" Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
- เรียกใช้ในช่วงที่มีปริมาณงานค่อนข้างต่ำ (เครื่องมือนี้จะเพิ่มภาระงานให้กับ ระบบอย่างมาก)
- เรียกใช้ทุกๆ 7 วันเป็นอย่างน้อยเพื่อขจัดปัญหาที่เกี่ยวข้องกับ "การลบที่ลืม" ของ Cassandra
- เรียกใช้ในโหนดต่างๆ ในวันต่างๆ หรือกำหนดเวลาให้มีเวลาหลายชั่วโมงระหว่างการเรียกใช้ในแต่ละโหนด
- ใช้ตัวเลือก
-pr(ช่วงตัวแบ่งพาร์ติชัน) เพื่อระบุช่วงตัวแบ่งพาร์ติชันหลัก ของโหนดเท่านั้น
หากคุณเปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra
คุณต้องระบุชื่อผู้ใช้และรหัสผ่านเมื่อเรียกใช้ nodetool เช่น
apigee-service apigee-cassandra apigee_repair -u username -pw password -pr
นอกจากนี้ คุณยังเรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบตัวเลือกที่รองรับของ apigee_repair: ได้ด้วย
apigee-service apigee-cassandra apigee_repair -h
หมายเหตุ: apigee_repair เป็น Wrapper สำหรับการซ่อม nodetool ของ Cassandra ซึ่งจะทำการตรวจสอบเพิ่มเติมก่อนที่จะทำการซ่อมของ Cassandra
ดูข้อมูลเพิ่มเติมได้จากแหล่งข้อมูลต่อไปนี้
การบำรุงรักษาไฟล์บันทึก
ระบบจะจัดเก็บบันทึกของ Cassandra ไว้ในไดเรกทอรี /opt/apigee/var/log/apigee-cassandra ใน
แต่ละโหนด โดยค่าเริ่มต้น ระบบจะสร้างไฟล์บันทึกได้สูงสุด 50 ไฟล์ โดยแต่ละไฟล์มีขนาดสูงสุด 20 MB เมื่อถึงขีดจำกัดนี้ ระบบจะลบบันทึกเก่าเมื่อมีการสร้างบันทึกใหม่
หากพบว่าไฟล์บันทึกของ Cassandra ใช้พื้นที่มากเกินไป คุณสามารถแก้ไขจำนวนพื้นที่ที่จัดสรรไว้สำหรับไฟล์บันทึกได้โดยการแก้ไขการตั้งค่า log4j
- แก้ไข
/opt/apigee/customer/application/cassandra.propertiesเพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ หากไม่มีไฟล์ดังกล่าว ให้สร้างขึ้นconf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- รีสตาร์ท Cassandra โดยใช้คำสั่งต่อไปนี้
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
การบำรุงรักษาพื้นที่ในดิสก์
คุณควรตรวจสอบการใช้ดิสก์ของ Cassandra เป็นประจำเพื่อให้แน่ใจว่ามีพื้นที่ว่างอย่างน้อย 50% ใน แต่ละดิสก์ หากการใช้ดิสก์เพิ่มขึ้นเกิน 50% เราขอแนะนำให้คุณ เพิ่มพื้นที่ในดิสก์เพื่อลดเปอร์เซ็นต์ที่ใช้งาน
Cassandra จะดำเนินการต่อไปนี้โดยอัตโนมัติเพื่อลดการใช้ดิสก์ของตัวเอง
- การลบโทเค็นการตรวจสอบสิทธิ์เมื่อโทเค็นหมดอายุ อย่างไรก็ตาม ระบบอาจใช้เวลา 2-3 สัปดาห์ในการเพิ่มพื้นที่ในดิสก์ที่โทเค็นใช้ ทั้งนี้ขึ้นอยู่กับการกำหนดค่า หากการลบอัตโนมัติไม่เพียงพอที่จะรักษา พื้นที่ดิสก์ให้เพียงพอ โปรดติดต่อทีมสนับสนุนเพื่อดูข้อมูลเกี่ยวกับการลบโทเค็นด้วยตนเองเพื่อกู้คืน พื้นที่
การบีบอัดข้อมูล: เริ่มตั้งแต่ Edge for Private Cloud 4.51.00 การติดตั้ง Apigee Cassandra ใหม่จะสร้าง Keyspace ด้วย กลยุทธ์การบีบอัดแบบระดับ
การติดตั้ง Edge for Private Cloud เวอร์ชันก่อนหน้าที่ อัปเกรดเป็น Edge for Private Cloud 4.54.00 จะยังคงใช้กลยุทธ์การบีบอัดก่อนหน้า หากกลยุทธ์การบีบอัดที่มีอยู่คือ
SizeTieredCompactionStrategyApigee ขอแนะนำให้เปลี่ยนเป็นLeveledCompactionStrategyซึ่งจะช่วยให้ใช้ดิสก์ ได้ดีขึ้น ดูวิธีการได้ที่ เปลี่ยนกลยุทธ์การบีบอัดของ Cassandra
หมายเหตุ: เมื่อ Cassandra ทำการบีบอัดข้อมูล อาจใช้รอบ CPU จำนวนมาก
และหน่วยความจำ แต่การใช้ทรัพยากรจะกลับสู่ปกติเมื่อการบีบอัดเสร็จสมบูรณ์
คุณสามารถเรียกใช้คำสั่ง 'Nodetool compactionstats' ในแต่ละโหนด
เพื่อตรวจสอบว่าการบีบอัดกำลังทำงานอยู่หรือไม่ เอาต์พุตของ compactionstats จะแจ้งให้คุณทราบว่ามี
การบีบอัดที่รอดำเนินการอยู่หรือไม่และเวลาโดยประมาณที่จะเสร็จสมบูรณ์