ส่วนนี้จะอธิบายงานบำรุงรักษาตามระยะเวลาสำหรับ Cassandra
การบำรุงรักษาเพื่อป้องกันความไม่เป็นระเบียบ
โหนดวงแหวน Apache Cassandra ต้องมีการบำรุงรักษาเป็นระยะเพื่อให้มั่นใจว่าโหนดทั้งหมดมีความสอดคล้องกัน หากต้องการดำเนินการบำรุงรักษานี้ ให้ใช้คำสั่งต่อไปนี้
apigee-service apigee-cassandra apigee_repair -pr
Apigee ขอแนะนำให้ทำดังนี้เมื่อเรียกใช้คำสั่งนี้
- เรียกใช้ในทุกโหนด Cassandra (ในทุกภูมิภาคหรือศูนย์ข้อมูล)
-
หากต้องการตรวจสอบว่างานซ่อมแซมในโหนดเสร็จสมบูรณ์หรือไม่ ให้ดูในไฟล์
system.logของโหนดเพื่อหารายการที่มี UUID ของเซสชันการซ่อมแซมล่าสุดและวลี "เซสชันเสร็จสมบูรณ์" ตัวอย่างรายการบันทึกมีดังนี้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/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 ใหม่จะสร้างคีย์สเปซด้วย กลยุทธ์การบีบอัดแบบปรับระดับ
การติดตั้ง Edge for Private Cloud เวอร์ชันเก่าที่อัปเกรดเป็น Private Cloud 4.51.00 จะยังคงใช้กลยุทธ์การบีบอัดก่อนหน้าต่อไป หากกลยุทธ์การบีบอัดที่มีอยู่คือ SizeTieredCompactionStrategy เราขอแนะนำให้เปลี่ยนเป็น LeveledCompactionStrategy ซึ่งจะช่วยให้ใช้ดิสก์ได้ดีขึ้น
หมายเหตุ: เมื่อ Cassandra ทำการบีบอัดข้อมูล อาจใช้รอบ CPU และหน่วยความจำจำนวนมาก แต่การใช้ทรัพยากรจะกลับมาเป็นปกติเมื่อการบีบอัดเสร็จสมบูรณ์
คุณสามารถเรียกใช้คำสั่ง 'Nodetool compactionstats' ในแต่ละโหนดเพื่อตรวจสอบว่าการบีบอัดทำงานอยู่หรือไม่ เอาต์พุตของ compactionstats จะแจ้งให้คุณทราบหากมี
การบีบอัดที่รอดำเนินการและเวลาโดยประมาณที่จะเสร็จสมบูรณ์