BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI -------------***------------- MẠC VĂN VIÊN KỸ THUẬT BẢNG BĂM PHÂN TÁN TRÊN MẠNG NGANG HÀNG: GIẢI PHÁP KIẾN TRÚC MỞ VÀ ỨNG DỤNG LUẬN VĂN THẠC SỸ KHOA HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS. NGUYỄN KHÁNH VĂN HÀ NỘI 2009 17057205190711000000 Kỹ thuật bảng băm phân tán trên mạng ngang hàng: Giải pháp kiến trúc mở và ứng dụng Mục lục PHẦN MỞI ĐẦU. 3 Nhiệm vụ của luận văn. 6 Nội dung luận văn.
8 Danh mục thuật ngữ. MẠNG NGANG HÀNG VÀ CÁC HỆ THỐNG DHTs. Hệ thống ngang hàng .2 Quá trình phát triển của các hệ thống P2P. Phân loại ứng dụng trên mạng ngang hàng.
Các ứng dụng trên mạng ngang hàng. Tìm hiểu DHT- Bảng băm phân tán. Lịch sử phát triển của DHTs. Sức mạnh của DHTs.
Các thuộc tính quan trọng của DHTs. Bảo mật và xác thực. Các thao tác khác của DHT. Giới thiệu một số DHT.
47 Phần II: BAMBOO DHT VÀ OPENDHT .1 Tổng quan về Bamboo. Ưu điểm của Bamboo DHTs .3 Hạn chế của DHTs .5 Hoạt động Lookup. 60 1 Mạc Văn Viên Kỹ thuật bảng băm phân tán trên mạng ngang hàng: Giải pháp kiến trúc mở và ứng dụng 2.6 DHT chia sẻ giữa các ứng dụng .7 Chia sẻ một DHT giữa các Client .8 Cân bằng tải .1 Tổng quan về Thiết kế .3 Phân bổ lưu trữ.5 Đánh giá dựa trên việc triển khai. 101 Phần III: ỨNG DỤNG MINH HỌA.1 Mục tiêu của chương trình .1 Các API được sử dụng .2 Cấu trúc của mạng multicast và việc join vào mạng .3 Cơ chế truyền thông điệp .3 Triển khai ứng dụng và đánh giá.
112 PHẦN KẾT LUẬN. 117 TÓM TẮT NỘI DUNG ĐỀ TÀI. 119 Tóm tắt tiếng Việt. 119 Tóm tắt tiếng Anh.
121 TÀI LIỆU THAM KHẢO. 123 2 Mạc Văn Viên Kỹ thuật bảng băm phân tán trên mạng ngang hàng: Giải pháp kiến trúc mở và ứng dụng PHẦN MỞI ĐẦU Mạng internet đã làm thay đổi thế giới với sự ra đời của các trang thông tin, các dịch vụ tìm kiếm, kinh doanh điện tử… Nó đã ảnh hưởng lớn đến đời sống thường nhật của mọi cư dân trên hành tinh. Trên mạng internet người ta có thể đặt vé máy bay, rao bán nhà đất, tìm hướng dẫn chỉ đường hay tìm đọc nhanh nhất các thông tin thời sự quốc tế… Chính sự phát triển và phổ biến của các giao dịch internet đã tạo nên những thách thức mới cho các nhà cung cấp (NCC) dịch vụ. NCC phải đảm bảo hệ thống vẫn đứng vững khi có số lượng người truy cập lớn.
Những dịch vụ càng thông dụng thì càng phải chịu đựng được lượng người truy cập lớn. Ví dụ, một số trang web tìm kiếm phục vụ hàng triệu người tìm kiếm thông tin đồng thời. Một đĩa nhạc hay mới phát hành hoặc một phần mềm thông dụng đưa ra một phiên bản mới thì có số lượng người rất lớn truy cập hoặc tải về từ một trang web trong một thời gian ngắn. Muốn vậy, hệ thống đó phải là một hệ thống xử lý phân tán, có một cơ chế quản lý tài nguyên thông minh và có một số khả năng khác như dưới đây.
Đầu tiên, thiết kế của hệ thống đó phải Scalable (khả năng mở rộng về quy mô). Đó là một hệ thống mà kích cỡ của hệ thống luôn tương ứng với khả năng đáp ứng của nó. Hệ thống càng mở rộng thì khả năng phục vụ người dùng/số giao dịch càng nhiều. Hệ thống cũng không phụ thuộc vào bất kỳ một thành phần nào đó, để tránh hiện tượng nghẽn cổ chai dẫn đến giảm hiệu năng của hệ thống và nó cũng tránh cho hệ thống bị sụp đổ khi thành phần đó bị lỗi.
Với một hệ thống có thiết kế Scalable thì ta có thể tăng kích cỡ khi khi hệ thống có nhưu cao hoặc giảm kích cỡ khi hệ thống có nhưu cầu thấp. Thứ hai, hệ thống đó phải self-managing (khả năng tự quản lý). Hệ thống đó phải có khả năng tự động cân bằng tải, đảm bảo an toàn dữ liệu hệ thống. Trong trường hợp như trên khi ta tăng kích cỡ của hệ thống thì nó sẽ phải tự nhận biết các thành phần 3 Mạc Văn Viên Kỹ thuật bảng băm phân tán trên mạng ngang hàng: Giải pháp kiến trúc mở và ứng dụng thêm vào và chia sẻ tải cho những phần mới thêm đó.
Ngược lại khi giảm kích cỡ của hệ thống thì nó cũng tự động khôi phục lại giữ liệu mà phần bị tháo đi đã mang đi. Với một hệ thống lớn và động thì thuộc tính này là hết sức quan trọng. Thứ ba, hệ thống đó phải có khả năng fault-tolerant (khả năng chịu lỗi). Với một hệ thống lớn thì xác suất xảy ra lỗi tại các bộ phận là rất lớn, hệ thống vẫn phải hoạt động tốt khi số lượng bộ phận bị lỗi nằm trong một tỉ lệ cho phép.
Hiện này, mạng ngang hàng là một trong những hướng tiếp cận rất tốt để thỏa mãn các thuộc tính trên. Đó là một kiến trúc mà các thành phần trong mạng có chức năng và khả năng như nhau. Tất cả các máy tham gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán. Do đó khi càng nhiều máy tham gia thì khả năng tổng thể của hệ thống mạng càng lớn.
Tính chất phân tán của mạng ngang hàng giúp cho mạng hoạt động tốt khi một số máy gặp sự cố. Sự tiến hóa về cấu trúc mạng đã làm cho mạng ngang hàng ngày càng trở lên mạnh mẽ. Một trong những cấu trúc đó là DHT (Bảng Băm Phân Tán, tiếng Anh: Distributed Hash Table). Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng theo một thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với một phần dữ liệu chia sẻ trong mạng.
Với cấu trúc này, khi một máy cần tìm một dữ liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả. Hiện nay có rất nhiều giải pháp khác nhau để xây dựng một DHT, người ta phân chia các giải pháp đó theo cấu trúc mạng và thuật toán định tuyến. Có một số cấu trúc nổi tiếng bao gồm Chord, CAN, Kademlia, Pastry, Tapestry và Bamboo [10]. Trong luận văn này tôi sẽ trình bày những tìm hiểu của mình về một trong những DHT nêu trên, đó là Bamboo.
Nó được đánh giá là một DHT khá mạnh mẽ. Giao diện cho các thao ra nhập/rời khỏi mạng là khá đơn giản. Mỗi node đều có thuật toán duy trì số lượng con trỏ đến các node hàng xóm là hàm logarithmic của kích cỡ mạng, như vậy 4 Mạc Văn Viên Kỹ thuật bảng băm phân tán trên mạng ngang hàng: Giải pháp kiến trúc mở và ứng dụng kích cỡ mạng có thể tăng rất nhanh mà băng thông để lưu trữ con trỏ các node hàng xóm tăng không đáng kể. Chi phí cho việc định tuyến, lưu trữ và truy cập cũng được giới hạn bởi hàm logarithmic của kích cỡ mạng, hơn nữa người ta còn dùng thuật toán để xác định các node hàng xóm gần nhau về mặt vật lý để làm tăng tốc độ liên lạc giữa các node.
Người ta chứng minh mạng vẫn hoạt động tốt, không bị mất dữ liệu ngay cả khi số lượng node trên mạng bị lỗi khá cao hoặc tốc độ các nodes tham gia và rời khỏi mạng cao. Cơ chế hoạt động của Bamboo là hoàn toàn tự tổ chức, tự duy trì. Trong triển khai thực tế. Với thời gian ngắn là 6 phút, có 1000 node trong mạng Bamboo trong ModelNet vẫn đáp ứng cho các thao tác lấy dữ liệu từ một node bất kỳ trong vòng ½ giây [1].
Bamboo cũng là một hệ thống đáng tin cậy, với hiệu năng lưu trữ lớn đã triển khai 200-300 nodes trên PlanetLab[1]. OpenDHT [1] là một dịch vụ DHT công cộng được thiết kế để dễ dàng phát triển, triển khai và duy trì các ứng dụng DHT. Nó khắc phục được nhược điểm khó phát triển của các ứng dụng DHT truyền thống bằng cách sử dụng một mạng DHT có sẵn để cung cấp dịch vụ cho nhiều ứng dụng khác nhau. Do đó các ứng dụng OpenDHT chỉ cần truy cập dịch vụ này thông qua các giao diện đơn giản mà không phải triển khai DHT cho riêng mình.
Hơn nữa, với các ứng dụng OpenDHT còn cho phép truyền thông vượt qua NAT hoặc Firewall. OpenDHT không chỉ hỗ trợ cho các giao diện đơn giản, bảo mật, nó cũng hỗ trợ một số chức năng phức tạp trong truyền thông bằng cách sử dụng thêm một số thư viện khác. OpenDHT còn bảo đảm sự công bằng trong chia sẻ lưu trữ giữa các client trong hệ thống. OpenDHT đang được triển khai trên PlanetLab, và người dùng hoàn toàn có thể tương tác với nó thông qua RPC.
5 Mạc Văn Viên Kỹ thuật bảng băm phân tán trên mạng ngang hàng: Giải pháp kiến trúc mở và ứng dụng Nhiệm vụ của luận văn Thứ nhất, tìm hiểu và khảo sát các khái niệm liên quan, cấu trúc mạng và các thuật toán trong bảng băm phân tán. Tìm hiểu một số hệ thống bảng băm phân tán đã được phát triển và triển khai trên thực tế. Qua đó đánh giá, nhận xét các ưu và nhược điểm của của kiến trúc bảng băm phân tán. Thứ hai, tìm hiểu về cấu trúc mạng, cơ chế hoạt động của OpenDHT (giải pháp mở của bảng băm phân tán).
Tìm hiểu sâu các khía cạnh kỹ thuật của hệ thống. Đánh giá khả năng ứng dụng so với hệ thống bảng băm phân tán truyền thống. Kết hợp tìm hiểu một hệ thống cụ thể. Thứ ba, vận dụng các kiến thức đã tìm hiểu ở trên.
Cài đặt một ứng dụng minh họa dựa trên kiến trúc mở của bảng băm phân tán. Nội dung luận văn Sau đây là kết quả thực hiện luận văn. Luận văn được trình bày theo các phân sau: • Phần 1: Mạng ngang hàng và các hệ thống DHT. Ở đây trình bày một cách tổng quát nhất về mạng ngang hàng bao gồm khái niệm chung, quá trình phát triển, các kiến trúc và ứng dung tiêu biểu.
Sau đó đi sâu vào một kiến trúc của mạng ngang hàng đó là DHT, tìm hiểu kiến trúc và cơ chế làm việc chung của DHT, các loại ứng dụng, ưu và nhược điểm. Tìm hiểu các mạng DHT tiêu biểu đang được sử dụng trên thực tế. • Phần 2: Tìm hiểu về Bamboo và OpenDHT. Trong phần này ta đi sâu vào một DHT mà ta sử dụng trong luận văn là Bamboo.