1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ công nghệ thông tin: Nghiên cứu triển khai và đánh giá hiệu năng của các giải pháp networking nâng cao cho hệ thống ảo hoá sử dụng OpenStack

84 110 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 84
Dung lượng 1,97 MB

Nội dung

Tóm tắt các kết quả của luận văn: Luận văn nghiên cứu và đưa ra đánh giá về hiệu năng của các giải pháp networking nâng cao cho hệ thống ảo hoá sử dụng OpenStack thông qua các kịch bản thực tế.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

ĐÀM VĂN HẢI

NGHIÊN C ỨU TRIỂN KHAI VÀ ĐÁNH GIÁ HIỆU NĂNG CỦA CÁC

GI ẢI PHÁP NETWORKING NÂNG CAO CHO HỆ THỐNG ẢO HOÁ

S Ử DỤNG OPENSTACK

LU ẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà N ội – 11/2019

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

ĐÀM VĂN HẢI

NGHIÊN C ỨU TRIỂN KHAI VÀ ĐÁNH GIÁ HIỆU NĂNG CỦA CÁC

GI ẢI PHÁP NETWORKING NÂNG CAO CHO HỆ THỐNG ẢO HOÁ

S Ử DỤNG OPENSTACK

Quyết định số: 655/QĐ-CTSV Ngành: Mạng máy tính và Truyền thông dữ liệu Chuyên ngành: Mạng máy tính và Truyền thông dữ liệu

Mã số: 8480102.01 Giảng viên hướng dẫn: TS Hoàng Xuân Tùng

LU ẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà N ội – 11/2019

Trang 3

M ỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

DANH MỤC HÌNH VẼ iii

DANH MỤC BẢNG iv

CHƯƠNG 1 GIỚI THIỆU 1

1.1 Cloud Computing (Điện toán đám mây) 1

1.1.1 Lịch sử Cloud Computing 2

1.1.2 Các mô hình Cloud Computing 3

1.2 Các mô hình triển khai Cloud Computing 5

Public Cloud 5

Private Cloud 6

Hybrid Cloud 7

CHƯƠNG 2 GIỚI THIỆU OPENSTACK VÀ OPENVSWITCH 8

2.1 Giới thiệu OpenStack 8

2.1.1 Kiến trúc OpenStack 10

2.1.2 Các dịch vụ bổ sung 16

2.1.3 Các bản tin tích hợp và trao đổi 17

2.1.4 KVM 18

2.1.5 OpenStack Network: Neutron 19

2.1.6 Network và multi-tenancy 28

2.2 OpenvSwitch 29

2.2.1 Motivation cho Open vSwitch 30

2.2.2 OpenvSwitch 31

2.2.3 Các đặc điểm của OpenvSwitch 33

2.2.4 Software Defined Network (SDN) 34

2.2.5 SDN trong OpenStack 42

CHƯƠNG 3 PHƯƠNG PHÁP TIẾP CẬN VÀ TRIỂN KHAI OPENSTACK 44

3.1 Công cụ triển khai nhanh 44

3.2 Các mô hình triển khai OpenStack 44

3.2.1 Cấu hình cơ sở hạ tầng cài đặt 45

3.2.2 Máy ảo 45

3.2.3 Môi trường Single-Node 46

3.3 DevStack 46

3.3.1 Cấu hình Network 47

3.3.2 Network node 48

3.4 Cấu hình Neutron 52

Trang 4

3.4.1 External network 52

3.5 Giới thiệu các giải pháp Networking khác 57

3.5.1 Calico 58

CHƯƠNG 4 KẾT QUẢ ĐẠT ĐƯỢC VÀ ĐÁNH GIÁ HIỆU QUẢ 59

4.1 Thiết lập thử nghiệm 60

4.2 Thiết kế thử nghiệm 60

4.2.1 Mô hình 1: Cùng máy chủ cùng mạng 60

4.2.2 Mô hình 2: Cùng máy chủ khác mạng 60

4.2.3 Mô hình 3: Lưu lượng North-South với Floating IP 60

4.2.4 Mô hình 4: Lưu lượng North-South không Floating IP 61

4.3 Nghiên cứu hiệu suất mạng sau thử nghiệm 61

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG ĐI 62

5.1 Kết quả cho Network Traffic flow 62

5.2 Kết quả cho Network Performance 62

5.2.1 Thông lượng TCP trung bình 62

5.2.2 Thông lượng UDP trung bình 63

5.2.3 Độ trễ gói tin trung bình (Latency hoặc Packet delay) 64

5.2.4 Tổng số gói tin mất mát 65

5.3 So sánh giữa các giải pháp khác 66

5.4 Kết luận và hướng đi 67

Trang 5

L ỜI CẢM ƠN

Trước tiên tôi xin dành lời cảm ơn chân thành và sâu sắc đến thầy giáo,

TS Hoàng Xuân Tùng – người đã hướng dẫn, khuyến khích, chỉ bảo và tạo cho tôi những điều kiện tốt nhất từ khi bắt đầu cho tới khi hoàn thành công việc của mình

Tôi xin dành lời cảm ơn chân thành tới các thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, ĐHQGHN đã tận tình đào tạo, cung cấp cho tôi nh ững kiến thức vô cùng quý giá và đã tạo điều kiện tốt nhất cho tôi trong su ốt quá trình học tập, nghiên cứu tại trường

Đồng thời tôi xin cảm ơn tất cả những người thân yêu trong gia đình tôi cùng toàn thể bạn bè những người đã luôn giúp đỡ, động viên tôi những khi vấp phải những khó khăn, bế tắc

Cuối cùng, tôi xin chân thành cảm ơn các đồng nghiệp của tôi tại Công ty

CP Công ngh ệ Tomochain Việt Nam đã giúp đỡ, tạo điều kiện thuận lợi cho tôi

h ọc tập và nghiên cứu chương trình thạc sĩ tại Đại học Công nghệ, ĐH QGHN

Trang 6

L ỜI CAM ĐOAN

Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “Nghiên cứu tri ển khai và đánh giá hiệu năng của các giải pháp networking nâng cao cho hệ

th ống ảo hoá sử dụng OpenStack” là công trình nghiên cứu của riêng tôi, không sao chép l ại của người khác Trong toàn bộ nội dung của luận văn, những điều

đã được trình bày hoặc là của chính cá nhân tôi hoặc là được tổng hợp từ nhiều ngu ồn tài liệu Tất cả các nguồn tài liệu tham khảo đều có xuất xứ rõ ràng và hợp pháp

Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan này

Hà Nội, ngày 15 tháng 11 năm 2019

Trang 7

DANH M ỤC HÌNH VẼ

Hình 1.1: Nhu cầu về Cloud Computing 2

Hình 1.2: Cloud Computing Module 4

Hình 2.1: Kiến trúc thành phần OpenStack 13

Hình 2.2: Kiến trúc Logical OpenStack 14

Hình 2.3: OpenStack Services 16

Hình 2.4: Tổng quan kiến trúc Neutron 21

Hình 2.5: Kiến trúc Plug-in 22

Hình 2.6: OpenStack Neutron L3 Agents 25

Hình 2.7: Tổng quan kiến trúc Open vSwitch 32

Hình 2.8: Xử lý gói trong Open vSwitch 33

Hình 2.9: Tổng quan kiến trúc SDN 35

Hình 2.10: Phương pháp tiếp cận Computing và Networking 36

Hình 2.11: Mạng truyền thống vs mạng SDN 37

Hình 2.12: Networking planes 39

Hình 2.13: Kiến trúc mạng đơn giản dựa trên SDN 41

Hình 3.1: Kiến trúc All-in-one Single-node 48

Hình 3.2: Neutron Default Agents 49

Hình 3.3: Cấu hình Network với CLI 52

Hình 3.4: Network Dashboard 52

Hình 3.5: Virtual Routers 53

Hình 3.6: Virtual Router cho Project1 53

Hình 3.7: Namespaces 53

Hình 3.8: Floating IP được gán cho instance 56

Hình 3.9: Fixed IP được gán cho instance 56

Hình 3.10: Security Group cho Project 56

Hình 3.11: Mô hình đo kiểm 57

Hình 5.1: Thông lượng TCP trung bình cho các kịch bản 63

Hình 5.2: Thông lượng trung bình UDP cho các kịch bản 64

Hình 5.3: Độ trễ gói tin trung bình cho các kịch bản 65

Hình 5.4: Tổng số gói tin mất mát trong các kịch bản 65

Trang 8

DANH M ỤC BẢNG

Bảng 1.1: Mã nguồn mở Cloud Computing [1] 2 Bảng 2.1: OpenStack Release 10

Trang 9

Gi ới thiệu

Công nghệ giống như một nấc thang không bao giờ kết thúc, bất cứ khi nào chúng ta nghĩ rằng chúng ta đang đạt đến đỉnh cao, một cái gì đó mới sẽ xuất hiện Ngay khi ngành công nghệ thông tin nghĩ rằng nó có tất cả mọi thứ, thì ngay lập tức đã

xuất hiện một công nghệ tiên tiến có tên là "Điện toán đám mây" (Cloud Computing), cung cấp câu trả lời tốt nhất cho tất cả các vấn đề về tài chính và kỹ thuật của các công

ty lớn và nhỏ Thông qua đó, các công ty đã có giải pháp thỏa đáng và phù hợp liên quan đến các vấn đề như đầu tư ban đầu cho cơ sở hạ tầng, sử dụng hết công suất tài nguyên, v.v Ngay cả ở một công ty cấp trung, chi phí thiết lập cho cơ sở hạ tầng về

phần mềm và phần cứng cần phải được cài đặt, bảo đảm và bảo trì thường xuyên là

khá cao và trong trường hợp nếu các thành phần này là độc quyền thì chúng ta không bao giờ nên quên chi phí giấy phép và cập nhật để sử dụng chúng trong tương lai

