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

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

Bảo trì chống entropy

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

apigee-service apigee-cassandra apigee_repair -pr

Khi chạy lệnh này, Apigee đề xuất những việc sau:

  • 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).
  • Để kiểm tra xem 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 xem Tệp system.log cho mục nhập với mã nhận dạng duy nhất (UUID) của phiên sửa chữa gần đây nhất và cụm từ "phiên sửa chữa đã 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 tải đáng kể cho ).
  • Chạy ít nhất bảy ngày một lần để loại bỏ các vấn đề liên quan đến Cassandra "xoá dữ liệu bị quên".
  • 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 khi chạy mã trên mỗi nút.
  • Sử dụng tuỳ chọn -pr (dải ô phân vùng) để chỉ định dải ô phân vùng chính của nút.

Nếu bạn đã bật phương thức xác thực JMX cho Cassandra, bạn phải cung cấp 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 dùng cho quá trình sửa lỗi nodetool của Cassandra, Dịch vụ này thực hiện các bước kiểm tra bổ sung trước khi sửa chữ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/cassandra trên mỗi nút. Theo mặc định, bạn có thể lưu tối đa 50 tệp nhật ký, mỗi tệp có kích thước tối đa là 20 MB đã tạo; khi bạn đạt đến giới hạn này, các nhật ký cũ sẽ bị xoá khi bạn tạo nhật ký mới.

Nếu thấy tệp nhật ký Cassandra đang chiếm quá nhiều dung lượng, bạn có thể sửa đổi 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 tình hình sử dụng đĩa Cassandra để đảm bảo ít nhất 50% mỗi ổ đĩa trống. 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 hoạt động sử dụng ổ đĩa của riêng 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, việc này 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, tùy thuộc vào . Nếu tính năng xoá tự động 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 nhằm khôi phục theo cách thủ công .
  • Lưu ý về nén dữ liệu: Bắt đầu với Edge dành cho Private Cloud 4.51.00, các bản cài đặt mới của Apigee Cassandra sẽ tạo những không gian chính bằng Chiến lược nén theo cấp độ.

    Bản cài đặt các phiên bản cũ hơn của Edge dành cho Private Cloud mà đã được nâng cấp lên Private Cloud 4.51.00 sẽ tiếp tục giữ lại chiến lược nén trước đó. Nếu phương thức hiện tại chiến lược nén là ColorTieredCompactionStrategy, bạn nên thay đổi thành LeveledCompactionStrategy giúp bạn tận dụng ổ đĩa hiệu quả hơn.

Lưu ý: Khi Cassandra thực hiện nén dữ liệu, có thể mất một số lượng chu kỳ đáng kể trong CPU và bộ nhớ. Tuy nhiên, việ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 tính năng nén có đang chạy không. Kết quả của compactionstats cho bạn biết nếu có là các tình trạng nén đang chờ thực hiện và thời gian hoàn thành ước tính.