ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HỒNG HIÊN MỘT PHƯƠNG PHÁP PHI TẬP TRUNG CHO CÂN BẰNG TẢI TRONG CÁC MẠNG NGANG HÀNG CÓ CẤU TRÚC Ngành: Công nghệ Thông tin
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ HỒNG HIÊN
MỘT PHƯƠNG PHÁP PHI TẬP TRUNG CHO CÂN BẰNG TẢI TRONG CÁC MẠNG NGANG HÀNG
CÓ CẤU TRÚC
Ngành: Công nghệ Thông tin
Chuyên ngành: Hệ thống Thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN ĐẠI THỌ
Hà Nội – 2015
Trang 3LỜI CẢM ƠN Tôi xin gửi lời cảm ơn sâu sắc tới TS.Nguyễn Đại Thọ, Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội, người thầy đã dành nhiều thời gian tận tình chỉ bảo, hướng dẫn, giúp đỡ tôi trong suốt quá trình tìm hiểu, nghiên cứu Thầy là người định hướng và đưa ra nhiều góp ý quý báu trong quá trình tôi thực luận văn
Tôi xin chân thành cảm các thầy, cô ở khoa Công nghệ thông tin – Trường Đại học Công nghệ - ĐHQGHN đã cung cấp cho tôi kiến thức và tạo cho tôi những điều kiện thuận lợi trong suốt quá trình tôi học tập tại trường
Tôi cũng bày tỏ lòng biết ơn về sự giúp đỡ của lãnh đạo cơ quan, đồng nghiệp đã cung cấp tài liệu và cho tôi những lời khuyên quý báu Tôi xin cảm ơn gia đình, người thân, bạn bè luôn động viên và tạo mọi điều kiện tốt nhất cho tôi
Tôi xin chân thành cảm ơn!
Hà Nội, tháng 6 năm 2015
Học viên
Nguyễn Thị Hồng Hiên
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đây là đề tài nghiên cứu của riêng tôi, thực hiện dưới sự hướng dẫn của TS Nguyễn Đại Thọ
Các kết quả nêu trong luận văn là trung thực và chưa được ai công bố trong bất
cứ công trình nào khác
Hà Nội, tháng 6 năm 2015
Học viên
Nguyễn Thị Hồng Hiên
Trang 5MỤC LỤC
LỜI CẢM ƠN 3
MỤC LỤC 5
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 7
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 8
LỜI MỞ ĐẦU 9
Chương 1 Giới thiệu tổng quan 11
1.1.Bài toán cân bằng tải trong mạng ngang hàng có cấu trúc 11
1.2.Một số hướng nghiên cứu về cân bằng tải trong mạng ngang hàng có cấu trúc hiện nay 12
1.3 Hướng tiếp cận của luận văn và kết quả đạt được 13
1.4 Cấu trúc của luận văn 13
1.5 Kết luận 14
Chương 2 Các kiến thức cơ sở liên quan 15
2.1 Mạng ngang hàng 15
2.1.1 Khái niệm mạng ngang hàng 15
2.1.2 Các đặc trưng của mạng ngang hàng 16
2.1.3 Các loại mạng ngang hàng 16
2.2 Bảng băm phân tán (DHT) 17
2.3 Chord 18
2.3.1 Khái niệm 18
2.3.2 Không gian định danh 19
2.3.3.Định tuyến 19
2.3.4.Truy vấn trong vòng Chord 20
2.3.5 Cơ chế ổn định mạng trong vòng Chord 21
2.4 Khái niệm liên quan đến tải 21
2.5 Nguyên nhân gây mất cân bằng tải 22
2.6 Các phương pháp cân bằng tải hiện nay 23
2.6.1.Phương pháp di chuyển server ảo một-một 23
2.6.2.Phương pháp di chuyển server ảo một-nhiều 23
2.6.3.Phương pháp di chuyển server ảo nhiều-nhiều 24
Chương 3 Giải pháp cân bằng tải phi tập trung mới 26
3.1 Xây dựng Chord mới 26
3.2 Chèn 29
3.3 Hoán đổi 31
Trang 6Chương 4 Mô phỏng và đánh giá 33
4.1 Bộ mô phỏng của Jonathan Ledlie 33
4.2 Mô tả mô phỏng của giải pháp cân bằng tải mới 35
4.3 Kết quả 40
4.3.1 Lượng truy vấn trên một node thay đổi 41
4.3.2 Độ lệch trong truy vấn giữa các node thay đổi 43
Chương 5 Kết luận 44
TÀI LIỆU THAM KHẢO 46
46
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Trang 8DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 2.1 Phân loại hệ thống mạng ngang hàng 16
Hình 2.2 Mô hình bảng băm phân tán 18
Hình 2.3 Không gian định danh 6-bit của Chord 19
Hình 2.4 Vòng tròn định danh Chord với 3 node [6] 20
Hình 2.5 Sơ đồ thuật toán di chuyển server ảo nhiều-nhiều Error! Bookmark not defined Hình 3.1 Vòng Chord ban đầu 28
Hình 3.2 Vòng Chord mới 28
Hình 3.3 Ví dụ vòng Chord 30
Hình 3.4 Sơ đồ thuật toán của giải pháp mới 32
Hình 4.1 Mô tả quá trình hoạt động của giải pháp mới 37
Hình 4.2 Tỷ lệ phần trăm truy vấn thành công khi lượng tải thay đổi (truy vấn dạng Uniform) 41
Hình 4.3 Tỷ lệ phần trăm truy vấn thành công khi lượng tải thay đổi (truy vấn dạng Zipf 0.8) 42
Hình 4.4 Tỷ lệ phần trăm truy vấn thành công khi lượng tải thay đổi (truy vấn dạng Zipf 1.2) 42
Hình 4.5 Tỷ lệ phần trăm truy vấn thành công khi độ skew của mạng thay đổi 43
Trang 9LỜI MỞ ĐẦU
Lưu trữ và chia sẻ dữ liệu trên Internet luôn là mối quan tâm hàng đầu và đặt ra rất nhiều thách thức Khi nhu cầu chia sẻ thông tin tăng, mô hình client/server có nhiều hạn chế về băng thông và việc xử lý dữ liệu Trong mô hình này, các client sẽ kết nối với một server Tài nguyên tập trung tại server để cung cấp cho các client Các máy client chỉ đóng vai trò thụ động, chỉ yêu cầu dịch vụ từ server mà không cung cấp dịch
vụ cho các client khác Khi mà số lượng client tăng nhanh, các server không thể đáp ứng được cho các client, nó sẽ bị quá tải và mạng có thể bị sập Khắc phục những nhược điểm đó, mạng ngang hàng ra đời
Mạng ngang hàng có 2 loại: không cấu trúc và có cấu trúc Với mạng ngang hàng không có cấu trúc, không có mối liên hệ nào giữa một máy và dữ liệu của nó Điều này có thể dẫn đến việc tìm kiếm không thành công do yêu cầu tìm kiếm bị chuyển đi ngẫu nhiên đến các máy trong mạng, khi chưa đến được đích thì TTL = 0, yêu cầu tìm kiếm sẽ bị loại bỏ Một yêu cầu tìm kiếm có thể sẽ không nhận được kết quả, do không có gì đảm bảo một máy nào đó có khả năng đáp ứng yêu cầu đó sẽ tồn tại Mặt khác, trong mạng ngang hàng không có cấu trúc, các package tìm kiểm thường được chuyển phát tràn tới lượng lớn các máy gây ra việc tốn lượng băng thông lớn Với mạng ngang hàng có cấu trúc, những hạn chế đó đã được khắc phục bằng cách sử dụng bảng băm phân tán (DHT) Nó định nghĩa liên kết giữa các node mạng theo một thuật toán cụ thể, các node lưu trữ dữ liệu được phân bố một cách hiệu quả, đồng thời xác định mỗi node mạng sẽ chịu trách nhiệm đối với một phần dữ liệu trong mạng một cách chặt chẽ Đã có nhiều cấu trúc mạng ngang hàng sử dụng DHT như CAN, Chord, Partry… Trong đó, Chord được sử dụng nhiều hơn trong nghiên cứu về tối ưu mạng và cân bằng tải vì Chord tổ chức không gian định danh và định tuyến một cách đơn giản, hiệu quả
Theo những nghiên cứu trước, mạng ngang hàng có cấu trúc hoạt động hiệu quả khi các máy (node) và dữ liệu được phân bố trên không gian định danh đồng đều, số truy vấn đến các dữ liệu ngang nhau, khả năng của các node giống nhau…Tuy nhiên, thực tế các node tham gia vào mạng là ngẫu nhiên, nên các giả thiết trên sẽ không bao giờ xảy ra Các node là các máy tính cá nhân, không phải lúc nào các máy này cũng tham gia vào mạng nên có thể tài nguyên của node đó sẽ biến mất trong một khoảng thời gian nào đó Do đó, hệ thống mạng sẽ bị mất cân bằng tải
Hiện nay nhiều nghiên cứu về cân bằng tải đã được đề xuất theo hai hướng: không sử dụng server ảo và có sử dụng server ảo Trong luận văn này, tôi xin đi theo hướng nghiên cứu về cân bằng tải sử dụng server ảo trong mạng ngang hàng có cấu
Trang 10trúc Chord Một số phương pháp cân bằng tải dựa trên server ảo tiêu biểu như di chuyển server ảo, log(N) server ảo, k-choices Với các phương pháp cân bằng tải di chuyển server ảo, mỗi server vật lý quản lý một số server ảo Nếu có một server vật lý nặng tải, ta sẽ di chuyển server ảo từ server vật lý đó sang server vật lý nhẹ tải, đảm bảo sau khi chuyển thì hai server đó cùng nhẹ tải Ứng với việc di chuyển server ảo, ta
có ba thuật toán di chuyển: một-một, một-nhiều, nhiều-nhiều Trong thuật toán di
chuyển server ảo một-một, server vật lý nhẹ tải sẽ chọn một định danh ID bất kỳ, và
kiểm tra xem node có ID đó là nặng tải hay nhẹ tải, nếu node là nặng tải thì bắt đầu
thực hiện chuyển server ảo Trong thuật toán di chuyển server ảo một-nhiều, server vật
lý nhẹ tải sẽ thông báo tải của nó cho directory, còn server vật lý nặng tải sẽ lấy thông tin về các server vật lý nhẹ tải từ directory, sau đó xác định server vật lý nhẹ tải thỏa
mãn để di chuyển server ảo Trong thuật toán di chuyển server ảo nhiều-nhiều, global
pool được sử dụng để quản lý các server ảo, một bước trung gian để chuyển server ảo
từ node nặng tải sang node nhẹ tải Global pool chỉ là một cấu trúc dữ liệu cục bộ được
sử dụng để tính toán cấp phát cuối cùng, sẽ không có tải nào được chuyển cho đến khi thuật toán kết thúc Đây chính là hạn chế của thuật toán này, phá vỡ tính phi tập trung của mạng ngang hàng Ngoài ra, do các node trong mạng biết được địa chỉ của global pool, nên global pool dễ bị tấn công
Vấn đề đặt ra ở đây là phải đưa ra phương pháp cân bằng tải khắc phục được nhược điểm tập trung hóa của thuật toán cân bằng tải di chuyển server ảo nhiều-nhiều Xuất phát từ yêu cầu đặt ra, tôi xin đưa ra một giải pháp mới cân bằng tải phi tập trung dựa trên server ảo bằng cách xây dựng thêm vòng Chord mới dựa vào độ lệch tải của các node trên vòng Chord cũ Kết quả mô phỏng của chúng tôi cho thấy rằng hiệu quả của giải pháp mới gần xấp xỉ hiệu quả của thuật toán cân bằng tải nhiều-nhiều
Trang 11Chương 1 Giới thiệu tổng quan
1.1.Bài toán cân bằng tải trong mạng ngang hàng có cấu trúc
Ngày nay, dữ liệu lưu trữ và việc chia sẻ thông tin trên Internet tăng lên đáng
kể Hầu hết người dùng Internet đều có khối lượng dữ liệu riêng của mình Chính điều
đó đã tạo ra nhiều hạn chế của mô hình mạng client/server Việc quản lý mạng trong
mô hình này chỉ tập trung vào một số nhỏ các máy server trung tâm Khi số lượng máy khách (client) tăng, khả năng phục vụ của server cho mỗi máy khách sẽ bị giảm, có thể gây ra sự mất cân bằng tải trong toàn hệ thống mạng Hệ thống mạng ngang hàng ra đời với mục đích khắc phục những nhược điểm đó Các máy trong hệ thống mạng ngang hàng kết hợp băng thông và sức mạnh xử lý để tạo sức mạnh xử lý lớn hơn mà không cần đầu tư tốn kém về cơ sở hạ tầng như mô hình client/server Gần đây, các ứng dụng chia sẻ file và dữ liệu phân tán như Skype, BitTorrent đang được rất nhiều người sử dụng Người dùng Skype tăng lên đáng kể: tăng thêm khoảng 2,5 triệu người tham gia sử dụng trong 1 năm…Hệ thống mạng ngang hàng ra đời đầu tiên là mạng ngang hàng không có cấu trúc, sau đó là sự ra đời của mạng ngang hàng có cấu trúc khắc phục những nhược điểm của mạng ngang hàng không có cấu trúc
Các hệ thống mạng ngang hàng không có cấu trúc vẫn còn những hạn chế nhất định Với đặc điểm là không có mối liên hệ giữa một máy và dữ liệu nó quản lý, yêu cầu tìm kiếm được phát tràn cho lượng lớn máy trong mạng ngang hàng không có cấu trúc đã tiêu tốn băng thông lớn, hiệu quả tìm kiểm thấp Để nâng cao được hiệu quả tìm kiếm, tránh tiêu tốn lượng băng thông lớn, người ta sử dụng hệ thống mạng ngang hàng có cấu trúc Hệ thống mạng ngang hàng có cấu trúc sử dụng bảng băm phân tán (DHT) để tổ chức các máy (node) trong hệ thống mạng một cách hiệu quả như cấu trúc CAN, Partry, Chord… Trong đó, cấu trúc vòng Chord tổ chức không gian định danh
và định tuyến truy vấn đơn giản hơn, hiệu quả hơn Nó ràng buộc các node trong mạng
và dữ liệu mà node quản lý bằng cách gán cho chúng định danh (ID) và khóa (key), mỗi node mạng sẽ chịu trách nhiệm với phần dữ liệu nào đó trong mạng Khi đó, nếu một máy cần tìm dữ liệu nào đó, nó chỉ cần sử dụng giao thức chung để xác định node chịu trách nhiệm cho dữ liệu đó và liên lạc trực tiếp đến node đó để lấy dữ liệu
Song, thực tế cho thấy rằng nếu đạt được giả thiết là khả năng của các node giống nhau, các node và dữ liệu trên không gian định danh được phân bố một cách đồng đều, số truy vấn đến các dữ liệu cũng đồng đều thì các hệ thống mạng ngang hàng có cấu trúc này mới thực sự hoạt động hiệu quả Do các node tham gia vào mạng một cách ngẫu nhiên, tùy tiện nên các điều kiện giả thiết trên sẽ không bao giờ đạt
Trang 12được Khi đó, các hệ thống mạng ngang hàng có cấu trúc rất dễ bị mất cân bằng tải giữa các node, làm mất hiệu quả trong việc truy vấn, tìm kiếm Với yêu cầu thực tế đặt
ra, các hệ thống mạng ngang hàng có cấu trúc cần thỏa mãn được sự cân bằng tải, làm cho hệ thống hoạt động hiệu quả hơn
1.2.Một số hướng nghiên cứu về cân bằng tải trong mạng ngang hàng có cấu trúc hiện nay
Hiện nay, đã có rất nhiều nghiên cứu về cân bằng tải trong mạng ngang hàng có cấu trúc Chủ yếu các nghiên cứu đi theo hai hướng: không sử dụng server ảo và có sử dụng server ảo Một node vật lý sẽ quản lý nhiều vùng không gian định danh khác nhau Một node có thể có nhiều server ảo Mỗi server ảo sẽ chịu trách nhiệm quản lý một khoảng không gian địa chỉ
Trong luận văn này, tôi xin đi theo hướng cân bằng tải có sử dụng server ảo trong mạng ngang hàng có cấu trúc Chord Có một số nghiên cứu tiêu biểu về cân bằng tải có sử dụng server ảo trong Chord như di chuyển server ảo, log(N), k-choices [5] Với các phương pháp di chuyển server ảo [6], để có thể cân bằng tải ta sẽ chuyển server ảo gây nặng tải từ một node nặng tải sang một node nhẹ tải, sao cho khi chuyển xong thì node nhẹ tải không trở thành nặng tải và đảm bảo tải của server ảo chuyển đi
là tải có giá trị nhỏ nhất Trong phương pháp cân bằng tải di chuyển server ảo một, hai node sẽ được chọn ngẫu nhiên và việc di chuyển server ảo sẽ được tiến hành nếu một node là nhẹ tải, node còn lại là node nặng tải Mỗi node nhẹ tải sẽ chọn một định danh ID ngẫu nhiên, sau đó nó sẽ tìm node chịu trách nhiệm cho ID này Nếu node tìm được nặng tải thì bắt đầu di chuyển server ảo Trong phương pháp cân bằng tải di chuyển một-nhiều, một node nặng tải sẽ xét nhiều node nhẹ tải tại cùng một thời điểm Rồi chọn trong những node nhẹ tải đó, node thỏa mãn nhất Còn đối với phương pháp cân bằng tải di chuyển nhiều-nhiều, nhiều node nhẹ tải sẽ nối với nhiều node nặng tải Ở đây, ta sẽ sử dụng global pool, một cấu trúc dữ liệu cục bộ được dùng để tính toán cấp phát cuối cùng Global pool sẽ là nơi trung gian để những node nặng tải chuyển server ảo gây nặng tải cho chúng vào, rồi từ global pool lại chuyển các server
một-ảo này vmột-ảo các node nhẹ tải mà không làm chúng trở lên nặng tải Phương pháp cân bằng tải di chuyển server ảo nhiều-nhiều được đánh giá có kết quả tốt nhất Tuy nhiên, phương pháp này sử dụng global pool để quản lý các server ảo và cân bằng tải cho hệ thống nên nó đã làm mất tính phi tập trung của mạng ngang hàng Hơn nữa, do các node biết được địa chỉ của global pool nên nó dễ bị tấn công, hệ thống mạng vì thế mà
sẽ hoạt động kém hiệu quả
Trước đó, tác giả Nguyễn Thị Mi – tác giả một khóa luận tốt nghiệp đại học trường Đại học Công nghệ đã đưa ra một phương pháp cân bằng tải phi tập trung [3]
Trang 13Nhưng theo phương pháp này, một node vật lý sẽ phải lưu thông tin về tất cả các node vật lý có trong mạng và các server ảo gây nặng tải Khi truyền tin, các node phải gửi thông báo cho tất cả các node khác trong mạng Điều này sẽ gây lãng phí băng thông, làm cho thuật toán cân bằng tải vẫn chưa thực sự hiệu quả và có kết quả mô phỏng thấp hơn thuật toán di chuyển server ảo nhiều-nhiều
1.3 Hướng tiếp cận của luận văn và kết quả đạt được
Luận văn giải quyết vấn đề cân bằng tải trong mạng ngang hàng có cấu trúc theo hướng sử dụng server ảo Luận văn đưa ra một giải pháp cân bằng tải phi tập trung dựa trên server ảo, khắc phục nhược điểm tập trung hóa của phương pháp di chuyển server ảo nhiều-nhiều Dựa vào độ lệch tải của các node trên vòng Chord cũ, ta
đi xây dựng vòng Chord mới Sau đó thực hiện các bước cân bằng tải trong vòng Chord mới này Giải pháp cân bằng tải mới này cho những kết quả cân bằng tải ngang bằng thuật toán di chuyển server ảo nhiều-nhiều, mà không làm mất tính phi tập trung của hệ thống mạng ngang hàng
Chúng tôi đã thực hiện mô phỏng giải pháp mới dựa trên mô phỏng của tác giả Jonanthan Ledlie – tác giả đã đi xây dựng bộ mô phỏng cho các phương pháp cân bằng tải: k-choices, di chuyển server ảo một-một, threshold, proportional [5] và tác giả Nguyễn Thị Mi – tác giả đã mô phỏng thêm thuật toán di chuyển server ảo nhiều-nhiều [3] Kết quả mô phỏng thu được cho thấy giải pháp cân bằng tải mới có hiệu quả ngang bằng thuật toán di chuyển server ảo nhiều-nhiều
1.4 Cấu trúc của luận văn
Nội dung của luận văn gồm 4 chương:
Chương 1 Giới thiệu tổng quan
Giới thiệu bài toán cân bằng tải trong mạng ngang hàng có cấu trúc, trình bày một số hướng nghiên cứu về cân bằng tải trong mạng ngang hàng có cấu trúc hiện nay
và hướng tiếp cận của luận văn
Chương 2 Các kiến thức cơ sở liên quan
Trình bày một số khái niệm và các kiến thức liên quan về mạng ngang hàng, mạng ngang hàng có cấu trúc, bảng băm phân tán, Chord, các vấn đề gây mất cân bằng tải trong mạng ngang hàng có cấu trúc và giới thiệu các phương pháp cân bằng tải di chuyển server ảo hiện nay
Chương 3 Phương pháp cân bằng tải phi tập trung mới
Dựa vào những phương pháp cân bằng tải di chuyển server ảo trước đã trình bày trong chương 2, chương này sẽ trình bày về phương pháp cân bằng tải mới phi tập trung dựa vào server ảo trên mạng ngang hàng có cấu trúc Ta sẽ đi xây dựng thêm
Trang 14một vòng Chord mới từ độ lệch tải của các node trên vòng Chord cũ, sau đó thực hiện chèn server ảo từ một node nặng tải sang node nhẹ tải và hoán đổi server ảo giữa các node
Chương 4 Mô phỏng và đánh giá
Chương này tập trung đi mô phỏng phương pháp mới dựa trên chương trình mô phỏng của các phương pháp trước đó của tác giả Jonathan Ledlie Sau đó, luận văn phân tích các kết quả thu được của phương pháp cân bằng tải phi tập trung mới và so sánh, đánh giá với phương pháp cân bằng tải di chuyển server ảo cũ
Chương 5 Kết luận
Tổng kết lại những kiến thức đã nghiên cứu trong luận văn, đánh giá phương pháp mới này bằng cách so sánh với phương pháp cũ Chương này cũng đưa ra hướng phát triển của đề tài
1.5 Kết luận
Chương này giới thiệu về bài toán cân bằng tải, những yêu cầu đặt ra cần giải quyết đối với bài toán cân bằng tải trong mạng ngang hàng có cấu trúc, đồng thời trình bày một số hướng nghiên cứu về cân bằng tải trong mạng ngang hàng có cấu trúc hiện nay, hướng tiếp cận, nêu ra giải pháp cân bằng tải mới phi tập trung, kết quả đạt được
và cấu trúc của luận văn
Trang 15Chương 2 Các kiến thức cơ sở liên quan
2.1 Mạng ngang hàng
2.1.1 Khái niệm mạng ngang hàng
“Trong vài năm gần đây, số lượng các hệ thống phân tán tăng lên một cách ồ ạt
với hàng triệu người tham gia đã xuất hiện trong một thời gian ngắn Các ứng dụng như tin nhắn nhanh (IM), chia sẻ file và nội dung phân tán đang thu hút vô số người tham gia sử dụng ví dụ dịch vụ Skype đã tăng thêm hơn 2,5 triệu người sử dụng trong vòng một năm, và hơn 50% lưu lượng Internet tăng thêm có nguồn gốc từ BitTorrent Chúng phát triển một cách nhanh chóng tạo nên một kỷ nguyên mới cho việc thiết kế
và triển khai các hệ thống mạng ngang hàng” [3]
Tốc độ phát triển Internet nhanh khiến mô hình client/server bộc lộ nhiều nhược điểm khi số máy client tham gia vào mạng tăng lên đáng kể Server sẽ phải cung cấp dịch vụ cho các client Đến một mức nào đó, khi có quá nhiều yêu cầu từ các client, server sẽ không thể đáp ứng kịp thời và sẽ bị quá tải Điều này có thể dẫn đến sập toàn
hệ thống mạng Như vậy, mô hình client/server không có khả năng mở rộng Trong khi
đó, mạng ngang hàng có khả năng mở rộng, càng nhiều máy tham gia vào mạng càng tốt
Mạng ngang hàng (peer-to-peer) hoạt động dựa vào băng thông và sức mạnh tính toán của các máy tham gia Trên mạng ngang hàng, ta không có khái niệm client hoặc server, các máy tham gia vào mạng có vai trò bình đẳng, việc quản lý mạng không tập trung ở một số máy server trung tâm như mạng client/server Sức mạnh xử
lý của hệ thống sẽ là tổng sức mạnh xử lý của các máy tham gia vào mạng Như vậy, mạng ngang hàng có khả năng mở rộng, đáp ứng nhu cầu phát triển của Internet
Mô hình mạng ngang hàng rất phù hợp với tính phi tập trung của Internet Nó tận dụng được tài nguyên nhàn rỗi của các client để làm tăng khả năng tính toán của hệ thống, không tốn thêm chi phí quản lý cho vài máy trung tâm như mô hình client/server Trong những năm gần đây, mạng ngang hàng có rất nhiều ứng dụng về chia sẻ dữ liệu và truyền dữ liệu thời gian thực như VoIP…
Như vậy, ta có thể hiểu mạng ngang hàng là hệ thống tự tổ chức của các node mạng, chúng vai trò ngang nhau nhằm mục đích chia sẻ các tài nguyên phân tán trên môi trường mạng một cách dễ dàng hơn, tránh các dịch vụ trung tâm
Trang 162.1.2 Các đặc trưng của mạng ngang hàng
Các máy tham gia vào mạng ngang hàng được gọi là peer Chúng có vai trò bình đẳng như nhau, có thể vừa chia sẻ dữ liệu (máy khách) vừa yêu cầu lấy dữ liệu từ các peer khác (máy chủ)
Ưu điểm của mạng ngang hàng là các máy tham gia vào mạng đều đóng góp tài nguyên như: khả năng lưu trữ, khả năng xử lý, băng thông…Nó làm giảm khả năng tắc nghẽn mạng do tăng số giao tiếp giữa các thiết bị mạng qua các đường truyền khác nhau Vì vậy, khi số lượng máy tham gia vào mạng tăng thì khả năng tổng thể của mạng cũng tăng Điều này khắc phục được hạn chế của mô hình client/server Mặt khác, mạng ngang hàng tận dụng được sức mạnh tính toán kết hợp của các peer trong
hệ thống Điều này cho thấy rõ khả năng mở rộng của mạng ngang hàng Dù một số máy trong mạng gặp sự cố thì vẫn không ảnh hưởng đến hoạt động của toàn hệ thống
Bên cạnh đó, mạng ngang hàng cũng có những nhược điểm nhất định Các máy tham gia vào mạng ngẫu nhiên, cũng có thể rời khỏi mạng một cách đột ngột, dẫn đến làm sai lệch bảng định tuyến và dữ liệu mà node đó quản lý cũng có thể bị mất theo, truy vấn sẽ không chính xác Khi có một yêu cầu tìm kiếm, có thể sẽ không có kết quả
do không biết node đích còn nằm trong mạng hay không Dữ liệu lưu trữ phân tán và không có ràng buộc với các node, làm cho node nào đó có thể dễ dàng phát tán file rác, virus trên mạng, bảo mật kém
2.1.3 Các loại mạng ngang hàng
Các loại mạng ngang hàng được phân chia trong hình 2.1
Hình 2.1 Phân loại hệ thống mạng ngang hàng [1]
Trang 17Tùy theo mục đích phân loại, ta có thể phân chia thành các loại mạng ngang hàng Nếu dựa vào sự liên kết giữa các node trong mạng ta có thể phân thành hai loại mạng ngang hàng: không có cấu trúc và có cấu trúc
Trong mạng ngang hàng không có cấu trúc, liên kết giữa các node được thiết lập ngẫu nhiên, không theo một quy luật nào Khi có yêu cầu tìm kiếm, gói tin tìm kiếm sẽ được truyền boardcast Nếu quy mô mạng lớn, có thể yêu cầu tìm kiếm này sẽ không thành công do gói tin tìm kiếm chưa đến được đích thì TTL = 0 và gói tin sẽ bị loại bỏ Như vậy, nếu dữ liệu cần tìm chỉ được chia sẻ trên một vài máy thì xác suất tìm kiếm là khá thấp, không có gì bảo đảm node lưu trữ dữ liệu cần tìm còn tồn tại trong mạng hay không và như thế sẽ không có gì đảm bảo tìm kiếm sẽ thành công Bên cạnh đó, do không có định hướng, gói tin tìm kiếm sẽ được phát tràn trên mạng gây tốn kém băng thông của hệ thống
Với mạng ngang hàng có cấu trúc, những nhược điểm trên sẽ được khắc phục bằng cách sử dụng bảng băm phân tán (DHT) Các node trong mạng được liên kết chặt chẽ theo thuật toán cụ thể Mỗi node sẽ quản lý một phần dữ liệu Do đó, khi có yêu cầu tìm kiếm, node mạng chỉ cần xác định node nào đó chịu trách nhiệm cho dữ liệu cần tìm, sau đó liên lạc trực tiếp đến node đó để lấy dữ liệu Như thế, khả năng mở rộng của mạng ngang hàng có cấu trúc là rất lớn, các node tham gia hay rời bỏ mạng cũng dễ kiểm soát hơn
2.2 Bảng băm phân tán (DHT)
Bảng băm phân tán (Distributed Hash Table) phân tán dữ liệu trên các node và thực hiện định tuyến cho việc tìm kiếm Mỗi node trong DHT sẽ chịu trách nhiệm một phần dữ liệu trên không gian định danh và lưu trữ một bảng định tuyến để truy vấn hiệu quả hơn
Trang 18Hình 2.2 Mô hình bảng băm phân tán [2]
Để quản lý dữ liệu trong DHT, địa chỉ IP của một node được băm để xác định
vị trí của nó trong bảng băm, ví dụ: ID của node = SHA-1(địa chỉ IP) Còn mỗi file dữ liệu sẽ được băm để gán một số định danh là khóa, ví dụ: Key = SHA-1(tên file) hoặc SHA-1(nội dung file) DHT có một không gian địa chỉ để ánh xạ dữ liệu Không gian địa chỉ này thường gồm các giá trị nguyên trong khoảng từ 0 đến 2160 – 1.Ở đây, mỗi
dữ liệu được gán cho một node có định danh ID, key của dữ liệu giá trị duy nhất trong không gian địa chỉ Giá trị này có thể là ngẫu nhiên tùy theo ứng dụng, song ta thường thông qua một hàm băm để chọn giá trị này như hàm băm SHA-1 Từ đó, ta sẽ biết node có ID nào sẽ chịu trách nhiệm quản lý cho giá trị này
Để định tuyến các gói tin tìm kiếm, DHT cung cấp cho mỗi node một bảng định tuyến lưu trữ số lượng link giới hạn đến các node khác Khi một node nhận được gói tin tìm kiếm truy vấn đến một ID đích nào đó mà nó không chịu trách nhiệm quản lý thì nó sẽ chuyển gói tin đó đến node khác Quá trình này được lặp đi lặp lại cho đến khi node đích được tìm thấy
Một số mạng ngang hàng có cấu trúc dựa trên DHT là Chord, CAN, Pastry, Tapestry … DHT được sử dụng trong nhiều ứng dụng 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…
Trang 19hàm băm là hàm băm SHA-1, duy trì các thông tin dò đường bằng các bảng định tuyến, các cơ chế ổn định mạng khi có các node tham gia hay rời khỏi mạng
2.3.2 Không gian định danh
DHT có các khóa là các định danh có độ dài m bit, đó là các số nguyên trong khoảng [0, 2m – 1] Chúng tạo thành một vòng tròn định danh một chiều modulo 2m và nhận các giá trị trong khoảng từ 2m – 1 đến 0
Chord được mô tả như một vòng tròn Nếu số bit định danh của không gian mạng Chord là n thì nó có thể chứa tối đa 2n node Node và dữ liệu sẽ được gán một định danh tương ứng, là các giá trị từ việc băm địa chỉ IP đối với node trong mạng và băm các tên file hoặc cả nội dung file đối với dữ liệu Định danh của node là một địa chỉ trong mạng (ID) Còn định danh của dữ liệu là một khóa (key) Node trong vòng Chord sẽ có các ID tăng dần theo chiều kim đồng hồ Node sẽ duy trì liên kết hai chiều với node liền trước và node liền sau nó tạo thành một mạch liên kết vòng Các ID của node sẽ chịu trách nhiệm quản lý tất cả các key đứng trước nó Một cặp (k,v) k: key, v:value đặc trưng cho dữ liệu sẽ được quản lý bởi node gần nhất tiếp theo có ID ≥ k
Node đó gọi là successor của key k Còn node đứng liền trước trong vòng tròn Chord thì được gọi là predecessor
Hình 2.3 Không gian định danh 6-bit của Chord [3]
2.3.3.Định tuyến
Mọi định danh trên Chord được sắp sếp theo trật tự Nhờ vào việc sử dụng DHT, các node trong Chord không cần biết tất cả các node trong mạng Mỗi node chỉ cần biết một số nhỏ thông tin định tuyến về các node khác trong bảng định tuyến của mình Mỗi cặp (k,v) chỉ được quản lý ở một node Để tìm kiếm hiệu quả và nhanh chóng thì cần tìm ra node chịu trách nhiệm quản lý key nào đó Trên vòng định danh,
Trang 20mỗi node sẽ lưu trữ một bảng định tuyến (finger table) Bảng định tuyến này sẽ trỏ đến các node khác Mỗi dòng trong bảng định tuyến sẽ lưu thông tin về một node ở xa
Nếu vòng định danh có độ lớn là m bit thì bảng định tuyến sẽ có m dòng (entry)
Thường thì trong bảng định tuyến sẽ có hai cột: cột một tương ứng với ID đích (key), cột hai tương ứng với successor của ID đó Trong bảng định tuyến của node n, entry
thứ i có cột successor là successor quản lý key có giá trị là n + 2 i – 1 với 1 ≤ ≤ Như vậy, một node n nào đó có thể xác định được vị trí của bất kỳ khóa k nào đó trong mạng nhờ vào việc sử dụng bảng định tuyến
Hình 2.4 Vòng tròn định danh Chord với 3 node [7]
2.3.4.Truy vấn trong vòng Chord
Khi node n cần tìm khóa k, node n sẽ đi xác định node chịu trách nhiệm lưu trữ khóa k đó Nếu node n ở xa so với vị trí của node lưu trữ khóa k, n có thể dựa vào bảng định tuyến để chuyển tiếp truy vấn tìm node k đến các node xa hơn, cứ như vậy
sẽ tìm được node chịu trách nhiệm với khóa k Cụ thể, node n sẽ tìm trong bảng định tuyến của nó predecessor gần nhất của khóa k trên vòng tròn định danh, sau đó chuyển truy vấn tới predecessor này Các node sẽ tiếp tục chuyển tiếp truy vấn nhờ vào bảng định tuyến của chính nó cho tới khi truy vấn này đến được node h mà tại đó k được xác định là nằm giữa h và successor của h trên vòng tròn định danh Khi đó, kết quả truy vấn sẽ là successor của node h
Thuật toán tìm kiếm successor của một id từ một node n như sau:
Trang 21Ngoài việc thiết lập các bảng định tuyến để tìm kiếm hiệu quả, Chord còn có các cơ chế ổn định mạng khi các node ra vào mạng một cách tùy tiện… Nếu có một node bị hỏng thì dữ liệu bị mất của node bị hỏng đó có thể được sao chép tới các node khác Successor của node bị hỏng sẽ phải chịu trách nhiệm quản lý các key thay node
đó
2.3.5 Cơ chế ổn định mạng trong vòng Chord
Do các node tham gia và rời bỏ mạng một cách tùy tiện nên Chord đưa ra cơ chế ổn định mạng Một node n muốn tham gia vào mạng, nó sẽ cần biết một node m đã tham gia vào mạng rồi Để node n tìm được successor của nó, node n sẽ truy vấn đên node m chính ID của n Khi đó, node n sẽ xây dựng bảng định tuyến của nó bằng cách
lặp lại truy vấn đến node m để tìm các successor của các node n+2 1 , n+2 2 , n+2 3 ,…
Để ổn định mạng thì tất cả các node phải thực hiện định kỳ cơ chế ổn định Trong đó, một node n sẽ yêu cầu successor của nó trả về predecessor h, nếu h chính là node n thì n và successor của n vẫn sẽ là predecessor và successor của nhau, nếu h nằm giữa n và successor của n thì n sẽ cập nhật h vừa tham gia vào mạng với tư cách
là successor của n Sau khi node n đã biết predecessor, nó sẽ chép tất cả các khóa mà
nó chịu trách nhiệm nằm giữa predecessor(n) và n Predecessor(n) sẽ giải phóng các khóa này Cứ như thế, sau một thời gian các con trỏ successor sẽ được cập nhật, hệ thống được ổn định Số node cần cập nhật bảng định tuyến là O(log(N)), trong đó N là
số node trong hệ thống
2.4 Khái niệm liên quan đến tảiError! Reference source not found
Để quản lý nhiều phân vùng khác nhau của không gian địa chỉ DHT trên cùng node vật lý thì người ta dùng khái niệm server ảo (virtual server) [4] Trong Chord,
Trang 22một node vật lý có thể có nhiều server ảo Mỗi server ảo quản lý một khoảng không gian địa chỉ, còn node vật lý tương ứng với nó sẽ quản lý một vài khoảng độc lập
Tải của một server ảo được xác định bởi số lượng dữ liệu mà nó lưu trữ Tải của một node vật lý là tổng của tất cả dữ liệu trên các server ảo thuộc nó quản lý Như vậy, tổng tải của cả hệ thống là tổng của các node tham gia vào mạng Nếu hệ thống gồm N node và khả năng của mỗi node giống nhau về băng thông, bộ nhớ, khả năng xử lý của CPU , để đạt trạng thái cân bằng tối ưu thì tải của từng node bằng 1/N tổng tải hệ thống Node nặng tải (overload) là node có tải cao hơn hẳn tải của các node khác trong
hệ thống Node nhẹ tải là node có tải ít hơn tải của node tối ưu
Tuy nhiên, trong thực tế mỗi node tham gia vào mạng có khả năng khác nhau
Mỗi node vật lý n i khi tham gia vào mạng đều có một khả năng riêng capacity C i Đây
là lượng dữ liệu mà node có thể xử lý trên một đơn vị thời gian Nếu node n có k các server ảo v 1 , v 2 , …, v k lần lượt có tải là w 1 , w 2 , …, w k thì tải của n (workload) được tính
bằng tổng tải của các server ảo mà node đó có W n = w 1 + w 2 +…+w k Node n nặng tải khi Wn > Cn Node nặng tải sẽ không có khả năng định tuyến hay xử lý các truy vấn được gửi đến nó
2.5 Nguyên nhân gây mất cân bằng tải
Nếu dữ liệu chỉ tập trung ở một số node thì các truy vấn sẽ tập trung đến các node này, đến một mức nào đó sẽ vượt quá khả năng xử lý của node đó Mạng ngang hàng có cấu trúc dựa trên DHT có hạn chế là mất cân bằng tải giữa các node Các giao thức DHT được xây dựng đều có giả thiết là khả năng xử lý của các node và sự phân
bố của dữ liệu là đồng đều Song, thực tế sự mất cân bằng tải giữa các node luôn xảy
ra Dưới đây là một số nguyên nhân gây mất cân bằng tải trong hệ thống mạng ngang hàng:
- Không đồng đều định danh node Các ID định danh node thường rơi vào
một khoảng nào đó với xác suất lớn do sử dụng hàm băm để xác định ID
- Không đồng đều định danh dữ liệu do sử dụng hàm băm để xác định chúng
- Heterogeneity: khả năng của các node tham gia vào mạng khác nhau về
băng thông, về khả năng xử lý của CPU và về khả năng lưu trữ
- Skew: dữ liệu của một node nào đó bị truy vấn nhiều hơn so với dữ liệu của
node khác, làm cho node đó phải chịu tải nhiều hơn
- Churn: Do một số nguyên nhân nào đó (như mất điện đột ngột…) nên các
node ra vào mạng tùy tiện Khi node rời khỏi mạng, việc định tuyến sẽ hoạt động không hiệu quả Bên cạnh đó, tất cả các key mà node quản lý sẽ được
Trang 23chuyển hết cho successor của nó Nếu hiện tại successor đó đang đủ tải thì điều này gây nặng tải cho nó
2.6 Các phương pháp cân bằng tải hiện nay
Hiện nay trong mạng ngang hàng có cấu trúc đã có nhiều phương pháp cân bằng tải sử dụng server ảo như k-choices [5], log (N) server ảo [5], di chuyển server ảo: một-một, một-nhiều, nhiều-nhiều [6]… Các phương pháp di chuyển server ảo được đánh giá là có kết quả tốt hơn các phương pháp cân bằng tải sử dụng server ảo còn lại
Ở đây, trong khuôn khổ luận văn tôi xin đi tìm hiểu về các phương pháp cân bằng tải
di chuyển server ảo
Các thuật toán này thực hiện cân bằng tải bằng cách di chuyển server ảo từ node nặng tải sang node nhẹ tải Khi chuyển server ảo từ node nặng tải h sang node nhẹ tải l một server ảo là v thì phải thỏa mãn ba quy tắc dưới đây:
- Chuyển server ảo v từ node h sang node l không làm cho node l nặng tải
- Server ảo v có tải nhẹ nhất mà sau khi chuyển làm cho node h nhẹ tải
- Nếu không có server ảo chuyển đi làm cho node h nhẹ tải thì chuyển server ảo nặng tải nhất từ node h sang node l
Các phương pháp này cố gắng chuyển lượng tải nhỏ nhất có thể để làm cho node nặng tải trở thành node nhẹ tải mà không thể làm cho node nhẹ tải nhận server ảo không bị nặng tải Nếu như không tìm được server ảo nào thỏa mãn thì chọn server ảo nặng tải nhất của node nặng tải chuyển sang node nhẹ tải mà vẫn không làm node nhẹ tải trở thành nặng tải Như thế node nặng tải sẽ có thêm cơ hội để tìm node nhẹ tải khác có thể chấp nhận tất cả các tải dư thừa của nó
2.6.1.Phương pháp di chuyển server ảo một-một
Ý tưởng chung của phương pháp này là node nhẹ tải chọn một ID bất kỳ, sau đó
nó sẽ tìm node n chịu trách nhiệm quản lý cho ID này Nếu node n là node nặng tải thì thực hiện di chuyển server ảo từ node nặng tải sang node nhẹ tải Việc chuyển server
ảo này được thực hiện theo các quy tắc di chuyển server ảo đã nói ở phần trên Phương pháp này có ưu điểm là chỉ có node nhẹ tải thực hiện tìm kiếm, giảm bớt công việc cho các node nặng tải Hơn nữa nó còn có ưu điểm là phân tán hoàn toàn Hai node liên hệ với nhau sẽ được chọn ngẫu nhiên và việc di chuyển sẽ được tiến hành nếu một node
là nhẹ tải, node còn lại là nặng tải
2.6.2.Phương pháp di chuyển server ảo một-nhiều
Ý tưởng phương pháp này là một node nặng tải xét nhiều node nhẹ tải trong cùng một thời điểm Node nhẹ tải báo thông tin của nó cho các directory Node nặng