







Preview text:
1. Khái niệm hệ thống phân tán
Hệ thống phân tán là một hệ thống gồm nhiều phần tử nằm trên các máy tính độc lập khác
nhau được kết nối mạng, kết nối và phối hợp với nhau bằng truyền thông điệp nhưng vẫn
thể hiện với người dùng là 1 mạng chung. Ưu điểm - Không chia sẻ bộ nhớ
- Không đồng bộ đồng hồ - Tính sẵn sàng cao
- Là hệ thống hợp nhất và dễ mở rộng
- Thể hiện như một hệ thống độc lập Thách thức
- Khó tích hợp các phần mềm - Chi phí quản lý cao
- Thách thức bảo mật rủi ro qua mạng
- Quản lý đồng bộ giữa các nút 2.
Điện toán cụm, điện toán lưới
Điện toán cụm là một phương pháp tính toán sử dụng một nhóm máy tính kết nối với nhau
để làm việc như một hệ thống duy nhất. Các máy tính cụm thường có những phần cứng
tương tự nhau và kết nối qua mạng để chia sẻ tài nguyên và tăng cường xử lý. Ưu điểm:
- Tăng cường hiệu suất - Tính khả dụng cao - Khả năng mở rộng - Chi phí thấp
Điện toán lưới là sự kết hợp các tài nguyên máy tính từ nhiều lĩnh vực để đạt được 1 mục đích. Đặc điểm chính: - Phân tán tài nguyên - Chia sẻ tài nguyên
- Khả năng mở rộng tốt - Tính linh hoạt - Tính khả dụng cao
3.Mục tiêu thiết kế hệ thống phân tán
- Tài nguyên: quản lý nhiều tài nguyên như cơ sở dữ liệu, băng thông mạng để xử lý
nhiều người dùng cùng lúc và tài nguyên máy chủ để đảm bảo hiệu suất
- Tính trong suốt: giao diện dễ hiểu, dễ sử dụng cho người dùng mà không cần biết
đến các chi tiết cài đặt nội bộ.
- Tính mở: Tích hợp các hệ thống khác nhau, có thể truy cập thông tin từ nhiều nguồn khác nhau.
- Khả năng mở rộng: Hệ thống nên có khả năng mở rộng dễ dàng để có thể xử lý khối
lượng công việc tăng lên nhờ việc tăng thêm nút mới và không làm giảm hiệu suất.
4.Các mô hình trong hệ phân tán
Mô hình vật lý: là mô hình phần cứng và kết nối. Mô hình cơ bản: mô tả các nút, phương
thức kết nối mạng giữa chúng, trao đổi thông điệp. Thiết kế phân tầng :
Trong hệ phân tán các chức năng được phân rã thành các chức năng con.
Các chức năng con được thực hiện bởi các modun phần mềm, các thực thể phần mềm trên
hệ thống khác nhau tương tác với nhau và cùng thực hiện 1 chức năng chung. Ý tưởng cơ bản: Ưu điểm: -
Đối với hệ thống phức tạp thì áp dụng nguyên lý chia để trị -
Cho phép xác định rõ mục tiêu của mỗi bộ phận và quan hệ giữa chúng. -
Cho phép dễ dàng bảo trì nâng cấp hệ thốngKiến trúc phân lớp:
Hệ thống phức tạp được chia thành nhiều lớp.
Mỗi lớp trong kiến trúc này có chức năng riêng và tương tác với lớp ngay trên hoặc dưới nó.
Lớp nền tảng: gồm HW và SW ở lớp thấp có nhiệm vụ cung cấp dịch vụ cho các lớp ở trên =>
giúp các lớp ở trên độc lập với phần cứng.
Lớp giữa: che giấu sự phức tạp , cung cấp giao diện tiêu chuẩn để các lớp trên dễ khai thác,
thường cung cấp chức năng truyền tin, chia sẻ tài nguyên và chuyển đổi định dạng.có thể
hoạt động trên nhiều tiến trình nút máy. Thin client
Có thể xem như ứng dụng đầu cuối cung cấp giao diện hiển thị và tương tác , trong khi thực
hiện tính toán phần lớn trên máy ở xa. Ưu điểm:
- Phân chia tài nguyên tốt hơn: khi các máy sử dụng máy chủ có thể phân chia tài
nguyên các máy hợp lý tránh lãng phí. - Bảo mật tốt hơn - Gọn nhẹ
- Không cần thực hiện tính toán mà chỉ nhân và gửi dữ liệu đến server Nhược điểm
- Khả năng phản hồi chậm - Phụ thuộc vào mạng Proxy
Là một mô hình thiết kế phần mềm được sử dụng để cung cấp khả năng trong suốt về vị trí
cho các đối tượng hệ thống. Proxy cho phép đối tượng được gọi mà không phải biết địa chỉ
hoặc vị trí cửa đối tượng đó.
Proxy cung cấp có thể sử dụng để cung cấp các chức năng như kiểm soát truy cập và cache dữ liệu.
5.Truyền thông trực tiếp Nguyên lý gọi từ xa:
- Che giấu quá trình thực hiện thủ tục trên tiến trình khác, truyền dữ liệu.
- Cài đặt trong suốt về vị trí
- Tiến trình gọi: sử dụng cấu phần stub
- Tiến trình thực thi: sử dụng cấu phần skeleton Các bước thực hiện:
- Client gọi stub như LPC( máy khách gọi thủ tục)
- Stub tạo thông điệp và gọi HĐH
- HĐH client gửi thông điệp cho hđh server
- HĐH server gửi thông điệp cho skeleton
- Skeleton mở và giải mã truyền tới tiến trình
- Tiến trình thực thi và trả kết quả cho skeleton
- Skeleton đóng gói thông điệp trả về cho hđh
- Hđh server gửi về cho hđh client
- Hđh client gửi về cho stub - Stub gửi về cho client Cách gọi:
- Đồng bộ: khi gọi thủ tục từ xa thì tiến trình client sẽ bị phong tỏa cho đến khi kết quả trả về.
- Dị bộ: tiền trình client gửi yêu cầu đến server , sau khi server xác nhận đã nhận được
yêu cầu, tiến trình client có thể tiếp tục xử lý tác vụ khác.
6.Truyền thông gián tiếp
Mô hình pub-sub là một kiến trúc phần mềm linh hoạt được sử dụng trong các hệ thống
phân tán để quản lý sự giao tiếp giữa các thành phần.
Mô hình gồm 4 thành phần chính: message, publisher, subscriber và topic
- Message là dữ liệu được truyền từ người gửi (publisher) tới người nhận (subscriber)
- Publisher là thành phần tạo ra thông điệp, sự kiện , dữ liệu.
- Subscriber là thành phần quan tâm đến các thông điệp của publisher
- Topic là thành phần trung gian kết nối publisher và subscriber
Cơ chế truyền thông điệp của pub - sub Ưu điểm của pub-sub
- Khả năng mở rộng: sự tách biệt giữa các thành phần trong mô hình khiến nó có khả
năng mở rộng cao. Mô hình có xử lý lượng lớn publisher và subscriber mà không ảnh hưởng tới hiệu suất.
- Đáng tin cậy: thông điệp luôn đảm bảo truyền đến cho subscriber ngay cả khi họ
không hoạt động hay đứt kết nối. Nhược điểm:
- Quản lý tài nguyên: trong mô hình pub-sub, publisher và subscriber không giao tiếp
trực tiếp với nhau nên sẽ có thách thức về việc quản lý dữ liệu và giải phóng tài nguyên
- An toàn dữ liệu: thông điệp truyền tải qua mạng có thể gây mất thông tin.
- Phức tạp trong việc gỡ lỗi: vì thông tin được truyền qua topic nên khi có lỗi xảy ra sẽ rất phức tạp. Mô hình message queue Các thành phần chính:
- Producer: bộ phận tạo ra thông tin để tương tác với bô phận khác.
Thông tin này sẽ được truyền vào message queue.
- Message : là thông điệp được truyền đi
- Message queue: là nơi lưu trữ tạm thời của message đang chờ consumer lấy ra xử lý
- Broker: xử lý message và quản lý message queue để đảm bảo producer và consumer
truyền thông tin được cho nhau.
- Channel: là cơ chế truyền thông tin giữa producer và consumer thông qua message
queue Cách thức hoạt động của message queue Ưu điểm:
- Bất đồng bộ: message queue hỗ trợ truyền thông điệp giữa các thành phần mà
không đòi hỏi chúng phải chờ đợi nhau giúp cải thiện hiệu suất và tăng tính mở rộng.
- Tính độc lập: producer và consumer không cần biết về sự tồn tại của nhau nên giúp
giảm sự phụ thuộc giữa các thành phần
- Xử lý lưu lượng cao: có thể xử lý thông điệp lớn và đồng thời từ nhiều nguồn mà
không gây ảnh hưởng đến hiệu suất hệ thống.
- Đảm bảo giao tiếp tin cậy: thường có cơ chế đảm bảo việc giao tiếp giữa producer và
consumer chính xác và xử lý đúng cách.
- Giảm lỗi chồng chéo: bằng cách giảm bỏ trực tiếp kết nối giữa các thành phần giảm
khả năng lỗi do sự phụ thuộc và giao tiếp trực tiếp.
- Khả năng phục hồi bảo trì tốt. Nhược điểm:
- Phức tạp hóa hệ thống
- Thông tin bất đồng bộ trao đổi sẽ có độ trễ nhất định
- Chi phí xử lý: sẽ tăng tải nếu phải xử lý lượng lớn thông tin
- Khi có nhiều message trong hang đợi thì việc quản lý sẽ có nhiều khó khăn - Khó xử lý đồng bộ. 7.Đặt tên
Đặt tên phẳng cơ chế DHT
- Tên phẳng phi cấu trúc , chỉ là chuỗi bit - Các thành phần chính:
• Không gian giá trị khóa K
• Cách phân chia không gian khóa cho từng nút
• Mạng overlay: kết nối các nút , cho phép tìm ra nút nào quản lý khóa k cho trước
- Thực hiện lưu trữ put ( key, value)
• (key, value) gửi tới nút bất kỳ
• Truyền mạng overlay tới nút cuối cùng chịu trách nhiệm lưu Nút lưu lại
- Thực hiện tìm kiếm get(key)
• Key gửi tới nút cuối cùng
• Truyền qua mạng overlay tới nút cuối cùng lưu key này
• Kết quả trả lại cho client tìm kiếm
8.Đồng bộ thời gian
Đồng hồ vật lý được đề cập tới các cơ chế hoặc thiết bị được sử dụng để đo thời gian và
đồng bộ hóa các hoạt động giữa các nút khác nhau trong hệ thống . Mỗi nút trong hệ thống
phân tán có thể có đồng hồ riêng của mình , nhưng chúng có thể không hiển thị cùng 1 thời
điểm do độ trễ, sai số hoặc sự khác biệt trong cách thiết lập thời gian.
Tại sao cần đồng bộ thời gian?
- Đảm bảo tính nhất quán: nếu thời gian không đồng bộ có thể dẫn đến việc không nhất quán cho dữ liệu.
- Ghi nhận sự kiện : nếu thời gian không đồng bộ thì việc ghi nhận sự kiện sẽ có thể trở nên phức tạp hơn.
- Điều phối và phối hợp: thời gian đồng bộ giúp các nút có thể hoạt động đúng lịch trình
- Giảm thiểu lỗi: việc đồng bộ hóa có thể giúp tìm được lỗi nhanh hơn, việc so sánh
thời gian sẽ giúp phát hiện các lỗi bất thường.
- An ninh: đồng bộ thời gian giúp tăng cường bảo mật hệ thống
- Cải thiện hiệu suất: giúp tối ưu hóa các quy trình giảm thiểu độ trễ và tăng hiệu quả hoạt động.
Thuật toán đồng bộ Chiristian
Được sử dụng để đồng bộ thời gian trên các máy tính trong mạng bằng cách sử dụng thời
gian trên 1 máy chủ tin cậy. Cách thức hoạt động:
- Máy chủ client gửi yêu cầu đến máy chủ tin cậy
- Máy chủ tin cậy trả lời về thời gian chuẩn trong thông điệp trả lời
- Máy client đo thời gian từ khi gửi yêu cầu đến khi nhận được phản hồi và tính toán
lại thời gian hiện tại bằng cách đặt thời gian t + Tr / 2, với giả định thời gian đi và thời gian về bằng nhau
Thuật toán đồng bộ Berkeley
Đây phương pháp đồng bộ thời gian giữa một máy điều phối và các máy khác. Các máy khác
sẽ đồng bộ thời gian với máy điều phối qua việc gửi thông tin thời gian local đến máy điều phối.
- Máy điều phối gửi thông điệp về thời gian đến cá máy khác
- Các máy khác nhận thông điệp từ máy điều phối và gửi thông tin đến máy khác
- Máy điều phối tính toán thời gian cần điều chỉnh giữa từng máy khác, có tính đến
thời gian round trip giữa máy điều phối và máy khác.
- Máy điều phối gửi giá trị cần điều chỉnh đến từng máy khác
- Nếu máy điều phối có sự cố máy khác sẽ chọn máy điều phối mới để thực hiện đồng bộ thời gian