Professional Documents
Culture Documents
He Phan Tan-Bai 02p5-6
He Phan Tan-Bai 02p5-6
He Phan Tan-Bai 02p5-6
Distributed Systems
II. Các vấn đề cơ bản
1. Giới thiệu
Sự cố - lỗi:
Lỗi: là khi hệ thống không cung cấp dịch vụ như thiết kế
Trong hệ tập trung:
lỗi client => phạm vi ảnh hưởng ?
lỗi server => phạm vi ảnh hưởng ?
Hệ phân tán
lỗi từng phần là đặc điểm => ảnh hưởng đến 1 phần hệ thống
Nhu cầu thiết kế: đảm bảo khả năng phục hồi khi có lỗi
Giới thiệu
Chịu lỗi
Chịu lỗi:
Hệ thống vẫn vận hành (ở mức chấp nhận) ngay cả khi có sự cố
Hệ thống chịu lỗi => hệ thống là tin cậy - nếu đáp ứng
khả năng sẵn sàng phục vụ
độ tin cậy
độ an toàn
khả năng bảo trì
Giới thiệu
Mô hình lỗi
Trong hệ phân tán, lỗi có thể xảy ra ở: nút xử lý hoặc môi trường truyền thông
Theo tần suất
lỗi nhất thời
lỗi lặp
lỗi lâu dài
Theo mức độ
Lỗi nghiêm trọng
Lỗi xử lý (kh nhận được kết quả)
Lỗi thời gian
Lỗi kết quả xử lý
Lỗi bất thường
Giới thiệu
Che dấu lỗi
Hệ thống chịu được lỗi => cần che dấu được lỗi (client kh nhận biết có lỗi xảy ra)
Tính năng chịu lỗi gồm phòng chống và khắc phục lỗi
Thường dùng phương án dư thừa
dư thừa về thông tin: vd parity
dư thừa về thời gian: thực hiện lại
dư thừa tài nguyên: vd nhiều máy
Giới thiệu
Che dấu lỗi
Hệ thống chịu được lỗi => cần che dấu được lỗi (client kh nhận biết có lỗi xảy ra)
Tính năng chịu lỗi gồm phòng chống và khắc phục lỗi
Thường dùng phương án dư thừa
vd bên:
dư thừa phần cứng
có bộ chuyển mạch hay
load balancing
2. Tiến trình chịu lỗi
Tiếp cận thiết kế
Bên cạnh dư thừa tài nguyên vật lý, có thể sử dụng giải pháp phần mềm:
Giải pháp nhiều tiến trình vai trò như nhau => tạo thành nhóm xử lý
yc gửi tới => tất cả tiến trình thành viên nhận được
một tiến trình xử lý yc
Các tiến trình - cần phối hợp hoạt động => có nhiều phương án khác nhau:
ngang hàng, phân cấp, ..
2. Tiến trình chịu lỗi
Thỏa thuận trong hệ thống chịu lỗi
Có nhiều tiến trình => cần thỏa thuận để quyết định trong nhiều tình huống như:
phân chia nhiệm vụ, ghi dữ liệu, ..
Thực hiện thỏa thuận => cần quan tâm nhiều yếu tố như:
hệ đồng bộ, bất đồng bộ
độ trễ truyền tin
thứ tự thông điệp, ..
2. Tiến trình chịu lỗi
Thỏa thuận trong hệ thống chịu lỗi
một Giao thức thực hiện: hệ thống N tiến trình i = 1.. n
Tiến trình thứ i cung cấp giá trị vi cho các tiến trình khác
Mỗi tiến trình: xây dựng vector V[N],
• phần tử i V[i]= vi nếu tiến trình i không lỗi
Unkown nếu tiến trình i lỗi
Các bước của giao thức
1. Mỗi tiến trình gửi giá trị vi của mình cho các tiến trình còn lại
2. các Tiến trình nhận được => xây dựng vector V
3. Tiến trình gửi vector V cho các tiến trình khác
4. các Tiến trình nhận V: duyệt phần tử, với phần tử i
nếu phần lớn giá trị là vi => tiến trình i không lỗi, xây dựng vector kết quả V: V[i] = vi
ngược lại: tiến trình lỗi => V[i] = Unkown
2. Tiến trình chịu lỗi
Thỏa thuận trong hệ thống chịu lỗi
Ví dụ
giả sử tiến trình số 3 bị lỗi khi đó các thành viên
khác trong hệ thống cần phải đảm bảo tiến trình 3
có thực sự bị lỗi hay không.
Áp dụng các bước thực hiện trên, kết quả thực hiện
ở bước 2 sẽ bao gồm (1,2,x,4), (1,2,x,4), (1,2,y,4),
(1,2,z,4), tiếp tục thực hiện sẽ cho kết quả cuối cùng
tại các tiến trình 1, 2 và 4 như sau:
(1,2,Unknow,4),(1,2,Unknow,4),(1,2,Unknow,4),
vậy các tiến trình 1, 2 và 4 có thể đảm bảo chắc
chắn tiến trình số 3 đã bị lỗi.
2. Tiến trình chịu lỗi
Phát hiện lỗi
Là yêu cầu quan trọng trong khả năng chịu lỗi của hệ phân tán
Cần phát hiện lỗi kịp thời => có các biện pháp khắc phục
Có thể sử dụng thông tin trạng thái, ngưỡng (thời gian), ...
Cơ chế cơ bản: 2 hướng chính
chủ động gửi thông điệp hỏi đáp (alive , ping, probe)
thụ động nhận thông điệp từ tiến trình khác
3. Truyền thông khách chủ tin cậy
Truyền thông điểm - điểm
Sử dụng giao thức mạng tin cậy: TCP
Nếu lỗi trong truyền tin => sửa lỗi bởi TCP
Nếu hệ thống gặp sự cố => hệ thống phải khởi tạo lại kết nối
3. Truyền thông khách chủ tin cậy
F5
Lỗi trong cơ chế RPC Client F1
Nhân bản - quản lý các bản sao của dữ liệu (trên nhiều nút/máy tính)
ưu điểm: chống chịu sự cố, ko mất dữ liệu khi mất 1 bản sao vì còn1 bản sao khác/ khai thác nhanh hơn khi cần
Tại sao nhân bản dữ liệu
Nhân bản dữ liệu đem lại nhiều ưu điểm cho hệ phân tán. Một số động lực:
cải thiện hiệu năng
tính sẵn sàng
p - xác suất 1 nút gặp sự cố => n nút: tính sẵn sàng 1-p^n
chịu lỗi fault tolerance
1. Giới thiệu
Bộ phận xử lí quản lý các bản
sao
Mô hình hệ thống
Client: yc dịch vụ, dữ liệu đối tượng sử dụng
Front-end (FE): giao tiếp
đối tượng trung gian đứng ra tiếp
• tiếp nhận yc và trả kết quả nhận yêu cầu và trả lại kết quả cho
client.
• giao tiếp với server/replica => client kh cần biết bên trong phía server - đảm bảo
tính trong suốt
Server:
• phân hệ quản lý nhân bản Replica manager (RM)
• giả định replica manager duy trì bản sao có thể phục hồi (đảm bảo tính toàn vẹn) và
đầy đủ dữ liệu/đối tượng
1. Giới thiệu
Có thể phân thành 5 bước xử lý 1 yc
0/ client gửi yc => tới font end
1/ FE gửi yc tới 1 hay nhiều RM
+ có thể giao tiếp với 1 RM =>
đến lượt RM giao tiếp với các RM khác
+ có thể gửi thông điệp multicast tới nhiều RM
2/ Điều phối: RM chuẩn bị xử lý yêu cầu đảm bảo toàn vẹn
xem xét xử lý hay từ chối phục vụ yc
xem xét thứ tự yc so với các yc khác (FIFO, nhân quả-causal ordering, total ordering)
3/ Xử lý yc, đảm bảo khả năng kết thúc commit hoặc hủy abort
4/ Đồng thuận: đồng thuận về ảnh hưởng-kết quả của yc
5/ Trả kết quả: trả kết quả cho FE để trả lại client
Mô hình replication
Passive replication
Tập các RM:
có 1 RM đóng vai trò chính - primary,
lưu bản gốc
các RM khác vai trò lưu bản sao - slave
đồng bộ 1 chiều từ RM primary tới spave
Quá trình
request: FE gửi yêu cầu tới RM primary
coordinate: RM primary tiếp nhận, sắp xếp
exec: RM primary xử lý
agreement: RM primary commit/abort cập nhật tới các slave RM
response: RM primary phản hồi kết quả
Mô hình replication
Active replication
Nhóm các RM đóng vai trò như nhau
các RM đều xử lý yêu cầu
Nếu có RM lỗi ?
=> FE tập hợp kết quả và tính biểu quyết
Quá trình
request: FE gán id duy nhất cho yc & gửi multicast tới các RM
coordinate: yc được gửi tới các correct RM theo thứ tự total order
exec: tất cả RM xử lý, do total order => kết quả như nhau nếu RM là tốt-correct
agreement: không cần
response: các RM gửi tới FE, FE xử lý (biểu quyết), trả phản hồi cho client