TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG ĐIỆN – ĐIỆN TỬ
Khoa Kỹ thuật truyền thông
LUẬN VĂN THẠC SĨ
Đề tài: Xây dựng chuỗi chức năng mạng ảo hóa (SFC) sử dụng
container trên nền tảng OpenStack.
Giáo viên hướng dẫn: TS. Nguyễn Xuân Dũng
Học viên:
Nguyễn Minh Ngọc
CB190170 Lớp: 19BKTVT
Hà Nội, tháng 09/2022
LỜI NÓI ĐẦU
Hệ thống mạng viễn thông hiện tại được vận hành sử dụng các thiết bị phần cứng
độc quyền của nhiều nhà cung cấp khác nhau. Việc vận hành dịch vụ mạng (network
service) mới đồng nghĩa với việc sử dụng thêm nhiều thiết bị hơn, đòi hỏi phải mở rộng
không gian để triển khai, đặt ra vấn đề về việc chi phí năng lượng ngày càng tăng, thách
thức về vốn đầu tư, yêu cầu các kỹ năng cần thiết để thiết kế, tích hợp và vận hành các
thiết bị mạng vật lý càng ngày càng phức tạp. Ngoài ra vòng đời các thiết bị phần cứng
cũng không dài, yêu cầu có kế hoạch về chu kì thiết kế - tích hợp - triển khai phù hợp.
Tệ hơn, vòng đời của phần cứng đang ngày một ngắn dần do sự phát triển nhanh chóng
của các dịch vụ và công nghệ, gây khó khăn cho việc triển khai các dịch vụ mạng mới
để thu về lợi nhuận, hạn chế sự đổi mới bởi vì xu hướng hiện tại là hướng về các giải
pháp mạng lưới tập trung.
Network Functions Virtualization (NFV) mang đến cách thức mới để thiết kế,
triển khai và quản lý các dịch vụ mạng, sử dụng các công nghệ ảo hóa tiêu chuẩn hiện
tại để hợp nhất nhiều loại thiết bị mạng. NFV tách biệt các chức năng mạng (NAT,
firewalling, intrusion detection, DNS, caching) khỏi các thiết bị vật lý và triển khai dưới
hình thức phần mềm và có thể chạy trên các server vật lý truyền thống, đồng thời có thể
di chuyển hoặc được khởi tạo trên nhiều vị trí trong hệ thống mạng theo yêu cầu mà
không cần phải triển khai thiết bị mới như trước đây.
Ngày nay, việc triển khai các chức năng mạng bảo vệ các ứng dụng bên trong
của trung tâm dữ liệu là mối quan tâm hàng đầu của các nhà cung cấp dịch vụ. Tùy thuộc
vào từng ứng dụng và nhu cầu truy cập ứng dụng của khách hàng, mà mỗi ứng dụng
dịch vụ bên trong lại cần có các cơ chế bảo mật khác nhau. Ở các trung tâm dữ liệu ngày
nay, các máy chủ web server phải đối mặt với nhiều hiểm họa từ Internet. Đó là các cuộc
tấn công mạng diễn ra ngày càng tinh vi, mức độ lớn hơn và khó đối phó hơn.
Do đó, để giải quyết những vấn đề trên, luận văn đã trình bày nghiên cứu, thử
nghiệm triển khai chuỗi chức năng mạng ảo hóa gồm các chức năng Tường lửa và Hệ
thống phát hiện xâm nhập dựa trên công nghệ NFV để bảo vệ máy chủ web server bên
trong trung tâm dữ liệu. Trong đó, một số công nghệ được áp dụng đó là: Công nghệ ảo
hóa, điện toán đám mây, mã nguồn mở OpenStack, công nghệ ảo hóa chức năng mạng
và chuỗi dịch vụ mạng.
1
MỤC LỤC
LỜI NÓI ĐẦU................................................................................................................ 1
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT ........................................................... 4
DANH MỤC HÌNH VẼ ................................................................................................ 5
DANH MỤC BẢNG BIỂU ........................................................................................... 7
TÓM TẮT ...................................................................................................................... 8
CHƯƠNG 1. MỞ ĐẦU ................................................................................................. 9
1.1. Đặt vấn đề.......................................................................................................... 9
1.2. Đề xuất hướng giải quyết ................................................................................. 9
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CHUNG ........................................................... 10
2.1. Tổng quan về điện toán đám mây .................................................................. 10
2.1.1. Giới thiệu về điện toán đám mây ............................................................. 10
2.1.2. Các đặc trưng của điện toán đám mây .................................................... 11
2.1.3. Lợi ích và hướng tiếp cận của điện toán đám mây ................................. 16
2.2. Tổng quan về công nghệ ảo hóa ..................................................................... 17
2.2.1. Giới thiệu về công nghệ ảo hóa ............................................................... 17
2.2.2. So sánh ảo hóa máy chủ và ảo hóa Container ........................................ 21
2.2.3. Công nghệ ảo hóa container sử dụng Docker......................................... 24
2.3. Giới thiệu OpenStack ...................................................................................... 25
2.3.1. Khái niệm và đặc điểm của OpenStack ................................................... 25
2.3.2. Kiến trúc của OpenStack .......................................................................... 27
2.3.3. Containerlization trong OpenStack ......................................................... 29
2.3.4. Tích hợp ảo hóa máy chủ và ảo hóa Container vào OpenStack ............ 31
2.3.5. Kết luận và đưa ra định hướng xây dựng đề tài nghiên cứu ...................... 34
2.4. Tổng quan về công nghệ ảo hóa chức năng mạng – Network Function
Virtualization (NFV) .............................................................................................. 35
2.4.1. Giới thiệu về công nghệ ảo hóa chức năng mạng .................................. 35
2.4.2. Lợi ích của công nghệ ảo hóa chức năng mạng ..................................... 35
2.4.3. Các trường hợp sử dụng của NFV .......................................................... 36
2.5. Tổng quan về chuỗi chức năng mạng – Service Function Chaning (SFC) 42
2.5.1. Giới thiệu về chuỗi chức năng mạng....................................................... 42
2.5.2. Ứng dụng của SFC trong một số trường hợp cụ thể .............................. 43
2.6. Kết luận và đưa ra định hướng nghiên cứu .................................................. 46
CHƯƠNG 3. XÂY DỰNG CHUỖI CHỨC NĂNG MẠNG .................................... 47
2
3.1. Xây dựng nền tảng cloud quản lý các chức năng mạng ảo hóa .................. 47
3.1.1. Dựng OpenStack để triển khai NFV ....................................................... 47
3.1.2. Triển khai Container trên OpenStack ..................................................... 49
3.1.3. Một số thao tác quản lý Container cơ bản của OpenStack Zun ............ 51
3.2. Xây dựng luồng đi chuỗi chức năng mạng SFC ........................................... 52
3.2.1. SFC trong trung tâm dữ liệu .................................................................... 52
3.2.2. Công nghệ xây dựng chuỗi chức năng mạng trên OpenStack .............. 53
3.3. Xác định các công nghệ sử dụng làm các chức năng mạng ......................... 54
3.3.1. Chức năng mạng Firewall - Iptables ....................................................... 54
3.3.2. Chức năng mạng phát hiện xâm nhập (IDS) – Suricata........................ 56
3.3.2. Chức năng mạng giám sát – Grafana ..................................................... 57
3.4. Triển khai mô hình .......................................................................................... 58
3.4.1. Đồ hình vật lý ............................................................................................ 58
3.4.2. Kịch bản kiểm thử .................................................................................... 59
3.4.3. Kết quả dựng mô hình .............................................................................. 60
3.4.4. Kết quả dựng networking-SFC trên OpenStack ..................................... 61
3.5. Kết luận ............................................................................................................ 62
CHƯƠNG 4. KẾT QUẢ ĐO ĐẠC VÀ ĐÁNH GIÁ................................................. 63
4.1. Kiểm chứng nguồn lưu lượng đi đúng theo mô hình SFC đã dựng ........... 63
4.2. Đo lượng sử dụng tài nguyên trên Suricata .................................................. 65
4.3. Đánh giá kết quả .............................................................................................. 66
4.4. Hạn chế ............................................................................................................. 66
KẾT LUẬN .................................................................................................................. 67
TÀI LIỆU THAM KHẢO .......................................................................................... 68
3
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Từ viết tắt
Tiếng Anh
NFV
Network Function Virtualization
SFC
Service Function Chain
CSP
Cloud Service Provider
ASP
Application Service Provider
ISP
CNTT
CPU
RAM
OS
NAT
IDS
VPN
DPI
WAN
VNF
Internet Service Provider
Công nghệ thông tin
Central Processing Unit
Random Access Memory
Operating System
Network Address Translation
Intrusion Detection System
Virtual Private Network
Deep Packet Inspection
Wide Area Network
Virtual Network Function
CPE
Customer Premises Equipment
CDN
Content Delivery Network
FTTH
Firber to the Home
DC
NIDS
HIDS
VM
IP
DMZ
QoS
Data Center
Network-based IDS
Host-based IDS
Virtual Machine
Internet Protocol
Demilitarized Zone
Quality of Service
DHCP
Dynamic Host Configuration
Protocol
Tiếng Việt
Ảo hóa chức năng mạng
Chuỗi dịch vụ
Nhà cung cấp dịch vụ đám
mây
Nhà cung cấp dịch vụ ứng
dụng
Nhà cung cấp dịch vụ Internet
Bộ xử lý trung tâm
Bộ nhớ truy cập ngẫu nhiên
Hệ điều hành
Chuyển đổi địa chỉ mạng
Hệ thống phát hiện xâm nhập
Mạng riêng ảo
Phân tích gói sâu
Mạng diện rộng
Chức năng mạng ảo
Thiết bị mạng đặt phía khách
hàng
Mạng phân phối nội dung
Mạng viễn thông băng rộng
dùng cáp quang
Trung tâm dữ liệu
Máy ảo
Vùng mạng riêng máy chủ
Chất lượng dịch vụ
Giao thức cấp phát động địa
chỉ
IP
4
DANH MỤC HÌNH VẼ
Hình 2. 1. Mô hình triển khai Cloud Computing ..................................................................... 11
Hình 2. 2. Hình ảnh định nghĩa mô hình điện toán đám mây ................................................... 11
Hình 2. 3. Mô hình Public Cloud ............................................................................................. 14
Hình 2. 4. Mô hình Private Cloud ............................................................................................ 14
Hình 2. 5. Mô hình Hybrid Cloud ............................................................................................ 15
Hình 2. 6. Kiến trúc x86 virtualization ..................................................................................... 18
Hình 2. 7. Ảo hóa loại 1 – Bare-Metal Hypervisor .................................................................. 20
Hình 2. 8. Ảo hóa loại 2 – Hosted-Metal Hypervisor .............................................................. 20
Hình 2. 9. Mô hình máy chủ truyền thống ............................................................................... 21
Hình 2. 10. Mô hình máy ảo Virtual Machine ......................................................................... 22
Hình 2. 11. Mô hình ảo hóa Container ..................................................................................... 23
Hình 2. 12. Hệ thống file cắt lớp của container ........................................................................ 23
Hình 2. 13. So sánh sự khác biệt giữa VM và container .......................................................... 24
Hình 2. 14. Vị trí của OpenStack trong thực tế ........................................................................ 26
Hình 2. 15. Kiến trúc mức khái niệm của Openstack ............................................................... 27
Hình 2. 16. Các thành phần của OpenStack ............................................................................. 28
Hình 2. 17. Thành phần môi trường OpenStack để tạo Instance .............................................. 31
Hình 2. 18. Tạo Instance trong OpenStack............................................................................... 32
Hình 2. 19. Ba mô hình tích hợp Container vào OpenStack .................................................... 33
Hình 2. 20. Mô hình Ảo hóa chức năng mạng NFVIaas .......................................................... 37
Hình 2. 21. Mô hình triển khai CPE truyền thống và vCPE .................................................... 37
Hình 2. 22. Các doanh nghiệp sử dụng chung nền tảng để thực hiện phát triển các dịch vụ
mạng của chính mình ..................................................................................................... 38
Hình 2. 23. VNF Forwarding Graph ........................................................................................ 39
Hình 2. 24. Ứng dụng của NFV trong môi trường mạng gia đình ........................................... 40
Hình 2. 25. Các nút CDN ảo hóa được triển khai trong một môi trường ảo hóa ..................... 41
Hình 2. 26. Một chuỗi SFC đơn giản ....................................................................................... 42
Hình 2. 27. Ứng dụng của SFC trong mạng Fixed Boradband Network ................................. 43
Hình 2. 28. Triển khai SFC trong mạng di động ...................................................................... 44
Hình 2. 29. Các mạng dùng chung chuỗi dịch vụ mạng........................................................... 45
Hình 2. 30. SFC trong trung tâm dữ liệu .................................................................................. 45
Hình 2. 31. SFC trong các thiết bị Cloud CPE ......................................................................... 46
Hình 3. 1. Mô hình testbed mức logic ...........................................................................47
Hình 3. 2. Mô hình triển khai vật lý ..............................................................................47
Hình 3. 3. Mô hình triển khai testbed dựa trên OpenStack ...........................................48
Hình 3. 4. Kiến trúc project Zun....................................................................................50
Hình 3. 5. Kiến trúc Kuryr.............................................................................................51
Hình 3. 6. Chuỗi các chức năng mạng trong trung tâm dữ liệu ....................................53
Hình 3. 7. Cấu trúc networking – SFC trong OpenStack ..............................................54
Hình 3. 8. Quá trình xử lý gói tin của Iptables ..............................................................55
Hình 3. 9. Hai loại hệ thống IDS ...................................................................................56
5
Hình 3. 10. Giám sát số liệu hệ thống với Grafana .......................................................57
Hình 3. 11. Đồ hình vật lý triển khai của testbed ..........................................................59
Hình 3. 12. Đồ hình triển khai các máy ảo trong OpenStack ........................................60
Hình 3. 13. Chuỗi chức năng mạng ...............................................................................61
Hình 3. 14. Kết quả tạo port pair trên các cổng nối container.......................................61
Hình 3. 15. Kết quả tạo port-pair-group ........................................................................61
Hình 3. 16. Kết quả tạo Flow Classifier ........................................................................62
Hình 4. 1.Thực hiện ping từ máy bên ngoài vào máy chủ Web ....................................63
Hình 4. 2. Luồng lưu lượng đi qua Iptables ..................................................................64
Hình 4. 3. Luồng lưu lượng gửi qua Suricata ................................................................64
Hình 4. 4.Lưu lượng được gửi tới máy Webserver .......................................................65
Hình 4. 5. Kết quả sử dụng CPU trên Suricata khi tải tăng dần ....................................65
Hình 4. 6. Lượng bộ nhớ sử dụng để xử lý gói tin trên Suricata khi tải tăng dần .........66
6
DANH MỤC BẢNG BIỂU
Bảng 2. 1. Bảng so sánh mô hình mạng truyền thống và mô hình mạng ứng dụng NFV
.............................................................................................................................36
Bảng 3. 1. Thông số vật lý 2 node .................................................................................48
Bảng 3. 3 Thông số phần cứng và cấu hình hai nút server ............................................59
Bảng 3. 4 Thông số máy ảo triển khai trong OpenStack ...............................................60
7
TÓM TẮT
Chuỗi chức năng dịch vụ (Service Function Chaining - SFC) là công nghệ quy
định các chính sách chuyển tiếp lưu lượng tách biệt trong vùng chuỗi dịch vụ. Chuỗi các
chức năng dịch vụ mạng SFC định nghĩa và tạo ra một chuỗi các dịch vụ mạng theo thứ
tự mong muốn và điều khiển lưu lượng truy cập thông qua chúng. Hiện nay, kiến trúc
mạng của các nhà khai thác mạng được phân bổ nhiều thiết bị phần cứng độc quyền.
Ứng với mỗi loại dịch vụ, mỗi chức năng mạng lại có các thiết bị phần cứng chuyên
trách đảm nhận. Các thiết bị này còn đang có một số hạn chế như: chi phí thiết bị cao,
khó quản lý tập trung, độ tương thích thấp với hệ thống của nhiều hãng khác dẫn tới
doanh nghiệp phải phụ thuộc vào một số hãng phần cứng nhất định. Do đó, để cung cấp
các dịch vụ mạng khác nhau một cách linh hoạt cho khách hàng vẫn còn là một vấn đề
gây đau đầu cho các nhà cung cấp mạng.
Trong luận văn, tôi xin trình bày về công nghệ ảo hóa chức năng mạng (NFV) và
các lợi ích của chuỗi dịch vụ mạng (SFC), các trường hợp sử dụng hai công nghệ đó
đem lại lợi ích như thế nào cho các nhà cung cấp dịch vụ mạng và khách hàng. Đây là
cơ sở tiền đề để phục vụ cho bước nghiên cứu tiếp theo đó là xây dựng hệ thống chuỗi
chức năng mạng sử dụng các chức năng mạng ảo hóa trên nền tảng OpenStack với quy
mô nhỏ để kiểm thử các tính năng và đánh giá hiệu năng hoạt động của chuỗi chức năng.
Mô hình hệ thống triển khai với chức năng mạng ảo Tường lửa và Hệ thống phát hiện
xâm nhập để bảo vệ máy chủ web trong trung tâm dữ liệu. Giám sát số liệu thống kê từ
các chức năng mạng ảo để tính toán được lượng tài nguyên phù hợp sử dụng trong triển
khai thực tế, cũng như đo đạc, đánh giá chất lượng dịch vụ của chuỗi. Qua đó, tạo bước
đệm để nghiên cứu sâu hơn về lĩnh vực này.
8
CHƯƠNG 1. MỞ ĐẦU
1.1. Đặt vấn đề
Ngày nay, triển khai các chức năng mạng bảo vệ các ứng dụng bên trong của trung
tâm dữ liệu là mối quan tâm hàng đầu của các nhà cung cấp dịch vụ. Tùy thuộc vào từng
ứng dụng và nhu cầu truy cập ứng dụng của khách hàng, mà mỗi ứng dụng dịch vụ bên
trong lại cần có các cơ chế bảo mật khác nhau, luồng lưu lượng từ bên ngoài vào từng
ứng dụng dịch vụ bên trong lại cần đi qua các chuỗi dịch vụ mạng bảo vệ khác nhau.
Tuy nhiên, hiện tại, việc triển khai chuỗi các dịch vụ chức năng còn một số hạn
chế sau: Phụ thuộc vào cấu trúc vật lý: bởi hầu hết các chức năng dịch vụ mạng được
đặt tại các thiết bị phần cứng: như tường lửa, cân bằng tải, ... những dịch vụ này được
kết hợp bằng cấu trúc liên kết vật lý cơ bản. Các chức năng mạng được thêm vào chuỗi
cần phải theo một thứ tự nghiêm ngặt. Do đó, việc xóa hoặc bổ sung các chức năng này
trở nên cực kì phức tạp vì nó yêu cầu thay đổi trong cấu trúc mạng vật lý. Điều này làm
ngăn cản các nhà khai thác mạng sử dụng tối ưu các tài nguyên mạng. Sự phụ thuộc vào
cấu trúc vật lý cũng dẫn đến hạn chế tính linh hoạt trong việc phân phối dịch vụ vì nó
có thể yêu cầu những thay đổi đáng kể trong cấu hình mạng hiện tại. Các nhà khai thác
mạng không có cách nhất quán để áp đặt và xác minh vị trí và thứ tự của các chức năng
dịch vụ mạng. Từ đó dẫn tới việc cung cấp dịch vụ chậm, không linh hoạt.
1.2. Đề xuất hướng giải quyết
Triển khai SFC bằng cách kết hợp NFV với điều khiển luồng lưu lượng giữa các
VNF là một giải pháp tuyệt với để xử lý những hạn chế còn tồn tại nêu trên. Với mục
đích cuối cùng là bảo vệ máy chủ web server khỏi các hiểm họa từ bên ngoài, giải pháp
đưa ra là triển khai các chuỗi chức năng mạng có tính năng tường lửa và hệ thống phát
hiện xâm nhập để lọc luồng lưu lượng trước khi đưa vào máy chủ web.
Chuyên đề nghiên cứu này gồm các phần sau:
• Tìm hiểu về công nghệ ảo hóa và điện toán đám mây
• Tổng quan về mã nguồn mở OpenStack trong triển khai điện toán đám mây
• Tìm hiểu SFC và các trường hợp triển khai SFC
Nội dung được chia thành các phần như sau:
Chương 1: Nêu vấn đề, phân tích từ đó trình bày lý do chọn đề tài và đề xuất
hướng giải quyết, khắc phục.
Chương 2: Trình bày tóm tắt về cơ sở lý thuyết chung, các thành phần liên quan
tới việc chuyên đề nghiên cứu. Từ đó đưa ra kết luận và định hướng xây dựng mô hình
kiểm thử cho nghiên cứu sau này.
Chương 3: Thực hiện xây dựng mô hình kiểm thử chuỗi chức năng mạng ảo hóa.
Trình bày các thành phần trong mô hình kiểm thử.
9
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CHUNG
Chương 2 sẽ trình bày tổng quan về điện toán đám mây, những hiểu biết căn bản
về công nghệ ảo hóa, đặc biệt là 2 công nghệ ảo hóa dẫn đầu xu hướng hiện nay là ảo
hóa Docker và Containerlization. Từ đó áp dụng xây dựng và quản lý container trên nền
tảng OpenStack, đưa ra kết luận và định hướng xây dựng mô hình kiểm thử.
2.1. Tổng quan về điện toán đám mây
2.1.1. Giới thiệu về điện toán đám mây
Cloud computing (Điện toán đám mây – Điện toán máy chủ ảo) giúp cho các tài
nguyên của hệ thống máy tính, đặc biệt là khả năng lưu trữ và tính toán, có sẵn theo yêu
cầu mà không cần người dùng quản lý trực tiếp. Định nghĩa điện toán đám mây được
dịch từ NIST – Viện tiêu chuẩn và công nghệ quốc qua của Mỹ: Điện toán đám mây là
mô hình cho phép truy cập qua mạng để lựa chọn và sử dụng tài nguyên có thể được
tính toán (ví dụ như: mạng, máy chủ, lưu trữ, ứng dụng và dịch vụ) theo nhu cầu một
cách thuận tiện và nhanh chóng; đồng thời cho phép kết thúc sử dụng dịch vụ, giải phóng
tài nguyên dễ dàng, giảm thiểu các giao tiếp với nhà cung cấp [1]. Điện toán đám mây
giúp cho việc thao tác, cấu hình truy cập tài nguyên phần cứng và phần mềm có thể diễn
ra từ xa. Nó cung cấp các nền tảng độc lập, do phần mềm không bắt buộc phải được cài
đặt trên máy tính cục bộ. Người dùng sử dụng dịch vụ như cơ sở dữ liệu, website, lưu
trữ, … trong mô hình điện toán đám mây không cần quan tâm đến vị trí địa lý cũng như
các thông tin khác của hệ thống mạng đám mây - “Điện toán đám mây trong suốt đối
với người dùng”.
Người dùng cuối truy cập và sử dụng các ứng dụng đám mây thông qua các ứng
dụng như trình duyệt web, các ứng dụng mobile, hoặc máy tính cá nhân thông thường.
Hiệu năng sử dụng phía người dùng cuối được cải thiện khi các phần mềm chuyên dụng,
các cơ sở dữ liệu được lưu trữ và cài đặt trên hệ thống máy chủ ảo trong môi trường điện
toán đám mây trên nền của “Data Center”.
“Data center” là thuật ngữ chỉ khu vực chứa server và các thiết bị lưu trữ, bao gồm
nguồn điện và các thiết bị khác như rack, cable, … có khả năng sẵn sàng và độ ổn định
cao. Ngoài ra còn bao gồm các tiêu chí khác như: tính module hóa cao, khả năng mở
rộng dễ dàng, nguồn và làm mát, hỗ trợ hợp nhất server và lưu trữ mật độ cao [2].
Điện toán đám mây được hình thành bằng cách kết hợp công nghệ ảo hóa trên các
nút máy chủ vật lý lại với nhau trên mạng vật lý, kết hợp lưu trữ có chia sẻ và phối hợp
quản lý trên toàn bộ cơ sở hạ tầng, rồi cung cấp cân bằng tải. Mô hình cơ sở hạ tầng của
điện toán đám mây được mô tả trong hình sau:
10
Hình 2. 1. Mô hình triển khai Cloud Computing
Hình 2.1 cho thấy người sử dụng (user) có thể được truy cập cơ sở hạ tầng điện toán
đám mây từ bất kỳ thiết bị nào và từ bất kỳ đâu trên thế giới. Đám mây là một điểm truy
cập duy nhất cho tất cả các máy tính có nhu cầu của khách hàng. Các dịch vụ cần đáp
ứng yêu cầu chất lượng dịch vụ từ phía khách hàng và thông thường đều đưa ra các mức
thỏa thuận dịch vụ. Các tiêu chuẩn mở và phần mềm mã nguồn mở cũng góp phần phát
triển điện toán máy chủ ảo.
2.1.2. Các đặc trưng của điện toán đám mây
Công nghệ Cloud Computing – Điện toán đám mây bao gồm năm tính năng chính
với 4 mô hình triển khai và 3 mô hình dịch vụ.
Hình 2. 2. Hình ảnh định nghĩa mô hình điện toán đám mây
11
Hình 2.2 đưa ra các đặc trưng của điện toán đám mây bao gồm năm tính năng chính,
bốn mô hình triển khai và ba mô hình dịch vụ. Đặc điểm của các phần này được nêu chi
tiết dưới đây.
Năm tính năng chính:
• Rapid elasticity (Tính đàn hồi cao): các khả năng tính toán tài nguyên có thể được
cung cấp và giải phóng một cách đàn hồi để mở rộng nhanh chóng ra bên ngoài đồng
thời bên trong tương ứng với nhu cầu sử dụng. Đối với khách hàng, các khả năng có sẵn
thường xuất hiện không bị giới hạn và thích hợp với mọi số lượng ở bất kỳ thời điểm
nào.
• Broad network (Khả năng truy cập qua các mạng chuẩn): khả năng truy cập nhiều
kiểu hạ tầng mạng khác nhau, hỗ trợ nhiều nền tảng thiết bị, nhiều hạ tầng vật lý (điện
thoại di động, máy tính, máy trạm, …).
• Measured service (Tính toán dịch vụ): hệ thống cloud có thể tự động điều khiển
và tối ưu hóa tài nguyên ở một số level của tài nguyên dịch vụ như: lưu trữ xử lý, băng
thông và kích hoạt tài khoản. Lưu lượng sử dụng tài nguyên có thể được quản lý, điều
khiển, báo cáo cho cả nhà cung cấp và khách hàng sử dụng dịch vụ. Từ đó có thể tính
toán được chi phí của người sử dụng.
• On–demand selft service (Tự phục vụ theo nhu cầu): người dùng có thể đơn
phương cung cấp các khả năng tính toán, ví dụ như thời gian máy chủ, lưu trữ mạng,
một cách tự động mà không cần tới tương tác giữa họ với nhà cung cấp dịch vụ.
• Resource pooling (Dùng chung tài nguyên mạng): tài nguyên tính toán được của
nhà cung cấp được dùng chung cho nhiều khách hàng sử dụng dịch vụ đa thuê bao, với
những nguồn tài nguyên vật lý và ảo khác nhau được phân công và bố trí theo nhu cầu
của người sử dụng. Khách hàng không thể xác định và biết được vị trí chính xác của
nguồn tài nguyên nhưng mà có thể dễ dàng xác định được vị trí cung cấp nguồn tài
nguyên một cách tương đối (quốc gia, liên bang, trung tâm dữ liệu). Gộp chung nguồn
tài nguyên của nhiều máy chủ với nhau thành một khối thống nhất, rồi sau đó sẽ san sẻ
tài nguyên cho người dùng với mục đích dễ quản lý, cấp phát tài nguyên dễ dàng, nhanh
chóng.
Ba mô hình cung cấp dịch vụ:
Đặc trưng tiêu biểu của các dịch vụ điện toán đám mây (Cloud Computing) là cung
cấp cơ sở hạ tầng, nền tảng và phần mềm như là dich vụ máy chủ ảo; đồng thời có thể
được cung ứng như là một dich vụ cho thuê trong cách dùng bao nhiêu trả bấy nhiêu đối
với người dùng.
Mô hình dịch vụ của điện toán đám mây bao gồm:
• Software as a Service (Saas): khách hàng sử dụng những ứng dụng chạy trên nền
tảng cloud của nhà cung cấp. Các ứng dụng có thể truy cập được từ các thiết bị thông
12
qua giao diện với người dùng, khách hàng không có quyền quản lý và điểu khiển kiến
trúc hạ tầng của cloud như mạng, server, lưu trữ, hệ thống vận hành và thậm chí cả một
vài ứng dụng cá nhân … do đó hạn chế người dùng về việc cấu hình đặc biệt cho các
ứng dụng (người dùng không cần quan tâm xem cloud triển khai như thé nào, chỉ cần
thuê và sử dụng dịch vụ thông qua các phần mềm client (Web Browser …).
• Platform as a Service (PaaS): nền tảng như một dịch vụ. Cung cấp các dịch vụ về
nền tảng, môi trường lập trình, database, … để khách hàng phát triển các ứng dụng của
mình (thông thường nền tảng này cung cấp cho các developer). Ví dụ: Azue, Bluemix,
OpenShift, … Nhưng khách hàng không được quản lý các kiến trúc hạ tầng của cloud
mà chỉ được phép điều khiển các ứng dụng triển khai và có thể đồng bộ cài đặt cho môi
trường quản lý ứng dụng.
• Infrastructure as a Service (IaaS): cung cấp các dịch vụ về hạ tầng, các máy chủ,
tài nguyên tính toán (RAM, CPU), lưu trữ. Trên đó người dùng sẽ tạo các máy ảo với
hệ điều hành, triển khai ứng dụng theo nhu cầu của mình (người dùng không được điều
khiển hạ tầng cloud nhưng có thể điều khiển được hệ thống OS, khả năng lưu trữ, các
ứng dụng được triển khai, và có thể có một số quyền kiểm soát chọn mạng).
4 mô hình triển khai:
• Public cloud: hạ tầng Cloud được cung cấp cho tất cả mọi người dùng thông
thường. Được xây dựng nhằm phục vụ cho mục đích sử dụng công cộng. Khách hàng
sẽ đăng kí với nhà cung cấp và trả phí sử dụng dựa theo chính sách của nhà cung cấp.
Public cloud là mô hình triển khai được sử dụng phổ biến nhất hiện nay của cloud
computing.
- Đối tượng sử dụng: bao gồm người dùng bên ngoài Internet. Đối tượng quản lý
là nhà cung cấp dịch vụ.
- Ưu điểm: phục vụ được nhiều người dùng hơn, không bị giới hạn bởi không gian
và thời gian. tiết kiệm hệ thống máy chủ, điện năng và nhân công cho doanh nghiệp.
- Nhược điểm: các doanh nghiệp phụ thuộc vào nhà cung cấp không có toàn quyền
quản lý. Gặp khó khăn trong việc lưu trữ các văn bản, thông tin nội bộ.
Tuy nhiên Public Cloud có một trở ngại, đó là vấn đề mất kiểm soát về dữ liệu và
vấn đề an toàn dữ liệu. Trong mô hình này mọi dữ liệu đều nằm trên dịch vụ Cloud, do
nhà cung cấp dịch vụ Cloud đó bảo vệ và quản lý. Chính điều này khiến cho khách hàng,
nhất là các công ty lớn cảm thấy không an toàn đối với những dữ liệu quan trọng của
mình khi sử dụng dịch vụ Public Cloud.
13
Hình 2. 3. Mô hình Public Cloud
Hình 2.3 chỉ ra đặc điểm của mô hình Public Cloud. Các khách hàng (user) sẽ đăng
kí dịch vụ mình cần sử dụng với nhà cung cấp đám mây. Người quản trị (administrator)
của nhà cung cấp có nhiệm vụ quản lý các dịch vụ và khách hàng này.
• Private Cloud: nền tảng cloud được cung cấp độc quyền cho 1 tổ chức bao gồm
nhiều đối tượng (như công ty kinh doanh ...). Nó có thể được làm chủ, điều khiển và vận
hành bởi một tổ chức – một thành viên thứ ba, hoặc là có sự kết hợp giữa hai bên, có thể
tồn tại hoặc không … Đây là xu hướng tất yếu cho các doanh nghiệp nhằm tối ưu hóa
hạ tầng công nghệ thông tin.
Hình 2. 4. Mô hình Private Cloud
-
Đối tượng sử dụng: nội bộ doanh nghiệp sử dụng và quản lý.
Ưu điểm: chủ động sử dụng, nâng cấp, quản lý, giảm chi phí, bảo mật tốt, …
14
- Nhược điểm: khó khăn về công nghệ khi triển khai và chi phí xây dựng, duy trì
hệ thống. hạn chế sử dụng trong nội bộ doanh nghiệp, người dùng ở ngoài không thể sử
dụng.
• Hybrid cloud: là sự kết hợp của private cloud và public cloud. Cho phép ta khai
thác điểm mạnh của từng mô hình cũng như đưa ra phương thức sử dụng tối ưu cho
người sử dụng. Những “đám mây” này thường do doanh nghiệp tạo ra và việc quản lý
sẽ được phân chia giữa doanh nghiệp và nhà cung cấp điện toán đám mây công cộng.
Hình 2. 5. Mô hình Hybrid Cloud
Hình 2.5 đưa ra mô hình Hybrid Cloud là sự kết hợp của hai mô hình Public Cloud
và Private Cloud.
- Đối tượng sử dụng: doanh nghiệp và nhà cung cấp quản lý theo sự thỏa thuận.
Người sử dụng có thể sử dụng các dịch vụ của nhà cung cấp và dịch vụ riêng của doanh
nghiệp.
- Ưu điểm: doanh nghiệp 1 lúc có thể sử dụng được nhiều dịch vụ mà không bị giới
hạn.
- Nhược điểm: khó khăn trong việc triển khai và quản lý. Tốn nhiều chi phí.
Doanh nghiệp có thể chọn để triển khai các ứng dụng trên Public, Private hay
Hybrid Cloud tùy theo nhu cầu cụ thể. Mỗi mô hình đều có điểm mạnh và yếu của nó.
Các doanh nghiệp phải cân nhắc đối với các mô hình điện toán đám mây mà họ chọn.
Và họ có thể sử dụng nhiều mô hình để giải quyết các vấn đề khác nhau. Nhu cầu về
một ứng dụng có tính tạm thời có thể triển khai trên Public Cloud bởi vì nó giúp tránh
việc phải mua thêm thiết bị để giải quyết một nhu cầu tạm thời. Tương tự, nhu cầu về
một ứng dụng thường trú hoặc một ứng dụng có những yêu cầu cụ thể về chất lượng
dịch vụ hay vị trí của dữ liệu thì nên triển khai trên Private hoặc Hybrid Cloud.
• Community cloud: nền tảng cloud được cung cấp độc quyền cho một tổ chức
người sử dùng đến từ các tổ chức có chung một mối quan tâm về mục đích, nhiệm vụ,
15
chính sách. Nó có thể được quản lý, vận hành bởi một hoặc nhiều tổ chức trong cộng
đồng kết hợp quản lý với nhau.
2.1.3. Lợi ích và hướng tiếp cận của điện toán đám mây
Lợi ích của điện toán đám mây:
- Tăng sự linh hoạt của hệ thống (Increased Flexibility): khi cần thêm hay bớt một
hay vài thiết bị (storaged devices, servers, computers, …) chỉ cần mất vài giây.
- Sử dụng tài nguyên theo yêu cầu (IT Resources on demand): tùy thuộc vào nhu
cầu của khách hàng mà người quản trị thiết lập cấu hình hệ thống cung cấp cho khách
hàng.
- Tăng khả năng sẵn sàng của hệ thống (Increased availability): các ứng dụng và
dịch vụ được cân bằng động để đảm bảo tính khả dụng. Khi một trong các phần cứng bị
hư hỏng không làm ảnh hưởng đến hệ thống, chỉ suy giảm tài nguyên hệ thống.
- Tiết kiệm phần cứng (Hardware saving): mô hình truyền thống trong nhiều
trường hợp cần một hệ thống riêng biệt cho mỗi tác vụ, dịch vụ. Điều này gây ra lãng
phí, trong mô hình “Điện toán đám mây”, các tài nguyên IT được quản lý để đảm bảo
sự không lãng phí này.
-
Cung cấp các dịch vụ với độ sẵn sàng gần như 100% (taking down services in
real time).
- Trả theo nhu cầu sử dụng thực tế (Paying-as-you-go IT): mô hình điện toán đám
mây tích hợp với hệ thống billing để thực hiện việc tính cước dựa theo dung lượng người
dùng đối với các tài nguyên như tốc độ CPU, dung lượng RAM, dung lượng HDD, …
Tóm lại, mô hình điện toán đám mây đã khắc phục được 2 yếu điểm quan trọng
của mô hình truyền thống về khả năng mở rộng (scalability) và độ linh hoạt (flexibility).
Các tổ chức cũng như công ty có thể triển khai ứng dụng và dịch vụ nhanh chóng, chi
phí giảm và ít rủi ro.
Với những lợi ích đã nêu của mô hình điện toán đám mây trong phần trước, đặc
biệt là về “flexibility” và “cost benefits”, đây sẽ là một xu hướng tiếp cận trong tương
lai. Tuy nhiên, có rất nhiều công nghệ cho điện toán đám mây với những chi phí và giải
pháp khác nhau tùy vào mục đích sử dụng và ưu điểm của mỗi công nghệ như dễ dàng
triển khai, khả năng mở rộng cao, giá rẻ, … Sử dụng công cụ mã nguồn mở để triển
khai điện toán đám mây đạt được những ưu điểm sau:
− Sự phụ thuộc vào các phần mềm có bản quyền: các giải pháp thương mại thường
là 1 bộ các giải pháp với các tiêu chuẩn của nhà sản xuất chẳng hạn các API đặc trưng,
các kiểu định dạng image và lưu trữ riêng, … sẽ làm cho Cloud không tương thích, hoặc
không tận dụng được những cơ sở hạ tầng sẵn có.
− Các dự án về “Open Source Cloud Computing” luôn luôn được hỗ trợ và giúp đỡ
bởi cộng đồng toàn thế giới với hàng ngàn người tham gia phát triển các function mới
16
và sửa lỗi. Lợi thế này của Open Source sẽ không thể có được ở bất kỳ một công ty đơn
lẻ nào.
− Khả năng mở rộng không hạn chế: chi phí là vấn đề nổi trội trong vấn đề mở rộng
mạng Cloud với giải pháp phần mềm bản quyền. Tuy nhiên với Open Source Cloud, ví
dụ mạng Cloud sử dụng Ubuntu, hệ điều hành Ubuntu hỗ trợ điện toán đám mây hoàn
toàn miễn phí nên việc mở rộng rất dễ dàng.
− Khi giải pháp thương mại thiếu một chức năng gì đó, sẽ rất khó để tìm ra phương
thức thay thế trừ khi chờ một phiên bản mới hơn hỗ trợ. Nhưng với kỹ thuật Open Source
có thể thay đổi code để thêm các chức năng phù hợp cho mục đích kinh doanh của hệ
thống.
OpenStack là phần mềm mã nguồn mở sử dụng để triển khai điện toán đám mây
(public và private cloud). Nó mở cho cộng đồng cho việc phát triển điện toán đám mây
phù hợp với các nhà cung cấp (Cloud Providers) cũng như người dùng (Cloud
Customers). Ban đầu do Rackspace và Nasa khởi xướng, giới thiệu lần đầu vào năm
2010. 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 điện
toán đám mây 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.
2.2. Tổng quan về công nghệ ảo hóa
2.2.1. Giới thiệu về công nghệ ảo hóa
Ảo hóa là một công nghệ trong đó ảo hóa phần cứng máy, thiết bị lưu trữ và thiết
bị mạng được tạo bằng cách sử dụng một số trình giả lập có tên là Hypervisors.
Công nghệ ảo hóa được thực hiện trên máy tính, bao gồm các kỹ thuật và quy trình
thực hiện ảo hóa để tạo ra một tầng trung gian giữa hệ thống phần cứng máy tính và
phần mềm chạy trên nó. Ý tưởng ban đầu của công nghệ ảo hóa là từ một máy vật lý
đơn lẻ có thể tạo thành nhiều máy ảo độc lập. Nó cho phép tạo nhiều máy ảo trên một
máy chủ vật lý, mỗi một máy ảo cũng được cấp phát tài nguyên phần cứng như máy thật
gồm có RAM, CPU, card mạng, ổ cứng, các tài nguyên khác và hệ điều hành riêng. Khi
chạy ứng dụng, người sử dụng không nhận biết được ứng dụng đó chạy trên lớp phần
cứng ảo. Người sử dụng chỉ chú ý tới khái niệm logic về tài nguyên máy tính hơn là khái
niệm vật lý về tài nguyên máy tính.
Máy chủ trong các hệ thống công nghệ thông tin ngày nay thường được thiết kế để
chạy một hệ điều hành và một ứng dụng. Điều này không khai thác triệt để hiệu năng
17
của hầu hết các máy chủ rất lớn. Ảo hóa cho phép ta vận hành nhiều máy chủ ảo trên
cùng một máy chủ vật lý, dùng chung các tài nguyên của một máy chủ vật lý qua nhiều
môi trường khác nhau. Các máy chủ ảo khác nhau có thể vận hành nhiều hệ điều hành
và ứng dụng khác nhau trên cùng một máy chủ vật lý.
Hình 2. 6. Kiến trúc x86 virtualization
Hình 2.6 cho thấy mỗi máy ảo (Vmware) là một hệ thống hoàn chỉnh, gồm các
thành phần phần cứng (ví dụ như: CPU, RAM, NIC, Disk, …), hệ điều hành (OS) và
các ứng dụng (application) như máy tính theo kiến trúc x86/ x64.
Kỹ thuật ảo hóa được biết đến khi Vmware giới thiệu sản phẩm Vmware
Workstation đầu tiên vào năm 1999. Sản phẩm này ban đầu được thiết kế để hỗ trợ việc
phát triển và kiểm tra phần mềm. Nó đã trở nên phố biến nhờ khả năng tạo ra những
máy tính “ảo” chạy đồng thời nhiều hệ điều hành khác nhau trên cùng một máy tính
“thực” (khác với chế độ “khởi động kép” - máy tính được cài nhiều hệ điều hành và có
thể chọn lúc khởi động nhưng mỗi lúc chỉ làm việc được với một hệ diều hành).
Tháng 12 năm 2003, Vmware đã được EMC – hãng chuyên về lĩnh vực thiết bị
lưu trữ mua lại. EMC đã mở rộng tầm hoạt động lĩnh vực ảo hóa từ máy tính để bàn đến
máy chủ và hiện hãng vẫn giữ vai trò thống lĩnh thị trường ảo hóa, tuy nhiên Vmware
không giữ vị trí “độc tôn” mà phải cạnh tranh với rất nhiều sản phẩm ảo hóa các hãng
khách như Virtualization Engine của IBM, Hyper V – Microsoft, … và ảo hóa cũng
không còn bó hẹp trong một lĩnh vực mà đã mở rộng cho toàn bộ hạ tầng công nghệ
thông tin, từ phần cứng như chip xử lý cho đến hệ thống máy chủ và cả hệ thống mạng.
Và sau quá trình phát triển, các trung tâm dữ liệu ngày nay sử dụng công nghệ ảo
hóa để tạo ra phiên bản ảo của phần cứng vật lý, tạo ra các nhóm tài nguyên logic tổng
hợp bao gồm CPU, bộ nhớ, đĩa, lưu trữ file, ứng dụng, kết nối mạng và cung cấp các tài
nguyên đó cho người dùng hoặc khách hàng các máy ảo. Mặc dù công nghệ đã phát
triển mạnh mẽ, ý nghĩa của ảo hóa vẫn được giữ nguyên: cho phép môi trường điện toán
chạy nhiều hệ thống độc lập cùng một lúc.
18
• Ảo hóa máy chủ:
Máy chủ ảo hoá là một phương pháp phân vùng một máy chủ vật lý thành nhiều
máy chủ ảo, mỗi máy chủ có khả năng của riêng của mình chạy trên máy tính dành riêng.
Mỗi máy chủ ảo riêng của nó có thể chạy hệ điều hành khác nhau, và mỗi máy chủ ảo
có thể được khởi động lại độc lập.
Ảo hóa mang lại nhiều lợi ích, trong đó bao gồm hai nhóm lợi ích chính:
− Giảm chi phí về hạ tầng IT và quản trị hệ thống: giúp tạo nhiều máy chủ ảo, khai
thác triệt để tài nguyên vật lý của máy chủ, từ đó giúp giảm chi phí đầu tư của doanh
nghiệp, đồng thời giúp thiết lập hệ thống nhanh hơn, thuận tiện cho quản trị và giám sát,
giảm chi phí nhân công vận hành.
− Tăng hiệu suất và tính linh hoạt của hệ thống: việc quản trị và khai thác triệt để
tài nguyên vật lý giúp nâng cao hiệu suất của từng máy chủ vật lý và toàn hệ thống, đồng
thời linh hoạt trong vấn đề mở rông máy ảo, sao lưu, dự phòng và di chuyển máy ảo.
Ảo hóa có các tính năng sau:
− Partitioning (Phân chia máy chủ vật lý): chạy nhiều máy ảo trên một máy chủ
vật lý. Có cơ chế phân chia và phân phối tài nguyên tương ứng, chính xác cho các máy
ảo được khai báo và khởi tạo.
− Isolation (Cách ly máy ảo): cách ly các máy ảo với nhau, đây là tính năng rất hiệu
quả khi xảy ra các sự cố, đặc biệt về an toàn thông tin, việc lây nhiễm từ một máy ảo sẽ
hạn chế bị ảnh hưởng đến các máy ảo khác cũng như các hệ thống khác. Kiểm soát tối
ưu tài nguyên hợp lý giữa các máy ảo, tránh hiện tượng không kiểm soát tài nguyên và
gây quá tải hoặc dư thừa tài nguyên trên các máy ảo.
− Encapsulation (Đóng gói máy ảo): đóng gói các máy ảo thành file riêng biệt. Dễ
dàng sao chép và di chuyển các máy ảo sang các hệ thống khác hoặc phục vụ sao lưu,
dự phòng.
− Hardware Independence (Không phụ thuộc vào thiết bị phần cứng): ảo hóa được
thiết kế phù hợp với tất cả các phần cứng có hỗ trợ công nghệ ảo hóa.
Có hai loại ảo hóa:
− Loại 1: đây là loại ảo hóa “Bare-Metal Hypervisor”, trong đó Hypervisor tương
tác trực tiếp với phần cứng của máy chủ để quản lý, phân phối và cấp phát tài nguyên
(hình 1.7). Loại ảo hóa này bao gồm các giải pháp như Vmware ESXi, Microsoft HyperV, Xen Server, KVM.
19
- Xem thêm -