Những yêu cầu này đã sinh ra khái niệm điện toán đám mây Khi Internet đang

mở rộng và mục tiêu chính là kết nối lẫn nhau là thông qua Internet Các công ty đang truy cập, lưu trữ và quản lý máy tính/máy chủ từ xa, chia sẻ tài nguyên "Theo yêu cầu" (On-demand), có nghĩa là, việc cung cấp các thành phần - cả phần cứng và phần mềm, khi cần thiết, điện toán đám mây sẽ chia sẻ tài nguyên thêm nhiều hơn

Điều này đã góp phần thúc đẩy các công ty cung cấp dịch vụ điện toán đám mây như Amazon, Google, Microsoft, Rackspace và Justcloud để tạo thêm doanh thu [1] Tính năng chính của điện toán đám mây là phân bổ tài nguyên theo yêu cầu, qua

đó người dùng được tính phí dựa trên thời gian sử dụng và lượng tài nguyên họ sử

dụng Chẳng hạn, một công ty hoặc người dùng có thể được lập hóa đơn dựa trên thời lượng sử dụng tài nguyên Hơn nữa, người tiêu dùng có được các dịch vụ hiệu suất cao cũng như các dịch vụ hoặc tài nguyên chi phí thấp thay vì xây dựng cơ sở hạ tầng chi phí cao của riêng họ [1]

Để hiểu thêm một cách rõ ràng và chính xác về OpenStack, nền tảng mã nguồn

mở này được hỗ trợ bởi nhiều gã khổng lồ IT bao gồm Cisco, HP, IBM và Intel Khi

có sự gia tăng nổi bật và đáng kể về nhu cầu và sự phát triển của môi trường đám mây,

nó dần trở lên vô cùng phức tạp Mặc dù vậy, OpenStack là một liên doanh công nghiệp đầy triển vọng với nỗ lực chung của các lập trình viên và các chuyên gia điện toán phân tán trên toàn thế giới, nó sẽ tạo ra tiêu chuẩn mở cho cả đám mây mở và riêng tư OpenStack được thành lập bởi NASA và Rackspace Hosting vào ngày 21 tháng 10 năm 2010; khoảng 9 năm trước, và nhanh chóng phát triển thành một nhóm

kỹ sư toàn cầu làm việc cùng nhau trên cùng một tiêu chuẩn phù hợp với một dự án đám mây mã nguồn mở OpenStack về cơ bản cấu thành ba thành phần hoạt động, được đặt tên là, OpenStack Compute, OpenStack Object Storage và OpenStack Image Service

Trang 10

OpenStack cung cấp một sự sắp xếp liên quan tới các phân đoạn xây dựng và

kiểm soát nền tảng đám mây, đăng ký và quan trị toàn bộ tài nguyên trong một trung tâm dữ liệu, thông qua một giao diện điều khiển (Hoziron) cho phép các khách hàng

quản lý qua giao diện web

Luận văn này tập trung chính vào Neutron, một thành phần có nhiệm vụ cung

cấp hiệu suất mạng trong OpenStack Để hiểu được khả năng mở rộng và dự đoán về

hiệu suất mạng của điện toán đám mây OpenStack, hiệu suất mạng sẽ được điều tra

bằng các giải pháp và plugin khác nhau

Động lực và mục tiêu

Điện toán đám mây đã trở thành một phần không thể tách dời của công nghệ và

sự phát triển của việc cung cấp các dịch vụ và/hoặc các ứng dụng thông qua web Nó

có thể nhanh chóng cung cấp thông tin và dữ liệu từ bất cứ đâu trong bất cứ thời điểm nào Mặc dù vậy, đôi khi vẫn xảy ra việc gián đoạn hay lỗi hệ thống có thể hiểu được

vì một vài vấn đề đặc biệt Do đó, cần phải nhớ rằng luôn luôn có một yêu cầu tiên quyết cho việc bảo trì nhỏ so với các lợi ích mà điện toán đám mây mang lại [2]

Tất cả những người dùng đều muốn sử dụng dịch vụ tốt nhất cho dù số tiền là

lớn hay nhỏ, trong ngành CNTT cũng vậy, không quan trọng là doanh nghiệp lớn hay

nhỏ, họ đều muốn chất lượng dịch vụ mà họ chi trả cần không có độ trễ, không mất gói và tốc độ nhanh Mặc dù vậy, để cung cấp chất lượng dịch vụ tốt nhất cho các yêu

cầu nêu trên, chúng ta phải tập trung nhiều hơn vào hiệu suất xử lý của tầng Network (Layer 3) hoặc tầng Data Link (Layer 2), cần nghiên cứu sâu về mạng biểu diễn nói chung

Ngoài ra, không thể quên rằng Ảo hóa là một phần thiết yếu của điện toán đám mây, Wikipedia cung cấp một định nghĩa rất phức tạp về ảo hóa "Trong điện toán, ảo hóa đề cập đến hành động tạo ra một phiên bản ảo (chứ không phải thực tế) của một

thứ gì đó, bao gồm nền tảng phần cứng máy tính ảo, thiết bị lưu trữ và tài nguyên

mạng máy tính." [3] Đó là việc khai thác các thiết bị phần cứng đơn lẻ theo cách xây

dựng, thông qua một máy chủ vật lý duy nhất, chia sẻ cùng một bộ xử lý vật lý, phần

cứng, I/O có thể lưu trữ nhiều máy ảo, có rất nhiều công ty đang nhận được lợi ích từ

nó, ví dụ như Xen Virtualization được sử dụng bởi nhà cung cấp đám mây nổi tiếng Amazon EC2

OpenStack chủ yếu có ba loại dịch vụ gồm dịch vụ điện toán, dịch vụ mạng và

dịch vụ lưu trữ với tên gọi tương ứng là Nova, Neutron và Cinder Các dịch vụ này cung cấp tài nguyên logic có thể được cung cấp theo yêu cầu của khách hàng đám mây

bằng các lệnh HTTP, các tài nguyên logic này có thể là máy ảo (VM), mạng, router, switch và firewall, những tài nguyên này được thiết lập và triển khai các hệ thống sử

dụng máy chủ, VMs, mạng và thiết bị lưu trữ

Trang 11

Tuy nhiên, các tổ chức vẫn cần phải quản lý các tài nguyên này, do các tài nguyên logic được ánh xạ tới các tài nguyên vật lý chưa chúng, do đó chúng ta phải xứ

lý quy trình tính toán và hiệu suất kết nối

Khi điện toán đám mây và OpenStack trở nên khó dự đoán hơn, quản lý tài nguyên sẽ yêu cầu ở mức độ phức tạp cao hơn Điều này phù hợp đối với OpenStack

vì mỗi dịch vụ đều tự chủ nhưng lại làm phức tạp thêm việc quản lý tập trung Đối với các tổ chức lớn hơn và việc giảm bớt mở rộng cho lưu trữ và tính toán phân tán, việc

lập kế hoạch tài nguyên biến thành một vấn đề quan trọng

Mục tiêu chính của luận án này là tìm ra năng lực kết nối vượt trội, để người tiêu dùng có thể sử dụng OpenStack trong phạm vi đầy đủ theo yêu cầu môi trường

của họ, kiến thức thu được về khả năng kết nối mạng của Neutron được thực hiện bằng cách so sánh nó với các giải pháp có sẵn khác

hiệu năng tổng thể cao

Nền tảng đám mây OpenStack nắm giữ thành phần Neutron, cho phép điều khiển mạng kỹ thuật số giúp các máy được tạo bằng nhiều cách khác nhau Nó sử

dụng một API bổ sung cho việc triển khai tham chiếu sử dụng các thầnh phần của Linux Ngoài ra còn có các cách triển khai khác với các tính năng đặc biệt và sử dụng các công nghệ đặc biệt

Luận văn này tập trung chủ yếu vào việc phân tích triển khai các node mạng được cung cấp trong OpenStack và thực hiện so sánh giữa Neutron với OVN, OpenDaylight, Calico, Project Roamana và các project khác để tìm ra hiệu suất mạng

có thể đạt được bằng các giải pháp khác Các vấn đề được đưa ra trong luận văn này

gồm:

1 Cho phép phân tích chi tiết về mạng của các giải pháp khác nhau trên nền tảng OpenStack

Trang 12

2 So sánh đánh giá về hiệu năng mạng của Neutron với các giải pháp khác trên OpenStack, kết hợp so sánh tính năng HA được cung cấp trên các giải pháp trong quá trình cài đặt

Trang 13

CHƯƠNG 1 GIỚI THIỆU

Trước khi đi vào thực tiễn, qua chương này tôi đã cố gắng cung cấp một số thông tin cơ bản về nội dung chính của luận văn này Mặc dù, trọng tâm chính của

luận văn này là về OpenStack, tuy nhiên, vì nó được sinh ra từ điện toán đám mây, do

đó chúng ta cần phải bao quát tất cả các khía cạnh của điện toán đám mây, tuy nhiên, tôi đã cố gắng thực hiện nó một cách ngắn gọn Sau đó, tôi tập trung nhiều hơn vào mô

tả chi tiết về OpenStack bắt đầu từ lịch sử của nó và đi xuyên suốt tổng quan kiến trúc

với các thành phần của nó

1.1 Cloud Computing (Điện toán đám mây)

Cloud computing [1] là một mô hình điện toán hiện đại cung cấp cơ sở hạ tầng CNTT và nó cần thiết cho các công ty CNTT, nơi tài nguyên điện toán phân tán được

phục vụ với cơ chế dựa trên mạng

Khi việc sử dụng cloud computing tăng lên, nó đã giải quyết vấn đề lớn liên quan tới yêu cầu lưu trữ khổng lổ với khả năng hợp nhất các tài nguyên để quản lý tốt

nhất

