TRUONG DAI HOC CONG NGHE
DO CAO MINH
GIAI PHAP CAN BANG TAI SU DUNG CAU TRUC THU MUC CHO MANG NGANG HANG CO CAU TRUC
Nganh: Cong nghé thong tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số: 60 48 15
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Nguyễn Hoài Sơn
Hà Nội - 2010
Trang 2MỤC LỤC - - con S9 9 Đi 9.9 I9 9 1 I0 00.00 00809000866 1 DANH MỤC THUẬT NGỮ -c- {s55 155 555555 55555 3
DANH MỤC HÌNH VỈỀ - -G c G2 SƠ S000 19 6359 96ses 4
MỞ ĐẦU G0 6
CHƯƠNG l1 - TỎNG QUAN VÉ MẠNG NGANG HÀNG -<° 8
11 Tổng quan về mạng ngang hàng -. s -s=-=5s=seseseseseseeersssrseenmre 8 1.1.1 Khái niệm vê mạng ngang hàng «5-5555 S5 5S 31152 8
1.1.2 Uu diem cia mang ngang hang escessessesesseeteseseseesesnesneeeeneenseneeneenss 9
1.1.3 Nhuogc diém cia mang ngang han cccccesssseesesssenseceeecceeeesesesessaees 9 1.2 Phan loai mang ngang hang cccccccscsssssscccscssssccscccssssssssssccsssssscssssssesesees 10 1.2.1 Phân loại theo mức độ tập trung Của các node mnạng - -««««s««: 10 1.2.2 Phân loại theo câu trúc liên kẾt << 22-313 eeees 12 1.3 Mạng ngang hàng có cấu trúc dựa trên DHT(Distributed Hash Table)
Hậ 9 9 9 69 9.6 6 9.6 8 9 0 8.0 0 6.0 9 96 8 09 09 610668019 06 0 9 6 6 0101068 0.9 008.010 06 60)9 9 06.01910688 01910 66.00010160 8/06 14 1.3.1 Giới thiệu DHIT, QGĂ G Ă S989 909 30 10 10 1 n0 kh 14 1.3.2 Mang vi 0H 16 A Mơ hình mạng Chorởđ .-e- se ceieeeierrrrrrrrrrrei 16
b Anh xa khoa vào một node trong COYdÏ c c1 1111103111 1351134 18
C Tìm kiêm trong mạng Chordi -e« series 18 d Tham gia và ôn định Mang co aaa xà 19
1.4 Kết luận -<-<s<+e+sS2S9E2 413133301313 8130132320130402914 1E 19 CHUONG 2 - CAN BANG TAI TREN MẠNG NGANG HÀNG CÓ CÁU
I):10 9= 4 21
2.1 Khái niệm về tải trên mạng ngang hàng -.-.s 5s sesesesesesssse 21 2.1.1 Khái niệm - CC 9S nọ ni KH E34 21 2.1.2 Node quá tải 2303 0881001010340 011040 0000010010101 0000100 22 2.1.3 Node có tải cao và Node có tải thâp . -<<ccsSsssssssssssssesss 22 2.2_ Các nguyên nhân dẫn đến mất cân bằng tải trên các hệ thống DHT 22 2.2.1 Định danh các node khơng cân băng «che 22 2.2.2 _ Định danh dữ liệu không cân băng . - 5 << + sSsssssssssssssssssss 23 2.2.3 Hot spofs - t11418011801111 18101000 110Á0000000011 04000010100 1Á 24 2.2.4 Khả năng các node không cân băằng - << <2 S*SSSSSEsssssssssss 25 "» NI — 25
2.3 Các giải pháp cân bằng tải 5s s<cseserersersereerxersresersrrsererssrsore 25
Trang 3c.Phương phap di chuyén Virtual Server (Transfer) c.ccccssesssssssessessstscssscevsessees 28 2.3.2 Hướng không sử dụng Server ảO 9g ng x4 32 Thuật toán cân bằng tải theO HgưÕïg, - - - - csEEEeEEESEeEsEersrersrersrersrerrree 32
2.3.3 (con 38 CHƯƠNG 3 - DE XUAT CAI TIEN THUAT TOAN CAN BANG TAI THEO )/00/9)/0 1" 39
SN ni chẽ 40
3.2 Thuật tốn ThresholdPÌus .oo 555 2 6< 99599 5669556995.888686869986565656 40 3.3 Đánh giá: oo 0c s55 5S 99 9Ó 0 00 0000000000 00.04 0 0006006000000 0400406 06 45
CHUONG 4 - ĐÁNH GIÁ HIỆU QUÁ CỦA GIẢI PHÁP ĐÈ XUẤT DỰA TRÊN MO PHONG 47 4.1 Ảnh hướng thời gian sống của một node tới các thuật toán cân bằng tải 47
4.2 Ảnh hưởng của số lượng các câu truy vấn tới các thuật toán cân băng tải 48 4.3 Ảnh hướng của câu truy vẫn dạng Zipf tới các thuật toán cân bằng tải .49 4.4 So sánh kết quả thực nghiệm của thuật toán Threshol Plus với các thuật toán ã CÓ: ocoo co 9 9.9.9 0.0 0000000904 0 00.0 50 0000000000000 0 00 0660900000000 04 96.06 50
4.5 KKẾ( luận 5% % 2% %9 90 909.090.0900 0909.0909 09090909 0909.91909099055 51 CHUONG 5 - KÉT LUẬN VÀ HƯỚNG PHÁT TRIỂN -.- 53 5.1 {in 53
Trang 43 THUAT NGU Thuật ngữ Y nghĩa
Based -DHT Dựa trên bảng băm phân tán
Broadcast Một thông điệp truyên tới tất cả các trạm Chord Một giao thức dựa trên mang ngang hàng
có câu trúc
Client/Server Máy khách/ Máy chủ
DHT (Distributed Hash Table ) Bang bam phan tan
Directory Node Thu muc ; Dong vai tro lưu trữ các
thông tin tải của các node
Entry Một bản ghi trong bảng dùng để lưu thông tin về các đặc tả tài nguyên tại mỗi node
Finger Table Bang dinh tuyén
Host Ports Node được truy cập với tân số cao
Identify Dinh danh
Key Khóa
LBM (Load Balancing Matrix) | Ma trận cân băng tải
Load Tải
Load-balancing Cân bằng tải
Node Thực thê có khả năng thực hiện một cơng
việc hữu ích nào đó và trao đôi kết quả với các thực thé khác qua mạng một cách trực
tiếp hoặc gián tiếp
Overload Quá tải
P2P (Peer to Peer network) Mạng ngang hang
Partial query Truy vân từng phân
Predecessor(n) Node đứng liên sau n (Tính theo chiều kim đồng hồ)
Query Truy van
Successor(n) Node đứng liền trước n (Tính theo chiều
kim đồng hồ)
Target Tải lớn nhật mà một node có thê nhận
Unilization Hệ số sử dụng
Trang 5
DANH MUC HINH VE
Hình 1 Mơ hình mạng ngang hàng - 001301131113 11 1111111111111 111111 kh 8 Hình 2 Mơ hình mạng ngang hàng thuần tuý - - + ++E£k£k£krkekrkrkrkred 11 Hình 3 Hệ thống mạng ngang hàng lai ghép .eeeseesseseeesseecevecsvevsvevsvevsvevsvevaees 12 Hình 4 Tìm kiếm dữ liệu chia sẻ trong Gnutella - 5s s + E*Ek£k£s££zEe£zEexd 13 Hình 5 Một mạng Chord với 3 node 0, 1, 3 và các bảng Finger Table ứng với mỗi node N = 3 bit nén CO 3 €TIẨYY - T000 0000000003011911 91915 919 n0 eh 17
Hình ó6 Lưu giữ key trong mang Chord: node 0 lưu key 6, node 1 lưu key 1 va node 3
I0) 27 = 43 18
Hình 7 Định danh các node không cân bằng . + E3 sE#EEEeErkrerkrerered 23 Hình 8 Dữ liệu các node không cân bằng - 2 << SE Evv cv veesed 23
Hình 9 Kết quả mô phỏng về sự phân bố đữ liệu không đều nhau 24
00081008) 8si 0) 11 24
Hình 11.Khả năng các nút không cân băng - + x3 EEvcvrvcervveesed 25
Hình 12.Cân bằng tải sử dụng Log(N) Virtual SerVefS 5 cccccxcerererered 27 Hình 13 Tạo mới Về (a) và loại bỏ VS (b) HH HH ng ng và 28 Hình 14 Node nặng tải di chuyển VS sang node nhẹ tải (nếu chỉ có 1 VS mà vẫn
nặng tải thì sẽ chia làm 2 VS để di chuyỂn) ¿-¿-¿- ¿cà SESEE RE EErrrxree 29
Hình 15 Phương pháp Ône - fO - Ône - S0 0130013 113111111151 19 nếp 30 Hình 16 Phương pháp Ône - to - Many - 01k kh 31 Hình 17 (a) Node A chuyén tai cho node lang riéng B va (b) Chuyển định danh của node C vào giữa A và B Độ cao của mỗi hình tương ứng là biểu điễn tải của các node Hình 18 Node A có tải vượt quá ngưỡng Node B có tải thấp hơn trong hai láng riềng của A Tải được chuyển từ Node A cho Node B . 5s csxsecxeesevee 34 Hình 19 Node A có tải vượt quá ngưỡng Node B có tải thấp hơn trong 2 láng riềng của A Tải được chuyển cho node E - - - ssEESEEEEEEEEEEEEEEEEEEErErererererrrered 34 Hình 20 Node A có tải vượt quá ngưỡng, node E chuyên tải cho F, E di chuyển vị trí
đến giữa A và B để nhận tải + SE EE SE EE E99 3E 3E TT ch rà cư re rereở 35 Hình 21 Node A có tải vượt quá ngưỡng: Node G là nhẹ tải khi đi chuyển không
làm cho Successor(G) bị quá tải; di chuyển vị trí của G đến giữa A và B để G chịu tải Hình 22 Các node nhẹ tải A và F hỏi successor của nó (các đường mũi tên nét liên) và thơng báo tình trạng tải cho thư mục 1 và thư mục 2 (các đường mũi tên nét đứt).42 Hình 23 Node A thực hiện cân bằng tải, node lang riéng B nhận tải hộ node A bằng
Trang 65
Hình 24 Node A thực hiện cân băng tải, node A chia tai cho node lang giéng B bang cách dịch chuyển định danh của A về phía B - + +EE#E+EeEeErEcerxvsesed 43 Hình 25 Node A hỏi thư mục 1 để tìm một node nhẹ tải có thể dịch chuyển được (đường mũi tên nét liên) Định đanh của node nhẹ tải E được chuyên đến giữa
predecessor(A) và A để nhận tải hộ node A (đường mũi tên nét đứt) - 44 Hình 26 Thời gian sống trung bình của một node thay đổi, các câu truy vẫn thực hiện
với phân bố Zipf và UnifOrim - - sưng rvee 48
Hình 27 Số câu truy vấn đặt vào một node thay đổi, truy vấn được phân bố ở đạng V0 8906: 0 49
Hình 28 Truy vấn đặt vào các node ở dạng phân bố Zipf với tỷ lệ thay đôi 50
Trang 7MO DAU
Một kiểu kiến trúc mạng mới với tên là mạng ngang hàng (Peer to Peer - P2P) đã phát triển nhanh chóng trên internet Trong đó hoạt động của mạng chủ yếu dựa vào khả năng tính tốn và băng thơng của các máy tham gia chứ không tập trung vào một số nhỏ các máy chủ trung tâm như các mạng thông thường Sự phát triển nhanh chóng của mạng ngang hàng trong những năm gân đây thúc đây sự ra đời của nhiều ứng dụng mạng như các hệ thống chia sẻ file, tìm kiếm thơng tin, tính tốn lưới Mạng ngang hàng có cấu trúc ra đời đảm bảo cho tính hiệu quả cũng như khả năng mở rộng của các ứng dụng này Tuy nhiên, để đảm bảo chất lượng dịch vụ cho các ứng dụng xây dung trên mạng ngang hàng có cấu trúc cần phải giải quyết vấn đề cân bằng tải trong mạng ngang hàng có cấu trúc
Có hai hướng tiếp cận chính cho các thuật toán cân bằng tải đó là: hướng tiếp cận dựa trên server ảo (virtual server) và hướng tiếp cận không dựa trên server ảo Trong luận văn này tôi tập trung vào hướng tiếp cận không dựa trên server ảo và đưa ra một giải thuật cải tiến của giải thuật cân bằng tải theo ngưỡng Giải thuật của chúng tôi đưa ra cho phép các node quá tải tìm chính xác và nhanh chóng một node phù hợp để thực hiện việc cân bằng tải Chúng tôi đã cài đặt và thử nghiệm thuật toán đề xuất trong điều kiện mạng gần với thực tế và thấy răng thuật toán của chúng tôi giải quyết tốt vẫn đề cân bằng tải của các node trong mạng
Nội dung luận văn gồm 5 chương cụ thê cho từng chương như sau:
Chương 1: Giới thiệu tổng quan về mạng ngang hàng, những khái niệm cơ bản về mạng ngang hàng đồng thời giới thiệu giao thức Chord, giao thức được sử dụng để triển khai mạng phủ DHT khi xây dựng chương trình mơ phỏng
Chương 2: Tìm hiểu về vấn đề cân bằng tải trên mạng ngang hàng, một số nguyên nhân dẫn đến mắt cân băng tải, các giải pháp đã được dé xuất và phân tích về các giải pháp này
Chương 3: Trên cơ sở các vấn đề tìm hiểu được ở chương 2 Chúng tôi đề xuất giải pháp cân bằng trên mạng ngang hàng có cấu trúc theo hướng không sử
dụng server ảo Đó là một giải thuật cải tiến của giải thuật cân bang tai theo
Trang 87
Chương 4: Trình bảy cách thực hiện chương trình mơ phỏng đồng thời trình bày kết quả đánh giá giải thuật cân bằng tải dựa trên mô phỏng của chúng tôI
Chương 5: Trình bày các cơng việc mà chúng tôi đã thực hiện được,
những vấn đề còn tổn tại của luận văn và hướng phát triển tiếp theo của chúng
Ae
Trang 9CHUONG 1 - TONG QUAN VE MANG NGANG HANG
Trong chương này, luận văn sẽ giới thiệu khái quát vê mạng ngang hàng, các đặc điềm, các hình thức phần loại của mạng ngang hàng, khái niệm vê DHT và mạng hàng có cấu trúc đồng thời giới thiệu về một số mạng ngang hàng đã và đang được ứng dụng có hiệu quả
1.1 Tổng quan về mạng ngang hàng
1.1.1 Khái niệm về mạng ngang hàng
Mạng ngang hàng là một mạng mà kiến trúc của nó được tạo nên bởi các máy tính liên kết với nhau, các máy tính tham gia trong mạng đều bình đẳng như nhau và được gọi là các peer, mỗi máy tính tham gia mạng là một phần và duy trì sự tồn tại của mạng Các máy tính trong mạng thường xuyên liên lạc với các
máy tính khác để ôn định mạng và chia sẻ đữ liệu với nhau Dữ liệu được chứa
trên các máy tính và được chia sẻ trực tiếp với nhau giữa các máy tính tham gia vào mạng
Hình 1 Mơ hình mạng ngang hàng
Ứng dụng thường xuyên gặp nhất của mạng ngang hàng là chia sẻ tệp tin,
tất cả các dạng như: âm thanh, hình ảnh, dữ liệu hoặc để truyền dữ liệu thời
Trang 101.1.2 Ưu điểm của mạng ngang hàng
Mục đích quan trọng của mạng ngang hàng là các máy tính tham gia mạng đều đóng góp tài nguyên bao gồm băng thông, lưu trữ, khả năng tính tốn Do đó khi càng nhiêu mày tính tham gia mạng thì khả năng tông thể của mạng càng lớn Do việc các thông tin lưu trữ không chỉ trên máy chủ mà còn được lưu trữ ở chính các máy tham gia mạng nên mơ hình này rất phù hợp với tính phi tập trung của Internet
Xét về khía cạnh sức mạnh xử lý, mạng ngang hàng có khả năng xử lý cao hơn cả những máy chủ lớn hiện nay, do đó sử dụng mạng ngang hàng có thể cải thiện đáng kế hiệu quả của các phương pháp phân tích, xử lý dữ liệu và giải các bài toán phức tạp Sở dĩ làm được như vậy là vì mạng ngang hàng có thê tận dụng được khả năng xử lý, khả năng lưu trữ còn thừa của các máy tham gia mạng với những thuật toán phân tán hợp lý Công nghệ này đã chia việc xử lý lớn ra thành nhiều việc xử lý để có thể giao cho các máy tính khác trong mạng cùng thực hiện Mỗi máy tính sẽ xử lý một phần công việc và trả về kết quả xử lý cho máy tính trung tâm, máy tính trung tâm sẽ ghép nối các kết quả này lại với nhau Bằng cách như vậy, ta có thê giải quyết các bài toán phức tạp yêu cầu vẫn đề xử lý, lưu trữ lớn mà không cần phải nâng cấp khả năng xử lý của hệ
thống hiện tại
Tính chất phân tán của mạng ngang hàng cũng giúp cho việc phân tán
trách nhiệm cung cấp dịch vụ đến tất cả các node trên mạng, nó sẽ loại bỏ được
van đề ngừng trệ dịch vụ do nơi cung cấp duy nhất gặp sự cố Đối với mô hình tập trung, chỉ cần máy chủ gặp sự cố thì cả hệ thống sẽ ngưng trệ Còn đối với mạng ngang hàng, máy tính có thể tham gia hoặc rời khỏi mạng bất kỳ lúc nào
mà mạng vẫn hoạt động bình thường, các máy tính cịn lại vẫn có th trao đôi
thông tin và chia sẻ tài nguyên cho nhau
Bên cạnh nhiều ưu điểm đã được nêu ở trên thì mạng ngang hàng cũng
còn tồn tại một số nhược điểm
1.1.3 Nhược điểm của mạng ngang hàng
Trang 11khác nhau, khi nó kết nối đến nhiều máy tính khác nhau cùng cung cấp một dich vụ
Các yêu câu gửi đi có thê khơng nhận được kêt quả trả vê vì khơng có gì đảm bảo sẽ tôn tại một máy nào đó có khả năng đáp ứng yêu câu đó
Do đặc điêm là các node có thê rời mạng bât kì lúc nào nên có thê bị ngắt kết nỗi tới các node này bất cứ thời điểm nào
1.2 Phân loại mạng ngang hàng
Mạng ngang hàng có nhiều tiêu trí phân loại khác nhau, trong luận văn này xIm được trình bày hai tiêu trí phân loại mạng ngang hàng đó là: Phân loại theo mức độ tập trung của các node mạng và phân loại theo cấu trúc liên kết của các node
1.2.1 Phần loại theo mức độ tập trung của các node mạng
Nếu lấy tiêu chí về mức độ tập trung của các node mạng, mạng ngang hàng có thê phân làm 2 loại: mạng ngang hàng thuần tuý và mạng ngang hang lai
a Mạng ngang hàng thuận tuý
Trang 12Hình 2 Mơ hình mạng ngang hang thuan tuy b Mạng ngang hàng lai ghép
Trong mơ hình này, các peer lưu giữ nội dung chia sẻ với các node khác ở trên mang Tat cả các peer đều kết nối tới một server, server này lưu giữ thông tin về:
-_ Bảng thông tin kết nối của người dùng đăng kí (địa chỉ IP, băng thông
kết nỗi )
-_ Bảng liệt kê danh sách các file mà các peer năm giữ và chia sẻ ở trên mang cùng với các thông tin mô tả về các files ( tên file, ngày tạo ) Tât cả các peer muôn kêt nôi vào mạng đêu phải liên lạc với server và thông báo với server các file mà nó có
Một peer mà mn tìm kiêm một file, yêu câu tìm kiêm được chuyên cho
server, server tìm kiêm trong thông tin chỉ mục của mình và trả lại danh sách các
Trang 13Nie oP
“Đau,
Hình 3 Hệ thống mạng ngang hàng lai ghép
1.2.2 Phân loại theo câu trúc liên kết
Mạng phủ bao gồm tất cả các node mạng đại điện cho các máy tham gia và các liên kết giữa các node mạng này Một liên kết tôn tại giữa hai node mạng khi
một node mạng biết vị trí của node mạng kia Dựa vào cấu trúc liên kết trong
mạng phủ người ta có thể phân loại mạng ngang hàng thành hai loại: mạng ngang hàng khơng có cấu trúc và mạng ngang hàng có cấu trúc
a Mạng ngang hàng khơng có cầu trúc
Một mạng ngang hàng được gọi là mạng ngang hàng không có cấu trúc khi liên kết giữa các node trong mạng phủ được thiết lập ngẫu nhiên (tức là không theo một quy luật nào cả) Những mạng như vậy dễ dàng xây dựng vì khi một node muốn tham gia mạng có thê lẫy liên kết có sẵn của một node khác đang ở trong mạng và sau đó dan dan tự bản thân nó sẽ thêm vào các liên kết mới của riêng mình
Trong mạng ngang hàng khơng có cấu trúc, khi một node muốn tìm kiếm một dữ liệu, thì yêu cầu tìm kiếm sẽ truyền trên toàn bộ mạng để tìm ra càng
Trang 1413
chia sé trong một vải máy thì xác suất tìm thấy là rất nhỏ Tính chất này là hiển nhiên trong mạng ngang hàng khơng có cấu trúc vì khơng có bất kỳ mối tương quan nào giữa một máy và dữ liệu của nó quản lý trong mạng, do vậy yêu cầu tìm kiếm được chuyển một cách ngẫu nhiên đến một số máy trong mạng Số máy trong mạng càng lớn thì khả năng tìm thấy thơng tin càng nhỏ Do khi muốn tìm kiếm trên mạng ngang hàng khơng có cấu trúc, u cầu tìm kiếm được phát trên tồn mạng nên khơng có cấu trúc định hướng, một yêu cầu thường chuyên cho số lượng lớn các máy tính trong mạng làm tiêu tốn băng thông, dẫn
đến hiệu quả tìm kiếm thấp
Một mơ hình mạng ngang hàng khơng cấu trúc điển hình đó là mạng Gnutella Các máy tính trong Gnutella được mô tả như là những “servent”, các thành viên trong mạng và được chia sẻ file Các máy tính khác có thê lẫy được những file chia sẻ này Việc tìm kiếm file trên mạng mô tả trong hình 4, khi một máy tính A tìm kiếm file X, nó sẽ gửi một truy vẫn broadcast tới tất cả các máy tính nó biết, được coi là hàng xóm của nó Truy vấn sau đó sẽ được chuyên dan qua các bước và tới được máy tính có chứa file X Gnutella có mã nguồn mở và có giao thức mô tả rõ ràng trên mạng Internet, bất cứ ai quan tâm cũng có thế tìm hiểu và phát triển để tạo ra một mạng ngang hàng của riêng mình với các
/¬#Ý oN ge KY tính năng mn có | ~ AI ¬— Source A
Trang 15b Mạng ngang hàng có cầu trúc
Mạng ngang hàng có cấu trúc khắc phục nhược điểm của mạng không cấu trúc băng cách sử dụng hệ thống Bảng Băm Phân Tán (DHT: 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 phủ 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 đữ 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 đữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lẫy kết quả Việc tìm kiếm thơng tin trên mạng ngang hàng có cầu trúc cũng nhanh hơn so với mạng ngang hàng không có cấu trúc Nếu như mạng ngang hàng khơng có cấu trúc các máy tính gửi thơng điểm broadcast đề tìm kiếm thơng tin thì trong mạng ngang hàng có cẫu trúc một máy tính chỉ cần gửi thơng điệp tìm kiếm qua một số máy tính Giao thức tìm kiếm chung trong mạng sẽ đảm bảo thơng tin sẽ được tìm thấy Một số mạng ngang hàng có cau
trúc nổi tiếng như: Chord, CAN, Kademlia, pastry trong đó Chord và CAN
được mô tả chỉ tiết, đã được mô phỏng và cho kết quả qua các bài báo Trong phân tiếp theo luận văn xin trình bày chỉ tiết về giao thức mạng Chord
1.3 Mạng ngang hàng có cấu trúc dựa trên DHT(Distributed Hash Table)
1.3.1 Giới thiệu DHT
Các nghiên cứu về DHT được bắt nguồn cùng với sự phát triển của các hệ thống P2P như Napster, Gnutella, và Freenet, những hệ thống này sử dụng lợi thế của các tài nguyên phân tán trên mạng Internet để cung cấp một ứng dụng đơn hữu dụng Cụ thể, chúng đã sử dụng lợi thế tăng băng thông và sức chứa của ô cứng còn nhàn rối của các Peer đê cung câp dịch vu chia sé file
Những hệ thống này khác nhau ở cách thức thực hiện việc tìm kiếm dữ liệu
mà các peer quản lý Napster sử dụng một server trung tâm: mỗi node khi tham gia vào mạng sẽ gửi một danh sách các file được lưu trữ ở máy lên cho server, server sẽ xử lý các truy vấn, tìm các file trong danh sách, rồi gửi đường dẫn tới node chứa các file cần tìm Thành phần trung tâm này tạo ra một điểm yếu trong hệ thống vì có thể bị tấn cơng hoặc có thể bị kiện cáo về bản quyén Gnutella va những mạng tương tự chuyên sang sử dụng mô hình phát tràn các thơng điệp truy vấn (flooding query model), mỗi truy vẫn được đưa ra tương ứng với việc
Trang 1615
đủ tránh được điểm yếu của thành phần trung tâm như trên, thì phương pháp này
lại kém hiệu quả hơn so với Napster Cuối cùng Freenet thực sự là phân tán, nó
sử dụng cơ chế routing dựa trên khóa, mỗi file được gán một khóa, các khóa gan giống nhau sẽ cùng được lưu ở một tập các node Các truy vấn sẽ được định tuyến đi trong mạng mà không phải ghé thăm tất cả các node có trên mạng Tuy nhiên, Freenet không đảm bảo đữ liệu sẽ được tìm thấy
DHT su dung co ché dinh tuyén dựa trên khóa trên một kiến trúc mạng chặt chẽ hơn để có thể đạt được cả tính phân tán về tài nguyên của Gnutella và Freenet, tính hiệu quả về truy vẫn của Napster Có một hạn chế là DHT chỉ hỗ
trợ tìm kiếm chính xác chứ khơng hỗ trợ tìm kiếm theo từ khóa, hay tìm kiếm
theo khoảng, tuy nhiên các chức năng này có thể triển khai mở rộng trên nền DHT
Distributed hash tables (DHTs) 1a hé théng mang phân tán, cung cấp các dich vu tim kiém dua vao bảng băm Bảng băm là một cặp ( tên, giá trị) Mỗi một node khi tham gia vào mạng có thể dễ dàng tìm thấy giá trị mong muốn dựa vào tên của giá trị đó Việc hình thành tên (khóa) và gắn các khóa đó với giá trị tương ứng được thực hiện trực tiếp tại các node trong mạng, chính vì vậy khả năng sập mạng được giảm tối thiểu khi các node tham gia hoặc dời bỏ mạng Chính lý do này khiến khả năng mở rộng của mạng DHT là cực lớn, quá trình kiêm soát việc tham gia, dời bỏ mạng của các node cũng trở nên dê dàng hơn
Với cầu trúc vững mạnh, DHT được sử dụng để xây dựng nhiều ứng dụng phức tạp như: Hệ thống các file phân tán, hệ thống chia sẻ file ngang hàng, hệ thống nội dung phân tán, tin nhắn tức thời, Multicast Các mạng DHT nổi tiếng thường được nhắc đến 1a: Bittorrent, eDonkey network, Yacy
Một số mạng based - DHT đầu tiên như CAN, Chord được giới thiệu cùng thời gian năm 2001 Từ đó lĩnh vực nghiên cứu này trở lên khả sôi động Công nghệ DHT đã được sử dụng như một thành phần của BitTorrent
DHT nhân mạnh vào các thuộc tính sau:
e_ Không tập trung (Decentralization): Cac node tham gia câu thành hệ thơng khơng có thành phần trung tâm làm điều phối mạng
e_ Khả năng mở rộng: Hệ thống vẫn có thê hoạt động hiệu quả với
Trang 17e Kha nang chiju loi: Hé thong van có thê làm việc ôn định ngay cả
khi có các sự kiện node tham gia, rời bỏ, lỗi diễn ra liên tục
Kỹ thuật khóa được sử dụng dé dat duoc mục đích là mỗi node chỉ cần liên
kết với một số ít các node khác trong hệ thống, thường là O(logn) với n là số node tham gia Vì vậy sự thay đổi trong các thành viên chỉ ảnh hưởng đến một phân nhỏ của hệ thống
Một số thiết kế DHT tìm đến tính bảo mật chống lại những người tham gia ác tâm và cho phép người tham gia giấu danh tính, mặc dù điều này không phô biến trong các hệ thống P2P chia sẻ file
Cuối cùng, DHT phải giải quyết những vấn đề cơ bản của các hệ thống phân tán đó là cân bằng tải, tính tồn vẹn đữ liệu, hiệu năng (cụ thé la dam bảo
các hoạt động như định tuyến, lưu trữ, truy vẫn phải được thực thi nhanh chóng)
1.3.2 Mạng chord
Theo một đánh giá tổng hợp về các thuật toán định tuyến dựa trên DHT trong các kiến trúc mạng khác nhau như hình trịn (ring, với giao thức Chord), hình cây (tree), hình hộp (hypercube, với giao thức CAN), .xét về sự linh hoạt trong việc định tuyến, khả năng phục hồi trạng thái cũng như khả năng chịu lỗi, kiến trúc Ring đều được đánh giá cao Vì vậy, kiến trúc Chord[1] thường hay
được sử dụng như là mạng phủ để thực hiện các cài đặt cải tiến việc các ứng
dụng, xử lý trên P2P có cấu trúc
a M6 hinh mang Chord
Chord[1] được mô tả dưới dạng một vịng trịn và khơng gian định danh
phân bồ đều trên vòng tròn tăng dần theo chiều kim đồng hồ Nếu gọi N là số bit định danh của không gian thì mạng Chord có thể chứa tối đa 2Ì node Mỗi node trên Chord có một định danh iđ và duy trì liên kết 2 chiều với node đứng liền trước và liền sau nó theo chiều kim đồng hồ tạo thành một mạch liên kết vòng
Node liền trước được goi la Successor(id), va node liền sau được gọi là
Predecessor(id) Thêm vào đó, một node sẽ lưu một bảng định tuyến gọi là Finger Table, cho phép node đó định tuyến tới các node ở xa Mỗi dòng trong bảng Finger Table sẽ lưu thông tin về 1 node ở xa, gọi là 1 entry Không gian
Trang 1817
finger table keys start| int |succ | 6 |
1 |[1.⁄2)| 1 2 | (2,4)| 3 4 | [4,0)| 0
finger table keys
Start] int |succ | 1 |
2 |[2.3)| 3 3 |[3.5)| 3 5 |[5/1)| 0
finger table keys Start! int 'succ 2 |
4 |[45)} 0 5 |[57)| 0 7 |[73)| 0
Hình 5 Một mạng Chord với 3 node 0, 1, 3 và các bảng Finger Table ứng với mdi node N = 3 bit nén cé 3 entry
Các trường trong mỗi entry trong bảng Finger Table được định nghĩa trong bảng dưới: Notation Definition Finger[k].start (n+2*1) mod 2" 1<k<m —., interval - | (mngerlklstartfngerlkdllstart | node | Fñtnodie>nfñngdlkldrn `
_Ñueesr | The next node on ther identifier |
circle;
Finger[1].node
| Predecessor | The previous node on the identifier |
circle
Trong do gia tr] cua trường node tai dong 1 của bang duoc coi nhu 1a finger thir i cua node n Thong tin luu trong bang ciing bao gém ca IP va Port cua cac node lién quan Node dau tién trong bang Finger Table cia n chinh 1a Successor của n, hay con dugc goi la Immediate Successor
Trang 19+ Mỗi node chỉ cần lưu trữ thông tin của một số node nhất định trong bảng định tuyến của mình
+ Node biết thông tin về các node gần nó nhiều hơn là các node ở xa
+ Băng cách sử dụng bảng Einger Table một node n có thể xác định được vị trí của bất kỳ khóa nào trên mạng
b Anh xạ khóa vào một node trong Chord
Chord[ 1 | ánh xạ các khóa vào các node, thường sẽ là một cặp key và value
Một value co thé la 1 address, 1 vin ban, hodc 1 mục đữ liệu Chord có thể thực
hiện chức năng này bằng cách lưu các cặp key/value ở các node mà key được ánh xạ Một node sẽ chịu trách nhiệm lưu giữ một khóa k nếu node đó là node có định danh ¡d nhỏ nhất va id lon hơn k Một node khi lưu giữ khóa k cũng sẽ được gọi là Successor của k, ký hiệu là Successor(k)
Fal 7 i@ successor(1) = 1
successor(2)= 3
successor(6) =0
Hình 6 Lưu giữ key trong mạng Chord: node 0 lưu key 6, node 1 lưu key 1 và node 3 lưu key 2
c Tim kiém trong mang Chord
Khi một node n cần tìm kiếm một khóa có định danh id, node n sé tim node
Trang 2019
Một ví dụ được chỉ trong hình §, giả sw node 3 muốn tìm successor của ID
= 1 (hoặc còn có thể coi là khóa) ID =1 thuộc khoảng [7, 3) Node 3 kiểm tra
entry thứ 3 trong bảng định tuyến của nó, là 0 Bởi vì 0 nằm ngay trước 1 trên vòng tròn, node 3 sẽ hỏi node 0 để tìm successor của 1 Tiếp theo, node 0 sẽ tìm trong bảng định tuyến của nó và suy ra successor của 1 chính là node 1, và trả lời node 3 rằng node 1 chính là successor của khóa ID = I
d Tham gia và Ôn định mạng
Trong 1 mạng động, thường xuyên có sự thay đối với các node tham gia và
rời khỏi bất kì lúc nào Để có thể xác định được vị trí của các khóa ở trong
mạng, Chord cần thỏa mãn 2 điểm sau:
e©_ Mỗi successor của một node phải được duy trì đúng
e_ Với mỗi khóa k, node successor(k) có trách nhiệm quản lý k
Khi tham gia vào một mạng Chord, một node n cần chọn cho nó một định danh id và báo cho các node bên cạnh biết sự tham gia của nó Các node
Successor và Predecessor sẽ cần phải cập nhật thông tin về node mới tham gia vào mạng Node n cũng khởi tạo bảng định tuyến Finger Table Để mạng vẫn định tuyến đúng sau khi có sự tham gia của node n, các node cần thường xuyên chạy thuật tốn ơn định mạng dé cap nhat thong tin vé node bén canh (hay node láng giềng) Một số node có lưu thơng tin vé n trong bang Finger Table thi can cap nhat cdc entry lién quan trong Finger Table Cudi cling, node Successor cla n sẽ chuyển một phần khóa k mà bây giờ n là Successor(k) cho n lưu giữ Việc chuyển khóa sẽ do tang trên của ứng dụng thực hiện
Khi một node chuân bị rời khỏi mạng, nó cân thơng báo cho các node bên cạnh biệt đê ôn định lại mạng Node đó cũng sẽ chuyên các khóa nó lưu giữ cho node Successor của nó
1.4 Kết luận
Trang 2221
CHƯƠNG 2 - CAN BANG TAI TREN MANG NGANG HANG CO CAU
TRUC
Cân bằng tải là một trong những điều kiện để giúp cho mạng có thể hoạt động một cách có hiệu quả Có rất nhiều các nguyên nhân dẫn đến mất cân bằng tải và đã có một số nghiên cứu và đã có các giải pháp cho vẫn đề cân bằng tải Trong chương này xin trình bày các nghiên cứu về một số nguyên nhân dẫn đến mật cần băng tải và một sô giải pháp cân bắng tải đã được công bô
2.1 Khái niệm về tải trên mạng ngang hàng
2.1.1 Khái niệm
Mục đích chính của các hệ thống P2P là chia sẻ tài nguyên sẵn có (bandwidth, storage, CPU power) giữa các peers sao cho người dùng có thê truy
van va str dụng một cách hiệu qua
“Hiệu quả” ở đây nghĩa là hệ thống phải đảm bảo sự phân chia “tải” càng đồng đều giữa các peers càng tốt —> cân bằng tải là vấn đề rất quan trọng đối với hệ thống P2P
Tải (Load/Workload ): phụ thuộc vào từng hệ thống P2P cụ thể:
- Số bít yêu cầu để lưu trữ đữ liệu
- Băng thông mạng
- Lượng thời gian mà CPU cân đề xử lý công việc Các kí hiệu:
n — số nodes trong hệ thống
l¡ — tải của n¡ tại một thời điểm cụ thể
c; — Kha nang tai (capacity) cua node cua nj, H¡ — hệ số sử dụng (utilization) của node Nj
_ili
/— đi
Khi p; > 1, node n bi “nang tải”, ngược lại node n được coi là “nhẹ
2939
tai”
› nodesn ln
a
Ponodem Cn
Trang 232.1.2 Node qua tai
Khé nang tai cia m6t node (C,Target): Là tải lớn nhất mà một node có thê nhận được
Với mỗi nút n; mà tải thực tế tại thời điểm bất kỳ vượt quá khả năng chịu tải
lớn nhất của nó thì nút n; gọi là quá tải (Overloaded) Một nút quá tải không có khả năng lưu trữ, định tuyến, hoặc tính tốn
2.1.3 Node có tải cao và Node có tải thấp
Như đã trình bày ở trên mỗi nút chỉ có một khả năng tải C¡ nào đó Theo lý thuyết khi một nút có tải chưa vượt quá C; vẫn chưa bị coi là quá tải Tuy nhiên trong thực tế khi các nút hoạt động cần phải có những xử lý tải trung gian (temporarily) do vậy tải có thể vượt quá khả năng tải C¡ Vì lý do đó mà ta đưa ra khái niệm nút có tải cao và nút có tải thấp
Mỗi nút được thiết lập ngưỡng tải cao U; và ngưỡng tải thấp L¡ Tuy nhiên việc xem xét nút có tải cao và nút có tải thấp cịn phụ thuộc vào từng thuật toán
cụ thể
2.2 Các nguyên nhân dẫn đến mất cân bằng tải trên các hệ thống DHT
Bên cạnh ưu điểm trong việc tô chức và truy vẫn dữ liệu một cách có câu trúc, các giao thức sử dụng DHT có một nhược điểm tồn tại và đã được đề cập
trong nhiều nghiên cứu, đó là: Sự phân tán dữ liệu giữa các nút trong hệ thống Dựa trên tính chất phân bố ngẫu nhiên kết quả của hàm băm, khi tính tốn đến độ phức tạp của truy vẫn hay phép gán dữ liệu trên DHT, người ta thường mặc định là dữ liệu phân bố gần như đồng đều giữa các nút Bên cạnh đó, các nút tham gia hệ thống cũng được coi là có khả năng như nhau về băng thông, lưu
trữ, xử lý của CPU Trong thực tế lại có một sự khác biệt lớn về tải giữa các
nút hay còn gọi là sự mất cân bằng tải Có thể có nhiều nguyên nhân dẫn tới việc mất cân bằng tải trên mạng ngang hàng, ở đây luận văn xin đưa ra bốn nguyên nhân chính dân đên mật cân băng tải
2.2.1 Định danh các node không cân bằng
Trang 2423
thì sự khác nhau về kích cỡ của vùng nhỏ nhất và lớn nhất có thể lên tới O(NlogN)
Hình 7 Định danh các node không cân bang
2.2.2 Định danh dữ liệu không cân bằng
Giả sử vẫn đề định danh node đã được giải quyết, nếu đữ liệu được phân bỗ
quả tập trung vào một vùng thì cũng sẽ gây tình trạng “nặng tải” tại khu vực đó Nói cách khác, vị trí dat files cũng có thể gây ảnh hưởng lớn tới hiệu năng của hệ thống
@ - node gw - data
Hình 8 Dữ liệu các node không cân bằng
Kết quả mô phỏng hệ thống DHT Chord ở hình 9 với 4,096 node và khoảng 500,000 files dữ liệu cho thấy khơng có sự phân bố tối ưu đữ liệu trên
các node (hình trá1), thậm chí mơ phỏng với số files dữ liệu dao động từ 100,000
Trang 25
Phân bố tối ưu số 200
documents/nodes s o 150} # = w a § Š 100} 3 Ẻ s 3 5 * š S L Ễ = 50 ¬ = > a F s : , 0 : 0 200 400 600 800 1000 1200 ũ 200k 400k 600k 800k 1000k
Documents per node Number of documents in the DHT
Hình 9 Kết quả mô phỏng về sự phân bố dữ liệu không đều nhau 2.2.3 Hot spots
Một số nghiên cứu đã cho thấy mức độ thường xuyên truy vấn đến các files có thể dao động từ 1 — 3 lần Các tác giả đã phát hiện ra rằng trong các hệ thống
P2P hiện nay chỉ có 10% số các files được truy vẫn nhiều nhất và chiếm tới 60%
tông lưu thơng trên mạng Ví dụ các dữ liệu mà được nhiều người yêu thích (các file MP3 được nhiều người truy cập) và dẫn đến việc truy cập vào nút này nhiều
hơn, do đó nó phải chịu tải nhiều hơn các node bình thường khác tallat-song4.mp3 tallat-song3.mp3 @® - node g - data tallat-song1.mp3 tallat-song2.mp3 britney.mp3
Trang 2625
2.2.4 Khả năng các node không cân bằng
Trong thực tế các nút tham gia vào mạng thường rất đa dạng và có khả năng (CPU, Storage, Bandwidth) là khác nhau, có những node khi tham gia vào mạng là những máy tính đời cũ kết nối Internet chậm (Dial Up), nhưng cũng có những máy tham gia vào mạng là các máy có cấu hình mạnh kết nối internet băng thông rộng(ADSL) Saroui và đồng nghiệp đã nghiên cứu 2 hệ thống chia sẻ files nổi tiếng là Napster va Gnutella cho thay mức độ chênh lệch về khả năng của các node có thể lên tới 3, thậm chí là 5 lần Trong một thực tế như vậy, nếu các vùng mà được gán cho các node yếu thì cho dù phân bố lưu trữ các files đữ liệu và truy vẫn trong hệ thong đạt được sự đồng đều thì vẫn xảy ra sự mat can bang tai nghiém trong
@ - node gw - data
Hình 11.Kha nang cdc nut khéng cAn bang
2.2.5 Nhận xét
Với những nguyên nhân đã nêu ở trên thì rõ ràng việc phân tán tải đồng đều trên hệ thống không thể chỉ đơn giản dựa vào các hàm băm Những kĩ thuật khác nhằm mục đích cân băng tải giữa các node cần được đưa vào áp dụng
2.3 Các giải pháp cân bằng tải
Trang 272.3.1 Hướng sử dụng server ảo
Theo hướng này mỗi node vật lý quản lý một hoặc nhiều server ảo với các định danh ngẫu nhiên được chọn từ không gian định danh Các server ảo hoạt động như các node tham gia mạng DHT Trong một hệ thống với các node có khả năng đồng đều cao, mỗi node vật lý cần duy trì O(logn) server ảo để làm giảm nhân tố mất cân băng xuống đến một hằng số Với một hệ thống DHT gồm nhiều node có khả năng chịu tải khác nhau, mỗi node vật lý sẽ chọn một s6 lượng server ảo tỷ lệ với khả năng của nó Sau đây luận văn xin trình bày một số thuật toán cân bằng tải thực hiện theo hướng này
a Sw dung Log(N) Virtual Servers
Tư tưởng của giải thuật cân bằng tải này khá đơn giản, đó là: sử dụng log(N)VS[4] cho mỗi node để cân bằng các không gian định danh node Giải
thuật này được xây dựng dựa trên thực tế là các định danh node không được
phân bố một cách đồng đều trên tồn bộ khơng gian định danh mà có phân bố rat gan với dạng phân b6 Poisson
Log(N) VS mac định tải được phân bố trong không gian định danh một cách đồng đều và khả năng các node là như nhau Chính vì vậy, nếu mỗi node có 1 VS thì dẫn tới khả năng một số node sẽ gặp phải tình trạng “nghẽn cơ chai” (nguyên nhân mất cân bằng tải thứ nhất đã nêu ở trên)
Theo Lí thuyết giới hạn trung tâm (Central Limit Theorem), nếu số lượng VS của mỗi node càng tăng lên thì các định danh node được phân bố đồng đều hơn trong không gian định danh Điều này đồng nghĩa với việc mức độ cân băng tải trong hệ thống càng cao hơn Tuy nhiên, việc mỗi node vật lí có q nhiều VS sẽ dẫn tới việc tăng thông tin quản trị nên giải thuật này đã đưa ra giải pháp là mỗi node sẽ có log(N) VS Ví dụ minh họa ở hình 12 cho thấy, trong quá trình ra nhập mạng, mỗi node tự hình thành một số VS và mỗi VS ra nhập hệ thống
Trang 2827 Slack Capacity L„V: ra Ts nodes: (a) (3) 1 VS per noe (a [E] 3 V5 per node
Hình 12.C4n bang tai stv dung Log(N) Virtual Servers
Đánh giá: Log(N) VS đơn giản và hoạt động tốt với giả thiết rằng sự phân bồ về tải là đồng đều nhau và các node có khả năng như nhau Tuy nhiên, việc tăng thêm số lượng VS sé lam nay sinh một số vẫn đề
Thứ nhất, khi các node ra/vào mạng thường xuyên, chúng phải mang theo
các VS của node đó và sẽ dẫn tới mất log(N) lần điều chỉnh
Thứ hai, mỗi node phải tăng thêm log(N) lần việc lưu trữ thông tin quản trị VS cũng như thơng tin tìm kiếm Bên cạnh đó, số bước tìm kiếm cũng tăng lên
khi hệ thống có nhiều VS hơn
b Phương pháp Proportfion
Giải thuật Proportion[4] đề cập tới việc giải quyết vẫn đề các nút tham gia hệ thống có khả năng khác nhau Với giải thuật này, khi tham gia vào mạng mỗi nút vật lý sẽ tạo ra một SỐ lượng các Về tuỳ theo khả năng của nút Bên cạnh đó,
thơng tin về tải trước đó cũng được tính đến Sau bước đầu tiên này, mỗi nút sẽ
tự tính toán việc thêm hoặc bớt tải mà không liên hệ với bất cứ node nào khác
Mỗi node sau khi đã tham gia hệ thống sẽ định thời chạy thuật toán Proportion-Adjust để tự tạo mới hoặc loại bỏ một số VS Nếu một node đã quá
tải và đang có nhiều hơn 1 VS, nó sẽ chọn VS chịu tải ít nhất có thể làm cho
node trở thành nhẹ tải để loại bỏ (dòng 2-3 của giải thuật ) Nếu một node là nhẹ tải, nó sẽ tạo thêm 1 VS nếu điều đó khơng làm nó trở thành nặng tải (dịng 4-6)
Hình 13 mơ tả một cách trực quan quá trình loại bỏ hay tạo mới VS của một
node
Proportion-Apsusr()
1 (Initially create VSs in proportion to capacity )
2 if overloaded and VSset.size > 1
Trang 294 if underloaded and w+ <U
VSet.size
and VSset.size < VSset.maxsize
6 then Create VS.id < h(x + VSset.size ) I mm K—— LumibB= I lun Se I — I == I I (al fal (b) 1) I
load shedaing load aoquilsttian
Hình 13 Tao mdi VS (a) va loai b6é VS (b)
Đánh giá: Thuật toán Proportion cho phép các node có khả năng khác nhau khi
tham gia vào hệ thơng có thê linh hoạt điều chỉnh tải cho mình, điều đó giúp
thực hiện việc cân bằng tải cho hệ thống Tuy nhiên, việc các node độc lập thực hiện điều chỉnh tải có một số nhược điểm Trước hết, một node chỉ với một vài VS thì khơng thể đánh giá một cách chính xác về hiệu quả của việc tao ra 1 VS
mới Bên cạnh đó, nếu một node quá tải và loại bỏ 1 VS của nó thì điều này có
thể gây nên tình trạng nặng tải với các node khác và dẫn tới việc phải loại bỏ
hàng loạt VS Cuỗi cùng, khi toàn hệ thống đang ở tỉnh trạng nhẹ tải, thuật toán
sẽ dẫn tới việc tất cả các node tạo ra số lượng tối đa VS cho phép, điều này sẽ làm tăng đáng kê số bước tìm kiếm hoặc tình trạng mất ốn định khi các node ra khỏi mạng (vì khi một node rời mạng thì các VS của nó sẽ bị loại bỏ)
c.Phương pháp di chuyển Virtual Server (Transfer)
Giải thuật Transfer[4] hướng vào việc điều chỉnh tải của các node trong hệ thống theo phương pháp “động” Nguyên tắc của giải thuật này như sau: Mỗi
node vật lí chọn một số lượng nhất định các định danh và mỗi định danh sẽ được
đành cho một VS Các node nặng tải sử dụng thuật toán Transfer liên hệ với các node nhẹ tải để yêu cầu được đi chuyển một phân tải của mình (thực chất là gán
lai VS gitta cac node nay) Gia st goi node h là nặng tải, node | la nhẹ tải Việc
di chuyển các VS v giữa các node phải thỏa mãn các ràng buộc sau: 1 Việc di chuyển v từ # sang / không làm cho 7 thành node nặng tải
Trang 3029
3 Nếu khéng co VS nao cé thé di chuyén dé A tré thanh nhe tai thì đi chuyển VS “nang nhat” tir A sang /
Thuat toan Transfer duoc minh hoa tai Hinh 14
I l a 1 ij we l a H = = ' LÍ l I (ay io} ‘ SỐ I l (a) (a) (D)
transter Sollt and transter
Hinh 14 Node nặng tải di chuyển VS sang node nhẹ tải (nếu chỉ có 1 VS mà vẫn nặng tải thì sẽ chia làm 2 VS để di chuyền)
Transrer()
1 if !overloaded
2 then return
3 if VSset.size > 1
4 then Contact node n at random
5 Choose v € VSset such that:
6 (a) Transferring Vv to N will not overload n 7 (b) v is the least loaded virtual server
8 that will halt overload;
9 Failing that, let v be most loaded VS 10 else v € VSset [0]
11 Create VS.id —yig em? mod D
12 TRANSFER
Giải thuật Transfer có 03 phương pháp di chuyên VS, đó là: “one-to-one”, “one-to-many”, “many-to-many” [2]
Phương pháp One — to — One
Trang 31Định kì thời gian liên hệ
VSs được di chuyên
Node ngẫu nhiên
Hình 15 Phuong phap One - to - One
Phương pháp này dễ dàng thực hiện trong một mơ hình phân tán Mỗi nút chịu tải nhẹ có thê định kỳ lấy 1 ID ngẫu nhiên rơi sau đó thực hiện thao tác tìm
kiếm đề tìm ra nút chịu trách nhiệm với ID đó Nếu nút đó là nút chịu tải nặng thì một sự dịch chuyển có thê thực hiện giữa 2 nút
Trong phương pháp này chỉ có nút chịu tải nhẹ mới thực hiện thăm dò; Nút tải nặng không thực hiện bất cứ thăm dò nào Đặc điểm của phương pháp này:
- Các nút tải nặng được giảm bớt sức nặng của việc thắm dò
- Khi một hệ thống tải rất nặng và hầu hết các nút chịu tải nặng khơng có sự nguy hiêm nào cho việc tải của mạng khác hoặc bị thât bại
- Nêu tải của một nút tương ứng với độ dài của không gian I[D mà nút đó sở hữu một đâu dị ngẫu nhiên sẽ được thực hiện bởi nút tải nhẹ để tìm ra nút tải nặng
Phương pháp One — ífo — Many
Không giống như phương pháp đầu tiên phương pháp này cho phép tại một
thời điêm Ì nút tải nặng xem xét nhiêu hơn một nút tải nhẹ
Lay h biéu thị cho nút tải nặng và lấy là, l›, ,l, là một tập các nút tải nhẹ
được xem xét bởi h với mỗi cặp (h,l;) chúng ta lấy một server ảo v; Chọn nút tải nhẹ nhất mà làm cho nút h tải nhẹ, nếu khơng có server như vậy số lượng các server vị (1<i<k) được dịch chuyên
Chúng ta thực hiện phương pháp này bằng việc duy trì các Directory mà
lưu trữ thông tin tải về một tập các nút tải nhẹ trong hệ thống Sử dụng hệ thống
DHT giống nhau để lưu trữ các Directory này Giả sử răng có đ Directory trong hệ thống Một nút tải nhẹ l được băm vào một Directory băng việc sử dụng một
hàm băm tốt h° mà cho ta giá trị trong đoạn [0,d) Một Drrectory 1 được lưu trữ
Trang 3231
Virtual
servers
Hình 16 Phương pháp One - to - Many
Một nút chịu tải nhe | sé thông báo định kỳ tới tải đích và tải hiện tại để nút i=h(h°()), nút chịu trách nhiệm cho Directory h'() Lần lượt, các nút tải nặng sẽ định kỳ lấy mẫu các Directory đang tồn tại Một nút tải nặng n lấy ngẫu nhiên ke[0,d] và gửi thơng tin về tải đích của nó và tải của tất cả các server ảo tới nút j=h(h’(k)) Ở trên nhận như là một thông báo, nút j như là nút chịu tải nhẹ trong
Directory cua no, dé tim ra server ảo tốt nhất mà có thê dịch chuyển từ n tới một
nút chịu tải nhẹ trong Directory của nó Q trình xử lý này sẽ lặp lại cho đến
khi tất cả các nút trở thành tải nhẹ
Phuong phap Many —- to — Many
Phương pháp này là sự mở rộng của hai phương pháp trên Trong khi phương pháp thứ nhất chúng ta thấy phù hợp với một nút chịu tải nặng và một nút chịu tải nhẹ, ở phương pháp thứ 2 phương pháp phù hợp với một nút chịu tải nặng và nhiều nút chịu tải nhẹ, trong phương pháp này chúng ta thấy nó phù hợp
với nhiều nút chịu tải nặng và nhiều nút chịu tải nhẹ
Phương pháp này cho phép nhiều nút chịu tải nặng và nhiều nút chịu tải
nhẹ tương tác lẫn nhau, chúng ta sử dụng khái niệm “Global pool” của các
server ảo, một bước trung gian di chuyển các server ảo từ một nút chịu tải nặng
tới một nút chịu tải nhẹ “Pool” là một cấu trúc đữ liệu được sử dụng để tính
tốn vị trí cuối cùng; khơng có tải nào thực sự bị di chuyển cho đến khi thuật
toán kết thúc
Trang 33(leave) hệ thống DHT Tuy nhiên, phương pháp này bộc lộ 02 nhược điểm quan
trọng
Thứ nhất, việc duy tri cac Directory D 6 cac node vat li lam mat di mot dac
điểm quan trọng của hệ thống đó là tính phân tán vì thực chất một số nodes phải liên hệ với Directory D để lấy thông tin theo hình thức “tập trung” (tương tự như Client/Server) Trong trường hợp node chứa Directory D gặp sự cố, vẫn đề cân băng tải của khu vực này chắc chắn sẽ bị ảnh hưởng nghiêm trọng
Thứ hai, node chứa Directory D là xác định, ít thay đơi nên đây chính là điểm yếu dé bi tan công, và hậu quả tương nhự như ở nhược điểm thứ nhất, vẫn
đề cân bang tải không thể thực hiện được
Nhận xét
Qua việc phân tích và đánh giá về các giải thuật cân bằng tải tiếp cận theo hướng sử dụng server ảo luận văn nhận thấy, giải pháp sử dụng server ảo còn tồn tại một số yếu điểm, chắng hạn như để quản lý được các server ảo thì mỗi node phai duy trì khá nhiều liên kết đến các server ảo đó, thông thường số liên
két nay la O(logn)
2.3.2 Huwéng khong sir dung server ao
Theo hướng này mỗi định danh trong không gian địa chỉ sẽ tương ứng với mot node vat ly trong mang Dé đạt được sự cân bằng trong hệ thống các giải pháp đưa ra đều phải dịch chuyển định danh của các node trong hệ thống khi có
một node tham gia hoặc rời khỏi hệ thống Một thuật tốn điển hình đi theo
hướng này đó là cân bằng tải theo ngưỡng
Thuật toán cân bằng tải theo ngưỡng
Thuật toán cân bằng tải theo ngưỡng luôn duy trì được tải của mỗi node dưới một ngưỡng ö nào đó Một node trong mạng sẽ cố gắng chuyên tải cho các node khác khi tải của nó tắng quá ngưỡng 6 Xét một dãy các ngưỡng
T = cổ" y s ° ` ` A » A ` a ° a? 2 aA y
Trang 34Ww YY YU C8 SS ø\yyy 2 XQ ASS 0) Iga | PRX "ÑY | > SQ gy o SOO (8) (0)
Hình 17 (a) Node A chuyén tai cho node lang riéng B va (b) Chuyển định danh của node C vào giữa A và B Độ cao của mỗi hình tương ứng là biểu diễn tải của các
node
Ý tưởng của thuật toán cân bằng tải theo ngưỡng được mô tả như sau: khi
tải của một node n trong mạng vượt quá một ngưỡng T; nào đó thì đầu tiên nó cố
gắng chuyên tải cho một trong hai láng riêng có tải nhỏ hơn Nếu cả hai láng riéng đều có tải lơn hơn va không thê nhận được tải nữa thì nó tìm một node nhẹ tải trong mạng và có tải nhỏ nhất, nhờ node này nhận tải hộ bằng cách dịch
chuyển định danh của node nhẹ tải vừa tìm được vào giữa node n và
predecessor của n Để tìm một node nhẹ tải, node n phát một thông điệp hỏi Successor của n, successor của n tính tốn tải của nó và gửi trả lời node n nếu nó thỏa mãn điều kiện node nhẹ tải có thể dịch chuyển được Ngược lại, successor của n phát tiếp thông điệp để hỏi node tiếp theo trong vòng Chord (node tiếp theo theo chiều kim đồng hồ) Quá trình này tiếp tục cho đến khi tìm được một
node nhẹ tải thỏa mãn điều kiện, hoặc là duyệt hết các node mà khơng tìm được
node nào thỏa mãn
Đã có một số tác giả đê xuất phương pháp cân bằng tải theo hướng nay, cụ thể là:
Theo tac gia H Feelif, M Kitsuregawa, and B C Ooi:
Khi tải của một Node trong hệ thống vượt quá một ngưỡng nào đó thì nó thực hiện việc cân bằng tải theo các bước sau:
a) Xác định tải của các láng riềng của nó để chọn ra láng riềng có tải nhỏ hơn b) Chuyển tải của nó sang láng liếng có tải nhỏ vừa tìm được ở bước a
Trang 35Cy C
Hình 18 Node A có tải vượt quá ngưỡng Node B có tải thấp hơn trong hai láng
riêng của A Tải được chuyền từ Node A cho Node B
Theo tac gia Prasanna Ganesan
Đưa ra một cải tiến dựa vào phương pháp cân băng tải theo ngưỡng: Tác giả thấy răng: nếu các Node láng riềng có tải cao thì việc cân bằng tải khi hệ thống đạt đến mức độ cân bằng thì lượng tải di chuyển trong hệ thống sẽ nhiều hơn khi định danh lại thứ tự các Node Nếu một trong 2 Node láng riêng có thể
nhận được tải thì nó sẽ chun tải cho Node láng riềng đó
A
[ Vif Vy
Trang 3635
Nếu các Node láng riềng khơng nhận được tải thì nó sẽ đi tìm Node có tải thấp nhất trong hệ thơng và nhờ Node đó chịu tải hộ
AL
eA Ne Lá bà
QJ
Hình 20 Node A có tải vượt quá ngưỡng, node E chuyền tái cho F, E di chuyển vi tri dén giữa A và B đề nhận tải
Giải pháp này tải giữa các Node được di chuyên thực sự Tác giá Jonathan Ledlie
Sử dụng ý tưởng của các tác gia: H Feelif, M Kitsuregawa, and B C Ooi và Prasanna Ganesan đã giới thiệu ở trên Tác giả có hai cải tiễn
-_ Sử dụng khái niệm Utilization (Hệ số sử dụng) thay cho Workload bởi vì
thuật tốn ban đầu đã giả thiết các nút có khả năng tải giống nhau
Trang 37THRESHOLD(v t)
1 v.level, — log, (2) | e
2 if v.level, < v.level,_ 3 then return
4 vw’ — adjacent neighbor with lowest level 5 if v’ level < v.level;
6 then A — (1 — 2) x dist(pred(v),v) 7 if wv’ = pred(v)
8 then pred(v).id — pred(v).id +A
9 else vid — vid —A
10 else /* find new predecessor */
1] S — set of log(.N) random VSs 12 Choose s € S such that:
3 (a) s is the least utilized 14 (b) we + Weuce(s) < Gsucels)
15 s.id — pred(v).id + dest pree(v).v) mod D Threshold’s load balancing algorithm
Mỗi nút cho duy nhất một VS, các ID đã chọn ngẫu nhiên khi khởi tạo Thuật toán cân bằng tải được thực hiện theo các bước ở trên Với thuật toán này nó thực hiện cân băng tải cho một node với VS là v vào thời điểm t Các nút thiết đặt gia tri Unitization hién tai cua minh dén khi tang đến một mức nào đó Khi một node đó tăng đến một ngưỡng p Nếu Level của một nút tăng lên thì nó bắt đầu thực hiện cân bằng tải, trước hết nó sẽ xem xét nhờ các hàng xóm của mình để nhờ chịu tải hộ, trước tiên VS v sẽ xem xét điều chỉnh với Successor và Predecessor Nếu như Predecessor nhẹ tải hơn so với v, ID của nó sẽ được địch chuyên về phía v, như vậy v được giảm tải v cũng có thể di chuyên ID của nó
về phía Predecessor khi đó tải của v được chuyển cho Successor chiu tai ho
Trong trường hợp các hàng xóm khơng chịu tải hộ được, nó sẽ đi tìm một node nhẹ tải trong hệ thống và đi chuyển nút đó tới cạnh v để giảm tải cho v nhưng
với điều kiện khi nút mà có thể chịu tải hộ cho v di chuyến đi thì nó khơng làm
Trang 3837
Thơng điệp tìm kiếm
Node nhẹ tải
yo :
Hình 21 Node A có tải vượt quá ngưỡng: Node G là nhẹ tải khi di chuyển không làm cho Successor(G) bị quá tải; di chuyền vị trí của G đến giữa A và B đề G chịu
tải Theo giải pháp này
- Tải của các Node không được di chuyển mà chỉ là di chuyển định danh của các Node (Mục đích của cân bằng tải là cân bằng số Query truy vẫn đến các Node)
- Số lượng các thông báo phát ra để đi tìm một Node nhẹ tải tối thiểu là Log(N) thơng báo
- Vì là chọn ngẫu nhiên Log(N) định danh nên chưa chắc đã tìm được Node có tải nhẹ thỏa màn điều kiện địch chuyền
Đánh giá: Các thuật toán cân bằng tải theo ngưỡng hoạt động hiệu quả khi trong mạng có tỷ lệ số node nặng tải so với số node nhẹ tải là thấp Trong trường hợp này node nặng tải thường chuyên tải ngay cho các node láng riềng, đo đó tải truy vấn để tìm node nhẹ tải giảm đáng kể
Ngược lại, khi tỷ lệ trên cao, các node trong mạng hầu hết đều quá tải, khả năng chuyến tải của node quá tải cho láng riềng hầu như không xảy ra, chính vì vậy tải truy vấn đề tìm node nhẹ tải tăng rất nhanh Chính điều này làm cho hệ
thống đạt độ cân băng chậm, thuật tốn khơng hiệu quả trong trường hợp này
Trang 392.3.3 Kết luận