2. Kiến trúc Cassandra
2.9 Lập kế hoạch triển khai cụm Cassandra
2.9.3 Lựa chọn tùy chọn cấu hình nút
Một phần chính của kế hoạch triển khai cụm Cassandra là hiểu và thiết lập các thuộc tính cấu hình nút khác nhau. Trong phần này giải thích các quyết định cấu hình khác nhau cần được thực hiện trước khi triển khai một cụm Cassandra, hoặc là cụm trung
tâm đa dữ liệu hoặc là đa nút hoặc đơn nút.
Những thuộc tính này được đề cập trong phần này được thiết lập trong file cấu
hình cassandra.yaml. Mỗi nút nên được cấu hình đúng trước khi khởi động nó lần đầu
tiên.
Thiết lập nơi lưu trữ:
Mặc định, một nút được cấu hình lưu trữ dữ liệu nó quản lý trong
/var/lib/cassandra. Trong triển khai một cụm, bạn nên thay đổi commitlog_directory để
nóở trên các thiết bị ổ đĩa khác hơn làdata_file_directories.
Thiết lập Gossip
Thiết lập gossip kiểm soát sự tham gia một nút trong một cụm và làm thế nào biết
được một nút thuộc mộtcụm.
Thuộc tính Mơ tả
Cluster_name Tên của cụm nơi mà nút tham gia. Tên chung cho mỗi nút trong một cụm
Listen_address Địa chỉ IP hoặc tên máy chủ mả các nút Cassandra khác sẽ
sử dụng để kết nối tới nút này. Nên được thay đổi từ
localhost thành địa chỉ công cộng đối với máy chủ.
Seeds Một danh sách các địa chỉ Ip các nút khởi tạo của quá trình Gossip. Mỗi nút phải có cùng một danh sách các seed. Trong các cụm trung tâm đa dữ liệu, danh sách seed bao gồm các nút đến từ mỗi trung tâm dữ liệu.
Storage_port Cổng giao tiếp giữa các nút ( mặc định là 7000),
Initial_token Được sử dụng để định nghĩa dãy các dữ liệu mà nút chịu
Thanh lọc trạng thái Gossip trên mỗi nút
Thông tin Gossip được lưu trữ cục bộ bởi mỗi nút để sử dụng ngay lập tức trong lần khởi động kế tiếp mà khơng có bất cứ sự chờ đợi Gossip. Để làm sạch lịch sử gossip trong mỗi
lần khởi động nút (ví dụ, địa chỉ IP nút thay đổi), thì thêm dịng sau đây vào file
cassandra-env.sh. File nà được đặt trong /usr/share/cassandra hoặc <install_location>/conf.
-Dcassandra.load_ring_state=false
Cài đặt phân vùng
Khi bạn triển khai một cụm Cassandra, bạn cần phải chắcchắn rằng mỗi nút là chịutrách nhiệm cho một số lượng dữ liệu. Điều này còn được gọi là cân bằng tải.Điều này được
thực hiệnbằngcách cấu hình các phân vùng cho mỗi nút, và việc gánmột cách chính xác cho các nút giá trịinitial_token.
DataStax khuyến cáo sử dụng RandomPartitioner (mặc định) đối với tất cả các triển khai
cụm. Giả định sử dụng phân vùng này, mỗi nút trong cụm được gán một token mà biểu diện một giá trị băm trong dãy từ 0 tới 2**127.
Đối với các cụm trong đó tất cả các nút nằm trong trung tâm dữ liệu đơn, bạn có thể tính
tốn các token bằng việc chia dãy cho tổng số nút trong cụm. Trong triển khai trung tâm
đa dữ liệu, token nên được tính tốn để mỗi trung tâm dữ liệu được cân bằng tải. Xem Calculating Tokens đối với các phương pháp khác nhau để sinh token cho mỗi nút trong
các cụm trung tâm đa dữ liệu và đơn dữ liệu.
Cấu hình thơng tin
Thơng tin (Snitch) cho biết vị trí của các nut trong topo mạng. Điều nàyảnh hưởng đến nơi mà những bản sao được đặt cũng như cách các truy vấn được định tuyến giữa các bản sao như thế nào. Thuộc tính endpoint_snitch cấu hình thơng tin cho nút. Tát cả các nút
nên có cùng một cấu hình thơng tin.
Đối với các cụm trung tâm đơn dữ liệu (hoặc nút đơn), sử dụng mặc địnhSimpleSnitch là
đủ. Tuy nhiên, nếu ban lập kế hoạch để mở rộng các cụm của bạn ở các thời điểm sau đó
thành nhiều trung tâm dữ liêu và nhiều giá dữ liệu, thì ban nên chọn trước các kiểu cấu hình thơng tin về trung tâm dữ liệu và rách từ khi bắt đầu.
PropertyFileSnitch cho phép bạn định nghĩa tên trung tâm dữ liệu và tên giá là bất cứ cái gì mà bạn muốn. Việc sử dụng thông tin này yêu cầu bạn định nghĩa chi tiết mạng cho mỗi nút trong cụm trong file cấu hình cassandra-topology.properties. File này được đặt
trong /etc/cassandra/conf/cassandra.yaml đối với chương trình cài đặt đã được đóng gói
hoặc trong <install_location>/conf/cassandra.yaml đối với chương trình cài đặt ở dạng
nhị phân.
Ví dụ, giả sử bạn có một địa chỉ IP khơng đồng nhất và hai trung tâm dữ liệu vật lý với hai giá trong mỗi trung tâm, và một trung tâm dữ liệu lô gic thứ 3 để sao chép dữ liệu phân tích:
# Data Center One
175.56.12.105=DC1:RAC1 175.50.13.200=DC1:RAC1 175.54.35.197=DC1:RAC1 120.53.24.101=DC1:RAC2 120.55.16.200=DC1:RAC2 120.57.102.103=DC1:RAC2 # Data Center Two
110.56.12.120=DC2:RAC1 110.50.13.201=DC2:RAC1 110.54.35.184=DC2:RAC1 50.33.23.120=DC2:RAC2 50.45.14.220=DC2:RAC2 50.17.10.203=DC2:RAC2 # Analytics Replication Group 172.106.12.120=DC3:RAC1 172.106.12.121=DC3:RAC1
172.106.12.122=DC3:RAC1 # default for unknown nodes default=DC3:RAC1