Cloud computing là một mô hình truy cập theo yêu cầu tới một nhóm tài

nguyên điện toán dùng chung có thể được phân phối và phát hành bởi người dùng Theo định nghĩa NIST (Viện Quốc gia về tiêu chuẩn và công nghệ Mỹ) về Cloud Computing của Peter Mell và Timothy Grance [4] một đám mây có 5 đặc điểm sau:

phương cung cấp các khả năng về máy tính như server time và network storage khi

c ần tự động mà không cần yêu cầu tương tác của con người với mỗi nhà cung cấp

d ịch vụ

qua các công ngh ệ mạng và truy cập thông qua các nên tảng khác nhau (mobile

phones, tablets, laptops, và workstations)

c ấp được gộp lại để phục vụ nhiều khách hàng bằng các sử dụng một mô hình tenant, v ới các tài nguyên vật lý và ảo được gán động và phân bổ theo nhu cầu của người dùng

m ột số trường hợp tự động, để mở rộng và thu hẹp nhanh chóng tài nguyên tương ứng

v ới nhu cầu của khách hàng, cung cấp thường sẽ không giới hạn và có thể được sử

d ụng với số lượng bất kỳ vào bất cứ khi nào

soát và t ối ưu hóa việc sử dụng tài nguyên bằng cách tận dụng khả năng đánh giá ở

Trang 14

m ột mức độ trừu tượng phù hợp với loại dịch vụ (ví dụ: lưu trữ, xử lý, băng thông và tài kho ản người dùng đang hoạt động) Việc sử dụng tài nguyên có thể được theo dõi,

ki ểm soát và báo cáo, cung cấp sự minh bạch cho cả nhà cung cấp và người dùng dịch

v ụ sử dụng

Hình 1.1: Nhu c ầu về Cloud Computing

1.1.1 Lịch sử Cloud Computing

Điện toán đám mây lần đầu tiên xuất hiện vào năm 1996, khi đó các tham chiếu

tới cụm từ "Cloud Computing" xuất hiện, khi đó được coi là một ý tưởng về máy tính tính toán mà một ngày nào đó sẽ được tổ chức thành các tiện ích công cộng [1], cho tới

những năm 2000 Amazon chính thức nghiên cứu về nó, mặc dù vậy ban đầu Amazon

chỉ sử các trung tâm dữ liệu nhỏ Trong biểu đồ dưới đây thể hiện sự gia tăng của điện toán đám mấy có thể dễ dàng nhìn thấy từ những năm 2009 so với các phương pháp điện toán khác

Bảng thể hiện sự phát triển của Open Source Cloud Computing

Tên Năm Mô t ả Phát tri ển

Eucalyptus Đầu năm

2008

Nền tảng tương thích AWS API Nền tảng tương

thích AWS API OpenNebula Đầu năm

mây công cộng, riêng tư và lai OpenStack 2010 Phát triển bởi Rackspace và

NASA

Các dịch vụ đám mây công cộng, riêng tư và lai

Bảng 1.1: Mã nguồn mở Cloud Computing [1]

Trang 15

1.1.2 Các mô hình Cloud Computing

Người dùng luôn tìm kiếm sự thoải mái bất cứ khi nào họ mua bất cứ thứ gì, điều này được áp dụng cho các nhà cung cấp điện toán đám mây, yêu cầu họ phải đưa

ra các dịch vụ dựa trên nhu cầu của khách hàng Dựa trên nhu cầu này, có 3 loại mô hình điện toán đám mây theo yêu cầu của người dùng: Phần mềm là một Dịch vụ (SaaS), Nền tảng là một Dịch vụ (PaaS) và Cơ sở hạ tầng là một Dịch vụ (IaaS)

Ba mô hình cho các dịch vụ điện toán đám mây trong kiến trúc hướng dịch vụ (SOA) Tổng quan ngắn gọn như sau:

SaaS

SaaS, viết tắt của Software-as-a-Service, là loại dịch vụ đám mây cơ bản nhất, SaaS cho phép người dùng sử dụng nhiều ứng dụng từ đám mây thay vì sử dụng các ứng dụng trên PC/Máy chủ của riêng họ Các nhà cung cấp dịch vụ đám mây đôi khi

sẽ cung cấp một số công cụ phát triển phần mềm để cho phép các ứng dụng được phát triển và sử dụng trong đám mây Giao diện lập trình ứng dụng (API) mà người dùng sử

dụng để truy cập và thực thi với phần mềm cho phép người dùng sử dụng theo gói trong khi không phải băn khoăn về cách thức hoặc nơi lưu giữ thông tin hoặc không gian lưu trữ tỷ lệ nào có thể truy cập được vì dịch vụ đám mây nhà cung cấp có thể

quản lý điều này cho họ Ví dụ về SaaS là các ứng dụng Google, Salesforce, Cisco WebEx, v.v

PaaS

PaaS, viết tắt của Platform-as-a-Service, cung cấp nền tảng phát triển, PaaS

hoạt động ở cấp độ thấp hơn SaaS nó chịu trách nhiệm quản lý không gian lưu trữ, phân bổ băng thông và tài nguyên máy tính được cung cấp cho các ứng dụng Nó lấy các tài nguyên cần thiết để chạy phần mềm và tự động mở rộng các tài nguyên này

một khi cần thêm Dịch vụ này giữ một tính chất quan trọng của đám mây được đề cập

là tự cung cấp tài nguyên Ví dụ về PaaS là hiện thân của Windows Azure, Heroku, Google App Engine, v.v

Trang 16

Hình 1.2: Cloud Computing Module

IaaS

IaaS, viết tắt của Infrastructure-as-a-Service, cơ sở hạ tầng như một dịch vụ có thể là một lớp đám mây cho một bên thuê bất cứ nơi nào, nơi mà các nhà cung cấp điện toán đám mây dành riêng tài nguyên chỉ chia sẻ với người dùng với phí trả cho mỗi lần sử dụng Điều này giảm thiểu đáng kể sự cần thiết cho đầu tư ban đầu lớn vào phần cứng máy tính như máy chủ, thiết bị mạng và sức mạnh xử lý Chúng kết hợp cho phép mức độ chi phí và kế hoạch linh hoạt có chủ đích khác nhau, điều này không được áp dụng trong các trung tâm dữ liệu nội bộ, do tài nguyên máy tính có thể được thêm hoặc xóa nhanh hơn và hiệu quả hơn so với trong một trung tâm dữ liệu IaaS và các dịch vụ liên quan đã cho phép các công ty khởi nghiệp và các doanh nghiệp chuyên về các năng lực cốt lõi của họ mà không cần quan tâm đến việc cung cấp và quản lý cơ sở hạ tầng IaaS hoàn toàn trừu tượng hóa phần cứng và cho phép người dùng sử dụng cơ sở hạ tầng như một dịch vụ, trong khi không làm phiền điều gì liên quan đến sự phức tạp tiềm ẩn Đám mây bao gồm một đề xuất giá hấp dẫn về mặt giá

cả, tuy nhiên, ngoài ra, IaaS chỉ cung cấp bảo mật cơ bản (perimeter firewall, load balancing, v.v.) và đối với các ứng dụng trong đám mây muốn mức độ bảo mật cao hơn được cung cấp tại máy chủ Ví dụ về IaaS là Amazon EC2, Google Compute Engine, v.v., OpenStack cũng có trong IaaS

Trang 17

1.2 Các mô hình triển khai Cloud Computing

Khi bạn nắm được những chi tiết cơ bản về điện toán đám mây, ví dụ đơn giản

là cách thức phân phối các dịch vụ điện toán trên Internet, bạn sẽ nhận thấy rằng có rất nhiều cách khác nhau để triển khai cũng như khai thác tài nguyên đám mây Các tùy

chọn điện toán đám mây bao gồm Private Cloud (đám mây riêng), Public Cloud (đám mây công cộng), lai giữa hai loại trên (Hybrid Cloud) hoặc Community Cloud (đám mây cộng đồng) Cả bốn tùy chọn này đều cung cấp các lợi ích tương tự nhau, bao

gồm chi phí hợp lý, hiệu suất cao, có độ tin cậy và quy mô lớn

Theo định nghĩa của NIST, 4 mô hình tri ển khai cho Cloud được mô tả, bao gồm:

- Private Cloud: Cơ sở hạ tầng đám mây được cung cấp để sử dụng độc quyền

bởi một tổ chức bao gồm nhiều người dùng (ví dụ: các đơn vị kinh doanh) Nó

có thể được sở hữu, quản lý và vận hành bởi tổ chức, bên thứ ba hoặc một số

kết hợp cả hai và nó có thể là tại chỗ (on-premise) hoặc nằm ngoài premise)

