Network Functions Virtualization NFV được khởi xướng bởi European Telecommunications Standards Institute ESTI với mục đích sử dụng công nghệ ảo hoá tiêu chuẩn để ảo hoá toàn bộ các lớp c
Trang 1BÁO CÁO Network Functions Virtualization
(NFV) Virtualization Solution: ClickOS And Use Case: Virtual Network Platform as a Service (VNPaaS)
Phạm Xuân Quỳnh – Vũ Đức Sơn – Trần Ngọc Tân – Phan Văn Thắng –
Lê Nam Khánh
Bộ môn Mạng và Truyền thông Máy tính Khoa Công nghệ Thông tin – Trường Đại học Công nghệ - ĐHQGHN
Email: xuanquynh98.ctb@gmail.com
Trang 2NỘI DUNG
1 Khái quát chung về Network Functions Virtualization (NFV) 3
2 ClickOS 4
2.1 Thiết kế ClickOS 5
2.2 ClickOS Control Plane 5
2.3 ClickOS Data Plane 6
2.4 Đánh giá ClickOS 8
3 Use case: Virtual Network Platform as a Service (VNPaaS) 8
3.1 Platform as a Service (PaaS) là gì? 8
3.1.1 Các đặc điểm của PaaS 11
3.1.2 Các trường hợp sử dụng PaaS 11
3.2 Virtual Network Platform as a Service (VNPaaS) 12
3.2.1 Virtual Network Platform as a Service là gì? 12
3.2.2 Các thách thức và vấn đề khi cài đặt VNPaaS 14
3.2.3 Những điểm mạnh của VNPaaS so với PaaS truyền thống 15
Tài liệu tham khảo 16
Trang 31 Khái quát chung về Network Functions Virtualization (NFV).
Network Functions Virtualization (NFV) được khởi xướng bởi European
Telecommunications Standards Institute (ESTI) với mục đích sử dụng công nghệ ảo hoá tiêu chuẩn để ảo hoá toàn bộ các lớp chức năng mã mạng thành một khối và có thể kết nối để cung cấp các dịch vụ truyền thông
Các chức năng mã mạng đã được ảo hoá này được gọi là Virtual Network Functions (VNF) VNF bao gồm một hoặc nhiều máy ảo (VM’s) chạy các phần mềm và tiến trình khác nhau trên một
bộ lưu trữ lớn, máy chủ hoặc hạ tầng điện toán đám mây thay vì phải chạy trên các thiết bị phần cứng khác nhau cho mỗi chức năng mạng (switches, routers, firewalls, load balancers và các thiết bị khác)
* Những lợi ích mà NFV mang lại sẽ là:
- Sự phát triển nhanh chóng của dịch vụ thông qua software-base, vận hành dịch vụ mạng và các dịch vụ đầu cuối
- Giảm chi phí thiết bị và điện năng tiêu thụ
- Cải thiện hiệu quả hoạt động nhờ sản xuất và vận hành tự động
- Tăng tính linh hoạt khi gán các chức năng mạng cho phần cứng
* Kiến trúc của NFV (Hình 1)
- Virtualized Network Functions (VNF): là phần mềm thực hiện các chức năng mạng thực tế thường được triển khai trên Cơ sở hạ tầng ảo hóa chức năng mạng (NFVI)
- Network Function Virtualization Infrastructure (NFVI): Gồm các thành phần phần phần cứng và phần mềm kết hợp với nhau để tạo thành một khung mà VNF, được triển khai Các thành phần phần cứng thường bao gồm các thiết bị tính toán, kết nối mạng và lưu trữ trong khi các thành phần phần mềm là các đối tác ảo hóa của chúng Các thành phần phần cứng và phần mềm được phân tách bằng một lớp ảo hóa hoạt động như một giao diện giữa hai lớp NFVI có thể trải rộng
Trang 4- Network Functions Virtualization Management ANd Orchestration (NFV-MANO): Gồm các khối chức năng, kho lưu trữ dữ liệu được sử dụng bởi các khối và giao diện này qua đó các khối này giao tiếp với nhau để quản lý và điều phối NFVI và VNF Để xây dựng các dịch vụ có thể mở rộng
và đáng tin cậy, NFV yêu cầu mạng phải khởi tạo, giám sát và duy trì các phiên bản NFV
NFV Management and Orchestration
Orchestrator
NFV Manager
Virtualized Infrastructure Manager Virtualization Layer
Virtual Compute
Virtual Network
Virtual Storage
Storage Network
Compute
Network Function Virtualization Infrastructure (VNFI)
OSS/BSS
Hình 1 Kiến trúc NFV
2 ClickOS.
ClickOS là một giải pháp ảo hoá được đánh giá cao trong số những giải pháp để thực hiện NFV Dưới đây ta sẽ đi sâu vào tìm hiểu cách thiết kế, cài đặt và đánh giá giải pháp này
Trang 52.1 Thiết kế ClickOS.
Xen store
sw switch
Phython tool
Nw
bus
Xen UI libraries
SWIG
vif
middlebox config
Xen bus
Nw
bus netfront
NIC
Hình 2 ClickOS Architecture
2.2 ClickOS Control Plane
ClickOS được xây dựng dựa trên XEN, cho phép chạy song song các máy ảo, cung cấp khả năng để xây dựng platform có delay thấy và hiệu suất cao
Hệ thống bao gồm nhiều ClickOS, mỗi ClickOS trên mini-os Ngoài ra, XEN còn có miền đặc quyền gọi là dom0, chứa ClickOS CLI và Xen store Xen Store chứa thông tin về việc chạy máy ảo, ví dụ như ID, loại interface…
Hình 3 ClickOS Control Plane
Trang 6Phần điều khiển của ClickOS có hai cơ chế:
- Điều khiển luồng, một luồng mini-os được tạo khi hệ thống khởi động và được đưa vào XEN store để theo dõi sự thay đổi Khi có chuỗi cấu hình Click được viết, nó sẽ đảm nhiệm việc khởi tạo và chạy các thể hiện của Click Các thể hiện của Click có thể là Firewall, NAT…
Hình 4 Các Element của Click
- ClickOS Control, đảm nhiệm việc đọc ghi vào trình xử lý phần tử của CLI Trình xử lý
phần tử là một biến của Click, ví dụ: số lượng packet cho phần tử - AverageCounter.
2.3 ClickOS Data Plane
Xen có mô hình driver chia nhỏ, gồm netback và netfront Netback driver chạy miền driver (dom0) và nói chuyện với thiết bị phần cứng Netfront driver chạy ở miền khách (ClickOS), nói chuyện với driver thông qua việc chia sẻ bộ nhớ , cụ thể là shared ring
Trang 7Hình 5 ClickOS Data Plane.
Một card mạng được nối tới một thiết bị mạng ảo gọi là vif, thông qua Linux Bridge Khi
có packet đến, nhân Linux sẽ chuyển nó cho vif, đưa vào hàng đợi ở netback Sau đó một luồng netback sẽ lấy packet rồi đặt vào shared ring, thông báo cho netfront
Để nhận packet, netfront driver phải có luồng mini-os cho mỗi vif, mỗi luồng này lấy packet từ shared ring rồi xếp vào hàng đợi FromClickOS Ngoài ra, với mỗi luồng vif, ClickOS tạo
ra một luồng mini-os cho mỗi thể hiện của Click Khi luồng ở FromClickOS chạy, lấy packet và gửi cho ToClickOS, ToClickOS lấy packet gửi trực tiếp tới shared ring thông qua tính tăng chuyển tiếp ở netfront
ClickOS cần hỗ trợ gì từ hệ điều hành để có thể xử lý nhiều Middlebox:
+ Driver cần hỗ trợ xử lý nhiều interface mạng khác nhau
+ Quản lý bộ nhớ cơ bản để cấp phát cấu trúc dữ liệu khác nhau, packet
+ Bộ lập lịch đơn giản để chuyển đổi giữa việc chạy code Click và ngắt dịch vụ
Trang 82.4 Đánh giá ClickOS.
on top Linux-base
on a Linux-base server
18 %)
approximately 10 times)
ClickOS 42% )
to creat, access container
Easy to creat, access container
Easy for update or reconfigured
3 Use case: Virtual Network Platform as a Service
(VNPaaS).
3.1 Platform as a Service (PaaS) là gì?
PaaS là một trong ba mô hình dịch vụ cơ bản của Cloud Computing (Hình 6)
Trang 9Cloud Clients
Web Browser, Mobile App, Thin Client, Terminal emulator
Software as a Services (SaaS)
Email, Virtual Destop, Apps, Games, CRM
Platform as a Services (PaaS ) Database, Web Server, Development tools, execution runtime
Infrastructure as a Services (IssS)
Virtual Machines, Servers, Load Balancers
Data Center
Hardware, Storage, Networking
Hình 6 Cloud Computing Stack
PaaS là một mô hình dịch vụ tóm tắt nền tảng điện toán từ đó tạo điều kiện nhanh chóng cho phát triển ứng dụng mà không gặp rắc rối, phức tạp của việc phải mua, bảo trì và cấu hình phần cứng và phần mềm cần thiết để xây dựng các ứng dụng
Các nền tảng điện toán thường bao gồm một hoạt động hệ thống cùng với môi trường phát triển tích hợp (IDE) có thể được truy cập bởi các nhà phát triển ứng dụng thông qua web
Từ đó, PaaS cung cấp một khung giúp các nhà phát triển có thể sử dụng để xây dựng, kiểm tra
và tuỳ chỉnh các ứng dụng Các doanh nghiệp khai thác PaaS sẽ cung cấp dịch vụ quản lý Hệ điều hành, IDE, ảo hoá, máy chủ, lưu trữ, mạng, các phần cứng khác và dịch vụ phần mềm theo yêu cầu của khách hàng Ngoài ra, các nhà cung cấp dịch vụ PaaS cũng cung cấp các dịch vụ bổ sung như bảo mật dữ liệu, sao lưu và phục hồi, lưu trữ ứng dụng và khả năng mở rộng (Hình 7)
Trang 10Business Apps
IDE
Integrated Development Environment
Data Security
Backup and Recovery
Application Hosting
Scalable Infrastructure Developer/ISV
Business Users
Business Apps
Hình 7 PaaS High Level Architecture
Để dễ hình dung về PaaS ta sẽ so sánh quá trình phát triển ứng dụng giữa việc sử dụng PaaS và cách truyền thống (Hình 8)
Idea
Just Start Building
Install Complex Software Define User Access Build and Test Security Setup Reporting and
Buy and setup hardware
PaaS Platform Legacy Platform
Trang 113.1.1 Các đặc điểm của PaaS.
Các đặc điểm của PaaS:
Multi-tenant architecture Kiến trúc cho phép nhiều người đồng thời sử dụng cùng một
nền tảng phát triển ứng dụng
tiêu chuẩn chung
trì ứng dụng
failover (chuyển đổi dự phòng) và load balancing (cân bằng tải)
tạo, kiểm thử, vận hành các kịch bản giao diện người dung khác nhau
Development Team
Collaboration Support
Cung cấp cho các nhà phát triển ứng dụng các công cụ bổ trợ
để lập kế hoạch và truyền thông dự án
3.1.2 Các trường hợp sử dụng PaaS
PaaS thường cung cấp nền tảng để phát triển phần mềm bao gồm 2 biến thể sau:
- Một nền tảng phát triển phần mềm tập trung vào Quản lý quy trình công việc với mọi nguồn
dữ liệu được sử dụng bởi ứng dụng
Ví dụ điển hình là Heroku – một PaaS sử dụng Ruby on Rails
- Một nền tảng tạo điều kiện cho việc phát triển phần mềm bằng cách khai thác dữ liệu từ một ứng dụng
Ví dụ điển hình là nền tảng Force.com được sử dụng để xây dựng các ứng dụng hoạt động trong Quản lý quan hệ khách hàng của Salesforce(CRM)
Tổng hợp các tính năng chính của một PaaS cơ bản
Trang 121 Abstraction
(Trừu tượng hoá)
Có thể là Hệ điều hành, phần mềm trung gian, môi trường phát triển tích hợp, hạ tầng vật lý và cơ sở dữ liệu
2 Service Unit
(Đơn vị dịch vụ)
Containers ví dụ như RedHat, Docker, … Dịch vụ ứng dụng ví dụ như Messaging, Mail, …
3 Primary Use Case Cung cấp nền tảng phát triển và kiểm thử, cho phép quản lí
động tài nguyên cơ sở hạ tầng để hỗ trợ scaling và mở rộng quy mô
4 Advance Use Cases Môi trường tự động kiểm thử, tích hợp cùng hệ thống phát
triển
5 End Users Nhà phát triển ứng dụng, web hay các nhà phân tích thị
trường
Elastic Beanstalk của Amazon, Google App Engine của Google,
…
3.2 Virtual Network Platform as a Service (VNPaaS)
3.2.1 Virtual Network Platform as a Service là gì?
Các hệ thống PaaS truyền thống có các chức năng mạng cụ thể được gắn với các thiết bị phần cứng cụ thể của nhà cung cấp như Router, Firewall, Load Balancer sẽ làm hạn chế bản chất của PaaS, gây ra nhiều vấn đề về khả năng mở rộng cung cấp động các tài nguyên
Bằng cách thay thế các chức năng mạng truyền thống bằng các chức năng mạng được
ảo hoá được lưu trên các VMs, các nhà cung cấp dịch vụ có thể đạt được sự linh hoạt cần thiết
Từ đó có thể tạo điều kiện mở rộng quy mô động, tổng hợp tài nguyên và phân bổ tài nguyên
Trang 13VNF Manager
Orchestration Engine
NFVI Manager
Agent
OS/Hypervisor
Hardware
Element Management System (EMS)
VNF
Network Function Virtualization Interface
Hình 9 VNPaaS Architecture Block Diagram
Giống như trong mô hình NFV, VNPaaS sẽ có một giao diện ảo hoá các chức năng mạng (NFVI) được quản lú và kiểm soát bởi người quản lí NFVI Các chức năng mạng đã được ảo hoá tại VMs sẽ đưa ra ngoài thông qua VNF Các VNF này được lưu trên các máy ảo nên dễ dàng mở rộng quy mô và phân bổ linh hoạt các tài nguyên, dịch vụ được yêu cầu Từng VNF được quản lí, điều khiển bởi người quản lí VNF riêng Toàn bộ cơ sở hạ tầng được quản lí và điều phối bởi NFV-MANO của kiến trúc NFV
Trang 14Ví dụ về mô hình của VNPaaS:
Management
VNF
VNF
VNF
VNF
VNF
VNF VNF VNF
Hosting
Service
Provider
Hình 10 Multiple Enterprise hosted by a service provider over VNPaaS
3.2.2 Các thách thức và vấn đề khi cài đặt VNPaaS
Để chia sẻ tài nguyên cơ sở hạ tầng với bên thứ ba, sẽ tồn tại những yêu cầu sau cần giải quyết:
được xác thực dựa trên người dùng
Trang 15nghiệp có thể có nhiều rủi ro về bảo mật nên phải cô lập các giao diện này để ngăn chặn mọi sự xâm nhập vào hệ thống
dụng tài nguyên, dễ dàng cho báo cáo và phân tích sau này
năng VNF của riêng họ cần cung cấp các công
cụ cần thiết để hỗ trợ họ
3.2.3 Những điểm mạnh của VNPaaS so với PaaS truyền thống
đặc điểm sử dụng của một khách hàng nhất định nên có thể tập hợp tài nguyên có sẵn và phân phối chúng một cách hiệu quả
2 Dynamic Resource Allocation Ví dụ khi Bộ nhớ hoặc Băng thông được yêu
cầu thêm, VNF mới sẽ được tạo hoặc VNF đã tồn tại có thể được dùng lại cho bên yêu cầu
VNF cho phù hợp với yêu cầu cụ thể của từng doanh nghiệp
song song nhiều người dùng
mở rộng linh hoạt bằng cách them VMs mới hoặc chuyển sang phần cứng khác mà không ảnh hưởng đến các dịch vụ đang chạy trên đó
Trang 16Tài liệu tham khảo
Joao Martins, Mohamed Ahmed, Costin Raiciu, Vladimir Olteanu, Michio Honda,
Roberto Bifulco, Felipe Huici: “ClickOS and the Art of Network Function Virtualization”.
Hrishikesh Arun Deshpande: “ VNPaaS: Realizing Platform as a Service using Network Function Virtualization ” IJARCCE.2015.4954
M.Ahmed, Felipe Huici, and Armin Jahanpanah: “ Enabling Dynamic Network Processing with ClickOS”
“NFV White Paper” Available at http://portal.etsi.org/NFV/NFV_White_Paper.pdf