MỤC LỤC 2 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 5 DANH MỤC CÁC BẢNG 6 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 7 MỞ ĐẦU 8 CHƯƠNG 1: BÀI TOÁN CẤP PHÁT TÀI NGUYÊN ẢO 11 1.1. Giới thiệu 11 1.2. Mô hình cấp phát tài nguyên 12 1.3. Các phương pháp tiếp cận 15 1.3.1. Phương pháp dựa trên máy ảo (VMbased) 15 1.3.1.1. Cụm máy chủ ảo (VC Virtual Cluster) 15 1.3.1.2. Giải pháp Trung tâm dữ liệu (DB – Datacenter Based) 17 1.3.2. Phương pháp dựa trên hợp đồng (LB – Lease Based) 18 1.3.3. Phương pháp dựa trên công việc (JBJob Based) 19 1.4. Nhận xét 20 CHƯƠNG 2: MÔ HÌNH HÓA TÀI NGUYÊN DỰA VÀO HỢP ĐỒNG 24 2.1. Mô hình tài nguyên 24 2.2. Hợp đồng 25 2.2.1. Phân loại hợp đồng 27 2.2.1.1. Hợp đồng chạy nền (BE Best Effort) 27 2.2.1.2. Hợp đồng đặt chỗ (AR Advance Reservation) 28 2.2.1.3. Hợp đồng tức thời (Immediate) 28 2.2.2. Các thuộc tính của hợp đồng 28 2.2.3. Các trạng thái của hợp đồng 29 CHƯƠNG 3: 30 LẬP LỊCH CẤP PHÁT TÀI NGUYÊN SỬ DỤNG MÁY ẢO 30 3.1. Lập lịch các yêu cầu không có thời hạn hoàn thành 30 3.1.1. Phân phối máy ảo vào các máy đơn vật lý vào thời điểm cụ thể 30 3.1.2. Hợp đồng chạy nền 32 3.1.3. Hợp đồng đặt chỗ và hợp đồng tức thời 33 3.2. Lập lịch sử dụng khả năng cho phép tạm chiếm 34 3.3. Lập lịch có thời hạn hoàn thành 37 CHƯƠNG 4: 40 CÀI ĐẶT CÁC THUẬT TOÁN LẬP LỊCH TRÊN HỆ THỐNG HAIZEA ĐỂ GIẢI BÀI TOÁN LẬP LỊCH CẤP PHÁT TÀI NGUYÊN ẢO TRÊN ĐIỆN TOÁN LƯỚI, ĐIỆN TOÁN ĐÁM MÂY 40 4.1. Tổng quan về Haizea 40 4.2. Kiến trúc Haizea 42 4.3. Cài đặt thực nghiệm 48 4.3.1. Thực nghiệm các thuật toán lập lịch không có thời hạn hoàn thành 48 4.3.1.1. Dữ liệu thực nghiệm 48 4.3.1.2. Tham số thực nghiệm 48 4.3.1.3. Kết quả thực nghiệm 49 4.3.2. Thực nghiệm các thuật toán lập lịch có thời hạn hoàn thành 51 4.3.2.1. Dữ liệu thực nghiệm 51 4.3.2.2. Tham số thực nghiệm 51 4.3.2.3. Kết quả thực nghiệm 52 4.3.3. Nhận xét 53 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56 5.1. Kết quả đạt được 56 5.2. Hạn chế 56 5.3. Hướng phát triển 57 PHỤ LỤC: PHƯƠNG PHÁP THỰC NGHIỆM 58 1. Mô trường thực nghiệm 58 2. Luồng công việc 58 3. Tạo tập tin cấu hình 60 4. Chạy thực nghiệm 61 5. Xử lý dữ liệu thô 62 6. Vẽ biểu đồ và bảng 62 TÀI LIỆU THAM KHẢO 64
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
- -
NGHIÊN CỨU CÁC HỆ THỐNG LẬP LỊCH
CẤP PHÁT TÀI NGUYÊN ẢO
LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
Hà Nội - Năm 2014
BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 2MỤC LỤC
MỤC LỤC 2
LỜI CAM ĐOAN Error! Bookmark not defined DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 5
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 7
MỞ ĐẦU 8
CHƯƠNG 1: BÀI TOÁN CẤP PHÁT TÀI NGUYÊN ẢO 11
1.1 Giới thiệu 11
1.2 Mô hình cấp phát tài nguyên 12
1.3 Các phương pháp tiếp cận 15
1.3.1 Phương pháp dựa trên máy ảo (VM-based) 15
1.3.1.1 Cụm máy chủ ảo (VC - Virtual Cluster) 15
1.3.1.2 Giải pháp Trung tâm dữ liệu (DB – Datacenter Based) 17
1.3.2 Phương pháp dựa trên hợp đồng (LB – Lease Based) 18
1.3.3 Phương pháp dựa trên công việc (JB-Job Based) 19
1.4 Nhận xét 20
CHƯƠNG 2: MÔ HÌNH HÓA TÀI NGUYÊN DỰA VÀO HỢP ĐỒNG 24
2.1 Mô hình tài nguyên 24
2.2 Hợp đồng 25
2.2.1 Phân loại hợp đồng 27
2.2.1.1 Hợp đồng chạy nền (BE - Best Effort) 27
2.2.1.2 Hợp đồng đặt chỗ (AR - Advance Reservation) 28
2.2.1.3 Hợp đồng tức thời (Immediate) 28
2.2.2 Các thuộc tính của hợp đồng 28
2.2.3 Các trạng thái của hợp đồng 29
Trang 3CHƯƠNG 3: 30
LẬP LỊCH CẤP PHÁT TÀI NGUYÊN SỬ DỤNG MÁY ẢO 30
3.1 Lập lịch các yêu cầu không có thời hạn hoàn thành 30
3.1.1 Phân phối máy ảo vào các máy đơn vật lý vào thời điểm cụ thể 30
3.1.2 Hợp đồng chạy nền 32
3.1.3 Hợp đồng đặt chỗ và hợp đồng tức thời 33
3.2 Lập lịch sử dụng khả năng cho phép tạm chiếm 34
3.3 Lập lịch có thời hạn hoàn thành 37
CHƯƠNG 4: 40
CÀI ĐẶT CÁC THUẬT TOÁN LẬP LỊCH TRÊN HỆ THỐNG HAIZEA ĐỂ GIẢI BÀI TOÁN LẬP LỊCH CẤP PHÁT TÀI NGUYÊN ẢO TRÊN ĐIỆN TOÁN LƯỚI, ĐIỆN TOÁN ĐÁM MÂY 40
4.1 Tổng quan về Haizea 40
4.2 Kiến trúc Haizea 42
4.3 Cài đặt thực nghiệm 48
4.3.1 Thực nghiệm các thuật toán lập lịch không có thời hạn hoàn thành 48
4.3.1.1 Dữ liệu thực nghiệm 48
4.3.1.2 Tham số thực nghiệm 48
4.3.1.3 Kết quả thực nghiệm 49
4.3.2 Thực nghiệm các thuật toán lập lịch có thời hạn hoàn thành 51
4.3.2.1 Dữ liệu thực nghiệm 51
4.3.2.2 Tham số thực nghiệm 51
4.3.2.3 Kết quả thực nghiệm 52
4.3.3 Nhận xét 53
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
5.1 Kết quả đạt được 56
Trang 45.2 Hạn chế 56
5.3 Hướng phát triển 57
PHỤ LỤC: PHƯƠNG PHÁP THỰC NGHIỆM 58
1 Mô trường thực nghiệm 58
2 Luồng công việc 58
3 Tạo tập tin cấu hình 60
4 Chạy thực nghiệm 61
5 Xử lý dữ liệu thô 62
6 Vẽ biểu đồ và bảng 62
TÀI LIỆU THAM KHẢO 64
Trang 5DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Chữ
viết tắt Viết đầy đủ Ý nghĩa
VM-based
Virtual Machine
Cluster Nhiều máy tính được kết nối chặt chẽ với nhau thông
qua kết nội mạng cục
DB
Datacenter-Based Giải pháp trung tâm dữ liệu
VC Virtual Cluster Cụm máy tính được cấu thành từ các máy ảo
DeadLine Mốc thời gian mà một công việc buộc phải được
Trang 6DANH MỤC CÁC BẢNG
Bảng 4.1: Ảnh hưởng của chiếm lấp lên các hợp đồng có thời hạn hẹp 57
Trang 7DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1: Bảng tổng kết các phương pháp JB; VC; LB; DB 21
Hình 3.1: Dành chỗ các máy đơn trước những hợp đồng đặt chỗ 38
Hình 3.2: Kỹ thuật backfilling thời gian trước hợp đồng đặt chỗ 39
Hình 3.3: Tạm treo trước và phục hồi sau một hợp đồng đặt chỗ 39
Hình 4.1: Các thành phần của Haizea 42
Hình 4.2: Kết quả all-best-effort 50
Hình 4.3: Mức tận dụng tài nguyên trong luồng công việc BLUE2 và DS không có chiếm lấp……… ……….56
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
Trong những năm qua, nhu cầu về tài nguyên điện toán đã trở thành một yêu cầu then chốt trong cả các ngành khoa học lẫn công nghiệp Trong nhiều trường hợp, nhu cầu sử dụng tài nguyên chỉ tồn tại trong một thời gian ngắn Ví dụ, một nhà khoa học cần một lượng lớn các máy tính để chạy một trình mô phỏng trong vài giờ vào một thời điểm cụ thể; một giảng viên muốn tạo một cụm máy tính cho sinh viên sử dụng trong quá trình thực tập, vào những thời điểm nhất định trong tuần và với cấu hình phần mềm nghiêm ngặt; hay một công ty truyền thông có thể cần sử dụng một cơ sở hạ tầng để lưu trữ một số website, nhưng chưa thể tính trước được cấu hình của máy chủ, vì điều này còn phụ thuộc vào mức độ truy cập của người dùng vào các website đó
Cho đến nay, có rất nhiều kiểu cấp phát tài nguyên như: hệ thống điện toán lưới1, điện toán đám mây2
và các trung tâm dữ liệu cho thuê máy chủ Khi thuê tài nguyên ở một trong những nhà cung cấp kể trên, ta phải đồng ý các điều khoản sử dụng của họ và có quyền quy định một vài cấu hình cho hợp đồng Ví dụ, ta có thể chỉ định phần mềm nào sẽ được chạy (bằng cách cung cấp ảnh đĩa chứa phần mềm) khi yêu cầu tài nguyên từ hệ thống điện toán đám mây IaaS, như Amazon EC2 Các trình lập lịch khối và điện toán lưới cung cấp một số quyền điều khiển trên các phần mềm được thực thi Tuy nhiên, hệ thống đám mây IaaS chỉ cho phép người dùng yêu cầu tài nguyên sử dụng tức thời; không cung cấp khả năng đặt chỗ như các trình lập lịch công việc và trình lập lịch trên hệ thống điện toán lưới
Qua khảo sát các giải pháp cấp phát tài nguyên như: “Torque / Maui, Sun Grid
Engine 3 , LoadLeveler 4 , …”, thì hiện nay chưa có một giải pháp nào có thể cấp phát
tài nguyên đáp ứng cùng lúc nhiều trường hợp sử dụng khác nhau của người dùng
và vấn đề tận dụng tài nguyên cũng chưa được giải quyết một cách triệt để Vì vậy,
Trang 9luận văn thực hiện tiến hành nghiên cứu tổng quan về bài toán cấp phát tài nguyên
ảo, cung cấp một định nghĩa mang tính công thức về một hợp đồng trong ngữ cảnh của luận văn, đề xuất và cài đặt các thuật toán lập lịch các yêu cầu thuê tài nguyên
sử dụng máy ảo Trên cơ sở kết quả đạt được, luận văn tổng kết so sánh và đánh giá đưa ra hướng phát triển của đề tài trong tương lai
2 Lịch sử nghiên cứu
Từ khi các hệ thống máy tính lớn bắt đầu được chia sẻ cho nhiều người dùng vào những năm 1950, nhiều nhà khoa học đã nổ lực tìm ra giải pháp cho vấn đề
“Cấp phát tài nguyên” Phương pháp cấp phát tài nguyên điện toán là một trong
những vấn đề thực tế kinh điển nhất trong khoa học máy tính và thập kỷ qua đã có rất nhiều các giải pháp đã được đưa ra Từ những hệ điều hành có khả năng điều khiển người dùng nào sẽ được sử dụng CPU, cho đến những trình lập lịch tinh vi có thể quản lý đến 10.000 các bộ vi xử lý trong một siêu máy tính để mô phỏng quỹ đạo của thiên thạch hoặc mô hình biến đổi khí hậu toàn cầu
Luận văn tìm hiểu một số vấn đề phát sinh khi cấp phát tài nguyên điện toán với một hệ thống máy tính lưới và phương pháp giải quyết các vấn đề đó sử dụng máy ảo và các thuật toán lập lịch cấp phát tài nguyên ảo
- Tìm hiểu mô hình cấp phát tài nguyên dựa trên lý thuyết hợp đồng (theo dạng cho thuê) sử dụng máy ảo
- Tìm hiểu và đề xuất các thuật toán lập lịch các yêu cầu thuê tài nguyên sử dụng máy ảo và các phương pháp để tối ưu tài nguyên cũng như tính toán các chi phí phát sinh trong quá trình triển khai ảnh đĩa
Trang 104 Đối tượng nghiên cứu
Luận văn tập trung vào tìm hiểu các hệ thống cấp phát tài nguyên đã có để tìm ra những ưu điểm, nhược điểm của các hệ thống
5 Phạm vi nghiên cứu
Luận văn tìm hiểu và đề xuất một kiến trúc quản trị tài nguyên có khả năng
hỗ trợ các kịch bản cấp phát tài nguyên ảo đồng thời một cách hiệu quả trong điện toán lưới và điện toán đám mây, sử dụng máy ảo làm công cụ chính cùng với những thuật toán lập lịch để hiện thực các mục tiêu
6 Phương pháp nghiên cứu
- Nghiên cứu tài liệu và các công nghệ liên quan
- Tổng hợp các tài liệu lý thuyết về các mô hình lập lịch cấp phát tài nguyên sử dụng máy ảo
- Cài đặt mô phỏng trên hệ thống mã nguồn mở Haizea
7 Nội dung của luận văn
Luận văn được bố cục thành 5 chương Chương 1: Bài toán cấp phát tài nguyên ảo; Chương 2: Mô hình hóa tài nguyên dựa vào hợp đồng; Chương 3: Lập lịch cấp phát tài nguyên sử dụng máy ảo; Chương 4: Cài đặt các thuật toán lập lịch trên hệ thống HAIZEA để giải bài toán lập lịch cấp phát tài nguyên ảo trên điện toán lưới, điện toán đám mây; Chương 5: Kết luận và hướng phát triển
Trang 11CHƯƠNG 1: BÀI TOÁN CẤP PHÁT TÀI NGUYÊN ẢO
1.1 Giới thiệu
Trên thế giới, hầu hết phương pháp cấp phát tài nguyên của các hệ thống đều tạo một hàng đợi theo thứ tự ưu tiên các công việc một cách hợp lý (đánh giá dựa vào thời gian chờ hoặc mức độ tối ưu tài nguyên) Đây là những hệ thống lý tưởng cho các trường hợp người dùng có thể chờ tới lượt sử dụng tài nguyên và một khi đã
có tài nguyên, họ sử dụng chúng trong một khoảng thời gian ngắn (có thể là vài phút, vài tiếng hoặc vài ngày) Tuy nhiên, những hệ thống này hoàn toàn không thích hợp với những trường hợp sử dụng khác, ví dụ như người dùng yêu cầu tài nguyên ở những thời điểm cụ thể hoặc cần những tài nguyên được đảm bảo trong một khoảng thời gian Hiểu cách khác, những phương pháp cấp phát tài nguyên tại thời điểm cụ thể hoặc ngay tức thời không tương thích với hệ thống chạy các công việc khối
Trong luận văn sử dụng khái niệm “hợp đồng - Lease” để đại diện cho một
hợp đồng giữa người thuê tài nguyên và nhà cung cấp tài nguyên Việc thuê tài nguyên điện toán ở đây có thể được hiểu là yêu cầu sử dụng tài nguyên phần cứng (CPU, bộ nhớ, băng thông mạng, …) và môi trường phần mềm cần thiết trong một khoảng thời gian nhất định (tính khả dụng) Khái niệm “hợp đồng” có khả năng khắc phục được những nhược điểm trên Thực tế, khái niệm này đã được sử dụng trong nhiều lĩnh vực khác nhau của khoa học máy tính, đa phần là ở lĩnh vực mạng, mặc dù chưa có chuẩn mực quốc tế nào cho khái niệm này
Để giải quyết vấn đề này, luận văn tìm hiểu hệ thống cho thuê tài nguyên hỗ trợ việc cấp phát tài nguyên ảo đa mục đích đồng thời quản trị tài nguyên một cách hiệu quả theo nhiều tiêu chí khác nhau Hệ thống này tập trung vào vấn đề cung cấp
đồng thời những công việc khối có thể “chạy nền”, tức là: khách hàng thuê tài
nguyên có thể đợi tới khi tài nguyên rảnh và “đặt chỗ”, tức là: tài nguyên được thuê phải khả dụng tại thời điểm được yêu cầu trong hợp đồng Trong việc cấp phát tài
nguyên dạng đặt chỗ, tiêu chí để xét tính hiệu quả đơn giản là tài nguyên có được
Trang 12cấp phát đúng hạn hay không Với các công việc chạy nền, tiêu chí đó phụ thuộc vào tổng thời thời gian thực thi của công việc: nếu một công việc chạy 10 tiếng, và trình lập lịch công việc có khả năng cung cấp tài nguyên cho công việc đó thực thi nhanh hơn 1 tiếng, trình lập lịch đó được coi là hiệu quả Nếu chúng ta chấp nhận đặt chỗ cho tất cả tài nguyên từ 2 giờ chiều đến 4 giờ chiều, mọi yêu cầu chạy nền được gửi tới trước hoặc trong khoảng thời gian đó có thể có tổng thời gian thực thi cao hơn Thực tế, mặc dù rất nhiều trình lập lịch công việc có hỗ trợ đặt chỗ nhưng quản trị viên hệ thống chỉ sử dụng chúng một cách rất thận trọng bởi vì chúng ảnh hưởng không tốt đến hiệu năng của các công việc đang chạy nền
Do đó phương pháp tối ưu nhất để cung cấp nhiều kịch bản thuê tài nguyên đồng thời và hiệu quả đó là sử dụng máy ảo Các máy ảo có một số đặc tính thích hợp với yêu cầu này Nếu ta muốn cung cấp phần cứng theo yêu cầu, kỹ thuật ảo hóa sẽ được sử dụng để phân mảnh một máy tính vật lý thành nhiều máy ảo Hơn nữa, ta còn có thể cung cấp yêu cầu phần mềm vì mỗi máy ảo có hệ điều hành và môi trường phần mềm riêng Vì vậy, giải pháp của vấn đề chính là khái niệm “hợp đồng” và “kỹ thuật ảo hóa tài nguyên” Để hoàn thiện ý tưởng này cần thực hiện qua hai bước sau
Bước 1: Định nghĩa hợp đồng
Bước 2: Sử dụng máy ảo để cấp phát tài nguyên theo yêu cầu; đánh giá một
vài thuật toán lập lịch khai thác khả năng tạm treo, phục hồi, di dời của máy ảo để cung cấp tài nguyên cho 3 loại hợp đồng: chạy nền, đặt chỗ và có thời hạn hoàn thành
1.2 Mô hình cấp phát tài nguyên
Ngày nay, tài nguyên điện toán đã trở thành nhu cầu tất yếu trong các ngành khoa học và công nghiệp Trong một số trường hợp, nhu cầu này chỉ mang tính tạm thời Như một nhà khoa học có thể yêu cầu một số lượng lớn các máy tính để chạy chương trình mô phỏng chỉ trong vài giờ và sau đó không sử dụng đến nữa, hay một giảng viên đại học có thể cần một cụm các máy tính phục vụ cho sinh viên trong một vài buổi thí nghiệm, khoảng vài lần một tuần, với một cấu hình phần mềm nhất
Trang 13định Một công ty viễn thông có thể cần một cơ sở hạ tầng hiện hành để cung cấp một số trang web, nhưng nhu cầu bổ sung tài nguyên cho cơ sở hạ tầng này không thể biết trước được vì còn phải phụ thuộc vào tình trạng truy cập website, nghĩa là những tài nguyên đó phải sẵn sàng phục vụ bất cứ khi nào có yêu cầu
Những trường hợp sử dụng tài nguyên tạm thời ở trên đã nảy sinh ra vấn đề
làm sao để “Cấp phát tài nguyên một cách hiệu quả” Vấn đề này đã được nghiên
cứu hàng thập kỷ nay, và những phương pháp tìm được chỉ ứng dụng cho một số
mô hình quản trị tài nguyên riêng lẻ Ví dụ vấn đề chạy đa công việc trên một cụm máy chủ đã được nghiên cứu rộng rãi và những hệ thống quản lý công việc được ra đời như Sun Grid Engine5, LoadLeveler6… có thể sắp xếp các yêu cầu công việc vào một hàng đợi và xét ưu tiên các công việc đó một cách hiệu quả (tận dụng tài nguyên, thời gian đợi đáp ứng…) Những hệ thống như thế đáp ứng được yêu cầu của nhà khoa học chạy các chương trình mô phỏng ở trên Nhưng trong trường hợp khác, như yêu cầu của giảng viên đại học hay công ty viễn thông đã được nhắc đến thì hệ thống quản lý công việc lại không đáp ứng được một cách hiệu quả Trong khi đó, những phương pháp cấp phát tài nguyên khác phù hợp hơn lại không tương thích với những yêu cầu tài nguyên điện toán hướng công việc
Cho đến nay, vẫn chưa có giải pháp tổng quát nào có thể cấp phát tài nguyên đáp ứng những trường hợp sử dụng khác nhau cùng một lúc Để khắc phục vấn đề
này, luận văn sẽ tìm hiểu việc phối hợp hai yêu cầu sử dụng tài nguyên loại “chạy
nền - best effort” và “đặt chỗ - advance reservation” (sẽ được trình bày trong
chương 2 của luận văn) Trước đây, mức độ hiệu quả chủ yếu được xác định bằng
số lần đợi (hoặc những số liệu tương tự như mức giảm tốc độ hay tổng số thời gian đợi), trong khi sau này lại được xác định bằng việc cấp phát tài nguyên tại thời điểm chính xác mà không bị ngắt và cả hai cách xác định đều liên quan đến việc sử dụng tối đa tài nguyên phần cứng và mức lợi nhuận hợp lý Mặc dù các cách cấp phát tài
5 http://gridengine.sunsource.net
6 http://www.ibm.com/systems/clusters/software/loadleveler.html
Trang 14nguyên loại chạy nền và đặt chỗ đều được nghiên cứu riêng biệt, nhưng cả hai đều liên quan đến vấn đề tận dụng tài nguyên
Luận văn tìm hiểu mô hình cấp phát tài nguyên ảo có thể hỗ trợ nhiều trường hợp cấp phát tài nguyên một cách hiệu quả và đồng thời, tập trung vào trường hợp chạy nền, đặt chỗ và thảo luận về mô hình dựa trên lý thuyết “hợp đồng” (“lease”) thực thi bằng máy ảo Mô hình này phải đáp ứng được những mục tiêu sau:
- Mục tiêu 1: Cung cấp một hệ thống lý thuyết tập trung vào việc cấp phát
tài nguyên ảo một cách tổng quát
Mặc dù hợp đồng đã được sử dụng trong nhiều lĩnh vực của khoa học máy tính, đặc biệt là lĩnh vực mạng, nhưng chưa có một định nghĩa chung nào cho từ
“hợp đồng” Tuy nhiên, hợp đồng nói chung trước tiên luôn cung cấp một khái niệm
về cấp phát tài nguyên ảo (băng thông mạng, tài nguyên phần cứng thô trong các trung tâm dữ liệu) được tổ chức bởi một nhà cho thuê (hay một nhà cấp phát tài nguyên) và được cung cấp cho người thuê (hay khách hàng sử dụng tài nguyên) Vì vậy, khi đề xuất mô hình dựa trên lý thuyết hợp đồng, mục tiêu đề ra là khách hàng
có thể sử dụng khả năng cấp phát tài nguyên ảo với mục đích tổng quát, tức là: không phải một mà là kết hợp nhiều trường hợp sử dụng đặc biệt
- Mục tiêu 2: Cung cấp phần cứng, phần mềm và tính khả dụng
Cấp phát tài nguyên bao gồm 3 chỉ tiêu: tài nguyên phần cứng, phần mềm sẵn
có trên tài nguyên đó và thời gian những tài nguyên đó được bảo đảm khả dụng Mô hình cấp phát tài nguyên hoàn chỉnh phải cho phép người thuê xác định yêu cầu thông qua 3 chỉ tiêu trên và nhà cung cấp tài nguyên có thể đáp ứng yêu cầu đó một cách hiệu quả
Tiếp theo là phần khảo sát những phương pháp tiếp cận hiện nay, gồm có phương pháp dựa trên máy ảo (VM-based), phương pháp dựa trên lý thuyết hợp đồng (Lease-based) và dựa trên lý thuyết công việc (Job-based) Sau cùng là thảo luận về những hạn chế của những phương pháp này
Trang 151.3 Các phương pháp tiếp cận
1.3.1 Phương pháp dựa trên máy ảo (VM-based)
Máy ảo được coi là phương tiện thích hợp trong việc quản lý tài nguyên bởi khả năng cấp phát tài nguyên phần cứng, phần mềm và tính khả dụng
Mặc dù máy ảo là một lựa chọn hấp dẫn, nhưng vẫn nảy sinh những khó khăn nhất định liên quan đến chi phí sử dụng cho chính nó:
Chi phí chuẩn bị (ảnh đĩa của máy ảo đó cần phải được chuẩn bị hoặc được
chuyển đến máy đơn vật lý cần thiết)
Chi phí chạy (lưu vết phần mềm, phục hồi, di dời)
Một vài công trình đã nghiên cứu việc sử dụng máy ảo như một kỹ thuật cấp phát tài nguyên ảo Những phương pháp này sử dụng máy ảo để tạo thành các “cụm máy chủ ảo” trên các trung tâm dữ liệu lớn
1.3.1.1 Cụm máy chủ ảo (VC - Virtual Cluster)
Một số hệ thống đã áp dụng giải pháp dùng máy ảo để tạo cụm máy chủ ảo tại đỉnh cơ sở hạ tầng hiện hành Như hệ thống của Nishimura [7] có thể triển khai một cluster gồm 190 máy đơn với thời gian rất thấp 40 giây bằng cách coi những môi trường phần mềm là những gói nhị phân khi cài đặt trên những ảnh đĩa cùng loại Ngoài ra việc lưu trữ những gói nhị phân ngay trên các máy đơn giúp hệ thống có thể giảm thiểu số lần vận chuyển ảnh đĩa từ nơi chứa gói khác Phương pháp này chỉ giới hạn với những môi trường phần mềm có thể cài đặt thành các gói nhị phân nhưng vẫn có thể cung cấp khả năng khác triển khai ảnh đĩa máy ảo nhanh hơn nếu thời gian cài đặt đủ ngắn
Hệ thống của Yamasaki [8] đã cải tiến hệ thống này bằng cách phát triển một
mô hình dự tính trước thời gian cài đặt môi trường phần mềm mới trên một máy đơn, cho phép trình lập lịch lựa chọn những máy đơn có thể giảm tối thiểu thời gian cài đặt một cụm máy chủ ảo mới Mô hình này có quan tâm đến tính không đồng nhất của các máy đơn, sử dụng các tham số cho mỗi máy đơn (tần suất CPU và tốc
độ đọc/ghi đĩa) và hệ số kinh nghiệm để tính trước thời gian chuyển và cài đặt tất cả những gói được yêu cầu, rồi sau đó khởi động lại máy đơn đó Tuy nhiên, mô hình
Trang 16này không tính đến chỉ tiêu khả dụng khi cấp phát tài nguyên mà giả định rằng tất
cả tài nguyên đều được yêu cầu tức thì
Bộ công cụ Nimbus [9] có khả năng triển khai cụm máy chủ ảo với những cấu hình mạng và phần mềm khác nhau, ngoại trừ việc cần phải đưa ảnh đĩa máy ảo vào một cách thủ công mỗi khi triển khai vào một site mới
Hệ thống của Fallenbeck [10] đã mở rộng trình lập lịch Sun Grid Engine để sử dụng chức năng sao lưu hay phục hồi máy ảo, cho phép bắt đầu những công việc lớn song song sớm hơn bằng cách tạm treo những máy ảo chạy theo kỳ và phục hồi lại chúng sau khi hoàn thành những công việc đó Còn Emeneker [11] thì đã mở rộng trình lập lịch để hỗ trợ chạy công việc trong máy ảo, và khảo sát những chiến lược lưu trữ khác nhau để triển khai ảnh đĩa trong cluster nhanh hơn Tuy nhiên, hai cách đó sử dụng máy ảo chỉ để hỗ trợ thực thi các công việc chạy nền, không lập lịch cho việc truyền ảnh đĩa một cách riêng biệt
Hệ thống của Walters [12] đã đề xuất một trình lập lịch coi máy ảo là trung tâm gọi là UBIS Trình lập lịch này có khả năng lập lịch cho cả hai loại công việc khối truyền thống và công việc tương tác có độ ưu tiên cao bằng cách tận dụng khả năng tạm treo hay phục hồi của máy ảo để chiếm đóng những công việc khối đang chạy và cung cấp yêu cầu sắp đến cho những công việc tương tác Trình lập lịch UBIS không chỉ hỗ trợ loại công việc tương tác dễ dàng mà còn cung cấp những cải thiện đáng kể (đến 500%) trong việc tận dụng tài nguyên và thời gian đáp ứng cho loại công việc khối Tuy nhiên UBIS không hỗ trợ loại tài nguyên đặt chỗ, thay đó tập trung vào hỗ trợ loại công việc tương tác với những yêu cầu tài nguyên gần như
là tức thì (loại yêu cầu hoàn toàn cho phép UBIS chiếm đóng khi có yêu cầu loại công việc tương tác) Việc hỗ trợ đặt chỗ theo cách đảm bảo thời gian bắt đầu phải
mô hình chi phí sử dụng và lập lịch cho những thao tác chiếm lấp hoàn thành trước khi bắt đầu đặt chỗ
Những hệ thống khác cũng nghiên cứu nhiều thách thức mới về triển khai và chạy một cụm máy chủ ảo, (VIOLIN/VioCluster [13] [14], cấu hình tự động và tạo
ra máy ảo (InVIGO [15] và VMPlants [16]), và sự liên lạc giữa trình lập lịch cụm
Trang 17máy chủ ảo và trình lập lịch cục bộ chạy trong một cụm máy chủ ảo (Maestro-trình lập lịch 2 cấp của cụm máy chủ ảo [17]) Tuy nhiên, các hệ thống đó không khảo sát được số công việc phối hợp yêu cầu chạy nền và đặt chỗ, và cũng không lập lịch được tổng chi phí triển khai máy ảo một cách riêng biệt
Tóm lại, những giải pháp ở trên dùng máy ảo để đạt hiệu quả cao đã đáp ứng được mục tiêu 2 Tuy nhiên, tất cả đều hướng đến cấp phát tài nguyên cho loại công việc khối (không cung cấp khả năng về cấp phát tổng quát ở mục tiêu 1), ngoại trừ Walters[12] đã có cân nhắc đến số công việc phối hợp cả công việc khối và công việc tương tác với những yêu cầu có tính khả dụng gần như tức thì
1.3.1.2 Giải pháp Trung tâm dữ liệu (DB – Datacenter Based)
Trong khi những giải pháp đã trình bày ở trên tập trung vào việc tạo ra cụm máy chủ ảo và hầu hết là với mục đích xử lý khối dựa trên công việc, thì những giải pháp khác lại tập trung vào việc cấp phát tài nguyên theo kiểu cho thuê, nghĩa là nhà cung cấp quản lý một trung tâm dữ liệu và cho phép khách hàng thuê từng phần
và sử dụng máy ảo Bên cạnh đó, một cụm máy chủ ảo chỉ là một ứng dụng của tài nguyên mà người dùng có thể tác động đến máy ảo Trên khu vực lưu trữ của máy chủ, các trung tâm dữ liệu gồm những tài nguyên ảo đã trở thành sự lựa chọn phổ biến hàng năm nay Ở đây, người dùng được cấp phát một bộ điều khiển hoàn chỉnh toàn bộ tài nguyên mà không cần yêu cầu một máy chủ chuyên dụng trên mỗi máy khách Các trung tâm dữ liệu là sự lựa chọn phổ biến để lưu trữ các máy chủ web/mail/DNS với giá cả thấp, nhưng thường họ yêu cầu những hợp đồng với khoảng thời gian tối thiểu trong một tháng Gần đây hơn, EC2 của Amazon đã giới thiệu một khái niệm mới về điện toán đám mây (cloud computing), một khái niệm cho phép cấp phát máy ảo tức thì với môi trường phần mềm được tùy chỉnh và tính phí sử dụng theo giờ Ngoài ra, còn có OpenNebula [18], Nimbus và Eucalyptus [19] là những phần mềm mã nguồn mở có khả năng thay thế cho EC2 của Amazon,
sử dụng giao diện web service và cung cấp những chức năng giống nhau
Từ khi phương pháp dựa trên trung tâm dữ liệu thực hiện quản lý từ hàng trăm tới hàng ngàn cả máy chủ ảo và vật lý, thì việc quản lý cơ sở hạ tầng ảo trong trung
Trang 18tâm dữ liệu đã trở thành một mối quan tâm lớn Một số giải pháp như VMWare VirtualCenter, Platform Orchestrator, Enomalism, hay OpenNebula cũng đã nảy sinh ra vấn đề quản lý cơ sở hạ tầng ảo, cung cấp một platform điều khiển tập trung việc triển khai và giám sát tự động máy ảo trong trung tâm dữ liệu Những giải pháp này nổi trội ở chỗ cung cấp cho người dùng môi trường phần mềm chính xác với yêu cầu của họ và nhất là cung cấp rất nhiều sự lựa chọn về phần cứng Tuy nhiên, giải pháp đó lại phụ thuộc vào mô hình cấp phát tức thì, tức là tài nguyên được cấp phát ngay lúc được yêu cầu mà không được yêu cầu trước cho một thời điểm nào đó
và trong trường hợp tài nguyên không sẵn sàng thì sẽ được đặt vào hàng đợi come-first-serve
first-Khi số công việc trong trung tâm dữ liệu chủ yếu bao gồm các máy chủ chạy trong thời gian dài (khoảng chừng vài tháng) với yêu cầu tài nguyên có thể biến đổi, thì có một số công trình lại khảo sát vấn đề làm thế nào để dùng ít máy chủ hơn bằng cách hợp nhất nhiều máy chủ ảo thành những máy vật lý đơn Giải pháp này đòi hỏi phải mô tả công việc của máy chủ, dự đoán trước yêu cầu tài nguyên [20],
và hợp nhất nhiều máy chủ lại thành một máy đơn dựa trên những thông tin đã tìm được theo cách khả năng vi phạm thỏa thuận cấp dịch vụ là thấp nhất Việc hợp nhất có thể thực hiện được khi xử lý yêu cầu dành cho máy chủ mới (hợp nhất tĩnh) hay trong khi máy đang chạy (hợp nhất động [9], [21]), chủ yếu là sử dụng khả năng di dời mạnh mẽ của máy ảo để ánh xạ máy ảo đến máy vật lý
Mặc dù tất cả giải pháp trên sử dụng mô hình cho thuê tổng quát (theo mục tiêu 1) cho phép người dùng yêu cầu cả phần cứng và môi trường phần mềm xác định (theo mục tiêu 2)
1.3.2 Phương pháp dựa trên hợp đồng (LB – Lease Based)
Grit [22] và các thành viên khác của nhóm Jeff Chase đã đề xuất ra phương pháp cho thuê tài nguyên dựa trên hợp đồng Tuy nhiên, hệ thống của họ lại tập trung chủ yếu vào hợp đồng thuộc các liên hệ thống do hệ thống ORCA và Shirako quản lý Trong một hệ thống, những nhà cung cấp tài nguyên có thể đóng góp các phần tài nguyên cho một hay nhiều nhà môi giới và những nhà môi giới này thay
Trang 19phiên nhau giao cho khách hàng các vé để nhận được tài nguyên thực khi trình cho nhà cung cấp Hầu hết những hệ thống này đều coi máy ảo do hệ thống Cluster-On-Demand quản lý như là một, ví dụ về tài nguyên có khả năng phân chia (mặc dù được nhấn mạnh rằng các hệ thống đó thích hợp với bất kỳ tài nguyên nào được phân chia), gần đây những hệ thống đó đã tập trung vào thực thi công việc khối Hơn nữa, mặc dù cung cấp một hệ thống lý thuyết dành cho mô hình cho thuê tài nguyên nhưng mô hình này lại tập trung vào những liên hệ thống, trong khi luận văn chỉ tập trung vào cho thuê ở mức cục bộ (có nghĩa là trong một miền quản trị đơn độc) cho phép giả định rằng trình lập lịch hợp đồng sẽ điều khiển tuyệt đối toàn
bộ tài nguyên
1.3.3 Phương pháp dựa trên công việc (JB-Job Based)
Trong các ngành khoa học và công nghiệp, cấp phát tài nguyên hầu hết được dùng để chạy các công việc Nhiều trình lập lịch công việc được phát triển hàng năm nay như Maui7
[23], Moab8, LFS9, LoadLeveler10, PBS Pro11, và SGE12 Tuy nhiên, hệ thống dựa trên lý thuyết công việc chỉ cung cấp tài nguyên có lợi khi chạy một công việc Do đó, mặc dù những hệ thống này có thể hỗ trợ cả tài nguyên loại chạy nền và đặt chỗ, nhưng khách hàng vẫn yêu cầu tương tác với những tài nguyên
đó sử dụng mô hình quản lý công việc (không đáp ứng được mục tiêu 1) Ngoài ra, những hệ thống này còn hỗ trợ giới hạn những môi trường phần mềm tùy chỉnh (mục tiêu 2), cụ thể là chỉ giới hạn những môi trường phần mềm thích hợp với tài nguyên phần cứng mà hệ thống cung cấp Ngoại lệ duy nhất là Moab, hệ thống này chỉ hỗ trợ khởi động máy ảo đã chứa môi trường phần mềm công việc yêu cầu Tuy nhiên, nhiều hệ thống nghiên cứu về vấn đề lập lịch công việc theo hướng tập trung vào các thuật toán đã xác lập một số kết quả lập lịch chạy nền khả thi như làm thế nào để lập lịch những hợp đồng đặt chỗ kết hợp với chạy nền Trình lập lịch công
Trang 20việc chủ yếu phụ thuộc vào hàng đợi để ưu tiên truy cập tài nguyên, sử dụng kỹ thuật backfilling [24], [25], [26] (là một kỹ thuật trong chiến lược lập lịch Trong
đó, nếu có nhiều công việc cần được thực hiện trong hàng đợi thì kỹ thuật này cho phép một số công việc đơn giản, tốn ít chi phi có thể thực hiện trước để tận dụng tài nguyên rảnh, miễn là nó không làm chậm trễ sự thực thi của những công việc đã đặt chỗ trước) để đánh giá sắp xếp hàng đợi Khi sử dụng kỹ thuật backfilling, trình lập lịch có thể đặt chỗ trước đối với yêu cầu không thể đặt chỗ tức thì, cho phép những yêu cầu đến sau nhảy lên trước hàng đợi miễn là sẽ hoàn thành trước những đặt chỗ
đã có Các thuật toán lập lịch sử dụng trong luận văn phụ thuộc vào kỹ thuật backfilling, nhưng được mở rộng nhờ tận dụng khả năng tạm treo và phục hồi của máy ảo
Phần tiếp theo, luận văn sẽ trình bày cách hỗ trợ đặt chỗ vào hệ thống dựa trên
lý thuyết công việc và cách tận dụng tài nguyên hợp lý Mặc dù kỹ thuật lập lịch chiếm đóng có thể giải quyết được một số vấn đề tận dụng của đặt chỗ nhưng không thể đáp ứng hết các mục tiêu đã đặt ra ở trên Cuối cùng là phần thảo luận về các giải pháp lập lịch đa cấp sử dụng hệ thống dựa trên công việc làm công cụ cấp phát tài nguyên ảo (sẽ đáp ứng được mục tiêu 1)
1.4 Nhận xét
Mặc dù các phương pháp mô tả ở trên có thể đáp ứng tốt trong hai mục tiêu đề
ra ở trên, nhưng chưa có một giải pháp nào có thể đáp ứng được tất cả Hầu hết các giải pháp này đều có thiếu sót như nhau, đó là chỉ tập trung vào cung cấp một chứ không đầy đủ tất cả trường hợp sử dụng tài nguyên ảo
Như đã nói ở trên, đặc biệt trong trường hợp chạy nền và đặt chỗ, mỗi loại đều
có cách đánh giá hiệu quả mâu thuẫn lẫn nhau Do đó, các giải pháp nổi bật đều chỉ hướng đến hỗ trợ một trường hợp sử dụng và đã hỗ trợ rất tốt Trong một số trường hợp, việc cung cấp mô hình tổng quát có thể tự ngăn cản hỗ trợ nhiều trường hợp; ví
dụ giải pháp dựa trên trung tâm dữ liệu như đám mây không cho phép khách hàng xác định những ràng buộc khả dụng ngoại trừ loại khả dụng tức thì Trong trường hợp khác, mặc dù kiến trúc hệ thống có thể hỗ trợ đa trường hợp sử dụng, như trình
Trang 21lập lịch công việc khối có thể hỗ trợ cả chạy nền và đặt chỗ, nhưng việc tận dụng tài nguyên lại gây trở ngại khi kết hợp vào thực tế
Điều này làm nảy sinh ra câu hỏi liệu việc phát triển một hệ thống có khả năng
hỗ trợ mô hình cho thuê với mục đích tổng quát thì có ý nghĩa gì không?
Mặc dù việc chuyên môn hóa tạo ra nhiều giải pháp ấn tượng (cả trong thực nghiệm và sản xuất) nhưng lại gây thiệt hại cho các yêu cầu tài nguyên khắt khe hơn như lập lịch hợp tác trên đa tài nguyên [27], [45], [46], ứng dụng điện toán khẩn cấp [47], ứng dụng gồm nhiều luồng tác vụ độc lập có thể được thực thi hiệu quả hơn bằng phương pháp đa lập lịch [44], [48], và đám mây cung cấp dịch vụ như trong dự án Reservoir [49], yêu cầu đặt chỗ các tài nguyên đám mây tại các thời điểm xác định để đáp ứng những thỏa thuận mức dịch vụ và những yêu cầu công suất tối đa
Hình 1.1: Bảng tổng kết các phương pháp JB; VC; LB; DB
Mỗi cột tương ứng với mỗi mục tiêu đã đề ra ở phần trên, cột (mục tiêu 2) được chia thêm thành 4 cột nhỏ đại diện cho 4 loại tài nguyên mà mỗi giải pháp cung cấp: Phần cứng (HW), Phần mềm (SW), Chạy nền (BE) và Đặt chỗ (AR) Dấu
có nghĩa giải pháp đáp ứng được mục tiêu đó, dấu có nghĩa chưa đáp ứng được
Trang 22Một giải pháp có thể đáp ứng tất cả các mục tiêu đã nêu ở trên phải hỗ trợ rộng rãi tất cả các trường hợp sử dụng tài nguyên trong khi cho phép nhà cung cấp duy trì
hỗ trợ các khách hàng hiện hành Tuy nhiên, việc này lại làm nảy sinh các vấn đề sau:
1 Lợi nhuận và bất lợi trong việc cho thuê tài nguyên mục đích tổng quát là gì?
Luận văn sẽ khảo sát các trường hợp cấp phát tài nguyên sử dụng máy ảo trong một kiến trúc Mặc dù các phần ở trên đã đề cập đến việc cho thuê tài nguyên dùng máy ảo nhưng hầu hết các phương pháp đều dùng mô hình tài nguyên cơ bản
mà không chú ý đến chi phí triển khai cũng như chạy máy ảo và ngay cả khi chi phí triển khai được tính đến khi lập lịch như trong hệ thống Nishimura và Yamasaki thì cũng chỉ tập trung vào hiệu quả tức thì và không có hỗ trợ kết hợp nhiều loại cho thuê khác nhau
2 Chất lượng dịch vụ và giá cả trong cấp phát tài nguyên
Đôi khi cũng phải kết hợp đặt chỗ với dịch vụ cho thuê tài nguyên đảm bảo chất lượng hơn (Quality-of-Service - QoS) bằng cách lập lịch công việc kèm theo thời hạn hoàn thành Phương pháp để thực hiện đảm bảo QoS bao gồm sử dụng kỹ thuật chiếm đóng [38], [39], [40], đặt chỗ với thời gian ước lượng, không chính xác [41], [39], [38] và khuyến khích các yêu cầu đòi hỏi hiệu suất tối đa [4] Các hệ thống của Siddiqui [42], và Castillo [43] cũng đã áp dụng hiệu quả đặt chỗ vào việc cung cấp QoS
Qua đó, vấn đề định giá cho tài nguyên trong các hệ thống hỗ trợ QoS cũng được nảy sinh Hệ thống của Singh [44] đã đề xuất một kế hoạch định giá cho loại đặt chỗ rất thích hợp Đó là việc đặt chỗ không chỉ tính giá theo kích cỡ, thời gian
sử dụng mà còn tính đến khoảng thời gian trì hoãn các công việc khác chạy Hơn nữa, hệ thống còn hỗ trợ nhiều thời điểm bắt đầu đặt chỗ thích hợp với nhiều giá cả khác nhau để khách hàng có thể chọn lựa sao cho hợp lý với chi phí và sự cần thiết của mình Trong phạm vi nghiên cứu của luận văn, khách hàng được xác định một loại giá duy nhất bằng chiến lược định giá thích hợp để tăng tối đa lợi nhuận cho nhà cung cấp
Trang 23Hệ thống “Đám mây” IaaS (Infrastructure-as-a-Service) cho phép khách hàng mua được những khối lượng tài nguyên nhất định thông qua máy ảo với một vài bảo đảm QoS, mặc dù không phải dành cho mỗi yêu cầu riêng biệt Ví dụ hệ thống Amazon EC2 đảm bảo tỉ lệ hoạt động hằng năm là 99,95%13 nhưng khách hàng không thể yêu cầu được bảo đảm tuyệt đối như đặt chỗ hay thời hạn hoàn thành Hệ thống đám mây công cộng lớn như Amazon EC2 có thể không cần đến phải cung cấp loại đặt chỗ hay thời hạn hoàn thành bởi vì tài nguyên của hệ thống này đủ lớn
để có thể cung cấp vô thời hạn tất cả các loại yêu cầu Hơn nữa, cũng phải lưu ý về
các mức độ giá của Amazon Trường hợp “On-demand” được cung cấp ngay lập
tức được tính với giá 0,085$ đến 2.88$ tùy thuộc vào loại máy ảo và hệ điều hành, thích hợp cho các ứng dụng ngắn hạn, số công việc không báo trước và không được
ngắt Trường hợp “Reserved” cho phép khách hàng chi trả thấp hơn giá tiền mỗi giờ
cho mỗi thể hiện trong thời hạn một hay ba năm nếu khách hàng trả trước cho trường hợp đó, thích hợp cho các yêu cầu sử dụng lâu dài hay có khả năng báo
trước, hoặc là khả năng phục hồi sau sự cố Trường hợp “Spot” thích hợp cho yêu
cầu tài nguyên có thời gian bắt đầu và kết thúc linh hoạt hoặc chỉ khả thi với loại giá
thấp, do đó mức độ đảm bảo QoS cũng thấp hơn so với loại On-demand Trong luận
văn sẽ tìm hiểu mô hình thích hợp với các trường hợp yêu cầu QoS cao Trong mô
hình này, các hợp đồng có giá biến đổi nhưng không giống trong trường hợp Spot của Amazon và thuật ngữ hợp đồng cũng không bị vi phạm
Phần tiếp theo của luận văn sẽ tìm hiểu mô hình tài nguyên dựa vào khái niệm hợp đồng, để giải quyết các vấn đề này
13 http://aws.amazon.com/ec2-sla
Trang 24CHƯƠNG 2: MÔ HÌNH HÓA TÀI NGUYÊN DỰA VÀO HỢP ĐỒNG
Chương này, luận văn trình bày về mô hình hóa tài nguyên dựa vào hợp đồng Phần 2.1 sẽ đưa ra định nghĩa cho thuê tài nguyên và cung cấp mô hình tài nguyên chính thức Tiếp theo, phần 2.2 sẽ định nghĩa những loại hợp đồng và các điều lệ của hợp đồng
2.1 Mô hình tài nguyên
Luận văn tập trung vào việc cho thuê tài nguyên ở một hệ thống cục bộ, định nghĩa là site Tập hợp các máy tính vật lý khả dụng (được định nghĩa là các máy đơn), trong một site gọi là P Mỗi máy đơn P có một tập hợp tài nguyên và thuộc tính đặc trưng: Resources và Attributes Các tài nguyên của một máy đơn có thể được cấp phát cho một hoặc một vài hợp đồng Tập hợp các loại tài nguyên trong một site được gọi là tập TR (ví dụ: TR = {memory, disk, …}) Một số lượng xác định tài nguyên ký hiệu bằng r sẽ có các trường sau:
1 type[r] TR: kiểu tài nguyên
2 Một số tài nguyên có thể xuất hiện nhiều lần trong một máy đơn, ví dụ một máy đơn chỉ có một bộ nhớ nhưng có thể có nhiều CPU Thay vì mô hình mỗi CPU là một tài nguyên riêng biệt, ta coi như đó là một tài nguyên duy nhất với nhiều thể hiện (instance) Giá trị n[r] là số lượng các thể hiện của tài nguyên
3 Số lượng tài nguyên trong mỗi thể hiện, q1[r], q2[r], …, qn[r] Mỗi số lượng
là một số nguyên dương Khi n[r] = 1, số lượng được ký hiệu là q[r]
Tập hợp các loại đặc tính trong một site được gọi là TA (ví dụ, TA={arch,vmm,
…}) Miền xác định của một thuộc tính kiểu TA được định nghĩa là Dom(TA) (ví dụ,
1 type[a] TA, kiểu của thuộc tính
2 value[a] Dom(type[a]), giá trị của thuộc tính
Trang 25Tập hợp tất cả tài nguyên khả dụng gọi là R và tập hợp các thuộc tính gọi là A
Mỗi máy đơn P được định nghĩa với những trường sau đây:
1 res[ ] R, tập hợp các tài nguyên thuộc máy đơn Không thể có nhiều
2 attr[ ] A, tập hợp các thuộc tính của máy đơn x Tương tự, không thể có nhiều hơn một thuộc tính cùng loại trên cùng một máy đơn
Trong các chương sau, luận văn giả thiết rằng một site có các tài nguyên đồng
bộ, mỗi máy đơn có p CPU, m MB bộ nhớ, d MB bộ nhớ ngoài, bi MB/s và bo
MB/s băng thông mạng vào và ra Site này được định nghĩa như sau:
TR={proc, mem, disk, net-in, net-out}
Agreement (Sự thỏa thuận): là một sự dàn xếp giữa các bên dựa theo lợi ích
của mỗi bên Trong ngữ cảnh của luận văn, chỉ có hai bên được nhắc tới là nhà cung cấp tài nguyên và khách hàng sử dụng tài nguyên, ở đây lợi ích là sự truy cập vào tài nguyên điện toán
Trang 26Terms (Điều lệ): Sự đặc tả tài nguyên do nhà cung cấp cấp cho khách hàng
Những điều lệ đặc tả hợp đồng dùng trong luận văn sẽ được trình bày sau
Negotiable agreement (Sự thỏa thuận được thương lượng): Là một tập các
điều lệ mà khách hàng phải đề xuất trước tiên cho nhà cung cấp tài nguyên Lần lượt, nhà cung cấp có thể chấp nhận, từ chối hoặc gửi lại một tập các điều lệ thay thế sẵn sàng chấp nhận cho phía khách hàng Nếu nhà cung cấp tài nguyên chấp nhận các điều lệ ở trên do khách hàng đề ra hoặc nếu như khách hàng chấp nhận các điều lệ thay thế từ phía nhà cung cấp thì sự thỏa thuận được lập ra
Renegotiable agreement (Sự thỏa thuận có thể thương lượng): Là một sự
thỏa thuận gồm các điều lệ mà khi được cả hai bên khách hàng và nhà cung cấp chấp thuận, phía người dùng vẫn có thể yêu cầu những điều lệ thay thế mà không cần tạo ra một sự thỏa thuận mới Nhà cung cấp tài nguyên có thể chấp nhận hoặc từ chối các điều lệ mới đó
Điều lệ hợp đồng bao gồm những tài nguyên phần cứng do khách hàng yêu cầu như số CPUs, bộ nhớ và băng thông mạng; một môi trường phần mềm yêu cầu trên tài nguyên được thuê; và thời gian khả dụng tức là khi tài nguyên phần cứng và phần mềm yêu cầu phải sẵn sàng Các điều lệ của hợp đồng l được đặc tả thông qua
các trường sau:
1 nodes[ ], một tập các máy đơn được yêu cầu bởi người dùng Tương tự như các máy đơn trong P, mỗi máy đơn nodes[ ] có các trường sau:
a res[ ] R, tập hợp các tài nguyên thuộc máy đơn Không thể có nhiều
b attr[ ] A, tập hợp các thuộc tính của máy đơn Tương tự, không thể
có nhiều hơn một thuộc tính cùng loại trên cùng một máy đơn
2 reqstart[ ], thời gian bắt đầu Trường này có thể là một thời điểm cụ thể t,
xác định rằng tài nguyên phải được sẵn sàng trước thời điểm t, hoặc có thể
Trang 27là một giá trị không xác định, nghĩa là nhà cung cấp tài nguyên có thể thiết lập thời gian bắt đầu bất kỳ
3 reqduration[ ] , khoảng thời gian chạy của yêu cầu thuê tài nguyên, tính
6 user[ ], người sử dụng tài nguyên
7 preemtible[ ] , xác định tài nguyên được thuê có thể bị tạm chiếm hay không Khi một hợp đồng bị tạm chiếm, các tài nguyên đã được cấp phát trước đó sẽ bị giải phóng cho một hợp đồng khác và được cấp phát lại sau đó, giữ nguyên trạng thái ban đầu
8 software[ ], môi trường phần mềm (được đặc tả dưới dạng một tệp tin với nội dung trong một đĩa, hoặc ảnh đĩa) Một ảnh đĩa img có trường size[img]
lưu trữ số byte của tệp tin Trong trường hợp khách hàng có nhu cầu nâng cao khả năng dự trữ điện toán nhưng môi trường phần mềm chưa biết được thì trường này có thể để ở trạng thái chưa xác định khi hợp đồng yêu cầu
2.2.1 Phân loại hợp đồng
2.2.1.1 Hợp đồng chạy nền (BE - Best Effort)
Là loại hợp đồng mà người dùng có thể đợi tới khi tài nguyên rảnh để chạy ứng dụng của mình
Hợp đồng chạy nền không thời hạn (BE-Without-Deadline): Loại hợp
đồng này có các thông số requested[start[l]] và deadline[l] không xác định.
Hợp đồng chạy nền có thời hạn (BE-with-deadline): Loại hợp đồng này có
thông số deadline[l] được xác định bởi người dùng.
Nếu requested[start[l]] cũng được xác định thì
deadline[l] - requested[start[l]] > requested[duration[l]]
Trang 282.2.1.2 Hợp đồng đặt chỗ (AR - Advance Reservation)
Là loại hợp đồng mà tài nguyên phải sẵn sàng tại một thời điểm định trước Đây là loại hợp đồng có yêu cầu về tính khả dụng khắt khe nhất khi cả
requested[start[l]] và deadline[l] đều phải được xác định.
deadline[l] - requested[start[l]] = requested[duration[l]]
2.2.1.3 Hợp đồng tức thời (Immediate)
Là trường hợp đặc biệt của loại hợp đồng đặt chỗ, với requested[start[l]]
chính là thời điểm hợp đồng được đệ trình
2.2.2 Các thuộc tính của hợp đồng
Những giá trị đã trình bày ở trên đã thể hiện các thông số về phần cứng, phần mềm và tính khả dụng của một hợp đồng Một khách hàng mốn yêu cầu thuê tài nguyên phải đặc tả tất cả các giá trị này cho nhà cung cấp Tuy nhiên, một hợp đồng
l còn có những trường phụ thêm khác chứa thông tin cần thiết cho trình lập lịch.
1 state[l]: trạng thái của hợp đồng.
2 submisssion[l]: thời điểm khách hàng đưa ra yêu cầu.
3 actual_start[l]: thời điểm hợp đồng bắt đầu được xử lý.
4 eslapsed_duration[l]: khoảng thời gian tính bằng giây mà hợp đồng được
xử lý Thông số này thể hiện tổng thời gian khả dụng của tài nguyên
5 end[l]: thời gian kết thúc hợp đồng.
6 Dựa trên những điều khoản hợp đồng đưa ra bởi khách hàng, nhà cung cấp
sẽ tiến hành xác định tài nguyên ở máy P tương ứng Một hợp đồng có thể bao
gồm nhiều tài nguyên được cấp phát ở những thời điểm khác nhau Thông số
cấp phát tài nguyên của hợp đồng allocations[l] gồm có nhiều lần cấp phát nhỏ alloc với các thông số sau:
a start[alloc]: thời điểm bắt đầu cấp phát.
b end[alloc]: thời điểm kết thúc cấp phát.
c res[alloc]: tập tài nguyên (x, r1, r2, …) với x P và r i R, biểu diễn những
tài nguyên có mặt trong 1 lần cấp phát
Trang 292.2.3 Các trạng thái của hợp đồng
Trước khi một hợp đồng được yêu cầu đến nhà cung cấp tài nguyên, nó ở
trạng thái New Sau đó, hợp đồng sẽ nhận một trong hai trạng thái: Pending (nếu
được chấp nhận, nhà cung cấp tài nguyên đồng ý với mọi điều khoản của hợp đồng)
hoặc (Rejected) nếu bị từ chối Ở trạng thái Pending, hợp đồng sẽ chờ để được lập lịch và bước vào trạng thái Scheduled Khi tài nguyên của hợp đồng được đáp ứng cho người dùng, hợp đồng chuyển sang trạng thái Active Trước đó, có thể một hợp đồng sẽ phải đứng chờ ở trạng thái Preparing nếu trình lập lịch phải mất thời gian
chuẩn bị tài nguyên cho nó Nếu tài nguyên của hợp đồng bị tạm chiếm để nhường
cho hợp đồng khác, hợp đồng sẽ ở trạng thái Suspending trong quá trình bị ngưng
và toàn bộ thông tin của nó sẽ được lưu lại Một hợp đồng trong quá trình bị tạm treo có thể được di chuyển qua một máy khác để tiếp tục chạy (trạng thái
Migrating) Trước khi trở về trạng thái Active, trình lập lịch sẽ chuyển hợp đồng về
trạng thái Resuming để đợi các thao tác cấp phát lại tài nguyên Trạng thái Done là
trạng thái cuối cùng trong vòng đời của một hợp đồng, khi nó đã được hoàn thành Phần tiếp theo sẽ trình bày các thuật toán lập lịch các yêu cầu thuê tài nguyên sử dụng máy ảo và các phương pháp để tối ưu tài nguyên cũng như tính toán các chi phí phát sinh trong quá trình triển khai ảnh đĩa
Trang 30CHƯƠNG 3:
LẬP LỊCH CẤP PHÁT TÀI NGUYÊN SỬ DỤNG MÁY ẢO
Như đã trình bày ở những chương trước, máy ảo có những đặc tính rất thích hợp cho việc hiện thực hóa các yêu cầu thuê tài nguyên Máy ảo có thể cung cấp nhu cầu về phần cứng, phần mềm và tính khả dụng Chương này luận văn trình bày các thuật toán lập lịch các yêu cầu thuê tài nguyên sử dụng máy ảo và các phương pháp để tối ưu tài nguyên cũng như tính toán các chi phí phát sinh trong quá trình triển khai ảnh đĩa
Trong chương này của luận văn, giả sử (A) ảnh đĩa cho các máy ảo đã được triển khai trước trên các máy vật lý; (B) chỉ có một máy ảo chạy trên mỗi máy đơn;
và (C) một yêu cầu thuê tài nguyên không bị từ chối nếu vẫn còn đủ tài nguyên để đáp ứng
3.1 Lập lịch các yêu cầu không có thời hạn hoàn thành
Cho một hợp đồng l, mỗi máy đơn n trong nodes[l] (yêu cầu res[n] tài nguyên,
ví dụ CPU, bộ nhớ,…) sẽ được hiện thực thành một máy ảo Mỗi máy ảo phải được phân phối vào một máy đơn vật lý P trong quá trình thực thi của nó Thời gian thực thi này phải đáp ứng được các yêu cầu của hợp đồng đã đặc tả
3.1.1 Phân phối máy ảo vào các máy đơn vật lý vào thời điểm cụ thể
Để xác định khả năng phân phối tất cả các máy ảo của một hợp đồng vào các máy đơn vật lý vào đúng thời gian yêu cầu, bắt đầu tại thời điểm t và kéo dài d giây, thuật toán sẽ sắp xếp các máy đơn vật lý theo các tiêu chuẩn sau:
1 Đầu tiên ưu tiên máy đơn vật lý nào có ít hợp đồng đang chạy nhất tại thời điểm
t
2 Nếu tiêu chuẩn (1) bằng nhau, so sánh dựa vào số lượng tài nguyên rảnh tại thời điểm t
3 Cuối cùng ưu tiên cho máy đơn nào có tài nguyên rảnh ổn định nhất
Khi các máy đơn đã được sắp xếp, mô hình sử dụng thuật toán tham lam để phân phối tất cả các máy ảo
Trang 31Thuật toán 1: Phân phối tham lam
Input: Một hợp đồng l, thời điểm t, khoảng thời gian d
Output: Một cách phân phối nodes[l] → P bắt đầu từ thời điểm t và kết thúc tại t+d
Begin
map ← empty dictionary
P' ←sort(P) {Sắp xếp dựa theo chiến lược lựa chọn máy đơn đã nêu}
cur_node ← Máy đơn đầu tiên trong nodes[l]
for P' do
p_done ← false
while not p_done do
if cur_node có thể phân phối lên p từ t tới t+d then
map cur_node ← p cur_node ← Máy đơn tiếp theo trong nodes[l]
else
p_done ← false
end if end while
Trang 323.1.2 Hợp đồng chạy nền
Các yêu cầu dạng chạy nền được lập lịch theo dạng FCFS (First Come First Serve) Tuy nhiên, FCFS là một chiến lược không tối ưu Vì vậy, hệ thống sử dụng chiến lược backfilling [50], [25], [26] (là kỹ thuật trong chiến lược lập lịch cho phép một số công việc đơn giản, tốn ít chi phi có thể thực hiện trước để tận dụng tài nguyên rảnh) Chiến lược này cho phép một số yêu cầu nhất định nhảy tới đầu hàng đợi, miễn là nó không làm chậm quá trình thực thi của N hợp đồng đầu tiên Ngăn chặn việc N hợp đồng đầu tiên của hàng đợi bị chiếm quyền lập lịch bằng cách cho phép các hợp đồng đó được lập lịch trong tương lai (thay vì chỉ cho phép chúng được lập lịch tại thời điểm mà hàng đợi được xử lý)
Thuật toán 2 mô tả quá trình lập lịch cho các hợp đồng bằng cách xử lý hàng đợi Tham số allow_future được gán bằng true nếu có ít hơn N hợp đồng được lập lịch trong tương lai Nếu một hợp đồng không thể được lập lịch, nó giữ trạng thái Queued và được trả lại hàng đợi ở vị trí cũ
Thuật toán 2: Phân phối chạy nền
Input: Một hợp đồng l, boolean allow_future
Trang 33if m = then
state[m] ← Queued
else
vmrr ← new reservation start[vmrr] ← cp
Trang 34Thuật toán 3: Phân phối đặt chỗ
Input: Một hợp đồng l, boolean allow_future
3.2 Lập lịch sử dụng khả năng cho phép tạm chiếm
Khi kết hợp khả năng cho thuê cả chạy nền và đặt chỗ trên cùng một hệ thống,
dễ nhận thấy khoảng thời gian trước khi một yêu cầu đặt chỗ có tài nguyên rảnh chưa được tận dụng, nhưng nhiều trường hợp, khoảng thời gian này không đủ dài để
chạy bất kỳ một yêu cầu chạy nền nào (Hình 3.1: Dành chỗ các máy đơn trước
những hợp đồng đặt chỗ) Mặc dù kỹ thuật backfilling cho phép các hợp đồng có độ
ưu tiên thấp hơn có thể được lập lịch trước các yêu cầu đặt chỗ, nhưng vẫn có những khoảng lãng phí tài nguyên
Để giải quyết vấn đề này, luận văn xét đến khả năng tạm treo, phục hồi và di dời qua máy đơn khác của máy ảo Khi đó, thuật toán 1 cần phải mở rộng để có khả năng tìm kiếm một sự phân phối có thời gian đáp ứng ngắn hơn thời gian yêu cầu, khi một hợp đồng cho phép lập lịch từng phần Thuật toán 4 trình bày phần mở rộng