Virtual Networking - Ảo hóa mạng

1. Overview- Qua các chapter và bài lab trước chúng ta đã biết cấu hình vCenter và ESXi nhưng chúng ta vẫn chưa biết tại sao vCenter và ESXi lại có thể kết nối được với nhau. 

- vSphere không chỉ nổi bật nhờ công nghệ ảo hóa máy chủ, mà nó còn được đánh giá cao nhờ công nghệ ảo hóa hạ tâng Virtual Networking trong vSphere. Virtual Networking sẽ cung cấp các tính năng quan trọng như Load-balanced, HA traffic giữa các VM
- vSphere cung cấp 2 loại kiến trúc Virtual Networking chính. Tùy theo mô hình triển khai mà lựa chọn loại vSwitch nào. Thường thì kết hợp cả 2 để tận dụng các tính năng của chúng

  • Standard virtual switches: quản lý network các VM ở mức độ host. Nó được cài đặt sẵn trên vSphere
  • Distributed virtual switch: quản lý network các VM ở mức độ Datacenter, sử dụng để quản lý tập trung hệ thống network. Nó không có sẵn trong các version của vSphere.



2. Standard virtual switches

2.1. vNIC - Virtual Ethernet adapter
- Kiến trúc Virtual network của vSphere cũng giống như kiến trúc network trong môi trường vật lý. Các máy ảo cũng có card mạng, gọi là card mạng ảo (virtual NIC).
- Mỗi máy ảo sẽ có một hoặc nhiều card mạng ảo (vNIC), chúng cũng có MAC address, có thể cấu hình nhiều IP và đáp ứng các tiêu chuẩn giao thức Ethernet giống như 1 NIC thật, driver của card mạng ảo sẽ do VMware quyết định.
- Khi giao tiếp với bên ngoài, bạn có thể xác định được bạn đang giao tiếp với 1 VM thông qua việc kiểm tra 6 byte MAC address để nhận dạng nhà sản xuất
- vNic (card mạng ảo) là thiết bị network giao tiếp chính giữa các VMs với hạ tầng network bên dưới (cả virual và physical). Nó giống như mấy cái card Vmware ảo như Vmnet0, Vmnet1, Vmnet2… trong Vmware Workstation mà bạn hay dùng.



- Trong quá trình phát triển của mình VMware cho ra đời nhiều phiên bản, dòng Nic ảo khác nhau cho môi trường ảo như

  • Vlance một dạng card hỗ trợ cho các dòng OS cũ chỉ support 10Mbps
  • Vmxnet card hỗ trợ tối ưu hóa network cho các VMs, yêu cầu phải cài đặt driver trong Vmware Tools
  • Flexible là một định nghĩa card khá đặc biệt nếu sử dụng nó thì ban đầu boot và sử dụng network sẽ hoạt động như Vlance khi thiết lập vmware tools và cái đặt các driver vmware thì sẽ hoạt động ở dạng Vmxnet
  • E1000: tiếp theo đó là sự ra đời cho dòng Nic E1000 nó là kết quả của quá trình giả lập hoạt động cấu trúc của card Intel 82545EM Gigabit Ethernet NIC. Tuy nhiên driver của thiết bị này không có sẵn trên tất cả OS mà chỉ có trên các phiên bản từ Linux versions 2.4.19, Windows XP Professional x64 Edition và Windows Server 2003 (32-bit) trở lên. E 1000 thì không hỗ trợ jumbo frames những bản trước ESXi/ESX 4.1.
  • E1000e: Đây là card NIC ảo mô phổng cấu trúc hoạt động của card intel Gigabit Ethernet NIC (82574). E1000e sử dụng trên vSphere 5. Các Windows 8 và các windows server sử dụng card vNIC E1000e làm vNIC mặc định
  • Về sau là sự phát triển của dòng VMxnet là VMxnet2 và VMxnet3 ngoài nâng cao khả năng hiệu suất còn có một số tính năng đặc biệt khác như jumbo frames, hardware offloads… Các VM linux sử dụng vNIC là VMxnet


