Nhóm dịch hệ phân tán –Lớp MTT K50 DHBKHN Nhóm dịch hệ phân tán –Lớp MTT K50 DHBKHN Chương 6 Đồng bộ hóa 1 Thuật toán tập trung Cách dễ hiểu nhất để đạt được sự loại trừ lẫn nhau trong hệ thống phân t[.]
Nhóm dịch hệ phân tán –Lớp MTT- K50 - DHBKHN Chương : Đồng hóa Thuật tốn tập trung: Cách dễ hiểu để đạt loại trừ lẫn hệ thống phân tán giả lập cách thực hệ thống Bộ xử lý Một tiến trinh bầu điều phối Bất lúc tiến trình muốn truy cập tài nguyên chia sẻ, gửi thông điệp yêu cầu tới điều phối thống kê xem loại tài nguyên mà tiến trình muốn truy cập xin phép truy cập Nếu tiến trình truy cập tào ngun, điều phối gửi lại tiến trình xin phép thông điệp cho phép truy cập hệ thống Ưu điểm tính chất: Dễ dàng thấy giải thuật đảm bảo loại trừ lẫn nhau: điều phối để tiến trình truy cập tài nguyên thời điểm Điều tốt yêu cầu chấp nhận theo thứ tự mà chúng nhận Khơng có tiến trình phải đượi vơ thời hạn Sự xắp xếp dễ thực thi yêu cầu thông điệp cho lần sử dụng tài nguyên (gồm: yêu cầu truy nhập tài nguyên, cho phép giải phóng tài nguyên) Điều tạo giải pháp hấp dẫn cho nhiều tình thực tế Hạn chế: - Nếu điều phối lỗi, hệ thống thực thể bị down Nếu tài nguyên làm trở ngại cách bình thường sau tạo u cầu chúng khơng thể phân biệt điều phối chết với từ chối truy cập trường hợp không thông điệp quay lại - Trong hệ thống lớn, điều phối đơn trở thành thắt cổ chai Sự đơn giản giải thuật nhiều trường hợp mang lại nhiều trở ngại Thuật tóan khơng tập trung Thuật tóan đề cửa sử dụng hệ thống dựa DHT Giải pháp mở rộng phân phối tập trung theo cách sau: Mỗi tài nguyên gán n lần Mỗi có phân phối để điều khiển việc truy nhập tiến trình thực thi đồng thời Dù vậy, tiến trình muốn truy cập tài nguyên phải cho phép m >= n/2 điều phối Không giống giải pháp tập trung đưa trên(trong trường hợp b ví dụ), điều phối không đưa đồng ý để truy cập tài ngun, cho tiến trình u cầu tài ngun biết Khi điều phối bị hỏng, nhanh chóng khơi phục lại khơng nhớ số vote mà có trứoc đó., hay nói cách khác điều phối tự khởi động lại thời điểm mà lỗi xảy Nếu yêu cầu truy cập tài nguyên bị từ chối trả lại biến thời gian chờ chọn ngẫu nhiên cố thực lần sau Vấn đề thuật tóan có nhiều nút muốn truy cập đến tài nguyên hệ thống nhanh chóng lỗi, hay nói cách khác có có nhiều nút hồn thành việc truy câp khơng nút có đủ n/2 bầu chọn để rời khỏi tài ngun khơng sử dụng 6.3.4 Thuật tóan phân tán Khi tiến trình muốn truy cập vào tài ngun chia sẻ, tạo thơng điệp bao gồm tên tài nguyên, số xử lý thời gian(theo logic) Sau gửi thơng điệp tới tiến trình khác Việc gửi thông điệp đáng tin cậy thơng điệp bị Khi tiến trình nhận thơng điệp u cầu từ tiến trình khác, ứng xử phụ thuộc vào trạng thái với tài ngun đặt tên thơng điệp Có trường hợp khác phân biệt rõ ràng: Nếu bên nhận không không muốn truy nhập vào tài ngun, gửi lại thơng điệp OK tới bên gửi Nếu bên nhận vừa truy cập tài ngun, đơn giản khơng phản hồi lại thơng điệp u cầu, thay vào đó, xếp hàng thơng điệp u cầu Nếu bên nhận muốn truy cập tài nguyên chưa phép, so sánh nhãn thời gian (timestamp) thông điệp gửi đến với timestamp chứa thông điệp mà gửi cho tiến trình khác Nếu thơng điệp đến có timestamp thấp hơn, bên nhận gửi thơng điệp OK, khơng khơng gửi Sau gửi gói tin u cầu cho phép, tiến trình đợi đến tiến trình khác cho phép sau tiến trình cho phép, tiến trình truy cập tài nguyên Khi kết thúc, gửi thơng điệp OK đến tất tiến trình khác hàng đợi xóa nội dung hàng đợi Giải thích ví dụ: Tiến trình gửi u cầu với timestamp = đến tất tiến trình Trong thời điểm đó, tiến trình làm tương tự với timestamp = 12 Tiếng trình khơng muốn truy cập tài ngun, gửi OK đến bên gửi Cả tiến trình nhận xung đột so sánh timestamp Tiến trình thua phải gửi thơng điệp OK Tiến trình 0truy cập vào tài nguyên xếp tiến trình vào hàng đợi để xử lý truy cập tài nguyên Sau kết thúc, loại bỏ yêu cầu từ tiến trình khỏi queue gửi thơng điệp OK đến tiến trình cho phép thực Hạn chế: - Khi tổng số lượng tiến trình hệ thống n u cầu 2(n-1) thơng điệp cho thực thể - Nếu tiến trình lỗi, gây lỗi thơng điệp phản hồi yêu cầu khiến toàn tiến trình tiến vào vùng giới hạn - Thuật tốn chậm, phức tạp chi phí đắt mạnh mẽ thuật tóan tập trung 6.3.5 Giải thuật vòng với thẻ (TokenRing Algorithm) Giả thiết tất tiến trình xếp vịng trịn logic, tiến trình đánh số biết đến tiến trình cạnh Hình Ví dụ theo giải thuật vòng với thẻ Bắt đầu trình truyền, tiến trình trao thẻ Thẻ lưu hành xung quanh vịng trịn logic Nó chuyển từ tiến trình k đến tiến tr ình (k+1) cách truyền thơng điệp điểm – điểm Khi tiến trình giành thể từ tiến trình bên cạnh kiểm tra xem vào vùng tới hạn hay khơng Nếu khơng có tiến trình khác vùng tới hạn vào vùng tới hạn Sau hồn thành phần việc nhả thẻ ra, thẻ di chuyển tự vịng trịn Nếu tiến trình muốn vào vùng tới hạn giữ lấy thẻ bài, khơng thẻ truyền qua Hạn chế: Vấn đề lớn thuật toán truyền thẻ thẻ có thẻ bị mất, phải sinh lại thẻ việc dị tìm lại thẻ khó Chương 7: 7.1.1 Có lý để thực việc nhân liệu Để tăng tín tin cậy cho hệ thống : Trong trình đọc ghi liệu , bị hỏng lý khơng sẵn sàng để dùng ta sử dụng khác Tránh việc sử dụng liệu sai lạc, khơng xác Để tăng hiệu hệ thống : Tăng quy mô hệ thống số lượng lẫn phạm vi địa lý Ví dụ số lượng máy tăng => tải máy hệ phân tán ko tăng lên nhiều phạm vi địa lý tăng => sử dụng nhân gần khu vực địa lý Một giá phải trả cho việc nhân liệu phải chắn cập nhật tất cịn lại phải cập nhật theo để đảm bảo tính quán liệu Điều ảnh hưởng lớn đến hiệu hệ thống Ví dụ : sử dụng chương trình xem web => liệu ghi vào nhớ máy tính ( ) , trang web nội dung thay đổi người dùng xem nội dung máy => cũ Vấn đề đồng liệu máy khách máy chủ Có hướng tiếp cận cho việc nhân đối tượng Ứng dụng tự chịu trách nhiệm nhân Do ứng dụng cần giải vấn đề quán Hệ thống (middleware) đảm trách việc nhân Vì vấn đề quán middleware đảm trách Hướng đơn giản hóa cho việc phát triển ứng dụng lại khiến giải pháp đặc tả đối tượng trở nên phức tạp 7.2 Các mơ hình qn lấy liệu làm trung tâm Mơ hình qn sử dụng rộng rãi mơ hình lấy liệu làm trung tâm Trong mơ hình này, người sử dụng truy cập vào kho liệu nhìn thấy thao tác xếp theo mơ hình Điều trái ngược với mơ hình lấy client làm trung tâm nơi client yêu cầu mơ hình qn cụ thể client khác nhìn thấy thao tác theo trật tự khác Kho liệu đọc hay ghi tiến trình hệ phân tán Tuy nhiên liệu ghi vào cục phải đảm bảo truyền tới tất xa Vì ngun nhân mà mơ hình qn đời, mục đích để giúp hiểu rõ chế khác sử dụng để thực phần việc Một mơ hình qn coi hợp đồng kho liệu hệ phân tán với các tiến trình Nếu tiến trình đồng ý với điều khoản hợp đồng kho liệu hoạt động tiến trình mong muốn 7.2.1 Nhất quán tuyến tính Phương pháp hoạt động dựa việc xác định xem việc ko quán chấp nhận dựa vào việc xác định thông tin sau : Độ lệch số Độ lệch theo trạng thái Độ lệch thứ tự lần cập nhật Như hệ thống quy định độ lệch Nếu phiên cập nhật mà độ lệch chưa đạt tới giá trị quy định khác coi quán ko phải thực cập nhật Độ lệch số : thường sử dụng với chương trình có liệu số Có dạng độ lệch độ lệch tương đối độ lệch tuyệt đối Có thể xác định số xác định số lượng cập nhật cho Độ lệch trạng thái : liên quan đến thời gian cuối cập nhật Với số ứng dụng chấp nhận liệu cũ , miễn ko cũ vd : dự báo thời tiết , máy chủ liên tục nhận thông tin thời tiết đồng bồ 30’ lần … Độ lệch thứ tự cập nhật : thứ tự cập nhật phép khác khác khác giới hạn Khi nhận yêu cầu cập nhật , tạm thời cập nhật chờ đồng ý khác q trình cập nhật Như cần có thêm phụ để không nhận đồng ý cập nhật khác quay lại cũ Có thể sau nhiều lần cập nhật tạm thời cập nhật lâu dài Tóm lại , sử dụng khác nằm giới hạn chấp thuận Một cách khác cập nhật chờ để xác nhận trước cập nhật lên tất khác => thứ tự cập nhật rắc rối Cách làm cần lưu trữ thêm để quay lại cập nhật không chấp thuận Conit : Consistent Unit 7.2.2 Nhất quán theo thứ tự thực Các mơ hình qn mục đề cập đến : cập nhật tạm cần đồng , yêu cầu đồng ý “ thứ tự cập nhật chung “ cần đồng ý cho cập nhật ( thứ tự cập nhật ) a.Nhất quán Một kho liệu gọi quán thỏa mãn yêu cầu sau : “Kết thực thao tác (đọc ghi) tất tiến trình lên liệu thực môt cách thao tác tiến trình xuất chuỗi thao tác phải theo thứ tự chương trình nó” Vd : với tiến trình Với tiến trình : b.Mơ hình qn nhân Nhất qn nhân mơ hình yếu qn tuần tự, mơ hình quan tâm đến thao tác ghi có quan hệ nhân với “Các thao tác ghi có quan hệ nhân tiềm phải nhìn thấy tất tiến trình theo trật tự, cịn thao tác ghi đồng thời nhận biết theo thứ tự khác máy khác nhau” Hai thao tác ghi coi có quan hệ nhân qủa với việc thực thao tác có khả gây ảnh hưởng đến liệu ghi thao tác Đặc biệt, hai thao tác coi có quan hệ nhân với nếu: Một thao tác đọc có quan hệ nhân với thao tác ghi cung cấp liệu cho Một thao tác ghi có quan hệ nhân với thao tác đọc xảy trước tiến trình Nếu write1 ® read read ® write2 write1 ® write2 Nếu thao tác khơng có quan hệ nhân với chúng coi xảy đồng thời Các thao tác đọc đồng thời thực theo trật tự miễn chúng tuân theo trình tự chương trình c Nhóm hoạt động Một thao tác yêu cầu để truy cập vào biến đồng hóa khơng phép thực tiến trình tất cập nhật lên liệu bị gác tiến trình thực Trước truy cập chế độ dành riêng tiến trình tới biến đồng hóa phép thực khơng tiến trình khác cịn giữ biến đồng hóa, chế độ khơng dành riêng khơng cần u cầu Sau truy cập chế độ dành riêng lên biến đồng hóa thực truy cập tiến trình khác chế độ khơng dành riêng lên biến khơng thực chủ nhân biến đồng thực xong việc truy cập Điều kiện nói : Khi tiến trình có u cầu u cầu khơng thực tất cập nhật thực liệu chia sẻ Nói cách khác liệu phải đồng trước thực yêu cầu Điều kiện thứ nói q trình cập nhật tiến trình thực cập nhật chuyển sang chế độ độc quyền để không cho phép tiến trình khác can thiệp vào trình cập nhật ( tiến trình cập nhật khác … ) Điều kiện thứ ba nói trình muốn vào khu vực quan trọng chế độ khơng độc quyền, trước tiên phải kiểm tra với chủ sở hữu biến đồng hóa bảo vệ khu vực quan trọng để lấy gần chia sẻ liệu bảo vệ Chương 8.1.1 Basic Concepts ( Các khái niệm bản) Một hệ thống có khả chịu lỗi hệ thống đảm bảo yêu cầu sau: Tính sẵn sàng Tính tin cậy Tính an tồn Khả trì (maintainability) Tính sẵn sàng nghĩa hệ thống sử dụng Nói chung điều thể khả hệ thống hoạt động xác thời điểm sẵn sàng thực chức Tính tin cậy nghĩa hệ thống chạy liên tục mà khơng phát sinh lỗi Khác với tính sẵn sàng, hệ thống tin cậy cao hệ thống hoạt động liên tục mà khơg có gián đoạn khoảng thời gian dài Đây khác biệt k hó nhận quan trọng đem so sánh với tính sẵn sàng Nếu hệ thống tr ạng thái down milisecond giờ, tính sẵn sàng đạt đến 99.9999 phần trăm hệ thống không tin cậy Ngược lại hệ thống không đổ vỡ luôn trạng thái down tuần tháng hệ thống tin cậy cao n hưng lại đạt 96% sẵn sàng Tính tin cậy tính sẵn sàng khơng giống Tín h an toàn thể chỗ hệ thống tạm thời bị lỗi, khơng có thiệt hại nghiêm trọng xảy Chẳng hạn nhiều hệ thống điều khiển tiến trình hệ thống dùng để điều khiển n hà máy hạt nhân hay đưa người vào vũ trụ yêu cầu độ an toàn cao Nếu hệ thống điều khiển bị lỗi khoảng thời gian ngắn, hậu thảm khốc Nhiều ví dụ khứ chứng tỏ khó để xây dựng hệ thống an tồn Cuối cùng, tính trì thể chỗ hệ thống lỗi sửa cách dễ dàng Một hệ thống có tính trì cao có tính sẵn sàng cao, đặc biệt nều lỗi phát sửa chữa cách tự động Tuy nhiên thấy sau c hương này, việc tự động phục hồi lỗi khó Thơng thường hệ thống đáng tin cậy đòi hỏi phải cung cấp độ an ninh an toàn cao, đặc biệt đến vấn đề tính toàn vẹn Chúng ta thảo luận an ninh, an toàn chương Một hệ thống bị coi lỗi khơng thể thực chức thơng thường Cụ thể hệ phân tán thiết kế để cung cấp số dịch vụ, hệ thống lỗi khơng thể cung cấp dịch vụ Rõ ràng việc tìm ngun nhân gây lỗi quan trọng Chẳng hạn môi trường truyền khơng tốt dễ dàng ảnh hưởng đến Trong trường hợp này, xóa bỏ lỗi dễ dàng Tuy nhiên lỗi truyền bị gây điều kiện thời tiết xấu (ví dụ tron mạng wireless) Thay đổi thời tiết để ngăn chặn lỗi giải pháp không khả thi Việc xây dựng hệ thống tin cậy liên quan chặt chẽ đến việc xử lý lỗi Với chúng ta, điều quan trọng tính chịu lỗi, nghĩa hệ thống cung cấp dịch vụ vấn tồn lỗi Nói cách khác, hệ thống chịu lỗi tiếp tục hoạt động cách bình thường Lỗi thường chia thành loại: thời, liên tiếp lâu dài Lỗi thời xuất lần biến Nếu trình hoạt động lặp lại, lỗi khơng xuất Lỗi liên tiếp tình trạng hoạt động khơng ổn định, lỗi lặp lặp lại nhiều lần Lỗi liên tiếp nguyên nhân hậu nghiêm trọng khó tìm ngun nhân Lỗi lâu dài lỗi khắc phục thành phần gây lỗi thay thế, ví dụ cháy nổ chip, lỗi phần mềm, lỗi ổ đĩa 8.1.2 Fault Models ( Mô hình chịu lỗi) Một hệ thống lỗi khơng cung cấp đầu đủ dịch vụ thiết kế Nếu coi hệ phân tán tập server giao tiếp với với client nó, khơng cung cấp đầy đủ dịch vụ nghĩa server, kênh truyền thông, không thực nhiệm vụ Tuy nhiên server hoạt động sai chức chưa nguyên nhân gây lỗi mà mắc phải Nếu server phụ thuộc vào server khác để cung cấp đầy đủ dịch vụ nó, nguyên nhân lỗi cần phải tìm kiếm nơi khác ngồi server đó, server bị lỗi Mối quan hệ phụ thuộc xuất thường xuyên hệ phân tán Một đĩa cứng bị lỗi ảnh hưởng đến file server thiết kế để cung cấp hệ thống file có tính sẵn sàng cao Nếu file server phần hệ sở liệu phân tán, hoạt động xác hệ tồn hệ sở liệu bị đe dọa phần liệu truy cập Để hiểu rõ thực tế lỗi nghiêm trọng đến mức nào, người ta đưa vài cách phân loại Một số hình 8-1 sau: 1)Crash failure xảy server ngừng hoạt động sớm mong đợi, làm việc xác dừng Một ví dụ điển hình trường hợp hệ điều hành gặp phải lỗi nghiêm trọng, có giải pháp khởi độ ng lại Nhiều hệ thống máy tính cá nhân gặp phải crash failure thường xuyên người phải cho chuyện bình thường Đó lí người ta chuyển phím reset máy tính cá nhân từ mặt sau mặt trước máy tính Có lẽ ngày chuyển lại phía sau, chí bị loại bỏ hồn tồn 2)Omission failure xảy server khơng có khả phản hồi nhận yêu cầu Trong trường hợp lỗi nhận u cầu, có khả server khơng nhận yêu cầu lần Chú ý kết nối client server đ ã tạo khơng có lng lắng nghe request đến Hơn lỗi nhận u cầu nói chung khơng ảnh hưởng đến trạng thái server server khơng nhận biết có thơng điệp gửi cho Tương tự vậy, lỗi gửi tin xảy server hồn thành cơng việc nó, lý mà khơng thể gửi phản hồi Những lỗi xảy ra, chẳng hạn gửi buffer overflows server khơng chuẩn bị cho tình đó.Chú ý ngược với lỗi nhận yêu cầu, server trạng thái thực xong dịch vụ cho client Do việc phản hồi u cầu khơng hoàn tất, client phải gửi lại yêu cầu Một loại omission failure khác khơng liên quan đến kết nối gây lỗi phần mềm vịng lặp vơ tận quản lý nhớ không hợp lý dẫn đến server bị treo Một loại lỗi khác timing failure 3)Timing failure xảy tin phản hồi gửi khoảng thời gian khơng thích hợp Như biết chương 4, gửi liệu sớm dễ dàng gây rắc rối cho phía nhận má y nhận không đủ không gian nhớ đệm để lưu giữ tất liệu đến Tuy nhiên thực tế thường xảy trường hợp server phản hồi chậm dẫn đến giảm hiệu hệ thống Một loại lỗi nghiêm trọng lỗi 4)respond failure, nghĩa tin phản hồi server khơng thích hợp Có loại lỗi phản hồi xảy value failure state tran sition failure Value failure server cung cấp phản hồi sai cho yêu cầu Chẳng hạn serach engine đưa kết tìm kiếm trang web khơng liên quan tới từ khóa tìm kiếm State transition failure xảy khơng có tiêu chuẩn đưa để điều khiển tin Cụ thể trường hợp server lỗi có định mặc định không hợp lý Lỗi nghiêm trọng 5)arbitrary failure, biết đến Byzantine failure Lỗi xảy server tạo output mà bình thường khơng tạo ra, sau kết hợp với server khác để câu trả lời sai Arbitrary failure có quan hệ chặt chẽ với crash failure Crash failure gọi failstop failure, loại lỗi gây thiệt hại server ngừng hoạt động Trong thực tế, fail-stop failure server ngừng tạo output nhờ mà tiến trình khác nhận thấy ngừng hoạt động Trong trường hợp tốt nhất, server thơng báo ngừng hoạt động Dĩ nhiên thực tế, server ngừng hoạt động omission failure crash failure khơng báo trước chuẩn bị ngừng hoạt động Các tiến trình khác có nhiệm vụ xác định server ngừng Tuy nhiên failsilent systems vậy, tiến trình khác server ngừng hoạt động, thay vào nghĩ server chạy chậm, dẫn đến performance failure Cuối cùng, có nhiều trường hợp mà server đưa output ngẫu nhiên, output nhận biết tiến trình khác Server thể arbitrary failure theo cách vô hại Lỗi gọi fail-safe Chương 9: *Các mối đe dọa Hệ thống máy tính bị đe dọa nguy an tồn Một cơng việc để bảo vệ hệ thống giúp hệ thống tránh khỏi nguy Có loại mối đe dọa an tồn: Interception (chặn bắt): thành phần khơng phép truy cập đến dịch vụ hay liệu, “nghe trộm” thông tin truyền Interruption (đứt đoạn): mối đe dọa mà làm cho dịch vụ hay liệu bị mát, bị hỏng, dùng nữa… Modification (thay đổi): tượng thay đổi liệu hay can thiệp vào dịch vụ làm cho chúng khơng cịn giữ đặc tính ban đầu Fabrication (giả mạo): tượng thêm vào liệu ban đầu liệu hay hoạt động đặc biệt mà nhận biết để ăn cắp liệu hệ thống *Các chế an tồn, an ninh Có chế an toàn, an ninh đưa ra: Mật mã (Cryptography): việc thực chuyển đổi liệu theo quy tắc thành dạng mà kẻ công không nhận biết Xác thực (Authentication): thao tác để nhận dạng người dùng, nhận dạng client hay server… Ủy quyền (Authorization).: việc phân định quyền hạn cho thành phần đăng nhập thành công vào hệ thống Quyền hạn quyền sử dụng dịch vị, truy cập liệu… Kiểm toán (Auditing): phương pháp để xác đinh client truy cập đến liệu cách * Firewalls Kỹ thuật mã hóa kết hợp với ma trận điều khiển truy cập thi hành trường hợp hệ phân tán độc lập, cách ly với giới bên ngồi Cịn trường hợp bên truy cập vào hệ thống phải sử dụng tường lửa Có hai kiểu tường lửa: Facket- filtering gateways: loại hoạt động router cho phép không cho phép gói tin chuyền qua mạng dựa địa nguồn địa đích phần header gói tin Loại dùng để ngăn chặn gói tin từ bên vào mạng Application level gateways: loại khơng kiểm tra header gói tin gửi đến hay gửi mà kiểm tra nội dung gói tin Một ví dụ đặc biệt loại proxygateways ... thống bị coi lỗi khơng thể thực chức thơng thường Cụ thể hệ phân tán thiết kế để cung cấp số dịch vụ, hệ thống lỗi khơng thể cung cấp dịch vụ Rõ ràng việc tìm nguyên nhân gây lỗi quan trọng Chẳng... Models ( Mơ hình chịu lỗi) Một hệ thống lỗi khơng cung cấp đầu đủ dịch vụ thiết kế Nếu coi hệ phân tán tập server giao tiếp với với client nó, không cung cấp đầy đủ dịch vụ nghĩa server, kênh truyền... ảnh hưởng đến file server thiết kế để cung cấp hệ thống file có tính sẵn sàng cao Nếu file server phần hệ sở liệu phân tán, hoạt động xác hệ toàn hệ sở liệu bị đe dọa phần liệu truy cập Để hiểu