(off Public Cloud: Đây là hạ tầng Cloud dùng cho TẤT CẢ MỌI NGƯỜI, không

giới hạn đó là cá nhân hay doanh nghiệp Public Cloud được dùng khá phổ biến

và dễ dàng

- Community Cloud: Là hạ tầng Cloud được chia sẻ cho nhiều tổ chức hoặc người dùng có chung mục đích Việc quản lý community Cloud có thể do một

tổ chức hoặc bên thứ 3 thực hiện

- Hybrid Cloud: Là hạ tầng Cloud được kết hợp từ 3 mô hình Cloud nói trên Ví

dụ: Trong hệ thống Mirosoft Office 365, có thể có nhiều mailbox lưu trữ trong

hệ thống của Microsoft datacenter, nhưng cũng có thể kết hợp với Exchange Server và các mailbox dùng riêng Kết hợp lại, tạo nên 1 hệ thống lại – hybrid

messaging system

Public Cloud

Public Cloud được cung cấp như là một dịch vụ (as a service) thông qua môi trường Internet và cơ sở hạ tầng (máy chủ) hoặc ứng dụng của khách hàng được đặt tại trung tâm dữ liệu của nhà cung cấp điện toán đám mây Khách hàng không thể thấy cũng như kiểm soát được vị trí các dịch vụ mình sử dụng Các tài nguyên về hạ tầng được chia sẻ giữa nhiều khách hàng với nhau nhưng dữ liệu thì hoàn toàn tách biệt và

chỉ có khách hàng mới có thể truy xuất được Public Cloud có ưu điểm là cắt giảm chi phí triển khai ban đầu, giảm bớt độ phức tạp và thời gian triển khai ứng

dụng Microsoft Azure là ví dụ về một Public Cloud Public Cloud thường được sử

Trang 18

dụng để cung cấp email, các ứng dụng văn phòng trực tuyến, lưu trữ và các môi trường để thử nghiệm và phát triển

Ưu điểm của Public Cloud:

- Chi phí thấp: sử dụng Public Cloud giúp doanh nghiệp cắt giảm ngân sách cho công nghệ thông tin vì không phải đầu tư chi phí ban đầu cho các thiết bị phần

cứng, các máy chủ đã được ảo hóa và cung cấp bởi các nhà cung cấp dịch vụ Doanh nghiệp có thể tùy chọn các thông số cấu hình cần thiết và chỉ trả chi phí

thực sử dụng Doanh nghiệp cũng không cần phải thuê nhân viên IT để vận hành hệ thống; công việc này đã được các nhà cung cấp đám mây đảm trách

- Không cần bảo trì – Các dịch vụ đám mây được vận hành và bảo trì bởi nhà cung cấp, do đó doanh nghiệp không cần phải bận tâm về vấn đề này Sử dụng Public Cloud đồng nghĩa với việc không phải sở hữu các thiết bị phần cứng, doanh nghiệp khởi tạo và quản lý dịch vụ bằng các công cụ phần mềm

- Khả năng mở rộng gần như không giới hạn, luôn sẵn sàng để đáp ứng mọi nhu

cầu kinh doanh của bạn

- Độ tin cậy cao với một mạng lưới máy chủ khổng lồ

Private Cloud

Private Cloud có đặc điểm là toàn bộ hạ tầng thiết bị được triển khai nội bộ với khách hàng và do đó các tài nguyên này chỉ có khách hàng mới có thể truy xuất được Khách hàng có toàn quyền kiểm soát, vận hành và bảo trì hệ thống Private Cloud bao

gồm các tài nguyên máy tính được sử dụng độc quyền bởi một doanh nghiệp hoặc tổ

chức nhất định Private Cloud cũng có thể là một trung tâm lưu trữ dữ liệu tại chỗ của

một tổ chức hoặc một nhà cung cấp dịch vụ bên thứ ba Một Private Cloud có thể giúp

tổ chức tự tùy chỉnh tài nguyên của mình để đáp ứng các yêu cầu cụ thể về công nghệ thông tin Do đó, Private Cloud thường được sử dụng bởi các cơ quan chính phủ, các

tổ chức tài chính, hay bất kỳ tổ chức có quy mô trung bình đến lớn nào khác có hoạt động kinh doanh quan trọng đang tìm kiếm một sự kiểm soát chặt chẽ hơn đối với môi trường dữ liệu của họ

Ưu điểm của Private Cloud:

- Linh hoạt hơn: Các tổ chức có thể tùy chỉnh môi trường đám mây của mình để đáp ứng những nhu cầu kinh doanh cụ thể

- Bảo mật cao: Các thiết bị và dịch vụ được đặt tại chỗ nên chỉ có doanh nghiệp mới có thể truy xuất được dữ liệu Điều này không đồng nghĩa với việc Public

Trang 19

Cloud không an toàn, mà là những Private Cloud khiến doanh nghiệp có “cảm giác” an toàn hơn

- Khả năng mở rộng: Private Cloud có khả năng mở rộng lớn và hiệu quả tương

tư đám mây Public Cloud

Hybrid Cloud

Hybrid Cloud là sự kết hợp giữa Private Cloud với các Public Cloud nhằm tận

dụng những lợi thế của cả hai Trong một Hybrid Cloud, dữ liệu và các ứng dụng có

thể di chuyển giữa các Private Cloud và Public Cloud, từ đó mang lại tính linh hoạt cao hơn cũng như nhiều tùy chọn triển khai dữ liệu hơn Ví dụ: bạn có thể sử dụng Public Cloud trong các trường hợp không quá chú trọng đến yếu tố bảo mật, chẳng hạn như email và Hybrid Cloud cho các hoạt động nhạy cảm, hoạt động kinh doanh quan

trọng như báo cáo tài chính Ngoài ra, có một dịch vụ hữu ích và rất đáng chú ý trong đám mây lai, đó là cloud bursting Dịch vụ này cho phép chuyển dữ liệu hoặc các ứng

dụng từ Private Cloud sang Public Cloud trong thời gian rỗi Sau đó hệ thống có thể sử

dụng các tài nguyên của Public Cloud để tiếp tục hoạt động bình thường

Ưu điểm của Hybrid Cloud:

- Với mô hình Hybrid Cloud, các nhà hoạch định chính sách IT có nhiều khả năng hơn trong việc kiểm soát các thành phần trong đám mây so với việc sử dụng một nền tảng đám mây công cộng có sẵn

- Hybrid Cloud cũng tạo ra sự linh hoạt cần thiết, cho phép các công ty có nhiều lựa chọn hơn trong việc tìm giải pháp lưu trữ nhanh chóng, ổn định nhưng có chi phí thấp

- Lợi ích dễ thấy khác của Hybrid Cloud là giúp doanh nghiệp chỉ phải thanh toán cho thời gian điện toán tăng thêm vào những lúc thật sự cần thiết Theo đó, đối với những doanh nghiệp có các thời điểm nhất định trong năm cần một khối lượng tính toán lớn (ví dụ như mùa thuế), họ có thể chuyển sang tận dụng Public Cloud trong hệ thống Hybrid Cloud Nhờ vậy, họ sẽ tiết kiệm được rất nhiều chi phí so với việc đầu tư lớn vào một hệ thống Private Cloud nhưng chỉ được dùng vài lần trong năm

- Việc chuyển đổi dữ liệu sang Hybrid Cloud rất ít khi quá tải vì bạn có thể di chuyển dữ liệu dần dần, phân đoạn theo khối lượng công việc theo thời gian

Trang 20

CHƯƠNG 2 GIỚI THIỆU OPENSTACK VÀ OPENVSWITCH

2.1 Giới thiệu OpenStack

OpenStack là một nền tảng phần mềm tự do nguồn mở điện toán đám mây, chủ

yếu triển khai cơ sở hạ tầng như một dịch vụ (Iaas) Công nghệ này bao gồm một nhóm các dự án liên quan đến nhau mà kiểm soát xử lý, lưu trữ và tài nguyên mạng thông qua một trung tâm dữ liệu - trong đó người sử dụng quản lý thông qua một bảng điều khiển dựa trên nền web, các công cụ dòng lệnh, hoặc thông qua một API RESTful OpenStack.org phát hành nó theo các điều khoản của Giấy phép Apache

OpenStack bắt đầu vào năm 2010 như là một dự án chung của Rackspace Hosting và của NASA Tính đến năm 2015 nó được quản lý bởi các OpenStack Foundation, một công ty phi lợi nhuận được thành lập vào tháng 9 năm 2012để thúc đẩy phần mềm và cộng đồng OpenStack Hơn 500 công ty đã tham gia dự án, bao gồm AppFormix, Arista Networks, AT&T, AMD, Avaya, Canonical, Cisco, Citrix, Comcast, Dell, Dreamhost, EMC, Ericsson, Fujitsu, Go Daddy, Google, Hewlett-Packard, Hitachi Data Systems, Huawei, IBM, Intel, Internap, Juniper Networks, Mellanox, Mirantis, NEC, NetApp, Nexenta, Oracle, PLUMgrid, Pure Storage, Qosmos, Red Hat, SolidFire, SUSE Linux, VMware, VMTurbo và Yahoo!

Các cộng đồng OpenStack cộng tác với nhau trong vòng sáu tháng, dựa trên

thời gian chu kỳ phát hành với các mốc phát triển thường xuyên Trong giai đoạn lên

kế hoạch của mỗi bản phát hành, cộng động đã tập hợp một Hội nghị thiết kế OpenStack để tạo điều kiện phát triển các phiên làm việc và kết hợp các kế hoạch đó

lại Bảng tiếp theo cho thấy tiến trình của OpenStack và các tùy chọn hoàn toàn khác nhau có trong mỗi bản phát hành

Release

name

Release date Included Component code names

Austin 21-Oct-10 Nova, Swift

Bexar 03-Feb-11 Nova, Glance, Swift

Cactus 15-Apr-11 Nova, Glance, Swift

Diablo 22-Sep-11 Nova, Glance, Swift

Essex 05-Apr-12 Nova, Glance, Swift, Horizon, Keystone

Folsom 27-Sep-12 Nova, Glance, Swift, Horizon, Keystone,

Quantum, Cinder Grizzly 04-Apr-13 Nova, Glance, Swift, Horizon, Keystone,

Quantum, Cinder

Trang 21

Havana 17-Oct-13 Nova, Glance, Swift, Horizon, Keystone,

Neutron, Cinder, Heat, Ceilometer Icehouse 17-Apr-14 Nova, Glance, Swift, Horizon, Keystone,

Neutron, Cinder, Heat, Ceilometer, Trove Juno 16-Oct-14 Nova, Glance, Swift, Horizon, Keystone,

Neutron, Cinder, Heat, Ceilometer, Trove, Sahara Kilo 30-Apr-15 Nova, Glance, Swift, Horizon, Keystone,

Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic

Liberty 16-Oct-15 Nova, Glance, Swift, Horizon, Keystone,

Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican,

Searchlight Mitaka 07-Apr-16 Nova, Glance, Swift, Horizon, Keystone,

Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican,

Searchlight, Magnum Newton 06-Oct-16 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

Ocata 22-Feb-17 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

Pike 30-Aug-17 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,

Trang 22

Watcher Queens 28-Feb-18 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, blazar, ceilometer-powervm, storlets Rocky 30-Aug-18 Nova, Glance, Swift, Horizon, Keystone,

Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican,

Searchlight, Magnum, aodh, cloudkitty, congress, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher, blazar, storlets, ginling, masakari, ec2-api, cyborg Stein 10-Apr-19 Nova, Glance, Swift, Horizon, Keystone,

Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican,

Searchlight, Magnum, aodh, cloudkitty, congress, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher, blazar, storlets, ginling, masakari, ec2-api, cyborg, freezer, monasca-events-api,

Bảng 2.1: OpenStack Release

2.1.1 Kiến trúc OpenStack

OpenStack đã được phát triển một thời gian dài và thiết kế của nó đang tăng

dần bằng cách tách các thành phần/node phù hợp với từng chức năng Do đó, OpenStack được thiết kế theo dạng phân tán Dự án OpenStack bao gồm nhiều dự án

nhỏ, tạo điều kiện thuận lợi để quản lý các khía cạnh hoàn toàn khác nhau của tài nguyên phần cứng cùng với các dịch vụ điện toán, lưu trữ, kết nối mạng và các kết nối thay thế, mỗi dịch vụ cung cấp bộ API riêng để tạo điều kiện kết hợp bộ phần mềm đầy đủ

OpenStack cung cấp cho các nhà quản lý đám mây một bảng điều khiển dựa trên nền web với một Giao diện lập trình ứng dụng (API) mạnh mẽ và linh hoạt cho phép điều chỉnh một bộ các máy chủ lưu trữ vật lý với các loại Hypervisor hoàn toàn

Trang 23

khác nhau và để quản lý các thiết bị lưu trữ được chỉ định và cơ sở hạ tầng mạng ảo

Bảng điều khiển OpenStack cho phép kết hợp ngay lập tức các tài nguyên mạng và điện toán trong các cơ sở hạ tầng trung tâm dữ liệu với mức độ minh bạch cao Hình 1.3 minh họa thiết kế khái niệm OpenStack với các tương tác giữa các yếu tố phần

mềm của nó [5]

Là một nền tảng đám mây tập trung vào IaaS, OpenStack có VMs là thành phần chính, được cung cấp bởi mô-đun Nova Các VMs được bao quanh bởi các dịch vụ khác với kết nối mạng được xử lý bởi Neutron; Hình ảnh các hệ điều hành được lưu

giữ bởi Glance; dịch vụ lưu trữ được cung cấp bởi Swift và Cinder Keystone chịu trách nhiệm xác thực toàn bộ hệ thống OpenStack, ở lớp cao hơn, Horizon cung cấp giao diện quản lý dựa trên web cho bất kỳ hoặc tất cả các dịch vụ Dưới đây là mô tả

của các thành phần và dịch vụ của OpenStack

2.1.1.1 Compute Service

OpenStack Compute (Nova) nhằm quản lý các nhóm tài nguyên máy tính và cung cấp quyền truy cập vào các nhóm đó thông qua các công cụ chương trình đồ họa (bảng điều khiển) hoặc các công cụ dòng lệnh hoặc các bộ API, nói ngắn gọn, nó là

một thành phần quản lý các instance Mặc dù, bảng điều khiển chỉ có thể được truy cập

bởi người dùng được xác thực Nova hoạt động với hầu hết các công nghệ ảo hóa được

ưa thích tương tự như KVM (mặc định) [7], VMware [6], Xen [8] hoặc Hyper-V [9] cũng như các công nghệ container của Linux như LXC [10] Nova có thể được coi là

phần quan trọng nhất của hệ thống IaaS, trong đó người dùng đám mây có quyền truy

cập vào máy ảo được lưu trữ bởi các node chạy dịch vụ Nova Bên trong nền tảng OpenStack, các node máy tính sử dụng để lưu trữ và quản lý hệ thống điện toán đám mây

2 Không có người thuê kiểm soát cấu trúc liên kết và địa chỉ mạng, không có cách nào để chèn thêm các dịch vụ mạng tiên tiến, như firewall

Neutron cung cấp liên kết với sự trừu tượng của Cơ sở hạ tầng mạng ảo (ví dụ: mạng,

mạng con, cổng, bộ định tuyến, v.v.) và các dịch vụ (ví dụ: firewall, load balancing,

Trang 24

VPN, v.v.) bên trong cụm dựa trên OpenStack, về cơ bản là nó là một thành phần quản

lý mạng

Neutron chủ yếu cung cấp dịch vụ mạng cho các máy ảo (do Nova tạo và quản lý), trước đó thì mạng được xử lý bởi Nova Có khả năng cung cấp dịch vụ mạng cơ

bản duy nhất, việc phát triển và triển khai mạng nova từng bước giảm bớt trong các

bản phát hành sau đó, với một thời gian dài họ đã sắp xếp để loại bỏ mô-đun này khỏi

cơ sở mã OpenStack Neutron đã trở thành mô-đun mạng mặc định cho OpenStack với

rất nhiều tính trừu tượng linh hoạt và đầy đủ dành cho cơ sở hạ tầng và dịch vụ mạng Neutron là một giao diện API quản lý Software Defined Networking (SDN)

2.1.1.3 Storage Service

Bên cạnh các công nghệ lưu trữ thông thường (kết hợp với tài nguyên điện toán

do Nova quản lý), OpenStack còn hỗ trợ thêm 2 loại lưu trữ khác, cụ thể là Object Storage (lưu trữ đối tượng) và Block Storage (lưu trữ khối)

rộng trong đó các đối tượng và tệp sẽ được sao chép và phân phối trên nhiều máy chủ trong cụm Tuy nhiên, các tệp được lưu trữ mà không có siêu dữ liệu, chúng chỉ đơn

giản là các thùng chứa và tệp Có 2 lớp triển khai trong Swift: Proxy (Lớp API) và Storage engine (phân phối/sao chép lưu trữ dựa trên phần mềm) GlusterFS và Ceph là

2 bộ lưu trữ dựa trên phần mềm được sử dụng rộng rãi Ví dụ, Amazon điều hành dịch

vụ lưu trữ S3 thông qua nền tảng đám mây công cộng trên quy mô lớn

hóa (virtualized block storage) và cung cấp cho người dùng OpenStack quyền truy cập vào các nhóm đó Cần lưu ý rằng một khi số lượng được tạo và gắn vào máy ảo, nó có

thể được sử dụng trong máy ảo như bất kỳ thiết bị khối nào khác sẽ được sử dụng

Block Storage được tích hợp vào các dịch vụ điện toán (Nova) và bảng điều khiển (Horizon) thông qua API, cho phép người dùng sử dụng các tài nguyên lưu trữ này ngay cả khi không có ông có kiến thức về công nghệ của các thiết bị lưu trữ bên dưới

Có một tiện ích nữa của Cinder, nó có thể dễ dàng xử lý các snapshot, ngoài ra các snapshot này cũng được các máy ảo sử dụng làm nguồn khởi động Logical Volume Manager (LVM) được cấu hình mặc định, Cinder cũng sử dụng GlusterFS và các phần

mềm lưu trữ

Trang 25

Hình 2.1: Ki ến trúc thành phần OpenStack

Trang 26

Hình 2.2: Ki ến trúc Logical OpenStack

Trang 27

cạnh bảng điều khiển, người dùng (chủ yếu là nhà phát triển) cũng có thể di chuyển và

thực hiện các tác vụ quản trị bằng cách thực hành các bộ API OpenStack gốc hoặc API tương thích EC2

Identity service

Dịch vụ định danh OpenStack (Keystone) cung cấp cơ chế tập trung xác thực

và ủy quyền cho các dịch vụ OpenStack khác nhau Keystone tập hợp lại cung cấp một danh mục các đầu cuối cho tất cả các dịch vụ OpenStack vấn đề chính phải xảy ra trong khi kết nối triển khai OpenStack là xác thực, Keystone quản lý các tenant, người dùng và vai trò và là một danh mục các dịch vụ và các đầu cuối cho tất cả các thành

phần trong cụm đang chạy

Các tenant là các cụm đối tượng trong OpenStack, mọi thứ sẽ nằm trong tenant, giả sử, người dùng, máy ảo và mạng Tuy nhiên, Project và Tenant giống nhau, trong quá trình sử dụng giao diện web, nó được gọi là Project và trên dòng lệnh có tên là Tenant

Từ dòng được đề cập, sự khác biệt giữa người dùng, Tenant và các role sẽ tương ứng

với người dùng cấp một vai trò trong Tenant [11]

Image service

Dịch vụ OpenStack Image (Glance) cho phép tạo, lưu trữ và truy xuất hình ảnh đĩa cho VMs, được sử dụng bởi dịch vụ Nova trong suốt quá trình cung cấp các VMs instance Trong điện toán đám mây có yêu cầu đăng ký hình ảnh đĩa được cài đặt sẵn

để khởi động, Glance đăng ký hình ảnh khi triển khai OpenStack [11]

Telemetry service

Dịch vụ đo từ xa OpenStack (Ceilometer) thu thập đo lường tài nguyên và theo dõi các dịch vụ được sử dụng bởi người dùng OpenStack và sau đó đưa ra hóa đơn

Trang 28

Ban đầu, nó được thiết kế cho mục đích thanh toán nhưng sau khi nhận ra các tiện ích

của nó, nó biến thành một hệ thống từ xa đa năng Thông qua Ceilometer người ta có

thể có được cái nhìn thống kê về phép đo tài nguyên [11]

Orchestration service

OpenStack Orchestration (Heat) cung cấp cho cơ sở để quy định và tự động hóa

việc triển khai cơ sở hạ tầng, dịch vụ và ứng dụng bằng các mẫu linh hoạt Heat cho phép OpenStack có thể khởi chạy nhiều instance trong một lần Điều này xảy ra bằng cách quản lý một tệp có tên là Template, có chứa tất cả thông tin liên quan đến những

gì sẽ được khởi chạy Nó sẽ mở rộng hoặc thu nhỏ cụm OpenStack [11]

• Network Time Protocol (NTP) sử dụng để đồng bộ hóa Tất cả các node

OpenStack phải có thời gian hệ thống giống nhau và các máy chủ NTP được sử

dụng cho điều đó Các hệ thống đề xuất rằng các node điều khiển tham chiếu

một số máy chủ NTP đáng tin cậy khác nhau và mỗi node khác có một bộ điều

Trang 29

khiển là máy chủ NTP của chúng Trong OpenStack ta thường hay sử dụng Chrony

• SQL Database: Hầu hết các dịch vụ OpenStack lưu trữ dữ liệu của họ trên cơ

sở dữ liệu SQL và nên được đặt trong node điều khiển (control node) OpenStack hỗ trợ một số cơ sở dữ liệu, đáng chú ý nhất là MySQL, MariaDB

và các cơ sở dữ liệu phổ biến khác nhau như PostgreSQL

• Messaging queue service (MQ) được sử dụng trong các hệ thống phân tán để

gửi và nhận bản tin MQ sử dụng hàng đợi dưới dạng cấu trúc dữ liệu để tạm

thời lưu trữ thư khi dịch vụ đích không phản hồi hoặc hiện đang bận OpenStack sử dụng MQ để phối hợp dữ liệu về trạng thái và hoạt động giữa các

dịch vụ, thường chạy trên node điều khiển và nhiều dịch vụ MQ được hỗ trợ như RabbitMQ, Qpid và ZeroMQ Được sử dụng và hỗ trợ nhiều nhất là

RabbitMQ

• Memcache là bộ nhớ đệm phân tán OpenStack sử dụng Memcached để lưu trữ

các mã thông báo xác thực Vì dịch vụ này được sử dụng cho xác thực, nên chỉ các máy chủ OpenStack mới có quyền truy cập vào đó, vấn đề này có thể cấu hình với firewall, xác thực và mã hóa

2.1.3 Các bản tin tích hợp và trao đổi

OpenStack là một hệ thống phân tán tuyệt đối, bao gồm nhiều giải pháp hoặc mô-đun nhỏ hơn Mỗi mô-đun sử dụng nguyên tắc " Share Nothing Architecture" và

có chức năng tự trị từ các mô-đun khác Một mô-đun như Nova hoặc Neutron bao gồm nhiều yếu tố để cùng nhau tạo ra các chức năng của nó Giống như các hệ thống phân tán khác, tính thực tiễn của OpenStack nói chung phụ thuộc rất nhiều vào việc các dịch

vụ bên trong của nó được tích hợp các chức năng của các mô-đun và các yêu cầu để giao tiếp giữa chúng Có ba cơ chế chính cho phép tích hợp dịch vụ và giao tiếp của OpenStack: API RESTful, Remote Procedure Call (RPC) và RabbitMQ

2.1.3.1 RESTful API

API OpenStack cung cấp quyền truy cập vào tất cả các thành phần OpenStack,

chẳng hạn như Nova (Compute), Glance (VMs images), Swift (Object storage), Cinder (Block storage), Keystone (Authentication) và Neutron (Networking) Mã xác thực có giá trị trong một thời gian cố định, sau đó chúng hết hạn và phải được thay thế Mỗi

dịch vụ yêu cầu mã thông báo riêng của nó Các dịch vụ được lưu trữ trên cùng một máy chủ logic thường có thể truy cập qua các cổng khác nhau [22]

API OpenStack sử dụng RESTful, do đó có nhiều cách để sử dụng chúng

Trang 30

- Command Line Interface (CLI)

- cURL

- REST Client

2.1.3.2 Remote Procedure Call

Thông qua các cuộc gọi thủ tục từ xa (RPC), client được phép kích hoạt thực

hiện các chương trình con trong một vị trí từ xa Các mô-đun OpenStack như Nova (nova-compute, nova-api, nova-calendaruler), Neutron (neutron-server, neutron openvswith-agent) hoặc Cinder (cinder-calendaruler, cinder-volume) xây dựng việc sử

dụng RPC cho nó phép giao tiếp mô-đun, cho phép kích hoạt bởi các cuộc gọi RPC để

thực hiện các thao tác Chẳng hạn, khi máy chủ Neutron của Neutron nhận được yêu

cầu để tạo thành một mạng hoàn toàn mới, nó yêu cầu trình cắm có thể truy cập (ví dụ ml2plugin) gửi liên tiếp một cuộc gọi RPC đến agent tương ứng (ví dụ: neutron-openvswith-agent) [22]

2.1.3.3 RabbitMQ

Các cuộc gọi RPC phụ thuộc vào một kênh hoặc một cơ chế xử lý bản tin thông qua đó chúng được chuyển đến theo quy trình Các yêu cầu RPC được đóng gói thành các bản tin được gửi đến một message broker sau đó chuyển tiếp chúng cho bên nhận

RabbitMQ [22] là một mã nguồn mở thực hiện theo tiêu chuẩn Advanced Message Queue Protocol (AMQP) AMQP nhằm tạo điều kiện thuận lợi cho việc xử lý các bản tin giữa các tiến trình hoàn toàn khác nhau, các ứng dụng của một hệ thống tương đương hoặc thậm chí giữa các hệ thống giao tiếp bằng cách truyền bản tin Trong nền tảng OpenStack, AMQP được sử dụng để xác định cơ chế giao tiếp nội bộ

hiệu quả giữa các thành phần của mô-đun OpenStack

2.1.4 KVM

Kernel-based Virtual Machine, hay KVM, là một giải pháp ảo hóa đầy đủ cho Linux và đã được cung cấp trong kernel Linux kể từ phiên bản kernel 2.6.20 KVM được kích hoạt bằng cách chạy mô phỏng phần cứng dựa trên QEMU với chế độ tăng

tốc KVM được bật KVM ở chế độ hoạt động đặc biệt của QEMU sử dụng khả năng

ảo hóa hỗ trợ phần cứng của bộ xử lý (Hardware Virtual Machine hay HVM) để thực

hiện ảo hóa phần cứng thông qua các mô-đun dành riêng cho bộ xử lý KVM là một trong số nhiều Hypervisor framework tương thích với OpenStack Chính vì vậy, KVM không thực hiện bất kỳ mô phỏng nào Thay vào đó, nó sử dụng giao diện /dev/kvm, máy chủ không gian người dùng sau đó sẽ sử dụng để [28]:

Trang 31

- Thiết lập không gian địa chỉ của máy khách VM Máy chủ lưu trữ nên cung cấp

một fi image (thường là BIOS tùy chỉnh khi mô phỏng PC) mà khách sẽ sử

dụng để khởi động vào hệ điều hành chính của nó

- Cho máy khách VM mô phỏng I/O

- Ánh xạ đơn vị hiển thị hình ảnh của khách trở lại máy chủ

2.1.5 OpenStack Network: Neutron

Luận văn này tậo trung vào OpenStack network, do đó phần này sẽ bao quát triệt để mô-đun OpenStack network - Neutron và các gói phần mềm có liên quan của

nó để xây dựng cơ sở hạ tầng mạng dựa trên Neutron

2.1.5.1 Giải pháp Neutron

Giải pháp OpenStack Neutron, được ra mắt trong phiên bản Havana (tháng 10 năm 2013), đã thay thế mạng Nova để cung cấp cho OpenStack một bản tóm tắt đầy

đủ tính năng của Cơ sở hạ tầng mạng ảo bao gồm các dịch vụ mạng cơ bản và mở

rộng Nhờ có Neutron, người dùng đám mây có quyền truy cập vào các tài nguyên và

cơ sở hạ tầng mạng cần thiết như các đối tượng mạng, mạng con và bộ định tuyến Các

yếu tố mô phỏng chức năng của các thành phần vật lý tương ứng trong mạng thực bao

gồm các mạng con được kết nối với bộ định tuyến, định tuyến lưu lượng giữa các

mạng con và các mạng khác nhau Bên cạnh sự sẵn có của các dịch vụ mạng cơ bản như NAT, DHCP hoặc định tuyến, Neutron còn cho phép người dùng tạo các cấu trúc liên kết mạng ảo mở rộng cũng như các dịch vụ như Firewall (Firewall- as-a-Service

hoặc FWaaS), Load Balancing (LoadBalancer-as -a-Service hoặc LBaaS) và các mạng VPN (VPN-as-a-Service hoặc VPNaaS)

Neutron có một thành phần trên node điều khiển được gọi là máy chủ Neutron

chấp nhận và định tuyến các yêu cầu API đến trình cắm thêm OpenStack Network phù

hợp, cùng với một loạt các agent và plugin OpenStack Network giao tiếp với nhau

bằng cách sử dụng hàng đợi bản tin bằng cách đóng/mở các cổng, tạo mạng hoặc

mạng con và cung cấp địa chỉ IP theo yêu cầu Tùy thuộc vào loại triển khai, bạn có

thể chọn các agent khác nhau mà bạn muốn sử dụng Một số plugin hiện có với Neutron như sau [13]:

- Open vSwitch Plugin

- Cisco UCS/Nexus Plugin

- Cisco Nexus1000v Plugin

- Linux Bridge Plugin

- Modular Layer 2 Plugin

- Nicira Network Virtualization Platform (NVP) Plugin

- Ryu OpenFlow Controller Plugin

Trang 32

- NEC OpenFlow Plugin

- Big Switch Controller Plugin

- Cloudbase Hyper-V Plugin

- MidoNet Plugin

- Brocade Neutron Plugin Brocade Neutron Plugin

- PLUMgrid Plugin

- Mellanox Neutron Plugin Mellanox Neutron Plugin

- Embrane Neutron Plugin

- IBM SDN-VE Plugin

- CPLANE Networks

- Nuage Networks Plugin

- OpenContrail OpenContrail Plugin

- Lenovo Networking Lenovo Networking Plugin

- Avaya Neutron Plugin Avaya Neutron Plugin

2.1.5.2 Kiến trúc Neutron

Mạng OpenStack là một dịch vụ độc lập thường triển khai trên nhiều loại node

và hoạt động chặt chẽ với các thành phần khác như Identity, Compute, Storage, v.v Quá trình quan trọng nhất của dịch vụ OpenStack Network là máy chủ Neutron, đây là

một máy chủ trung tâm Python daemon đưa ra các API OpenStack Network và chuyển các yêu cầu của tenant đến các plug-in để nhận, gửi các yêu cầu API Với sự trợ giúp

của các API này, các Neutron client có thể xây dựng các chính sách và cấu trúc liên

kết mạng linh hoạt Máy chủ Neutron quản lý một số agent chịu trách nhiệm về định

dạng máy chủ và mạng

Giao tiếp giữa máy chủ Neutron và các agent này phụ thuộc vào RPC (qua RabbitMQ)

hoặc thông qua API mạng tiêu chuẩn Phần tiếp theo sẽ cung cấp tổng quan về kiến trúc và các thành phần chính của Neutron, như được minh họa trong hình dưới đây

Các yêu cầu cần xử lý này được đặt vào hàng đợi bản tin (sử dụng hệ thống RabbitMQ và AMQP (Advanced Message Queuing Protocol)) và được gửi đến các agent tương ứng (L2, L3, DHCP hoặc các agent thay thế cho các dịch vụ nâng cao)

Trang 33

Hình 2.4: T ổng quan kiến trúc Neutron

2.1.5.2.2 Kiến trúc Plug-in

Khả năng tích hợp của Neutron với cơ sở hạ tầng cơ bản hoàn toàn khác nhau

và các dịch vụ mạng khác được thi hành bởi một loạt các plug-in Nói cách khác, trong khi máy chủ Neutron cung cấp cho người dùng các bộ API có khả năng quản lý và tùy

chỉnh mạng, thì đó là các plugin thực hiện các nhiệm vụ cấu hình cụ thể và cho phép Neutron hỗ trợ các công nghệ mạng thay đổi nhanh từ nhiều nhà cung cấp một cách

hiệu quả trong việc triển khai mô hình Software-Defined Networking Nhiệm vụ lớn

nhất của các plug-in là quản lý các agent, các agent này cung cấp kết nối lớp 2/3 cho các máy ảo, nó xử lý các chuyển đổi mạng ảo-vật lý và xử lý thêm metadata Do vậy,

kiến trúc plug-in mang đến một phương pháp mạnh mẽ và linh hoạt để tùy chỉnh các

khả năng của mạng Chỉ có một plug-in Neutron chạy tại một thời điểm có tên Module Layer 2 (ML2), thông qua framework này OpenStack Network sẽ đồng thời sử dụng nhiều dạng công nghệ mạng lớp 2 [14]

Trang 34

Hình 2.5: Ki ến trúc Plug-in

Modular Layer 2

Modular Layer 2 (ML2) plug-in cung cấp một framework để đồng thời quản lý

một loạt các công nghệ lớp 2, mỗi công cụ có trình điều khiển cơ chế riêng

ML2 giúp xử lý vấn đề dư thừa triển khai trong đó các công nghệ và nhà cung

cấp chuyển đổi hoàn toàn khác nhau (ví dụ OpenvSwitch, Linux bridge hoặc Cisco) đưa ra các plug-in nguyên khối của riêng họ và các agent liên quan trong khi vẫn cung

cấp các tùy chọn giống và cản trở nhau trong cùng một môi trường (Neutron stack) Điều này dẫn đến sự trùng lặp của cơ sở dữ liệu, cơ sở mã, v.v., bên cạnh sự lãng phí

việc phát triển và bảo trì ML2 plug-in bao gồm hai loại cơ bản là Trình quản lý loại (Type Manager) và Trình quản lý cơ chế (Mechanism Manager) [15]

chọn và thực hiện bổ sung xác thực network của nhà cung cấp và tenant Phiên bản Stein mới nhất của OpenStack hỗ trợ trình điều khiển loại bao gồm: local, flat, vlan, gre và vxlan network

công nghệ cơ bản khác nhau (từ các nhà cung cấp hoàn toàn khác nhau) muốn điều khiển cơ sở hạ tầng bên dưới và đảm bảo rằng chúng được áp dụng theo loại trình điều khiển (type driver) có thể truy cập

2.1.5.2.3 Hàng đợi bản tin

Tương tự như các mô-đun OpenStack khác, Neutron sử dụng RabbitMQ làm message broker để liên lạc giữa các thành phần bên trong của nó bằng Remote Procedure Call (RPC) qua cơ chế xếp hàng bản tin RabbitMQ bằng cách sử dụng

Trang 35

Advanced Message Queuing Protocol (AMQP), cung cấp hàng đợi bản tin cho kết nối peer-to-peer Việc triển khai hàng đợi thường được triển khai như một nhóm máy chủ

xếp hàng tập trung hoặc phi tập trung, việc liên lạc giữa các thành phần Neutron cùng

với máy chủ Neutron, OVS agent và cả OVS

2.1.5.2.4 L2 agent

L2 agent chạy trên các trình ảo hóa (Compute nodes) và liên lạc liên tục với máy chủ Neutron bằng RPC Trách nhiệm chính của nó là kết nối các thiết bị mới (giao diện TAP do Nova tạo) và thiết lập các cầu nối phần mềm trên các compute node Một L2 agent có thể chịu trách nhiệm theo dõi máy chủ lưu trữ của nó và thông báo cho tron-server về các sự kiện xảy ra với các thiết bị mới hoặc bị loại bỏ Trong OpenStack, thuộc tính L2 được cung cấp bằng nhiều trình điều khiển cơ chế (Mechanism manager) Các L2 agent phải đi cùng với compute/network node để đảm

bảo rằng các dịch vụ L3 có thể được tiếp cận bởi các VM và mạng con thuê [17] Thông thường có 2 loại bridge:

- br-int (Integration bridge): Đây là bridge đảm nhiệm việc gắn thẻ và bỏ chặn lưu lượng truy cập trở lại vào hoặc ra khỏi VM Để gắn thẻ lưu lượng, nó sử

dụng Vlan ID cục bộ và gán nó cho mạng

- br-tun (Tunneling bridge): Đảm nhận việc dịch lưu lượng truy cập được dán nhãn Nó diễn giải Vlan ID thành phân đoạn và sử dụng nó sau đó để tạo đường

hầm Ví dụ, để sử dụng các đường hầm GRE, ID phân đoạn được sử dụng để

chỉ định ID đường hầm L2 agent có thể trả lời thêm để áp dụng các quy tắc

cụm bảo mật (firewall rule) được thi hành qua Neutron bằng cách sử dụng các

bộ IPTABLES và IP

Open vSwitch Agent

Như đã đề cập trước đó, Neutron cần các agent bổ trợ (ví dụ: openvswitch-agent) để cho phép hypervisor và các node mạng cung cấp cấu hình OpenvSwitch cục bộ OVS agent cung cấp kết nối lớp 2 giữa các máy ảo và do đó cơ

neutron-sở hạ tầng mạng vật lý sử dụng gắn thẻ VLAN (802.1q) Nó hỗ trợ một mạng không được gắn thẻ (flat) và lên tới 4095 mạng được gắn thẻ (VLAN) Số lượng cụ thể của các mạng VLAN phụ thuộc vào cơ sở hạ tầng mạng vật lý Sau khi nhận được một yêu

cầu từ OVS agent, neutron-server sẽ tìm ra OVS tương ứng Điều này chủ yếu liên quan đến việc đưa vào Integration bridge (br-int), để tất cả các dịch vụ mạng nội bộ và tenant VM được kết nối Neutron-openvswitch agent phụ thuộc đáng kể vào API dành riêng cho OVS (ovs lib) để cấu hình OVS và xử lý các mục nhập riêng thông qua 2

tiện ích ovs-vsctl và ovs-ofctl, tương ứng Mặc dù là switch tương thích OpenFlow,

Trang 36

OVS hoạt động bên trong mạng neutron như một switch L2 thông thường với mỗi riêng và truyền thống [16]

Linux operative agent

Linux bridge agent chỉ ra các bridge Linux để cho phép sử dụng các mạng L2 cho các tài nguyên OpenStack Cấu hình cho Linux bridge agent thường được thực

hiện trong tệp cấu hình linuxbridge_agent.ini Đảm bảo rằng khi agent bắt đầu chạy ta

cần chuyển tệp cấu hình này làm đối số [14]

SRIOV Nic Switch agent

SRIOV nic switch agent cấu hình các chức năng PCI ảo để cho phép OpenStack

hiểu được L2 network Mạng đính kèm cho các tài nguyên khác như bộ định tuyến, DHCP, sau đó sẽ không được hỗ trợ Cấu hình cho SRIOV nic switch agent thường được xử lý trong file sriov_agent.ini, đảm bảo rằng khi agent bắt đầu chạy ta cần chuyển tệp cấu hình này làm đối số [14]

MacVTap agent

MacVTap agent sử dụng các thiết bị MacVTap kernel để thực hiện các mạng L2 cho các OpenStack instance Mạng đính kèm cho các tài nguyên thay thế như bộ định tuyến, DHCP, sau đó sẽ không được hỗ trợ Tệp cấu hình cho MacVTap agent thường được thực hiện trong tệp macvtap_agent.ini Chắc chắn rằng khi agent trên bắt đầu chạy hay truyền tệp cấu hình này như là một đối số [14]

hoặc tiền tố qg- cho một External network (công khai) [17] Đúng như tên gọi của nó, neutron L3 agent (neutron-l3-agent) cấu hình cho phép một node hoạt động với các

dịch vụ mạng lớp 3 hoàn toàn khác nhau như định tuyến, NAT và Floating IP Theo

mạng truyền thống, các dịch vụ L3 như vậy chạy trên node mạng và dựa vào L2 agent

để cung cấp kết nối lớp 2 cho các VM instance chạy trên các node điện toán Các Neutron L3 agent sử dụng ngăn xếp Linux IP và iptables [18] để thực hiện chuyển tiếp

Trang 37

L3 và NAT Để hỗ trợ nhiều bộ định tuyến có địa chỉ IP có thể chồng lấp (overlapping

IP address), các neutron-l3-agent mặc định sử dụng các Linux network namespace để cung cấp các trường hợp chuyển tiếp bị cô lập (isolated forwarding)

Hình 2.6: OpenStack Neutron L3 Agents

giữa máy ảo và máy chủ có thể truy cập qua External network L3 phụ thuộc vào L2 agent, theo cách tương tự Nova phụ thuộc vào L2 agent để kết khởi tạo cổng và kết

nối Khi các cổng đó tồn tại, cho dù đó là cổng ovs hay cặp VETH (virtual ethernet), chúng có thể được chuyển vào một namespace, giống như lấy một sợi dây và cắm nó vào thiết bị của bạn Sau đó, nhiệm vụ của L3 agent là cấu hình địa chỉ IP trên các giao

diện Nó cấu hình định tuyến, cho dù đó là bảng định tuyến cơ bản hay các tuyến bổ sung đã được cấu hình trên bộ định tuyến Nó sử dụng iptables để thực hiện chức năng Floating IP và cung cấp một Floating IP cho bản máy ảo tương ứng Neutron phải tìm

Trang 38

ra bộ định tuyến chuyên dụng cho mọi phiên bản cụ thể cần phải đi qua để đến mạng bên ngoài và nó sử dụng NAT để thực hiện Floating IP đó Giả sử rằng có nhiều mạng người dùng và cùng chia sẻ một External network và mỗi mạng trước được kết nối với

mạng sau thông qua bộ định tuyến ảo dựa trên Neutron Một bộ định tuyến như vậy sẽ

NAT

Neutron-l3-agent sẽ thực thi NAT (Network Address Translation) cho bộ định tuyến, chức năng này sử dụng bảng định tuyến iptables của nhân Linux, cho phép các gói từ mạng nội bộ (tenant) được gửi ra External network thành công, trước khi đi ra

khỏi web Giống như định tuyến, các quy tắc NAT của bộ định tuyến phải được thực thi trong một namespace của bộ định tuyến cụ thể để tách chúng ra khỏi mạng máy

chủ và mạng của các khách hàng khác sử dụng dịch vụ

Floating IP

Theo mặc định, các phiên bản máy chủ có IP mặc định được gán cho chúng Nhưng nó chỉ hoạt động trong nội bộ Một floating IP cần được gán cho instance cho

để có thể truy cập ra bên ngoài Compute API sẽ cung cấp một số chức năng để truy

cập và sử dụng floating IP IP được tạo trong mạng nơi khởi chạy máy chủ API chọn floating IP có sẵn đầu tiên từ nhóm IP và liên kết nó với instance Nếu một instance bị

tắt hoặc xoá bỏ, floating IP của nó sẽ được sử dụng lại Bộ định tuyến ảo cung cấp floating IP thông qua NAT và iptables Dịch vụ L3 này phân bổ và liên kết các địa chỉ

IP từ một mạng bên ngoài đến các VM thuê bên trong để cho phép chúng có thể truy

cập trực tiếp từ một mạng bên ngoài Như đã giải thích ở trên, neutron-l3-agent thực

hiện floating IP cũng bằng cách sử dụng iptables để thực hiện NAT

2.1.5.2.6 DHCP agent

Neutron phụ thuộc vào DHCP agent của nó, neutron-dhcp-agent, nằm trong

node mạng để cung cấp dịch vụ Dynamic Host Configuration Protocol (DHCP) cho

Trang 39

các mạng được thuê, sau đó phân bổ địa chỉ IP cho VM đặc biệt, dnsmasq [20] được

sử dụng làm dịch vụ back-end cho mục đích này Đối với mỗi mạng con được tạo, có

một trình nền dnsmasq sẽ chạy và được gắn vào int-br qua cổng với tiền tố tap- trong

Được sử dụng để liên lạc nội bộ giữa các thành phần trong OpenStack được sử

dụng cho quản trị và các hoạt động nội bộ của OpenStack như xác thực, truy cập vào

cơ sở dữ liệu nội bộ (trên Controller node), cấu hình, v.v Khi cụm đang được thiết lập,

tất cả các cấu hình yêu cầu kết nối nhiều node đều sử dụng Management network Các địa chỉ IP trên mạng này chỉ có thể được truy cập trong trung tâm dữ liệu và được đưa vào trong Management Security Domain

Được sử dụng để liên lạc dữ liệu giữa các VM bên trong đám mây Các nhu cầu

về địa chỉ IP của mạng này phụ thuộc vào OpenStack Networking plug-in được sử

dụng và cả các lựa chọn cấu hình mạng của các mạng ảo được tạo bởi người dùng

Mạng này được đưa vào Guest Security Domain

External network

Bất kỳ mạng nào được thiết lập đều có tối thiểu một External network ngược

lại với các mạng khác, External netowork không chỉ đơn giản là một mạng ảo được định nghĩa Thay vào đó, nó thể hiện một cách nhìn vào một phần của vật lý, External network có thể truy cập từ bên ngoài OpenStack Địa chỉ IP trên external network có

thể được truy cập bởi bất kỳ ai trên mạng bên ngoài

Ngoài ra, bất kỳ external network nào được thiết lập đều có một hoặc vài mạng

nội bộ bổ sung Các mạng định nghĩa bằng phần mềm này kết nối với các VM, chỉ các

VM trên bất kỳ mạng nội bộ cụ thể nào hoặc các VM trên mạng con được kết nối qua giao diện với cùng một bộ định tuyến sẽ truy cập trực tiếp vào các máy ảo được kết

nối với mạng

Nó thực chất là gateway cho phép lưu lượng truy cập từ các VM instance đến các

mạng vật lý hay nói cách khác, nó được sử dụng để cho phép VM có quyền truy cập internet trong một số tình huống triển khai Các địa chỉ IP trên mạng này cho phép tiếp

Trang 40

cận bởi bất kỳ ai trên internet Như vậy, lưu lượng VM phải đi qua node hoặc các node

có khả năng định tuyến Mạng này được đưa vào trong Public Security Domain

API network

Đưa ra toàn bộ OpenStack API, cũng như OpenStack Networking API, tới người dùng Các địa chỉ IP trên mạng này phải được tiếp cận bởi bất kỳ ai trên internet Đây có thể là external network vì ta có thể tạo mạng con cho external network

với phạm vi phân bổ IP chỉ sử dụng cho API Mạng này được đưa vào Public Security Domain

2.1.6 Network và multi-tenancy

Ngoài các mạng vật lý kết nối các node khác nhau, trong OpenStack, còn có 2

loại mạng: Mạng người dùng (tenant network) và Mạng nhà cung cấp (provider network)

Mạng nhà cung cấp là một mạng nằm ngoài cụm và cho phép kết nối ra bên ngoài,

bằng cách đi qua node mạng Một instance ảo thậm chí có thể phân bổ (và sau đó giải phóng, khi không cần thiết) một floating IP trên mạng này cho phép hiển thị ra bên ngoài Mạng của nhà cung cấp được tạo bởi người quản trị OpenStack

Thay vào đó, mạng người dùng (còn gọi là mạng tự phục vụ) được hình thành

bởi người dùng đám mây để kết nối bên trong các dự án Tuy nhiên, nó thiếu kết nối

với các mạng bên ngoài như internet, trừ khi nó sử dụng bộ định tuyến ảo kết hợp

cổng trên mạng của nhà cung cấp Theo mặc định, các mạng đối tượng thuê hoàn toàn

bị cô lập và dường như không được chia sẻ với các dự án khác Trong giai đoạn tạo ra

một instance, một IP cố định được lấy từ mạng này (sẽ không thể sửa đổi được một khi

tạo, do kết quả của sự trừu tượng hóa neutron đối với cổng) Hơn nữa, cần lưu ý rằng instance nhận IP từ máy chủ DHCP (thực sự có thể là quá trình dnsmasq [20] được tạo

bởi DHCP agent) được cấu hình để cung cấp sao cho IP luôn luôn giống hệt nhau

Neutron OpenStack hỗ trợ các loại dưới đây cho tenant network

• Flat: Tất cả các instances nằm trong cùng một mạng, và có thể chia sẻ với máy

chủ Không hề sử dụng VLAN tagging hay hình thức tách biệt về network khác

• VLAN: Cho phép các user tạo nhiều provider hoặc project network sử dụng

VLAN IDs (chuẩn 802.1Q tagged) tương ứng với VLANs trong mạng vật lý Điều này cho phép các instances giao tiếp với nhau trong môi trường đám mây Chúng có thể giao tiếp với servers, firewalls, load balancers vật lý và các hạ tầng network khác trên cùng một VLAN layer 2

• GRE và VXLAN: VXLAN và GRE là các giao thức đóng gói tạo nên overlay

networks để kích hoạt và kiểm soát việc truyền thông giữa các máy ảo

Ngày đăng: 11/06/2020, 13:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w