Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack (Luận văn thạc sĩ)
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
BÙI XUÂN AN GIẢI PHÁP CẤP PHÁT TÀI NGUYÊN THEO THỜI KHÓA BIỂU TRÊN OPENSTACK
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi được thực hiện dưới sự hướng dẫn của PGS.TS Thoại Nam
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tp Hồ Chí Minh, ngày 10 tháng 11 năm 2017
Học viên thực hiện luận văn
BÙI XUÂN AN
Trang 4Tp Hồ Chí Minh, ngày 10 tháng 11 năm 2017
Học viên thực hiện luận văn
BÙI XUÂN AN
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn PGS.TS Thoại Nam, giảng viên hướng dẫn luận văn của tôi, đã tận tình chỉ bảo, hướng dẫn trong suốt quá trình thực hiện đề tài Sự hướng dẫn của Thầy là định hướng, là động lực giúp tôi vượt qua những khó khăn
để đạt được kết quả như hôm nay
Tôi xin chân thành cảm ơn, Ban Giám đốc, Ban chủ nhiệm Khoa Sau Đại học và Khoa Công nghệ Thông tin, cùng các Thầy, Cô đã giảng dạy và quản lý đào tạo trong suốt 2 năm theo học tại Học viện Công nghệ Bưu chính Viễn thông
Tôi xin chân thành cảm ơn, Hội đồng chấm đề cương đã góp ý cho đề cương luận văn
Cuối cùng, tôi xin cảm ơn, gia đình, các đồng nghiệp đã động viên, tạo điều kiện cho tôi trong suốt 2 năm học tập nghiên cứu
Xin chân thành cảm ơn
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT vi
DANH SÁCH BẢNG vii
DANH SÁCH HÌNH VẼ viii
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Tổng quan về vấn đề nghiên cứu 2
3 Mục tiêu nghiên cứu 2
4 Đối tượng và phạm vi nghiên cứu 3
4.1 Đối tượng nghiên cứu 3
4.2 Phạm vi nghiên cứu 3
5 Phương pháp nghiên cứu 3
5.1 Phương pháp nghiên cứu lý thuyết 3
5.2 Phương pháp nghiên cứu thực nghiệm 3
CHƯƠNG 1 - TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 4
VÀ OPENSTACK 4
1.1 Xu hướng công nghệ Điện toán đám mây hiện nay 4
1.1.1 Xu hướng điện toán đám mây 4
1.1.2 Đặc điểm của điện toán đám mây [14] 4
1.1.3 Các mô hình triển khai và các dịch vụ của điện toán đám mây [4] 4
1.2 OpenStack là gì? 6
Trang 61.2.1 Giới thiệu chung 6
1.2.2 Các phiên bản OpenStack [10] 6
1.2.3 Các thành phần chính của OpenStack: 9
1.2.4 Ưu điểm và hạn chế của OpenStack [17] 10
1.2.5 Những Case Study đã triển khai OpenStack [11] 11
1.3 Kết luận chương 11
CHƯƠNG 2 - CẤP PHÁT TÀI NGUYÊN TRONG OPENSTACK 13
2.1 Cơ chế cấp phát máy ảo của OpenStack 13
2.2 Cơ chế lập lịch của OpenStack [16] 15
2.2.1 Bộ lọc lập lịch 15
2.2.2 Trọng số 17
2.3 Kết luận chương 18
CHƯƠNG 3 - BÀI TOÁN VECTOR BIN PACKING 19
VÀ GIẢI PHÁP CẤP PHÁT TÀI NGUYÊN 19
3.1 Tương quan giữa bài toán Vector Bin Packing (VBP) với việc cấp phát tài nguyên tính toán [2] 19
3.2 Họ các thuật toán FFD [2] 20
3.2.1 Chọn trọng số 20
3.2.2 Thời gian chạy của FFD 21
3.3 Các Heuristic hình học [2] 21
3.3.1 Dot Product 22
3.3.2 Norm-based Greedy L2 22
3.4 Thuật toán thường dùng trong cấp phát tài nguyên 22
3.4.1 Thuật toán Round robin [9] 22
Trang 73.4.2 Thuật toán First Fit [8] 22
3.4 Thực nghiệm 23
3.4.1 Dữ liệu thử nghiệm 23
3.4.2 Kết quả 23
3.5 Kết luận chương 24
CHƯƠNG 4 – HỆ THỐNG CẤP PHÁT TÀI NGUYÊN 25
DỰA TRÊN OPENSTACK 25
4.1 Đề xuất thuật toán cấp phát tài nguyên theo thời khóa biểu 25
4.1.1 Phát biểu bài toán 25
4.1.2 Các ràng buộc, quy định 25
4.1.3 Đề xuất thuật toán 25
4.2 Đưa thuật toán cấp phát tài nguyên theo thời khóa biểu vào OpenStack 29
4.2.1 Thiết kế các module của ứng dụng 30
4.2.2 Thiết lập hệ thống OpenStack 33
4.2.3 Cơ chế di chuyển máy ảo (migration) trong OpenStack [15] 34
4.2.4 Tương tác giữa ứng dụng và OpenStack 35
4.2.5 Kết quả đạt được 36
4.3 So sánh kết quả với hai thuật toán thường dùng 38
4.4 Kết luận chương 41
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 42
DANH MỤC TÀI LIỆU THAM KHẢO 43
Trang 8DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt Tiếng Anh Tiếng Việt
tiên theo thứ tự giảm dần
Trang 9DANH SÁCH BẢNG
Bảng 1.1 Các phiên bản OpenStack 6
Bảng 1.2 Các thành phần chính của OpenStack 8
Bảng 3.1 Dữ liệu thử nghiệm của thuật toán 22
Bảng 4.1 Các hàm chức năng trong ứng dụng 31
Bảng 4.2 Dữ liệu tài nguyên yêu cầu thực tế 39
Bảng 4.3 So sánh số máy vật lý cần dùng của thuật toán được đề xuất với với Round robin và First fit 38
Bảng 4.4 Dữ liệu tài nguyên yêu cầu ngẫu nhiên 39
Bảng 4.5 So sánh số máy vật lý cần dùng của thuật toán được đề xuất với với Round robin và First fit bằng dữ liệu ngẫu nhiên 39
Bảng 4.6: Dữ liệu tài nguyên máy ảo thử nghiệm 40
Bảng 4.7: So sánh số máy vật lý cần dùng của BFD với Round robin và First fit sử dụng dữ liệu thử nghiệm 40
Trang 10DANH SÁCH HÌNH VẼ
Hình 1.1 Các mô hình triển khai Cloud Computing 5
Hình 1.2 Lược đồ tổ chức của OpenStack 6
Hình 2.1 Workflow yêu cầu một máy ảo từ user 12
Hình 2.2 Quá trình lựa chọn các host với bộ lọc và trọng số 15
Hình 2.3 Quá trình đánh trọng số và sắp xếp các host 17
Hình 3.1 Kết quả chạy thuật toán với 100 items, 3 chiều 23
Hình 3.2 Tương quan giữa bài toán VBP và việc cấp phát tài nguyên 24
Hình 4.1 Nguyên lý lựa chọn của heuristic Norm-based Greedy L2 26
Hình 4.2 Minh họa về phần tài nguyên còn lại 26
Hình 4.3 Đường chéo của phần tài nguyên còn lại 27
Hình 4.4 Giải pháp đưa thuật toán cấp phát tài nguyên theo thời khóa biểu vào OpenStack 30
Hình 4.5 Mô phỏng thời khóa biểu sử dụng các máy ảo 31
Hình 4.6 Mô hình thiết kế các module là luồng dữ liệu của ứng dụng 31
Hình 4.7 Các đối tượng của ứng dụng 32
Hình 4.6 Mô hình các máy vật lý trong hệ thống 32
Hình 4.7 Giao diện module đọc dữ liệu 32
Hình 4.8 Danh sách các máy ảo 33
Hình 4.9 Kết quả sắp xếp các máy ảo theo một buổi 33
Hình 4.10: Tổ chức các máy ảo trên OpenStack theo kết quả từ ứng dụng 33
Trang 11MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong những năm gần đây, các thuật ngữ như Cloud Computing, Private Cloud, Virtualization đã trở nên phổ biến với nhiều người Không chỉ trong lĩnh vực công nghệ thông tin (CNTT) mà ở khắp nơi trên thế giới người ta đều nhắc tới ảo hóa và điện toán đám mây Điện toán đám mây đã trở thành một trong những xu hướng phát triển của CNTT ngày nay bởi những lợi ích mà nó mạng lại cho các tổ chức là hết sức to lớn:
- Giảm chi phí quản trị, điện năng, không gian do cho phép triển khai nhiều máy chủ ảo trên số ít máy chủ vật lý
- Tài nguyên được cấp phát linh động, co giãn theo nhu cầu, tận dụng được tối
đa tài nguyên đã đầu tư
- Khả năng cấp phát/thu hồi tài nguyên nhanh chóng theo từng thời điểm, mục đích sử dụng
Từ năm 2015, Trường Đại học Văn Lang bắt đầu triển khai giải pháp ảo hóa máy chủ tại trung tâm dữ liệu của Trường, góp phần nâng cao hiệu quả khai thác tài nguyên hệ thống, phục vụ hiệu quả cho công tác đào tạo, quản lý Trong đó, yêu cầu cung cấp máy chủ ảo cho sinh viên Khoa Công nghệ Thông tin học thực hành, làm
đồ án có yêu cầu khá phức tạp và phát sinh những thách thức mới đặt ra cho người quản trị hệ thống:
- Để tận dụng và tiết kiệm tài nguyên, việc cấp phát máy ảo cần được triển khai dựa trên thời khoá biểu: máy ảo sử dụng trong khoảng thời gian nào, cấu hình yêu cầu ra sao để từ đó cung cấp tài nguyên cho hợp lý, tối ưu, phù hợp với khả năng đáp ứng còn lại của hệ thống, đặc biệt là những thời điểm
có nhiều môn học sử dụng nhiều máy ảo cùng lúc
- Việc cấp phát/thu hồi máy ảo hoàn toàn tự động dựa vào thời khoá biểu
- Số lượng máy chủ ảo tăng nhanh, yêu cầu người quản trị phải có biện pháp quản lý số lượng máy chủ ngày càng lớn một cách hiệu quả, cho phép tổng hợp các thông tin quản trị trong thời gian ngắn
Trang 12- Các yêu cầu cấp phát máy chủ, tài nguyên ảo hóa ngày càng nhiều và đòi hỏi thời gian đáp ứng nhanh tuy nhiên quy trình cấp phát truyền thống chưa được tối ưu do vậy chưa đáp ứng được yêu cầu từ phía người sử dụng
Tại cơ quan tôi đang công tác, việc cấp phát máy chủ ảo cho sinh viên còn làm theo phương pháp thủ công khi có yêu cầu từ môn học Chính vì vậy, tôi chọn
đề tài "Giải pháp cấp phát tài nguyên theo thời khóa biểu trên OpenStack" để
đáp ứng nhu cầu học thực thực hành, làm đồ án của sinh viên sao cho tài nguyên được cấp phát hiệu quả, nhanh chóng và tiết kiệm
2 Tổng quan về vấn đề nghiên cứu
OpenStack là một dự án mở cộng đồng cho việc phát triển Cloud Computing phù hợp với các nhà cung cấp dịch vụ (Cloud Providers) cũng như người dùng (Cloud Customers) được phát triển bởi Rackspace hosting và NASA OpenStack bao gồm 3 dự án chính: OpenStack Compute (để triển khai việc quản lý và chỉ định tài nguyên cho các instances ảo), OpenStack Object Storage (thực thi việc lưu trữ, backup), và OpenStack Image Service (đảm nhận việc phát hiện, đăng ký, truyền tải dịch vụ cho các images disk ảo)
Hiện nay OpenStack đang được đánh giá là phần mềm nguồn mở xây dựng Cloud Computing IaaS mạnh nhất hiện nay với sự hỗ trợ của các hãng mãy tính lớn trên thế giới như HP, Canonical, IBM, Cisco, Microsoft, … Đây cũng là bộ công cụ quan trọng đang được triển khai và sẽ được trình bày chi tiết trong các phần tiếp theo
Để sử dụng OpenStack giải quyết bài toán cấp phát tài nguyên theo thời khoá biểu, luận văn tập trung nghiên cứu các thuật toán cấp phát tài nguyên mặc định của OpenStack, thuật toán cấp phát theo thời khoá biểu, theo nguồn tài nguyên đang có của hệ thống, từ đó áp dụng các thuật toán vào thành phần lập lịch của OpenStack Bước cuối cùng sẽ là việc triển khai, đánh giá giải pháp
3 Mục tiêu nghiên cứu
- Nghiên cứu và triển khai OpenStack
- Triển khai hệ thống máy ảo
Trang 13- Đề xuất và áp dụng thuật toán cấp phát tài nguyên theo thời khóa biểu
4 Đối tượng và phạm vi nghiên cứu
4.1 Đối tượng nghiên cứu
- OpenStack
- Thuật toán cấp phát tài nguyên động (theo tài nguyên đang có, theo thời khoá biểu)
4.2 Phạm vi nghiên cứu
- OpenStack trên Linux (phiên bản Mitaka)
- Project Nova của OpenStack Mitaka
- Thuật toán cấp phát tài nguyên động theo thời khóa biểu
5 Phương pháp nghiên cứu
5.1 Phương pháp nghiên cứu lý thuyết
- Tìm và đọc, hiểu các tài liệu về OpenStack, cơ chế, thuật toán cấp phát tài
nguyên
5.2 Phương pháp nghiên cứu thực nghiệm
- Xây dựng hệ thống OpenStack
- Chỉnh sửa các thành phần của OpenStack
- Áp dụng thuật toán cấp phát tài nguyên theo thời khóa biểu
Trang 14CHƯƠNG 1 - TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY
VÀ OPENSTACK
1.1 Xu hướng công nghệ Điện toán đám mây hiện nay
1.1.1 Xu hướng điện toán đám mây
Với ý tưởng bảo toàn năng lượng, hợp nhất nguồn tài nguyên, làm cho thông tin trở nên bảo mật và sẵn sàng bất cứ khi nào cần thiết, khắc phục những hạn chế của môi trường điện toán truyền thống:
- Một lượng lớn các tài nguyên tính toán không được sử dụng làm tiêu tốn không gian trong các trung tâm dữ liệu lớn
- Cần tối thiểu một quản trị viên để vận hành hệ thống
- Chi phí cho năng năng lượng ngày một tăng cao
Với điện toán đám mây, các tài nguyên nhàn rỗi có thể đưa vào sử dụng và được tận dụng bằng cách bán cho người dùng có nhu cầu Từ ý tưởng cơ bản đó, điện toán đám mây ngày càng phát triển với nhiều tính năng vượt trội, cho phép tối
ưu tài nguyên tính toán, đảm bảo tính bảo mật, linh hoạt trong vận hành
1.1.2 Đặc điểm của điện toán đám mây [14]
- Tính tự phục vụ theo nhu cầu
- Truy cập diện rộng
- Dùng chung tài nguyên và độc lập vị trí
- Khả năng co giãn nhanh chóng
- Chi trả theo thực dùng
1.1.3 Các mô hình triển khai và các dịch vụ của điện toán đám mây [4]
Bốn mô hình dịch vụ:
- Public Cloud: được phát triển để cung cấp dịch vụ và tài nguyên cho bất
cứ người dùng nào có nhu cầu Nó có thể được quản lý bởi nhà phát triển
hệ thống đám mây hoặc một bên thứ ba cung cấp dịch vụ đám mây
- Private Cloud: được phát triển cho một tổ chức hoặc người dùng cụ thể, hoàn toàn được quản lý bởi chính tổ chức hoặc người dùng đó
Trang 15- Community Cloud: được thiết kế để cung cấp dịch vụ cho một số tổ chức, một nhóm người dùng được xác định trước Đám mấy dạng này được quản lý bởi một vài thành viên được chỉ định
- Hybrid Cloud: một thiết kế lai giữa Public cloud và Private cloud
Hình 1.1: Các mô hình triển khai Cloud Computing
Ba mô hình triển khai:
- Infrastructure as a Service (IaaS): người dùng truy cập, sử dụng tài nguyên phần cứng được cung cấp và toàn quyền sử dụng tài nguyên đó Ví dụ điển hình của mô hình là là dịch vụ cho thuê VPS
- Platform as a Service (PaaS): người dùng có thể phát triển các ứng dụng rồi cung cấp ứng dụng đó tới những người dùng khác trong môi trường cloud, thông qua nhà cung cấp dịch vụ cloud Một sản phẩm thuộc mô hình này là Microsoft Azure
Trang 16- Software as a Service (SaaS): người dùng sử dụng các ứng dụng được phát hành bởi nhà cung cấp dịch vụ Các ứng dụng dạng SaaS hiện tại đang rất phổ biến là Google Apps, Microsoft Office 365.
1.2 OpenStack là gì?
1.2.1 Giới thiệu chung
- Openstack là dự án mã nguồn mở cho phép triển khai IaaS Cloud computing Bên cạnh sự hỗ trợ tích cực từ cộng đồng, OpenStack cũng được hỗ trợ bởi nhiều công ty tên tuổi như Redhat, IBM, VMWare… OpenStack là giải pháp cho public cloud và private cloud với quy mô đa dạng
- Được thiết kế thành các component, kết nối với nhau qua các API nên OpenStack rất linh động, một component có thể được thay thế mà không ảnh hưởng đến các component còn lại
Hình 1.2 Lược đồ tổ chức của OpenStack
1.2.2 Các phiên bản OpenStack [10]
Bảng 1.1: Các phiên bản OpenStack
Tên phiên bản Ngày phát hành Các thành phần
Trang 17Diablo 22/09/2011 Nova, Glance, Swift
Quantum, Cinder
Quantum, Cinder
Neutron, Cinder, Heat, Ceilometer
Neutron, Cinder, Heat, Ceilometer, Trove
Neutron, Cinder, Heat, Ceilometer, Trove, Sahara
Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic
Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight
Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum
Trang 18Newton 06/10/2016 Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, watcher
Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher
Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher
Trang 19Nova - Lập lịch cho máy ảo Tạo sửa máy ảo
- Trước có nova network, nova volume nhưng giờ đã bỏ
- Quản lý vòng đời máy ảo từ lúc tạo ra đến lúc xóa đi
- Tương tác EC2 (dịch vụ cung cấp máy ảo) của AWS
- Hỗ trợ nhiều Hypervisor: KM, VMWare
- Hỗ trợ nhiều backend storage: iSCSl, SAN Image Service Glance - Lưu trữ, truy vấn các disk image
- Tương tác APIs của dịch vụ
- Không đủ chức năng điều khiển OpenStack
Trang 20Object Storage Swift - Đọc ghi đối tượng (file) qua HTTP
- Tương tự dịch vụ S3 (Simple Storage Service) của AWS (dịch vụ lưu trữ file)
- Dữ liệu có khả năng tạo bản sao
- Theo kiểu phân tán, có khả năng chống chịu lỗi và nhất quán
- Có thể triển khai độc lập về lưu trữ (swiftstack.com)
Block Storage Cinder - Thay thế nova-volume, cấp các "block
storage" gắn vào máy ảo
- Cung cấp volume gắn vào máy ảo
- Khởi tạo các máy từ Volume
- Có plugin để kết nồi với Storage các hãng
- Có thể sao lưu mở rộng volume Network
Service
Neutron - Từng có tên là Quantum
- Cung cấp dịch vụ mạng trong OpenStack
- Thay thế nova-network hướng tới SDN trong OpenStack
- Có nhiều dịch vụ cao cấp: FWaaS, LBaaS, VPNaaS
- Có cơ chế Plugin để làm việc với các hãng
và giải pháp về network khác
1.2.4 Ưu điểm và hạn chế của OpenStack [17]
- Ưu điểm
Trang 21• Cho phép triển khai cả private cloud và public cloud
• Có thể quản trị qua trình duyệt web với dashboard
• Dung lượng lưu trữ được tính đến mức megabyte, cho phép tính toán chi phí rất linh động
• Dễ dàng tích hợp, triển khai với nhiều cấu hình phần cứng
• Thời gian upload dữ liệu chưa được tối ưu
• Chưa hỗ trợ sẵn đa ngôn ngữ, hệ thống giám sát, hệ thống tính phí
• Vấn đề kỹ thuật chỉ mới được hỗ trợ qua kênh email
1.2.5 Những Case Study đã triển khai OpenStack [11]
Nền tảng điện toán đám mây đang là một xu thế trong công nghệ thông tin
Nó cho phép triển khai nhiều mô hình ứng dụng, phù hợp với các nhu cầu ngày càng đa dạng Trong đó, OpenStack là một hệ thống mã nguồn mở nổi trội Ngoài
Trang 22việc được hỗ trợ bởi các tập đoàn công nghệ thông tin lớn, OpenStack còn có một cộng đồng phát triển mạnh mẽ Yếu tố mã nguồn mở cũng là một ưu điểm của OpenStack, nó cho phép người dùng tinh chỉnh, phát triển các chức năng tùy theo nhu cầu của mình, đóng góp cho cộng đồng Trong chương tiếp theo, tôi sẽ tập trung nghiên cứu khả năng, cơ chế cấp phát tài nguyên của OpenStack để ứng dụng
nó vào nhu cầu thực tế tại cơ quan đang công tác
Trang 23CHƯƠNG 2 - CẤP PHÁT TÀI NGUYÊN TRONG
OPENSTACK
2.1 Cơ chế cấp phát máy ảo của OpenStack
Một trong những use-case quan trọng nhất trong mọi dịch vụ Cloud là việc cấp phát máy ảo Phần này sẽ trình bày việc một máy ảo được được cấp phát như thế nào trên OpenStack, bao gồm: workflow yêu cầu máy ảo, sự tương tác giữa các thành phần của các project khác nhau trong OpenStack [12]
Hình 2.1: Workflow yêu cầu một máy ảo từ user
Bước 1: Dashboard / CLI nhận thông tin đăng nhập và gởi tới Keystone để chứng thực
Trang 24Bước 2: Keystone xác nhận tài khoản, sinh ra và gởi auth-token về Token này được dùng gởi yêu cầu đến các thành phần khác qua REST-Call
Bước 3: Dashboard / CLI chuyển đổi yêu cầu tạo máy ảo trong ‘launch instance’ hoặc ‘nova boot’ thành REST-API và gởi đến nova-api
Bước 4: nova-api nhận và gởi yêu cầu đến keystone để kiểm tra auth-token và quyền truy cập
Bước 5: Keystone kiểm tra token và gởi lại header được cập nhật cùng với quyền truy cập
Bước 6: nova-api tương tác với nova-database
Bước 7: Khởi tạo record database cho máy ảo mới
Bước 8: nova-api gởi yêu cầu rpc.call tới nova-scheduler
Bước 9: nova-scheduler chọn yêu cầu từ hàng đợi
Bước 10: nova-scheduler tương tác với nova-database để tìm ra host phù hợp thông qua việc lọc và đánh trọng số
Bước 11: Trả về thông tin host phù hợp cho máy ảo sau khi lọc và đánh trọng số Bước 12: nova-scheduler gởi yêu cầu rpc.cast tới nova-compute để tạo máy ảo trên host phù hợp
Bước 13: nova-compute chọn yêu cầu từ hàng đợi
Bước 14: nova-compute gởi yêu cầu rpc.call tới nova-conductor để lấy thông tin nhưng host ID và flavor (RAM, CPU, DISK)
Bước 15: nova-conductor chọn yêu cầu từ hàng đợi
Bước 16: nova-conductor tương tác với nova-database
Bước 17: Trả về thông tin máy ảo
Bước 18: nova-compute chọn máy ảo từ hàng đợi
Bước 19: nova-compute thực hiện REST call bằng việc chuyển auth-token tới glance-api để lấy Image URI bằng Image ID và tải image từ trung tâm lưu trữ
Bước 20: glance-api kiểm tra token với keystone
Bước 21: nova-compute lấy thông tin metadata của image
Trang 25Bước 22: nova-compute thực hiện REST-call bằng việc chuyển auth-token tới Network API để cấp phát cấu hình mạng cho máy ảo
Bước 23: quantum-server kiểm tra auth-token với keystone
Bước 24: nova-compute lấy thông tin cấu hình mạng
Bước 25: nova-compute thực hiện REST-call bằng việc chuyển auth-token tới Volume API để gán các volume vào máy ảo
Bước 26: cinder-api kiểm tra auth-token với keystone
Bước 27: nova-compute lấy thông tin block storage
Bước 28: nova-compute phát sinh dữ liệu cho hypervisor và thực thi yêu cầu trên hypervisor
2.2 Cơ chế lập lịch của OpenStack [16]
Các bộ lọc chuẩn có sẵn trong Nova Scheduler
Trang 26- RamFilter
- DiskFilter
Hình 2.2: Quá trình lựa chọn các host với bộ lọc và trọng số
Để tự viết một bộ lọc, ta phải kế thừa từ BaseHostFilter và cài đặt phương thức host_passes Phương thức này trả về True nếu một host thoả điều kiện của bộ lọc Nó dùng host_state (mô tả về host) và filter_properties làm các tham số
Ví dụ: file nova.conf có thể chứa các thiết lập bộ lọc như sau:
bộ lọc RamFilter, ComputeFilter và MyFilter được áp dụng mặc định khi không có
bộ lọc nào được đưa ra trong yêu cầu tạo máy ảo
Trang 272.2.2 Trọng số
Bộ lọc lập lịch sử dụng việc đánh trọng số để làm việc, đây là cách để lựa ra host phù hợp nhất từ nhóm các host phù hợp bằng cách đánh trọng số cho mọi host trong danh sách
Để ưu tiên một trọng số so với các trọng số khác, mọi trọng số phải được định nghĩa một số nhân trước khi tính toán trọng số cho từng node Mọi trọng số được chuẩn hoá trước nên số nhân được áp dụng dễ dàng Trọng số cuối cùng có cách tính như sau:
weight = w1_multiplier * norm(w1) + w2_multiplier * norm(w2) +
Bộ lọc lập lịch đánh trọng số các host dựa trên thông số
filter_scheduler.weight.-classes với các tiêu chí sau