1. Trang chủ >
  2. Kỹ thuật >
  3. Điện - Điện tử - Viễn thông >

6 Kiến trúc liên kết mạng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.52 MB, 50 trang )


Khi quyết định có bao nhiêu bản sao để cấu hình trong mỗi trung tâm dữ liệu, xem

xét chính là (1) đảm bảo dữ liệu được đọc tốt tại mỗi trung tâm dữ liệu, không có trễ, và

(2) kịch bản khi thất bại.

Hai cách phổ biến nhất để cấu hình các cụm trong nhiều trung tâm dữ liệu là:

 Tạo hai bản sao trong mỗi trung tâm dữ liệu. Cấu hình này đảm bảo khi 1 nút đơn

lẻ trong 1 nhóm nhân bản bị lỗi vẫn cho phép đọc được dữ liệu (ở một mức độ nhất

quán ONE).

 Tạo ba bản sao trong mỗi trung tâm dữ liệu. Cấu hình này sử dụng phục vụ các nhu

cầu truy cập thời gian thực.

Trong Cassandra khái niệm trung tâm dữ liệu và nhóm nhân bản là tương tự nhau, nhóm

nhân bản là nhóm các nút được cấu hình lại với nhau phục vụ cho việc nhân bản.

Với NetworkTopologyStrategy, vị trí bản sao được xác định độc lập trong mỗi trung tâm

dữ liệu (hoặc nhóm nhân bản). Bản sao đầu tiên tại mỗi trung tâm dữ liệu được đặt theo

các phân vùng (giống như với SimpleStrategy). Bản sao sau đó trong cùng một trung tâm

dữ liệu được xác định bằng cách tiến theo chiều kim đồng hồ cho đến khi một nút ở 1

rack khác từ nhân bản trước đó được tìm thấy. Nếu không có nút như vậy, bản sao bổ

sung sẽ được đặt trong cùng một rack. NetworkTopologyStrategy ưu tiên đặt các bản sao

lên các rack riêng biệt nếu có thể. Các nút trong cùng một rack (hoặc tương đương nhóm

vật lý) có thể dễ dàng lỗi cùng 1 thời gian do nguồn, lỗi phần cứng hoặc các vấn đề mạng.

Dưới đây là một ví dụ về cách NetworkTopologyStrategy đặt bản sao giữa hai trung tâm

dữ liệu với 4 nhân tố nhân bản (hai bản sao ở Trung tâm dữ liệu 1 và hai bản sao trong

Trung tâm dữ liệu 2):



18



19



2.7 Snitches

Snitch là một thành phần cấu hình của một cụm Cassandra được sử dụng để xác

định các nút được nhóm lại với nhau như thế nào trong cấu trúc liên kết mạng tổng thể

(rack và các nhóm trung tâm dữ liệu). Cassandra sử dụng thông tin này để định tuyến các

yêu cầu từ 1 nút một cách hiệu quả nhất có thể. Snitch không ảnh hưởng đến các yêu cầu

giữa các ứng dụng của khách hàng và Cassandra (Nó không kiểm soát client đang kết nối

đến nút nào).

Snitches được cấu hình cho một cụm Cassandra trong file cấu hình cassandra.yaml.

Tất cả các nút trong một cluster nên sử dụng cùng một cấu hình snitch. Khi gán thẻ bài,

gán chúng luân phiên (so le) cho các Rack, ví dụ: rack1, rack2, rack3, rack1, rack2,

rack3...



20



Các dạng Snitch

SimpleSnitch (Snitch đơn giản)

SimpleSnitch (mặc định) là thích hợp nếu bạn không có thông tin về rack hoặc

trung tâm thông tin dữ liệu có sẵn. Triển khai trung tâm dữ liệu duy nhất (hoặc một vùng

trong đám mây công cộng) thường rơi vào loại này. Nếu sử dụng snitch, dùng

replication_factor = <#> khi xác định phạm vi khóa của bạn. Snitch này không xác định

được thông tin về trung tâm dữ liệu hoặc rack.

DseSimpleSnitch

DseSimpleSnitch được sử dụng khi triển khai DataStax Enterprise (DSE). Nó phù

hợp với cấu hình Hadoop điều phối phân tích dữ liệu và các ứng dụng thời gian thực. Nó

có thể được sử dụng cho các cụm DSE hỗn hợp nằm trong một trung tâm dữ liệu vật lý.

Nó cũng có thể được sử dụng cho cụm DSE đa dữ liệu có chính xác 2 trung tâm dữ liệu,

với tất cả các nút phân tích trong cùng một trung tâm dữ liệu và tất cả các nút Cassandra

thời gian thực trong một trung tâm dữ liệu còn lại. Nếu sử dụng snitch, sử dụng Analytics

hoặc Cassandra là tên trung tâm dữ liệu mặc định khi định nghĩa khoảng không gian khóa.

21



RackInferringSnitch

RackInferringSnitch xác đinh cấu trúc liên kết của mạng bằng cách phân tích địa

