Lập kế hoạch cho một cụm Amazon EC2

Một phần của tài liệu hệ cơ sở dữ liệu phân tán cassandra (Trang 29 - 31)

2. Kiến trúc Cassandra

2.9.2Lập kế hoạch cho một cụm Amazon EC2

2.9 Lập kế hoạch triển khai cụm Cassandra

2.9.2Lập kế hoạch cho một cụm Amazon EC2

Các cụm Cassandra có thể được triển khai trên các hạ tầng đám mây như Amazon EC2.

Đối với các cụm Cassandra trên EC2, sử dụng trường hợp lớn hoặc rất lớn với nơi lưu trữ cục bộ. RAID0, đặt cả thư mục dữ liệu và bản ghi cam kết trên cùng đĩa RAID0. Trong thực tế điều này đã chứng minh là tốt hơn đặc bản ghi cam kết trên đĩa gốc (nơi mà

tài nguyên dùng chung). Đối với dữ liệu dự phòng, xem xét việc triển khai cụm Cassandra

qua nhiều vùng sẵn có và sử dụng đĩa EBS để lưu các tệp dữ liệu dự phịng Cassandra.

Đĩa EBS khơng được tư vấn để lưu trữ dữ liệu Cassandra – vì hiệu năng mạng và truy nhập vào ra đĩa không phù hợp với Cassandra vì những lý do sau:

-Đĩa EBS tranh đấu trực tiếp về thơng lượng mạng với những gói tin chuẩn. Có nghĩa là thơng lượng EBS có khả năng lỗi nếu bạn bão hòa một liên kết mạng.

- Đĩa EBS có hiệu năng khơng tin cậy. Hiệu năng I/O có thể chậm một cách đặc biệt,

gây ra cho hệ thống đọc và ghi lại đến tận khi toàn bộ cụm trở thành không phản hồi. - Việc tăng thêm công suất bằng cách tăng số lượng đĩa EBS cho mỗi máy chủ khơng mở rộng.

DataStax cung cấp một hình ảnh máy Amazon (AMI) cho phép bạn nhanh chóng

triển khai cụm Cassandra nhiều nút trên Amazon EC2. DataStax AMI khởi tạo tất cả các nút trong một vùng sẵn có sử dụng SimpleSnitch.

Nếu bạn muốn một cụm EC2 mà mở rộng nhiều vùng và khu vực sẵn có, thì khơng sử dụng DataStaxAMI. Thay vì đó , khởi tạo EC2 cho mỗi nút Cassandra và sau đó cấu

hình cụm như là một cụm trung tâm đa dữ liệu.

Tính tốn dung lượng đĩa sử dụng

Để tính tốn số lượng dữ liệu mà các nút Cassandra lưu trữ, tính tốn dung lượng đĩa có thể sử dụng trên mỗi nút, và sau đó nhân với số lượng nút trong cụm. Nhớ rằng

trong một cụm, phạn sẽ có bản ghi cam kết và các thư mục dữ liệu trên các đĩa khác nhau. Tính tốn này là cho việc ước lượng dung lượng sử dụng của khối lượng dữ liệu.

Bắt đầu với dung lượng thô của ổ đĩa vật lý: raw_capacity = disk_size * number_of_disks

Tính tốn cho hao phí định dạng hệ thống tập tin (khoảng 10%) và mức RAID đang

sử dụng. Ví dụ, sử dụng RAID-10, tính tốn sẽ là: (raw_capacity * 0.9) / 2 = formatted_disk_space

Trong hoạt động thông thường, Cassandra thường xuyên yêu cầu dung lượng ổ đĩa cho sự gắn kết lại và các hoạt động sửa chữa. Đối với hiệu suất tối ưu, DataStax khuyến cáo rằng bạn không nên dùng hết dung lượng ổ đĩa của bạn, nhưng có thể chạy ở 50-80% cơng suất. Vậy, tính tốn cho khơng gian đĩa như sau (ví dụ sử dụng 50%cơng suất): formatted_disk_space * 0.5 = usable_disk_space

Tính tốn kích thước dữ liệu người dùng

Như với tất cả các hệ thống lưu trữ dữ liệu, kích thước của dữ liệu thơ sẽ lớn hơn

khi dữ liệu được nạp vào trong Cassandra do hao phí lưu trữ. Trung bình, dữ liệu thơ sẽ lớn gấp khoảng 2 lần kích thước trên đĩa sau khi đã tải vào cơ sở dữ liệu, nhưng có thể nhỏ hơn hoặc lớn hơn nhiều phụ thuộc vào đặc trưng của dữ liệu và các thuộc tính cột. Tính tốn trong phần này là tính tốn cho dữ liệu ở trên đĩa chứ khơng phải dữ liệu lưu

trong bộ nhớ.

- Hao phí cột: Mỗi cột trong Cassandra yêu cầu sử dụng 15 byte hao phí. Vì mỗi dịng trong một cột thuộc tính có thể có tên các cột khác nhau cũng như giá trị của cột khác nhau, siêu dữ liệu được lưu trữ trong mỗi cột. Đối với cột đếm và cột hết hiệu lực, thêm 8 bít mở rộng. Vì thế tổng kích thước của một cột thông thường là:

total_column_size = column_name_size + column_value_size + 15

- Hao phí dịng: Giống như cột, mỗi dịng cũng có hao phí khi lưu trữ trongổ đĩa. Mỗi

dịng trong Cassandra có 23 byte hao phí.

- Khóa chính: Mỗi cột cũng duy trì một chỉ số chính. Chi phí khóa chính trở nên quan trọng khi bạn có nhiều hàng gầy . Kích thước của khóa chính được ước lượng như sau (theo byte):

primary_key_index = number_of_rows * (32 + average_key_size)

- Chi phí bản sao: Các yếu tố bản sao đóng vai trò quan trọng trong trường hợp xác

định bao nhiêu dung lượng đĩa được sử dụng. Đối với bản sao bằng 1 thì khơng có chi (adsbygoogle = window.adsbygoogle || []).push({});

phí cho bản sao. Nếu số lượng bản sao lớn hơn 1, thì yêu cầu lưu trữ dữ liệu tổng bao gồm cả chi phí bản sao:

Một phần của tài liệu hệ cơ sở dữ liệu phân tán cassandra (Trang 29 - 31)