Viết bản ghi nhật ký vào vùng nhớ ổn địnhGiả thiết giao dịch T cập nhật trang P • Trường hợp tốt • Hệ thống viết P vào vùng nhớ ổn định • Hệ thống cập nhật vào nhật ký ổn định • SỰ CỐ xu
Trang 1CHƯƠNG V: PHỤC HỒI SỰ CỐ
Trang 2CHƯƠNG V XỬ LÝ SỰ CỐ
5.1 Các khái niệm và đo lường độ tin cậy
5.2 Các giao thức tin cậy cục bộ
5.3 Các giao thức tin cậy phân tán
Trang 35.1 Các khái niệm và đo lường độ
tin cậy
• Làm sao duy trì được tính nguyên tử và tính bền vững của giao dịch
Trang 5– Thường dùng để mô tả hệ thống không bị sửa chữa
hay thao tác làm việc găng ở đâu
Tính sẵn sàng
– Phần thời gian mà hệ thống gặp đặc tả của nó
– Xác suất hệ thống làm việc trong thời gian t đã cho
Trang 6CÁC ĐỊNH NGHĨA CƠ BẢN
• Failure (thất bại): Sự chuyển hướng một hệ thống khỏi mô
tả đã đặc tả của nó
• Erronous State(trạng thái lỗi): Trạng thái của hệ thống
trong đó tồn tại các hoàn cảnh việc xử lý hơn nữa theo thuật toán thông thường dẫn đến sự cố không định trước.
• Errors(lỗi): Một phần trạng thái làm việc không đúng
• Faults(sai sót): Lỗi trạng thái nội tại của các thành phần hệ thống hay thiết kê hệ thống.
Trang 7Từ sai sót đến thất bại
Sai sót Lỗi Thất bại
- Sai sót gây ra Lỗi
- Lỗi dẫn đến Thất bại
Trang 8CÁC NGUYÊN NHÂN LỖIMất hiệu lực
Mất hiệu lực logic
Mất hiệu lực vật lý
Các lỗi bởi người dùng
Mất bảng, bảng bị cắt xén bất thường
Xóa, cập nhật các hàng trong bảng một cách bất thường
Xóa một file dữ liệu hay mất một bảng bất thường
Thảm họa
Chiến tranh, khủng bố
Động đất, lũ lụt, cháy hoặc bão
Không có nguồn trong một thời gian dài
Sự cố server, phần cứng làm việc kém
Trang 9CÁC KIỂU SỰ CỐ
Sự cố giao dịch.
Giao dịch không thể hoàn tất do điều kiện lỗi bên trong nào đó Thoát các giao dịch (đơn phương hay do khóa chết )
Trang 10MÔ HÌNH SỰ CỐ
Cách tiếp cận:
• Bổ sung các kiểm tra mức thấp+ dư thừa để tăng mô
hình xác suất giữ tin cậy.VD: Nhân bản bộ nhớ đĩa (bộ nhớ ổn định)+ parity bộ nhớ + kiểm tra CPU
• Cần tính nguyên tử: Hoặc vân hành mọi hoạt động
giao dịch hoặc không gì cả
• Một giải pháp: nhật ký undo (biến đổi trung gian)
Trang 11Vấn đề cơ bản:giao dịch không kết thúc
Trang 13Trạng thái 1 Trạng thái 2
• Nhật ký được ghi đầu tiên vào bộ nhớ
• Không được ghi vào đĩa trên mỗi hoạt động
• Nhật ký luôn bám sát giá trị thay đổi đúng
Sử dụng nhật ký
: :
DB
Log Memory
Trang 14b Đo lường
MTBF: Thời gian trung bình giữa các sự cố MTTD: Thời gian trung bình để phát hiện MTTR: Thời gian trung bình để sửa
Trang 15Đo lường dung sai lỗi
• MTBF: Thời gian trung bình giữa các sự cố
•MTTR: Thời gian trung bình để sửa
•MTTR: Tính sẵn sàng:
Trang 16ĐO LƯỜNG TÍNH SẴN SÀNG
Có 3 độ đo cho độ sẵn sàng cao:
• THỜI GIAN ĐỂ PHỤC HỒI.(MTTR): Đo lường Thời gian trung bình
để khôi phục/nạp 1 hệ thống sau mỗi sự cố.
• THỜI GIAN GIỮA CÁC Sự Cố (MTBF)
• THỜI GIAN LÀM VIỆC TRONG MỘT NĂM (%) : Đo lường phần trăm
thời gian làm việc trên thời gian có sẵn trong năm
Bảng cho thấy thời gian không làm việc của hệ thống từ 5 phút đến 2 ngày T_up càng lớn càng tốt t_up/t_year=t_up/(t_up+t_down)
Trang 17CHƯƠNG V XỬ LÝ SỰ CỐ
5.1 Các khái niệm và đo lường độ tin cậy
5.2 Các giao thức tin cậy cục bộ
5.3 Các giao thức tin cậy phân tán
Trang 18Kiến trúc quản trị phục hồi cục bộ
• Vùng nhớ Volatile: Không còn sau khi sập hệ thống( VD: bộ nhớ
chính, bộ nhớ cache )
• Vùng nhớ Nonvolatile: Còn sau khi sập hệ thống (VD: disk, tape,
flash memory, non-volatile (dùng pin) RAM
• Vùng nhớ ổn định:( giống việc duy trì nhiều bản sao trên phương
tiện nonvolatile khác nhau).
– Thích hợp với các sự cố và mất mát bên trong, đáp ứng chỉ khi
sự cố phương tiện
– Thực hiện qua tổ hợp phần cứng (vùng nhớ non-volatile) và
phần mềm(ghi ổn định, đọc ổn định)
Trang 19TRUY NHẬP DỮ LIỆU
Việc chuyển các khối giữa đĩa và bộ nhớ chính
input(A) chuyển khối A trên đĩa vào bộ nhớ chính.
output(B) Chuyển khối bộ đệm B vào đĩa và thay thế tương ứng
Mỗi giao dịch Ti có vùng làm việc riêng, giữ các bản sao của mọi hạng mục dữ liệu được truy nhập bởi T i Bản sao cục bộ của T i hạng mục dữ liệu X là x i Giao dịch chuyển các hạng mục dữ liệu giữa các khối bộ đệm hệ thống và vùng làm việc riêng :
read(X) gán giá trị của hạng mục X cho biến cục bộ xi.
write(X) gán giá trị của biến cục bộ xi cho hạng mục dữ liệu {X} trong khôi bộ
đệm
Các giao dịch :
Thực hiện read(X) trong khi truy nhập X cho lần đầu tiên
Mọi truy nhập tiếp theo là đối với bản sao cục bộ.
Sau truy nhập cuối cùng, giao dịch vận hành write(X).
output(BX) không cần theo ngay sau write(X) Có thể thực hiện thao tác output khi thấy phù hợp.
Trang 20MINH HỌA TRUY NHẬP DỮ LIỆU
Trang 22a Thông tin phục hồi cập nhật trong vị trí:
Nhật ký csdl: Mọi hoạt động của giao dịch không chỉ thực hiện
mà còn được ghi vào một bản ghi nhật ký đối với một file nối liên tiếp
Trang 23Nhật ký
• Nhật ký chứa các thông tin được dùng bởi quá trình nạp lại tính nhất quán của hệ thống Thông tin bao gồm:
– Định danh giao dịch
– Kiểu thao tác(hoạt động)
– Các hạng mục được truy nhập bởi giao dịch
– Giá trị(trang thái) cũ của hạng mục (ảnh trước)
– Giá trị(trang thái) mới của hạng mục (ảnh sau)
Trang 25Giao thức REDO
• REDO : làm lại hoạt động đã thực hiện
• Căn cứ vào thông tin nhật ký thực hiện lai hoạt động trước
đó hoặc không làm gì do sự cố
• Thao tác REDO phát sinh ảnh mới
Trang 26Giao thức UNDO
• UNDO: Nạp lại đối tượng theo ảnh trước đó của nó
• Căn cứ vào thông tin nhật ký nạp lại giá trị cũ của đối tượng
Trang 27Viết bản ghi nhật ký vào vùng nhớ ổn định
Giả thiết giao dịch T cập nhật trang P
• Trường hợp tốt
• Hệ thống viết P vào vùng nhớ ổn định
• Hệ thống cập nhật vào nhật ký ổn định
• SỰ CỐ xuất hiện(trước khi T chuyển giao )
Phục hồi dùng nhật ký UNDO nạp lại P giá trị cũ
• Trường hợp không tốt
• Hệ thống viết P vào vùng nhớ ổn định
• SỰ CỐ xuất hiện(trước khi nhật ký ổn định được cập nhật)
Không thể phục hồi được vì không có cơ sở của giá trị cũ
• Giải pháp : Giao thức nhật ký viết trước ghi (WAL)
Trang 28Giao thức nhật ký viết trước ghi(WAL)
• Lưu ý:
– Nếu hệ thống lỗi trước khi giao dịch chuyển giao thì mọi thao tác phải UNDO.chỉ cần các ảnh trươc(phần undo của nhật ký)
– Ngay sau khi giao dịch đã chuyển giao, một vài hoạt động phải được làm lại(REDO) Cần các ảnh sau(phần redo của nhật ký)
Trang 29Giao tiếp ghi nhật ký
Trang 30b.Thông tin phục hồi cập nhật ngoài vị trí
• Shadow
– Khi cập nhật xuất hiện, không thay đổi trang cũ mà tạo
trang shadow với các giá trị mới và viết nó vào csdl ổn định
– Cập nhật đường truy nhập sao cho các truy nhập kế tiếp
đến trang shadow mới
– Trang cũ được duy trì để phục hồi.
Trang 32Điểm kiểm tra
• Đơn giản nhiệm vụ xác định các hoạt động của giao dịch cần undo hay redo khi sự cố xuất hiện
• Điểm kiểm tra chứa một danh sách các giao dịch tích cực
• Các bước:
– Viết bản ghi begin_checkpoint vào nhật ký
– Thu thập dữ liệu điểm kiểm tra vào vùng nhớ ổn định – Viết bản ghi end_checkpoint vào nhật ký
Trang 33Sự cố phương tiện-Kiến trúc đầy
đủ
Trang 35Các giao thức tin cậy phân tán
• Các giao thức chuyển giao
– Làm thế nào để vận hành lệnh chuyển giao các giao dịch phân tán – Đảm bảo tính nguyên tử và tính bền vững
• Các giao thức kết thúc
– Nếu sự cố xuất hiện, làm thế nào để các site liên quan làm việc bình
thường
– Không phong tỏa: Sự xuất hiện sự cố không nên buộc các site phải
chờ cho tới khi sự cố được khắc phục để kết thúc giao dịch.
• Các giao thức phục hồi:
– Khi sự cố xuất hiện, các site sự cố xuất hiện sẽ giải quyết thế nào? – Tính độc lập: Site sự cố có thể xác đinh kết quả logic của giao dịch
không cần đến thông tin từ xa
• Phục hồi độc lập: Kết thúc không phong tỏa
Trang 36Chuyển giao 2 pha (2 PC)
• Pha 1: Bộ phối hợp thu nhận sự sẵn sàng của các
thành viên cho việc viết kết quả vào csdl
• Pha 2: Mọi thành viên viết kết quả vào csdl
– Bộ phối hợp: Tiến trình ở site nơi giao dịch khởi tạo và
điều khiển vận hành.
– Thành viên: Tiến trình ở các site khác tham gia vào vận
hành giao dịch.
• Luật chuyển giao tổng thể:
– Bộ phối hợp thoát một giao dịch khi và chỉ khi ít nhất 1
thành viên đề xuất thoát giao dịch đó.
– Bộ phối hợp chuyển giao giao dịch khi và chỉ khi nếu mọi
thành viên đề xuất chuyển giao giao dịch đó.
Trang 37Chuyển giao 2 pha tập trung
Trang 38Các hoạt động giao thức chuyển giao 2 pha tập trung
Trang 39Chuyển giao 2 pha tuyến tính
Trang 40Chuyển giao 2 pha phân tán
Trang 41Chuyển tiếp trạng thái trong 2 PC
Trang 42Các sự cố site- Kết thúc 2 PC
• Vượt ngưỡng thời gian khi
KHỞI TẠO(INITIAL)
• Nút nào sẽ quan tâm
• Vượt ngưỡng thời gian khi
CHỜ(WAIT)
• Không thể chuyển giao đơn
phương
• Có thể thoát đơn phương
• Vượt ngưỡng thời gian trong
ABORT hay COMMIT
• Vẫn bị khóa và chờ xác nhận
Trang 43Các sự cố site- Kết thúc 2 PC
• Vượt ngưỡng thời gian khi
KHỞI TẠO (INITIAL)
• Bộ phối hợp có thể có lỗi
trong trạng thái khởi tạo
• Thoát đơn phương
• Vượt ngưỡng thời gian khi SẴN
SÀNG (READY)
• Vẫn bị khóa
Trang 44Các giao thức phục hồi 2 PC (Các
trường hợp bổ sung)
Phát sinh do tính không nguyên tử của nhật ký và thông điệp được gửi.
• Site của bộ phối hợp gặp sự cố sau khi viết nhật ký
“begin_commit” và trước khi gửi lệnh “prepare”
lệnh “send”
• Site thành viên gặp sự cố sau khi viết bản ghi “ready”
trong nhật ký trước khi “vote-commit” được gửi.
• Site thành viên gặp sự cố sau khi viết bản ghi “abort”
trong nhật ký trước khi “vote-abort” được gửi.
Trang 45Các giao thức phục hồi 2 PC (Các
trường hợp bổ sung)
• Site bộ phối hợp gặp sự cố sau khi ghi nhật ký bản ghi
quyết định cuối cùng nhưng trước khi gửi quyết định của nó đến các thành viên.
Bộ phối hợp xử lý như khi sự cố trong trạng thái COMMIT hay ABORT
Các thành viên xử lý nó như vượt ngưỡng thời gian trong trạng
thái READY.
• Site thành viên sự cố sau khi viết bản ghi “abort”
hay “commit” trong nhật ký nhưng trước khi xác nhận được gửi
Các thành viên xử lý như khi sự cố trạng thái ABORT
hay COMMIT
Bộ phối hợp sẽ điều khiển thành viên bằng thời gian
ngưỡng trong trạng thái ABORT hay COMMIT
Trang 46Những vấn đề với 2 PC
• Phong tỏa:
Ready chỉ ra các thành viên chờ bộ phối hợp.
Nếu bộ phối hợp sự cố, site bị khóa cho tới khi phục hồi
Phong tỏa giảm nhỏ tính sẵn sàng
• Không có khả năng phục hồi độc lập
• Ta biết
Các giao thức phục hồi độc lập chỉ tồn tại với sự cố site; giao thức phục hồi không độc lập tồn tại nhằm thích hợp các sự cố nhiều site
• Ta sẽ tìm kiếm giải pháp cho các giao thức này Giao thức 3 PC
Trang 47Chuyển giao 3 giai đoạn(3PC)
• 3PC là không phong toả
• Một giao thức chuyển giao là không phong tỏa khi và chỉ khi
– Nó được đồng bộ trong một chuyển đổi trạng thái, và
– Biểu đồ trạng thái của nó bao gồm:
• Không có trạng thái kề cả trạng thái “chuyển giao” và
Trang 48Các chuyển đổi trạng thái trong 3PC
Trang 49Cấu trúc truyền thông
Trang 50sự cố của site- Kết thúc 3 PC
• Thời gian ngưỡng trong
INITIAL : ai sẽ quan tâm ?
• Thời gian ngưỡng khi WAIT:
thoát đơn hướng
• Thời gian ngưỡng
PRE-COMMIT:
– Các thành viên có thể không trong
PRE-COMMIT, nhưng ít nhất trong trạng thái READY
– Chuyển toàn bộ các thành viên
đến trạng thái PRE-COMMIT
– Kết thúc bởi chuyển giao tổng thể
Trang 52Sự cố của site- Kết thúc 3 PC
• Thời gian ngưỡng trong INITIAL
– Bộ phối hợp phải có lỗi trong
trạng thái INITIAL
– Thoát đơn phương
• Vượt thời gian ngưỡng khi READY
– Bầu cử để chuyển giao nhưng
không biết quyết định của bộ phối hợp.
– Chọn ra một bộ phối hợp mới và
kết thúc bằng cách dùng một giao thức đặc biệt.
• Vượt thời gian ngưỡng trong
PRECOMMIT
– Điều khiển như vượt thời gian
ngưỡng trong trạng thái READY
Trang 53Giao thức kết thúc trong việc lựa chọn bộ phối hợp.
Bộ phối hợp mới có thể ở trong các trạng thái: WAIT, PRECOMMIT, COMMIT, ABORT
• Bộ phối hợp gửi trạng thái của nó đến tất cả các thành viên hỏi chúng
để nắm lấy trạng thái của nó
• Các thành viên “lưu lại” và trả lời với các thông điệp tương ứng , trừ
những gì có trong các trạng thái COMMIT và ABORT Những gì trong các trạng thái này đáp ứng với ACK nhưng vẫn giữ các trạng thái của chúng
• Bộ phối hợp hướng các thành viên đến chỗ kết thúc:
• Nếu bô phối hợp mới trong trạng thái WAIT, các thành viên có thể trong trạng
thái INITIAL, READY, ABORT hay PRECOMMIT Bộ phối hợp mới sẽ thoát tổng thể giao dịch
• Nếu bộ phối hợp mới trong trạng thái PRECOMMIT, các thành viên có thể
trong các trạng thái READY, PRECOMMIT hay COMMIT Bộ phối hợp mới sẽ chuyển giao tổng thể giao dịch.
• Nếu bộ phối hợp mới trong trạng thái ABORT hay COMMIT ở cuối pha đầu,
các thành viên sẽ chuyển đến trạng thái đó
Trang 54Sự cố của site- Phục hồi 3 PC
phối hợp mới và kết thúc giao dịch.
– Bộ phối hợp mới có thể trong các
trạng thái ABORT hay WAIT giao dịch phải thoát.
– Hỏi xung quanh về số mệnh của giao
Trang 55sự cố của site- Phục hồi 3 PC(…)
• sự cố trong ABORT hay COMMIT
– Không có gì đặc biệt nếu
mọi ACK đã được nhận; nếu khác đi, giao thức kết thúc được đưa vào
Trang 56sự cố của site- Phục hồi 3 PC(…)
• sự cố trong ABORT hay COMMIT
– Không cần làm gì
Trang 57• Không tồn tại giao thức không phong tỏa co giãn đến đa phân chia
Trang 58Các giao thức phục hồi độc lập
với việc phân chia mạng
• Không có giải pháp chung khả dĩ
• Cho phép một nhóm kết thúc trong khi các nhóm khác bị
khóa
• Cải thiện hiệu năng
• Xác định nhóm được xử lý như thế nào?
• Nhóm chiếm đa số
• Một nhóm biết nó là đa số như thế nào?
• Tập trung
• Phần nào chứa site trung tâm nên kết thúc giao dịch
• Dựa trên bầu cử(biểu quyết)
• Khác biệt với csdl nhân bản và không nhân bản
Trang 59Các giao thức biểu quyết cho csdl
• Trước khi một giao dịch chuyển giao , nó phải giành
• Trước khi một giao dịch thoát , nó phải giành được
Trang 60Những chuyển đổi trạng thái trong các giao
thức biểu quyết
Trang 61Các giao thức biểu quyết cho csdl
• Mỗi thao tác phải giành được 1 biểu quyết đọc(V r ) để đọc
và một biểu quyết ghi(V w ) để ghi hạng mục dữ liệu.
• Sau đó tuân theo các luật sau để xác định được biểu quyết
• Vr+Vw >V Một hạng mục dữ liệu không đọc và ghi bởi 2 giao dịch tương tranh
• Vw > V/2 Hai thao tác ghi từ 2 giao dịch không thể xuất hiện tương tranh trên cùng một hạng mục dữ liệu
Trang 62Sử dụng cho phân chia mạng
• Một biến thể đơn giản của luật ROWA
• Khi giao thức điều khiển nhân bản muốn đoc hay ghi một
hạng mục dữ liệu, trước hết nó kiểm tra xem liệu đa số các site trên cùng phân mạng với site mà giao thức đang chạy hay không (bằng cách kiểm tra số phiếu) Nếu được, vận hành luật ROWA trong phân mạng đó.
• Dựa trên giả thiết rằng sự cố được “dọn sạch” theo nghĩa :
• sự cố thay đổi topo mạng đã được phát hiện bởi mọi site
một cách đồng thời
• Mỗi site có một khung nhìn của mạng bao gồm mọi site
mà nó có thể truyền thông với nhau
Trang 63• Thay đổi các yêu cầu
• Chia xẻ cộng tác đối với chia xẻ cạnh tranh
• Các giao dịch tương tác
• Thời gian dài hơn
• Các thao tác phức tạp trên các dữ liệu phức tạp
• Nới lỏng các ngữ nghĩa
• Tiêu chuẩn không tuần tự hóa
Trang 64KẾT LUẬN
• Quản trị phục hồi sự cố cho phép co giãn hệ thống từ các kiểu sự cố nào đó và đảm bảo tính nguyên tử và bền vững cua các giao dịch
• Bộ quản trị phục hồi cục bộ(LRM) sử dụng các chiến lược ngoài vị trí hay trong vị trí gắn với cập nhật Trong trường hợp dùng chiến lược thay thế trong vị trí, nhật ký bổ sung được sử dụng để phục hồi
• Giao thức tin cậy phân tán phức tạp hơn đặc biệt trong các giao thức chuyển giao, kết thúc, và phục hồi
• Giao thức 2PC đầu tiên thu thập sự sẵn sàng từ các thành viên cho giao dịch(pha 1), sau đó hỏi các thành viên để ghi giao dịch(pha 2) 2PC là một giao thức phong tỏa.
• 3PC thu thập sự sẵn sàng từ các thành viên cho giao dịch (pha 1), tiền chuyển giao(precommit)/thoát giao dịch(pha 2)
và hỏi các thành viên để chuyển giao/thoát giao dịch(pha 3) 3PC là giao thức không phong tỏa