Thêm tính năng hỗ trợ giá đỡ Cassandra

Phần này cung cấp hướng dẫn chung về cách mở rộng quy mô hoạt động của Cassandra bằng cách làm cho Cassandra trên Apigee Edge cho Private Cloud nhận biết được giá đỡ.

Để biết thêm thông tin về lý do bạn nên thiết lập nhận biết giá đỡ cho vòng Cassandra, hãy xem các tài nguyên sau:

Giá đỡ là gì?

Giá đỡ Cassandra là một nhóm logic gồm các nút Cassandra trong vòng. Cassandra sử dụng giá đỡ để đảm bảo các bản sao được phân phối giữa các nhóm logic khác nhau. Do đó, các thao tác được gửi đến không chỉ một nút mà là nhiều nút, mỗi nút trên một giá riêng, mang lại khả năng chịu lỗi và độ sẵn sàng cao hơn.

Các ví dụ trong phần này sử dụng ba giá đỡ Cassandra, đây là số lượng giá đỡ được Apigee hỗ trợ trong cấu trúc liên kết chính thức.

Quá trình cài đặt mặc định của Cassandra trong Apigee Edge cho đám mây riêng tư giả định một giá đỡ logic duy nhất và đặt tất cả các nút trong một trung tâm dữ liệu trong đó. Mặc dù cấu hình này rất dễ cài đặt và quản lý, nhưng cấu hình này dễ bị lỗi nếu một thao tác không thành công trên một trong các nút đó.

Hình ảnh sau đây cho thấy cấu hình mặc định của vòng Cassandra:

1 giá đỡ có 3 nút
(Hình 1) Cấu hình mặc định: Tất cả các nút trên một giá đỡ

Trong một cấu hình mạnh mẽ hơn, mỗi nút sẽ được chỉ định cho một giá riêng và các thao tác cũng sẽ thực thi trên các bản sao trên mỗi giá đó.

Hình ảnh sau đây cho thấy một vòng 3 nút. Hình ảnh này cho thấy thứ tự sao chép các thao tác trên vòng (theo chiều kim đồng hồ) và làm nổi bật thực tế là không có hai nút nào nằm trên cùng một giá:

3 giá đỡ, mỗi giá đỡ có 1 nút
(Hình 2) Cấu hình nhận biết giá đỡ: Ba nút, mỗi nút trên một giá đỡ

Trong cấu hình này, các thao tác được gửi đến một nút nhưng cũng được gửi đến các bản sao của nút đó trên các giá đỡ khác (theo thứ tự theo chiều kim đồng hồ).

Thêm nhận biết giá đỡ (với 3 nút)

Tất cả Cấu trúc liên kết cài đặt chính thức của Apigee Edge cho đám mây riêng tư đều có ít nhất ba nút Cassandra, mà phần này gọi là "IP1", "IP2" và "IP3". Theo mặc định, mỗi nút này nằm trong cùng một giá đỡ, "ra-1".

Phần này mô tả cách chỉ định các nút Cassandra cho các giá đỡ riêng biệt để tất cả các thao tác được gửi đến các nút bản sao trong các nhóm logic riêng biệt trong vòng.

Cách chỉ định các nút Cassandra cho các giá đỡ khác nhau trong quá trình cài đặt:

  1. Trước khi chạy trình cài đặt, hãy đăng nhập vào nút Cassandra và mở tệp cấu hình tự động sau để chỉnh sửa:
    /opt/silent.conf

    Tạo tệp nếu tệp chưa tồn tại và nhớ đặt người dùng "apigee" làm chủ sở hữu.

  2. Chỉnh sửa thuộc tính CASS_HOSTS, một danh sách địa chỉ IP được phân tách bằng dấu cách (không phải mục nhập DNS hoặc tên máy chủ) sử dụng cú pháp sau:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    Giá trị mặc định là một vòng Cassandra gồm 3 nút, trong đó mỗi nút được chỉ định cho giá đỡ 1 và trung tâm dữ liệu 1, như trong ví dụ sau:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Thay đổi cách chỉ định giá để nút 2 được chỉ định cho giá 2 và nút 3 được chỉ định cho giá 3, như trong ví dụ sau:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    Bằng cách thay đổi các chỉ định giá đỡ, bạn hướng dẫn Cassandra tạo thêm hai nhóm logic (giá đỡ), sau đó cung cấp các bản sao nhận được tất cả các thao tác mà nút đầu tiên nhận được.

    Để biết thêm thông tin về cách sử dụng thuộc tính cấu hình CASS_HOSTS, hãy xem Tài liệu tham khảo về tệp cấu hình Edge.

  4. Lưu các thay đổi vào tệp cấu hình và thực thi lệnh sau để cài đặt Cassandra bằng cấu hình đã cập nhật:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    Ví dụ:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. Lặp lại quy trình này cho từng nút Cassandra trong vòng, theo thứ tự chỉ định các nút trong thuộc tính CASS_HOSTS. Trong trường hợp này, bạn phải cài đặt Cassandra theo thứ tự sau:
    1. Nút 1 (IP1)
    2. Nút 2 (IP2)
    3. Nút 3 (IP3)