2.2. vSwitch
- Standard virtual switch (vSwitch) hoạt động như 1 switch lớp 2. Nó cũng duy trì bảng MAC và thực hiện port forwarding các packet đến đích.
- Mỗi ESXi có thể tạo tối đa 127 Virtual Switch.
- vSwitch được sử dụng trong ESXi cung cấp 2 loại networking

  • Virtual Machine: được sử dụng để cho các VM giao tiếp.
  • Vmkernel: được sử dụng cho các kết nối như: ESXi management traffic, vMotion, FT, iSCSI và NFS.




  • Mỗi host sẽ có một bộ vSwitch trong bộ đó sẽ có nhiều switch ảo. Trên mỗi vSwitch sẽ có nhiều port. Ngoài port cho VMkernel dành cho host thì các port còn lại dành cho máy ảo nên còn gọi là VM port.
  • Tuy nhiên trên các vSwitch để có thể plug Nic ảo vào vSwitch chúng ta cần thiết lập nên các nhóm port (Port Group) để có thể tùy nhu cầu mà thiết lập các policy khác nhau cho các nhóm port khác nhau ( I/O, Vlan, failover…) ngoài ra để đi ra được môi trường mạng bên ngoài thì mỗi vSwitch cần có ít nhất một Nic thật hay còn gọi là uplink mỗi vSwitch có thể mang theo nhiều uplink để failover, Load Balancing (tập hợp các uplink lúc này gọi là Nic Teaming) tuy nhiên chú ý là một NC thật chỉ thuộc một vSwitch. Một số tác dụng của vSwitch như sau:
    • Kết nối các máy ảo trong cung một host
    • Kết nối giữa các máy ảo khác host với sự hỗ trợ của các uplink
    • Kết nối giữa các máy ảo và máy vật lý trong hệ thống mạng
    • Phuc vụ cho các truy cập Service console (chỉ trên ESX)
    • Phục vụ VMkernel phục vụ mục đích VMotion, iSCSI, NFS, hoặc fault tolerance logging và quản lý trên ESXi.
  • Trên mỗi vSwitch có 2 mặt
    • Port groups: để kết nối đến các VM với vSwitch.
    • Uplink port: kết nối vSwitch với physical Ethernet adpters


2.2.1 Port Group
- Port Group là một khái niệm mới trong Standard Switch.
- Virtual ports trên 1 vSwitch cung cấp các kết nối logical giữa các thiết bị virtual và physical. Bạn có thể tưởng tượng virtual port giống như các port RJ-45. Mỗi vSwitch có thể có 1016 virtual ports và 4096 ports trên tất cả vSwitch trên 1 Host.
- Port group dùng để nhóm port trong Standard Switch và chỉ có các máy ảo nào trong cùng một port group mới có thể liên lạc được với nhau.


  • Người quản trị có thể dựa trên các nhóm port group này mà cấu hình các chính sách policy, cơ chế bảo mật, quản lý traffic, performance, các tính năng khác của vSphere.


  • Có thể tạo một hoặc nhiều port group. Hình dưới đây mô tả 2 port group lớp mạng C ở 2 ESXi host khác nhau vẫn liên lạc được với nhau




  • Port group gồm
    • Vmkernel: được tạo ra để cung cấp các kết nối cho host như: VMware vMotion, IP storage, and Fault Tolerance.


  • Việc di chuyển các VM từ Host này đến host kia được gọi là migration. vMotion giúp bạn Migrate VM đang chạy mà không cần phải shutdown nó. Vmkernel phải được thiết lập để đáp ứng vMotion


2.2.2. Uplink Port
- Để các máy ảo ở các host ESXi khác nhau có thể liên lạc được với nhau, thì trên mỗi ESXi host sẽ có các card vật lý – gọi là Uplink port (Physical NIC). Card này sẽ nối ra ngoài hạ tầng Network vật lý của bạn để giao tiếp với bên ngoài.
- vStandard Switch phải kết nối tới các Uplink port này để đi ra ngoài hạ tầng network vật lý.


2.3. Nic Teaming
  • Để tăng tính sẵn sàng, một vSphere Standard Switch có thể kết nối tới một hoặc nhiều Uplink port thông qua tính năng NIC Teaming (gom nhiều Physical Ethernet adapter lại).
  • Tính năng NIC Teaming cho phép chia tải (load balancing) đồng đều giữa 2 card vật lý trên ESXi host, đồng thời cũng failover (dự phòng) nếu có một trong 2 card bị chết.
  • Có 4 phương thức Load-Balancing được vSphere hỗ trợ
    • Route based on the originating virtual port ID
    • Route based on source MAC hash
    • Route based on IP hash
    • Use explicit failover order


