Tải bản đầy đủ (.pdf) (54 trang)

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ĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.72 MB, 54 trang )

HỌ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

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

TP.HCM - 2018


HỌ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

MÃ SỐ:

8480104
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. THOẠI NAM



TP.HCM - 2018


i

LỜ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


ii

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.
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


iii

MỤ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


iv

1.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


v

3.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


vi


DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

VM

Virtual Machine

Máy ảo

PM

Physical Machine

Máy vật lý

FFD

First Fit Decrease

VBP

Vector Bin Packing

Thuật toán tìm chỗ trống phù hợp đầu
tiên theo thứ tự giảm dần

Đóng gói vector

RAM

Random Acces Memory

Bộ nhớ truy cập ngẫu nhiên

CPU

Central Processing Unit

Bộ xử lý trung tâm

HDD

Hard Disk Drive

Ổ đĩa cứng

NFS

Network File System

Hệ thống tập tin qua mạng

VPS

Virtual Private Server


Máy chủ ảo cá nhân


vii

DANH 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


viii

DANH 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


1

MỞ ĐẦ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.


2

-

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


3

-

Đề 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


4

CHƯƠ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 đó.


5

-

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.


6

-

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

Austin

21/10/2010

Nova, Swift

Bexar

03/02/2011

Nova, Glance, Swift

Cactus

15/04/2011


Nova, Glance, Swift


7

Diablo

22/09/2011

Nova, Glance, Swift

Essex

05/04/2012

Nova, Glance, Swift, Horizon, Keystone

Folsom

27/09/2012

Nova, Glance, Swift, Horizon, Keystone,
Quantum, Cinder

Grizzly

04/04/2013

Nova, Glance, Swift, Horizon, Keystone,
Quantum, Cinder


Havana

17/10/2013

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer

Icehouse

17/04/2014

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove

Juno

16/10/2014

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove,
Sahara

Kilo

30/04/2015

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove,
Sahara, Ironic


Liberty

16/10/2015

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove,
Sahara, Ironic, Zaqar, Manila, Designate,
Barbican, Searchlight

Mitaka

07/04/2016

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove,
Sahara, Ironic, Zaqar, Manila, Designate,
Barbican, Searchlight, Magnum


8

Newton

06/10/2016

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove,
Sahara, Ironic, Zaqar, Manila, Designate,
Barbican,


Searchlight,

cloudkitty,

congress,

monasca-api,
panko,

senlin,

Magnum,

aodh,

freezer,

mistral,

monasca-log-api,

murano,

solum,

tacker,

vitrage,


watcher

Ocata

22/02/2017

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove,
Sahara, Ironic, Zaqar, Manila, Designate,
Barbican,

Searchlight,

cloudkitty,

congress,

monasca-api,
panko,

senlin,

Magnum,

aodh,

freezer,

mistral,


monasca-log-api,

murano,

solum,

tacker,

vitrage,

Watcher

Pike

30/08/2017

Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer, Trove,
Sahara, Ironic, Zaqar, Manila, Designate,
Barbican,

Searchlight,

cloudkitty,

congress,

monasca-api,
panko,
Watcher


senlin,

Magnum,

aodh,

freezer,

mistral,

monasca-log-api,

murano,

solum,

tacker,

vitrage,


9

1.2.3 Các thành phần chính của OpenStack:
Bảng 1.2: Các thành phần chính của OpenStack
Thành phần

Tên code


Mô tả

Identity

Keystone

- Dịch vụ xác thực và ủy quyền trong
OpenStack

Service

- Quản lý, tạo, sửa ... tài khoản, nhóm người
dùng
- Hỗ trợ kết hợp với LDAP, PAM, SQL
Compute

Nova

Service

-

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

Image Service

Glance

-

Hỗ trợ nhiều Hypervisor: KM, VMWare ...

-

Hỗ trợ nhiều backend storage: iSCSl, SAN

-

Lưu trữ, truy vấn các disk image

-

Hỗ trợ các Hypervisor

-


Làm việc các Storage backend: Swift,
Filesystem …

Dashboard

Horizon

-

Cung cấp giao diện cho người dùng - tương
tác OpenStack

-

Tương tác APIs của dịch vụ

-

Không đủ chức năng điều khiển OpenStack


10

Object 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


Network
Service

Neutron

-

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

-

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


11

• 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
• Nâng cấp dữ dàng
• Hỗ trợ sẵn công cụ quản lý lưu trữ
-


Hạn chế
• Phát hành các phiên bản rất thường xuyên và người dùng phải luôn cập
nhật với các thay đổi
• 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]
-

AT&T

-

DreamHost

-

eBay

-

GoDaddy

-

Intel

-


NASA

-

PayPal

-

Rackspace Cloud

-

Sony

-

Walmart

-

Yahoo

1.3 Kết luận chương
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


12


việ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.


13

CHƯƠ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


14

Bướ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


15

Bướ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]
2.2.1 Bộ lọc lập lịch
Bộ lọc lập lịch (Filter Scheduler) trong OpenStack hỗ trợ việc lọc và đánh
trọng số để quyết định một máy ảo mới sẽ được tạo trên host (Compute node) nào.
Suốt quá trình hoạt động, bộ lọc lập lịch lặp lại việc rà soát mọi compute
node, đánh giá các host dựa trên bộ lọc. Danh sách các host kết quả được sắp xếp
theo trọng số. Bộ lọc sau đó lựa chọn các host có trọng số cao nhất để dùng cho việc
cấp phát các máy ảo được yêu cầu. Host được chọn là host phù hợp với các tiêu chí
của bộ lọc (mô tả chi tiết bên dưới).
Các bộ lọc chuẩn có sẵn trong Nova Scheduler
-

AllHostsFilter

-

ImagePropertiesFilter

-


AvailabilityZoneFilter

-

ComputeCapabilitiesFilter

-

AggregateInstanceExtraSpecsFilter

-

ComputeFilter

-

CoreFilter

-

AggregateCoreFilter

-

IsolatedHostsFilter


×