chỉ IP của các nút. Snitch này giả định rằng các octet thứ hai xác định các trung tâm dữ

liệu chứa nút đó, và các octet thứ ba xác định các rack.



PropertyFileSnitch

PropertyFileSnitch xác định vị trí của các nút bằng cách sử dụng định nghĩa của

người dùng trong file: cassandra-topology.properties. Snitch này là tốt nhất khi IP của các

nút là không thống nhất hoặc bạn có yêu cầu nhân bản phức tạp. Xem Cấu hình

PropertyFileSnitch để biết thêm thông tin. Dùng Snitch này bạn có thể đặt tên trung tâm

dữ liệu của mình theo tên mong muốn được định nghĩa trong flie: cassandratopology.properties.

EC2Snitch

EC2Snitch dùng cho triển khai các cụm trên Amazon EC2, nơi mà tất cả các

cluster dàn trải trên nhiều vùng. Thay vì sử dụng địa chỉ IP của nút để suy ra vị trí nút,

Snitch này sử dụng API AWS để yêu cầu khu vực và phạm vi còn trống cho 1 nút. Khu

vực này được coi là trung tâm dữ liệu và các phạm vi còn trống chính là các rack trong

trung tâm dữ liệu. Ví dụ, nếu một nút ở trung tâm dữ liệu có tên us-east-1a, us-east thì vị

trí rack là 1a.

Dynamic Snitching (Snitching động)

Theo mặc định, tất cả snitches cũng sử dụng một lớp snitch động giám sát độ trễ

khi đọc, định tuyến các yêu từ client tránh xa các nút hiệu năng thấp. Snithc động được

kích hoạt theo mặc định, và được khuyến khích sử dụng trong tất cả các phạm vi.

Snitching động được cấu hình trong file cassandra.yaml cho mỗi nút.



22



2.8 Yêu cầu từ phía Client trong Cassandra

Các nút trong Cassandra là ngang hàng. 1 client đọc hay viết các yêu cầu có thể

làm việc với bất kỳ nút nào trong cụm. Khi một client kết nối đến một nút và đưa ra các

yêu cầu đọc hoặc viết, nút đóng vai trò là điều phối viên cho các hoạt động đó.

Điều phối viên hoạt động như một proxy giữa các ứng dụng khách hàng và các nút

(hoặc bản sao) chứa các dữ liệu được yêu cầu. Điều phối viên xác định nút nào trong vòng

sẽ nhận được các yêu cầu dựa trên cấu hình phân vùng cụm và chiến lược đặt vị trí bản

sao.

2.8.1 Yêu cầu ghi

Để ghi dữ liệu, điều phối viên gửi yêu cầu ghi cho tất cả các bản sao sở hữu hàng

đang được ghi. Miễn là tất cả các nút sao đang hoạt động và rảnh, chúng sẽ ghi dựa vào

consistency level trong yêu cầu của client. Mức độ nhất quán ghi xác định có bao nhiêu

nút nhân bản phải đáp ứng yêu cầu thì việc ghi mới được coi là thành công.

Ví dụ, trong một trung tâm dữ liệu của 1 cụm có 10 nút với nhân tố nhân bản là 3,

yêu cầu ghi sẽ đi đến tất cả 3 nút sở hữu hàng yêu cầu. Nếu mức độ thống nhất ghi theo

quy định của cliet là ONE, nút đầu tiên hoàn tất việc ghi sẽ báo về cho điều phối viên, sau

điều phối viên sẽ nhắn tin thành công lại cho client. Một mức độ nhất quán ONE có nghĩa

rằng nó có thể có 2 trong 3 bản sao có thể bỏ lỡ việc ghi nếu chúng đang down tại thời

điểm yêu cầu được đưa ra. Nếu 1 bản sao bỏ việc ghi, hàng dữa liệu đó sẽ được thực hiện

phù hợp sau đó thông qua một cơ chế tự sửa lỗi của Cassandra.



23



Truy vấn ghi tới trung tâm đa dữ liệu

Trong sự triển khai trung tâm đa dữ liệu, Cassandra tối ưu hiệu năng ghi bằng việc

chọn một nút điều phối trong mỗi trung tâm dữ liệu từ xa để xử lý những truy vấn tới các

bản sao trong trung tâm dữ liệu. Nút điều phối được liên hệ bởi ứng dụng Client chỉ yêu

cầu chuyển tiếp truy vấn ghi tới mỗi nút trong trung tâm dữ liệu từ xa.

Nếu sử dụng mức độ nhất quán là 1 hoặc LOCAL_QUORUM, thì chỉ những nút

trong cùng trung tâm dữ liệu với nút điều phối phải phản hồi lại truy vấn của Client là

truy vấn thành công. Theo cách này thì vị trí địa lý không ảnh hưởng tới thời gian phản

hồi truy vấn Client.



24



Xem Thêm
Tải bản đầy đủ (.pdf) (50 trang)

×