Sau khi cài đặt, bạn nên Kiểm tra cấu hình Cassandra.

Kiểm tra cấu hình Cassandra

Sau khi cài đặt cấu hình Cassandra nhận biết giá đỡ, bạn có thể kiểm tra để đảm bảo các nút được chỉ định cho các giá đỡ khác nhau bằng cách sử dụng lệnh nodetool status, như trong ví dụ sau:

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

(Bạn thực thi lệnh này trên một trong các nút Cassandra.)

Kết quả sẽ có dạng tương tự như sau, trong đó cột Rack (Giá đỡ) cho thấy các mã giá đỡ khác nhau cho mỗi nút:

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

Nếu đã bật tính năng xác thực JMX cho Cassandra, bạn cũng phải chuyển tên người dùng và mật khẩu của mình cho nodetool. Để biết thêm thông tin, hãy xem bài viết Sử dụng nodetool để quản lý các nút cụm.

Cài đặt vòng sáu nút

Để tăng khả năng dự phòng, bạn có thể mở rộng vòng Cassandra lên 6 nút. Trong trường hợp này, bạn gán hai nút cho mỗi giá trong số ba giá. Cấu hình này yêu cầu thêm 3 nút: Nút 4 (IP4), Nút 5 (IP5) và Nút 6 (IP6).

Hình ảnh sau đây cho thấy thứ tự sao chép các thao tác trên vòng (theo chiều kim đồng hồ) và làm nổi bật thực tế là trong quá trình sao chép, không có hai nút liền kề nào nằm trên cùng một giá:

3 giá đỡ, mỗi giá đỡ có 2 nút
(Hình 3) Vòng Cassandra 6 nút: Hai nút trên mỗi giá trong số ba giá

Trong cấu hình này, mỗi nút có thêm hai bản sao: một bản sao trong mỗi giá đỡ trong số hai giá đỡ còn lại. Ví dụ: nút 1 trong giá đỡ 1 có bản sao trong Giá đỡ 2 và Giá đỡ 3. Các thao tác được gửi đến nút 1 cũng được gửi đến các bản sao trong các giá đỡ khác, theo thứ tự chiều kim đồng hồ.

Để mở rộng vòng Cassandra 3 nút thành vòng Cassandra 6 nút, hãy định cấu hình các nút theo cách sau trong tệp cấu hình tự động:

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

Giống như với vòng ba nút, bạn phải cài đặt Cassandra theo cùng thứ tự mà các nút xuất hiện trong thuộc tính CASS_HOSTS:

  1. Nút 1 (IP1)
  2. Nút 4 (IP4)*
  3. Nút 2 (IP2)
  4. Nút 5 (IP5)
  5. Nút 3 (IP3)
  6. Node 6 (IP6)

* Thực hiện các thay đổi trong tệp cấu hình tự động trước khi chạy tiện ích thiết lập trên nút thứ tư (máy thứ hai theo thứ tự cài đặt Cassandra).

Mở rộng thành 12 nút

Để tăng khả năng chịu lỗi và tính sẵn sàng, bạn có thể tăng số lượng nút Cassandra trong vòng từ 6 lên 12. Cấu hình này cần thêm 6 nút (IP7 đến IP12).

Hình ảnh sau đây cho thấy thứ tự sao chép các thao tác trên vòng (theo chiều kim đồng hồ) và làm nổi bật thực tế là trong quá trình sao chép, không có hai nút liền kề nào nằm trên cùng một giá:

3 giá đỡ, mỗi giá đỡ có 4 nút
(Hình 4) Vòng Cassandra 12 nút: 4 nút trên mỗi giá trong số 3 giá

Quy trình cài đặt vòng 12 nút tương tự như quy trình cài đặt vòng 3 hoặc 6 nút: đặt CASS_HOSTS thành các giá trị đã cho và chạy trình cài đặt theo thứ tự đã chỉ định.

Để mở rộng thành vòng Cassandra 12 nút, hãy định cấu hình các nút theo cách sau trong tệp cấu hình im lặng:

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"

Giống như với vòng 3 và 6 nút, bạn phải thực thi trình cài đặt trên các nút theo thứ tự các nút xuất hiện trong tệp cấu hình:

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

* Bạn phải thực hiện những thay đổi này trước khi cài đặt Apigee Edge cho đám mây riêng tư trên nút thứ 7 (máy thứ hai trong thứ tự cài đặt Cassandra).