Chúng ta đã biết về các trường hợp để ứng dụng chức năng ảo hóa ở những bài viết trước bao gồm Ảo hóa chức năng Control Plane và Ảo hóa mạng chi nhánh, hôm nay chúng ta sẽ tiếp tục đi đến phần Tổng quát về kiến trúc của một hệ thống NFV.
Tổng quát về kiến trúc của một hệ thống NFV
Một kiến trúc hệ thống ảo hóa bao gồm 4 thành phần:
Hình dưới đây mô tả sự khác biệt giữa hypervisor loại 1 và hypervisor loại 2 và Linux container. Hypervisor loại 1 điều khiển trực tiếp phần cứng và cung cấp một môi trường và các tài nguyên ảo (bộ nhớ, ổ cứng, CPU, I/O…) cho một hoặc nhiều máy ảo. Ví dụ của hypervisor kiểu 1 là VMWare ESXI.
Trong hypervisor kiểu 2, một hệ điều hành chuẩn chẳng hạn như Linux sẽ điều khiển phần cứng của máy chủ và hypervisor sẽ chạy trên hệ điều hành này để cung cấp các dịch vụ cho các máy ảo bên trên. Một ví dụ của hypervisor kiểu 2 là KVM cho Linux. Trong cả hai trường hợp, một hệ điều hành sẽ được sử dụng bên trong các máy ảo để đáp ứng cho tải của các ứng dụng. Linux container chạy các ứng dụng trong các môi trường riêng biệt bên trên hệ điều hành của máy host. Không cần một hệ điều hành nào.
Các không gian tên được dùng là riêng biệt, các ứng dụng cũng được tách biệt bên trong container. Các tài nguyên hệ thống cũng có thể được tách biệt giữa các ứng dụng và kernel và cũng có thể được phân quyền ưu tiên. Các thư viện cũng được chia sẽ khi phù hợp. Đối với các chức năng mạng ảo, một hoặc nhiều tiến trình có thể chạy bên trong VM để thực hiện chức năng xử lý gói. Các tiến trình này sử dụng các CPU ảo được cấp phát cho VM.
Như bạn có thể hình dung, ảo hóa chức năng mạng cũng sẽ ảnh hưởng đến cách thức bạn triển khai và vận hành hạ tầng mạng. Hãy xem xét yếu tố hiệu năng của hệ thống. Một hệ thống dùng chức năng ảo thì hiệu năng như thế nào so với phần cứng vật lý? Một khía cạnh khác liên quan đến mô hình triển khai: có bao nhiêu chức năng mạng ta nên triển khai trên một host x86? Và cấu hình các chức năng này có giống như khi cấu hình trên phần cứng vật lý hay không?
Về hiệu năng, một máy ảo chạy các ứng dụng VNF sẽ thấp hơn so với cách dùng các phần cứng và phần mềm chuyên dụng như routers, switch, firewall. Các phần cứng chuyên dụng này đã được tối ưu về cả hai phương diện phần cứng và phần mềm trong nhiều thập kỷ.
Tổng quát về kiến trúc của một hệ thống NFV
Một kiến trúc hệ thống ảo hóa bao gồm 4 thành phần:
- Một máy chủ x86 cung cấp tài nguyên phần cứng CPU, memory, storage, cổng, etc…).
- Phần cứng này chạy hệ điều hành hỗ trợ ảo hóa.
- Một hoặc nhiều các chức năng mạng đã ảo hóa: tiến trình phần mềm xử lý các dòng lưu lượng IP, thực hiện quyết định định tuyến và áp dụng các cấu hình mạng.
- Nền tảng để lập trình và tự động hóa.
Hình dưới đây mô tả sự khác biệt giữa hypervisor loại 1 và hypervisor loại 2 và Linux container. Hypervisor loại 1 điều khiển trực tiếp phần cứng và cung cấp một môi trường và các tài nguyên ảo (bộ nhớ, ổ cứng, CPU, I/O…) cho một hoặc nhiều máy ảo. Ví dụ của hypervisor kiểu 1 là VMWare ESXI.
Trong hypervisor kiểu 2, một hệ điều hành chuẩn chẳng hạn như Linux sẽ điều khiển phần cứng của máy chủ và hypervisor sẽ chạy trên hệ điều hành này để cung cấp các dịch vụ cho các máy ảo bên trên. Một ví dụ của hypervisor kiểu 2 là KVM cho Linux. Trong cả hai trường hợp, một hệ điều hành sẽ được sử dụng bên trong các máy ảo để đáp ứng cho tải của các ứng dụng. Linux container chạy các ứng dụng trong các môi trường riêng biệt bên trên hệ điều hành của máy host. Không cần một hệ điều hành nào.
Các không gian tên được dùng là riêng biệt, các ứng dụng cũng được tách biệt bên trong container. Các tài nguyên hệ thống cũng có thể được tách biệt giữa các ứng dụng và kernel và cũng có thể được phân quyền ưu tiên. Các thư viện cũng được chia sẽ khi phù hợp. Đối với các chức năng mạng ảo, một hoặc nhiều tiến trình có thể chạy bên trong VM để thực hiện chức năng xử lý gói. Các tiến trình này sử dụng các CPU ảo được cấp phát cho VM.
Như bạn có thể hình dung, ảo hóa chức năng mạng cũng sẽ ảnh hưởng đến cách thức bạn triển khai và vận hành hạ tầng mạng. Hãy xem xét yếu tố hiệu năng của hệ thống. Một hệ thống dùng chức năng ảo thì hiệu năng như thế nào so với phần cứng vật lý? Một khía cạnh khác liên quan đến mô hình triển khai: có bao nhiêu chức năng mạng ta nên triển khai trên một host x86? Và cấu hình các chức năng này có giống như khi cấu hình trên phần cứng vật lý hay không?
Về hiệu năng, một máy ảo chạy các ứng dụng VNF sẽ thấp hơn so với cách dùng các phần cứng và phần mềm chuyên dụng như routers, switch, firewall. Các phần cứng chuyên dụng này đã được tối ưu về cả hai phương diện phần cứng và phần mềm trong nhiều thập kỷ.