Nhiệm vụ bảo trì Apache Cassandra

Phần này mô tả các tác vụ bảo trì định kỳ cho Cassandra.

Bảo trì chống entropy

Các nút vòng lặp Apache Cassandra cần được bảo trì định kỳ để đảm bảo tính nhất quán trên tất cả các nút. Để thực hiện việc bảo trì này, hãy sử dụng lệnh sau:

apigee-service apigee-cassandra apigee_repair -pr

Apigee đề xuất những điều sau đây khi chạy lệnh này:

  • Chạy trên mọi nút Cassandra (trên tất cả các khu vực hoặc trung tâm dữ liệu).
  • Chạy trên từng nút một để đảm bảo tính nhất quán trên tất cả các nút trong vòng lặp. Việc chạy các công việc sửa chữa trên nhiều nút cùng lúc có thể làm suy giảm tình trạng của Cassandra.

    Để kiểm tra xem một công việc sửa chữa trên một nút đã hoàn tất thành công hay chưa, hãy tìm trong tệp system.log của nút đó một mục nhập có UUID của phiên sửa chữa mới nhất và cụm từ "session completed successfully" (phiên đã hoàn tất thành công). Dưới đây là mục nhập nhật ký mẫu:

    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
  • Chạy trong thời gian khối lượng công việc tương đối thấp (công cụ này gây ra tải đáng kể cho hệ thống ).
  • Chạy ít nhất 7 ngày một lần để loại bỏ các vấn đề liên quan đến tính năng "forgotten deletes" (xoá bị quên) của Cassandra.
  • Chạy trên các nút khác nhau vào các ngày khác nhau hoặc lên lịch để có vài giờ giữa thời gian chạy trên mỗi nút.
  • Chỉ sử dụng tuỳ chọn -pr (phân vùng) để chỉ định phạm vi phân vùng chính của nút.

Nếu bạn đã bật tính năng xác thực JMX cho Cassandra, thì bạn phải thêm tên người dùng và mật khẩu khi gọi nodetool. Ví dụ:

apigee-service apigee-cassandra apigee_repair -u username -pw password -pr

Bạn cũng có thể chạy lệnh sau để kiểm tra các tuỳ chọn được hỗ trợ của apigee_repair:

apigee-service apigee-cassandra apigee_repair -h

Lưu ý: apigee_repair là một trình bao bọc xung quanh công cụ sửa chữa nodetool của Cassandra, thực hiện các bước kiểm tra bổ sung trước khi thực hiện việc sửa chữa của Cassandra.

Để biết thêm thông tin, hãy xem các tài nguyên sau:

Bảo trì tệp nhật ký

Nhật ký Cassandra được lưu trữ trong thư mục /opt/apigee/var/log/apigee-cassandra trên mỗi nút. Theo mặc định, bạn có thể tạo tối đa 50 tệp nhật ký, mỗi tệp có kích thước tối đa là 20 MB; khi đạt đến giới hạn này, các nhật ký cũ sẽ bị xoá khi nhật ký mới được tạo.

Nếu thấy các tệp nhật ký Cassandra chiếm quá nhiều dung lượng, bạn có thể sửa đổi lượng dung lượng được phân bổ cho các tệp nhật ký bằng cách chỉnh sửa chế độ cài đặt log4j.

  1. Chỉnh sửa /opt/apigee/customer/application/cassandra.properties để đặt các thuộc tính sau. Nếu tệp đó không tồn tại, hãy tạo tệp đó:
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. Khởi động lại Cassandra bằng lệnh sau:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Bảo trì dung lượng ổ đĩa

Bạn nên thường xuyên theo dõi mức sử dụng ổ đĩa Cassandra để đảm bảo mỗi ổ đĩa còn trống ít nhất 50% . Nếu mức sử dụng ổ đĩa tăng lên trên 50%, bạn nên thêm dung lượng ổ đĩa để giảm tỷ lệ phần trăm đang được sử dụng.

Cassandra tự động thực hiện các thao tác sau để giảm mức sử dụng ổ đĩa của chính mình:

  • Xoá mã thông báo xác thực khi mã thông báo hết hạn. Tuy nhiên, có thể mất vài tuần để giải phóng dung lượng ổ đĩa mà các mã thông báo đang sử dụng, tuỳ thuộc vào cấu hình của bạn. Nếu việc tự động xoá không đủ để duy trì đủ dung lượng ổ đĩa, hãy liên hệ với nhóm hỗ trợ để tìm hiểu về cách xoá mã thông báo theo cách thủ công nhằm khôi phục dung lượng.
  • Nén dữ liệu: Bắt đầu từ Edge cho Đám mây riêng tư 4.51.00, các bản cài đặt mới của Apigee Cassandra sẽ tạo không gian khoá bằng Chiến lược nén theo cấp.

    Các bản cài đặt của các phiên bản Edge cho Đám mây riêng tư trước đó đã được nâng cấp lên Edge cho Đám mây riêng tư 4.54.00 sẽ giữ lại chiến lược nén trước đó. Nếu chiến lược nén hiện có là SizeTieredCompactionStrategy, Apigee khuyên bạn nên thay đổi thành LeveledCompactionStrategy, chiến lược này giúp sử dụng ổ đĩa hiệu quả hơn. Để biết hướng dẫn, hãy xem bài viết Thay đổi chiến lược nén Cassandra.

Lưu ý: Khi Cassandra thực hiện việc nén dữ liệu, quá trình này có thể tốn một lượng đáng kể chu kỳ CPU và bộ nhớ. Tuy nhiên, mức sử dụng tài nguyên sẽ trở lại bình thường sau khi quá trình nén hoàn tất. Bạn có thể chạy lệnh 'Nodetool compactionstats' trên mỗi nút để kiểm tra xem quá trình nén có đang chạy hay không. Kết quả của compactionstats cho bạn biết liệu có các quá trình nén đang chờ thực thi hay không và thời gian hoàn thành ước tính.