2. Kiến trúc Cassandra
2.9 Lập kế hoạch triển khai cụm Cassandra
2.9.1 Lựa chọn phần cứng cho cài đặt doanh nghiệp
Với bất cứ ứng dụng nào, việc lựa chọn phần cứng thích hợp phục thuộc vào việc lựa chọn cân bằng của những tài nguyên sau: bộ nhớ,CPU,ổ cứng, số lượng nút và mạng.
• Bộnhớ:
Nút Cassandra có càng nhiều bộ nhớ thì hiệu năng đọc càng tốt. Nhiều RAM hơn cho phép kích cỡ Cache lớn hơn và giảm truy nhập vào / raổ cứng đối với lệnh đọc. Nhiều
bộ nhớ RAM hơn cũng cho phép bảng bộ nhớ tổ chức nhiều dữ liệu ghi gần đây hơn. Bảng bộ nhớ càng lớn thì càng ít số lượng bảng SS bị đẩy vàoổ cứng và ít file quyets
trong suốt q trình đọc. Số lương RAM lý tưởng phụ thuộc vào kích thước dự đốn trước được của dữ liệu nóng.
- Đối với phần cứng chun dụng, RAM có kích thước tối thiểu là 8GB là cần thiết. DataStax được tư vấn từ 16GB-32GB.
- Khoảng trống heap JAVA nên được thiết lập tối đa là 8GB hoặc bằng ½ bộ nhớ RAM, thậm chí thấp hơn.
-Đối với mơi trường ảo sử dụng tối thiểu là 4GB, như Amazon EC2.
• CPU
Cassandra có tính đồng thời cao và sử dụng nhiều lõi CPU nhất có thể.
-Đối với phần cứng chuyên dụng, bộ vi xử lý 8 lõi làđiểm tuyệt vời giữa hiệu năng và
giá
- Đối với những môi trường ảo, xem xét việc sử dụng một nhà cung cấp mà cho phép CPU có cơ chế truyền loạt như Rackspace Cloud Servers.
• Ổ cứng
Cassandra ghi dữ liệu vàoổ cứng với 2 mục đích:
- Tất cả dữ liệu được ghi vào tệp lưu vết lâu dài
- Khi các ngưỡng được đạt tới, Cassandra đẩy cấu trúc dữ liệu trong bộ nhớ vào các
tệp dữ liệu SSTable để lưu trữ lâu dài.
Bản ghi cam kết nhận được tất cả các lệnh ghi đến một nút Cassandra, nhưng chỉ đọc trong suốt thời gian nút khởi động. Bản ghi cam kết được giải phóng sau khi dữ liệu
tương ứng được đẩy vào. Nguợc lại, Các lệnh ghi SSTable (tập tin dữ liệu) được xảy
ra một cách không đồng bộ và được đọc trong suốt thời gian Client tìm kiếm. Ngoài
ra, SSTable định kỳ được gắn kết lại. Sự gắn kết lại cải thiện hiệu năng bằng việc nối và ghi lại dữ liệu và bỏ qua dữ liệu cũ. Tuy nhiên, trong suốt quá trình gắn kết lại (hoặc sửa nút) sự tận dụng đĩa và kích thước thư mục dữ liệu có thể tăng lên đáng kể. Với lý do này, DataStax tư vấn để trống ra một số lượng khoảng trống đĩa rảnh rỗi cho mỗi nút (50% [trường hợp xấu nhất] cho gắn kết lại từng cấp, 10% cho gắn kết lại san lấp).
• Số lượng nút
Số lượng lớn dữ liệu trên mỗi đĩa trong mảng khơng quan trọng bằng kích thước tổng mỗi nút. Việc sử dụng số lượng lớn của các nút nhỏ hơn tốt hơn việc sử dụng ít các nút lớn hơn bởi vì sự cố thắt nút cổ chai trêncác nút lớn trong suốt quá trình gắn kết.
• Mạng
Vì Cassandra là nơi lưu trữ dữ liệu phân tán, nên nó đặt tải trên mạng để xử lý các truy vấn đọc/ghi và các bản sao dữ liệu qua các nút mạng. Cassandra phải chắc
chắn rằng mạng có thể xử lý được giao thơng mạng để tránh hiện tượng thắt nút cổ trai.
-Băng thông là 1000Mbit/s hoặc lớn hơn
- Kết nối với giao diện Thrift (listen_address) tới NIC (Card giao diện mạng). - Kết nối giao diện máy chủ RPC (rpc_address) tới NIC khác.
Cassandra rất hiệu quả với những truy vấn định tuyến tới các nút bản sao mà gần nhất về mặt vị trí địa lý với các nút điều phối để xử lý truy vấn. Cassandra sẽ nhặt nút bản saoở cùng giá nếu có thể và sẽ lựa chọn nút bản sao được đặt ở trong cùng trung tâm dữ
liệu so với những nút bản sao nằm ở trung tâm dữ liệu từ xa.
Cassandra sử dụng những cổng sau đây. Nếu sử dụng một tường lửa, thì phải chắc chắn rằng các nút trong một cụm có thể chuyển tới nút khác qua những cổng này.
Cổng Mô tả Các cổng công cộng 22 SSH (mặc đinh) Cổng đặc trưng OpsCenter 8888 Cổng website OpsCenter Cổng nội bộ các nút Cổng đặc trưng Cassandra 1024+ Cổng kết nối lại/quay vòng lặp JMX 7000 Cổng nội bộ các nút Cassandra 9160 Cổng giám sát JMX Cassandra Cổng đặc trưng OpsCenter
50031 OpsCenter HTTP proxy đối với Job Tracker
61620 Cổng giám sát các nút nội bộ OpsCenter 61621 Cổng agent OpsCenter
• Nút
Nhìn chung, khi bạn có tường lửa giữa các máy, rất khó để chạy JMX qua một mạng và bảo trì an ninh. Bởi vì kết nối JMX qua cổng 7199, bắt tay hai bên và
sau đó sử dụng bất cứ cồng nào trong dãy 1024+. Thay vì đó sử dụng SSH để
thực thi lệnh kết nối từ xa tới JMX cục bộ hoặc sử dụng DataStax OpsCenter.