2.3.1. Route based on the originating virtual port ID

- Phương thức cân bằng tải này dựa trên cơ chế mỗi port trong một bằng cách chia đều port cho các card physical như hình sau

  • Nhược điểm:
    • Nếu một VM có 2 vNic dùng chung một physical Nic thì việc cân bằng tải không hiệu quả
    • Tại một thời điểm một vNIC chỉ có thể đi ra một physical NIC. Nên phương thức này không thể xem như một phương thức cân bằng tải hiệu quả.


2.3.2. Route based on source MAC hash

- Với phương thức “Route based on the originating virtual port ID” thay vì dựa theo thứ tự port để phân chia ra các physical NIC thì với phương thức thứ hai này lại dựa vào MAC address của vNIC để phân chia việc mapping physical nên gần như kết quả không gi mới mẻ so với phương thức đầu.
Đển với phương thức thứ 3 cũng là phương thức được đánh giá là giải quyết được bài toán Load Balancing thực sự

2.3.3. Route based on IP hash

- Tại sao phương thức này được đánh giá cao về loadbalancing đo chính là vì phương thức chọn physical NIC của nó cực kỳ linh động với nhiều trường hợp. 
- Phương thức của nó dựa trên việc băm (IP source + IP dest)và kết quả đó sẽ được dùng để quyết định lần lượt mỗi des IP khác nhau sẽ đi ra một physical NIC khác nhau. 
Ưu điểm:

  • Giải quyết bài toán là tại một thời điểm có thể dùng cả physical NIC. Điển hình với 2 physical NIC 1GB chúng ta có thể đạt tới mức sử dụng 2GB thay vì dùng 2 phương thức trên chỉ tối đa một NIC 1GB.

  • Nhược điểm
    • Tuy nhiên nó không có lợi trong trường hợp một session truyền tải một lượng lớn data vì tất cả cũng chỉ sẽ đi qua một uplink do chi có một dest duy nhất trong một session. Vì vầy kết quả HASH sẽ giống nhau nên không load-balancing được
    • Ngoài ra với kiểu thiết kế dung Route baed on IP hash thì các up link phải cũng nối vào một physical switch để không gặp tình trạng một physical switch sẽ thấy MAC VM trên nhiều port switch khó để dự đoán NIC nào sẽ nhận được gói tin trả về.
    • Chú ý một điều “Route based on IP hash” chỉ quản lý chiều đi còn chiều về là tùy thuộc switch physical nhưng do switch physical đều lưu bảng MAC table “có nhiều port ra cho cùng một MAC address hiển nhiên nó sẽ broadcast ra các port đó”.

=> Nên thường thiết kế sử dụng Ethernet Channel để đạt hiệu quả cao hơn cho cả hai chiều.
Bên cạnh đó với thiết kế các uplink hoạt động dạng Ethernet Channel trên physical switch thì chỉ có một policy là route based on IP hash là có thể sử dụng trong trường hợp này.

2.3.4. Use explicit failover order

  • Phương thức này hoạt động dựa theo thứ tự sắp xếp các NIC trong bảng như bên dưới để quyết định NIC hoạt động. Khi card vmnic1 chết thì card vmnic2 sẽ lên thay thế.
  • Như vậy nếu vSwitch của bạn có nhiều uplink thì nó chỉ sử dụng được 1 uplink.
  • Phương thức này thực sự không phải là 1 phương thức Load-Balancing.

Nhận xét

Bài đăng phổ biến từ blog này

Sử dụng server để định tuyến mạng - Routing server

Cách bật card mạng eth0 khi cài đặt Centos 7 Minimal trên VMWARE WORKSTATION

Cài đặt, cấu hình cơ bản CentOS 7 Minimal

Trình quản lý user và Group trên máy cục bộ (Local user and group)

[vmware workstation] Ngăn máy ảo tự động pause

Căn bản về Storage

Xây dựng hệ thống monitoring tập trung với PRTG (Phần 1 - Cài đặt)

Các cấu hình trong khi cấu hình Elastix SIP Trunk (Elastix SIP Trunk Configuration Guide)

Mô hình OSI 7 lớp