Windows Server 2012 虛擬化實戰:網路(一)

来源:http://www.cnblogs.com/qingspace/archive/2016/06/20/5601211.html
-Advertisement-
Play Games

虛擬化對於計算的抽象,大家可能相對熟悉,也許都有在單機使用諸如Virtual PC或者Virtual Box的經驗。使用的這些虛擬化軟體的第一印象就是我們的CPU可以同時運行多套不同的操作系統,並且其上應用程式並行不悖。計算的抽象使得同一套硬體設備上的操作系統之間得以相互隔離,猶如一個身體擁有兩個甚... ...


虛擬化對於計算的抽象,大家可能相對熟悉,也許都有在單機使用諸如Virtual PC或者Virtual Box的經驗。使用的這些虛擬化軟體的第一印象就是我們的CPU可以同時運行多套不同的操作系統,並且其上應用程式並行不悖。計算的抽象使得同一套硬體設備上的操作系統之間得以相互隔離,猶如一個身體擁有兩個甚至更多靈魂,這是什麼鬼?那麼接下來很自然的一件事就是,這些靈魂之間該如何溝通呢?依然只有一個身體,如何相互握手和交流,如何對外聯繫和提供服務。因而對於虛擬化而言,最重要的基礎設施除了存儲外,再就是網路,即需要實現網路的虛擬化。這裡我們粗略描述Windows Server 2012 R2和System Center Virtual Machine Manager 2012 R2(以下簡稱SCVMM)實現網路的虛擬化的基本原理,有需要詳細瞭解的可以看微軟的電子書Microsoft System Center: Network Virtualization and Cloud Computing

一、什麼是網路虛擬化

現在有一種流行的說法叫做軟體定義網路,網路中有不同的解釋,我自己簡單理解為是更多通過軟體編程來實現對網路的集中管理。比如之前在交換機上的VLAN功能,需要在每台交換機進行配置,不同廠商就有不同的配置方式,配置複雜且管理成本高昂,那麼通過一個開放、統一和標準的軟體平臺對網路硬體進行控制,那將極大改善這一狀況。當然由於商業競爭的因素,讓各個廠商擁有開放包容的心,不是件容易的事,因而軟體定義網路還有很長的路要走。那麼回到網路虛擬化,即可以認為是一種在特殊情形下的軟體定義網路,即在一個或者多個數據中心裡實現軟體定義網路的美好圖景。除了通過統一軟體平臺來管理網路外,網路虛擬化也有自己特殊的應用目的和需求。

1、需要實現每個虛擬機都可以像單個物理機一樣的網路功能。同一臺物理機上的不同虛擬機之間,不同物理機上的虛擬機之間,虛擬機與物理機之間,虛擬機與外部網路能夠屏蔽底層的硬體差異,在虛擬化網路上互聯互通。

2、需要實現物理網路的更高效的利用。在一個物理網路上(通物理機上同一個物理網卡)承載更多的相互隔離且負載均衡的網路(這點類似VLAN)。數據中心往往需要配置多種相互隔離的網路以承載各類應用,例如域網路、集群心跳網路、集群管理網路、虛擬機遷移網路和外部網路等等,如果在硬體上通過VLAN或者直接增加硬體的方式實現,那將是一件費時費力費錢的工作。

3、需要實現網路的高可用性。物理設備,包括網線、網卡和交換機等都有損壞的可能,需要有一種方案降低他們損壞後對網路造成的影響。

4、需要保障虛擬化平臺上高可用的虛擬機的動態遷移。當物理網路或者物理主機損壞而掉線後,其上具有高可用性的虛擬機將執行遷移操作,在另一臺物理主機上重新上線,甚至讓外界無法感知其遷移的過程,這要求虛擬化網路能夠保證虛擬機上的所有網路配置在另一臺物理主機上是依然有效的。

以上每一項都不是件容易的事,那麼我們接下來看看SCVMM如何在統一軟體管理平臺上實現這所有目的和需求。

二、Windows 2012 R2中的網路虛擬化

實現網路虛擬化的本質是對物理網路的抽象,也就是在物理網路上構建虛擬網路以適應不同的應用場景。這裡的核心技術是IP數據包的包裝協議。各家的虛擬化平臺採用的IP包裝協議並不同,例如主要有:Virtual eXtensible Local Area Network (VXLAN),Stateless Transport Tunneling Protocol for Network Virtualization (STT)和Generic Routing Encapsulation (GRE)。 SCVMM採用特殊的GRE協議,稱為Network Virtualization using Generic Routing Encapsulation (NVGRE)。這些協議的主要目的就是對原始IP數據包進行封裝,以實現網路數據傳輸的隔離。

SCVMM可以通過幾個層次對物理網路進行重新定義,這裡我們考慮如下場景:兩台物理主機通過兩個獨立的物理網路相連,這在數據中心中應該是最為常見的狀況。

image

下麵我們來看看物理主機的網路在下麵各個層面的配置:

1、建立網卡組(NIC Team)

將物理主機上2個及以上物理網卡合併為網卡組,可以在這些物理網卡之間形成冗餘和實現負載均衡。如下圖所示,在物理主機的操作系統層面,合併的網卡組表現為一張網卡,相互連接為一個網路。網卡組的功能其實由Windows 2012 R2提供的,SCVMM可以充分調用Windows 2012 R2、Hyper-V和Failover Cluster的所有資源和功能。

image

在Windows Server 2012中輸入命令lbfoadmin可以查看和配置網卡組,如下圖在物理主機cloud-pm-ds01上創建了兩個網卡組,每個網卡組中包含2張物理網卡。

image

在網路連接界面中,物理網卡已經無法設置網路相關參數,而轉移到網卡組進行設置。仔細查看網卡和網卡組屬性中的Networking選項,可以發現Microsoft提供了豐富的網路協議,實現各種功能即是配置的網路協議不同。網卡組使用的關鍵協議應該是Microsfot Load Balancing/Failover Provider、IPv6和 IPv4這些。在後文中更多關於網路虛擬化提供的功能也只是在增加和配置更多的協議,這在一定程度上即是所謂的軟體定義網路吧。

但這裡請忽略Logical Switch這樣對網卡組的命名,為什麼不是Team這樣的命名,這裡可以先告訴大家的是Logical Switch是一個更高層次的抽象,下文將會涉及。

image

2、虛擬交換機(Virtual Switch)

在網卡或網卡組的基礎上,我們可以建立虛擬機交換機,一個物理網卡或者一個網卡組我們可以建立一個虛擬交換機,以便對該網路進行進一步虛擬化。如下圖所示:

image

虛擬交換機功能由Hyper-V提供,我們安裝Hyper-V角色,並打開Hyper-V Mananger,右鍵通過Virtual Switch Mananger對虛擬交換機進行創建和管理。

image

在Windows網路連接界面,我們看到虛擬交換機可以與網卡組配置在一起。只是多了一個新協議Hyper-V Extensible Virtual Switch。但是同時會取消對IPv4和IPv6的配置,因為這兩項協議將被轉移到虛擬網卡上進行配置。這時如下圖中的設備Management Logical Switch現在起的作用是對一個或多個物理網卡的抽象,它可以承擔起網卡組的負載均衡的作用,也承擔虛擬交換機的作用,虛擬交換機與虛擬網卡互聯互通。這與物理上的交換機的狀態是不太一樣的,物理交換機處在網路的中間位置,而虛擬交換機同時在兩端,為主機配置相同的虛擬交換機意味著兩者通過該虛擬交換機的底層物理鏈路連接。

image

3、虛擬網卡(Virtual Network Adapter)

在虛擬交換機的基礎上,可以創建虛擬網卡,以連接不同的網路。虛擬網卡一般出現在虛擬機上,用於虛擬機連接該網路,也可以出現在物理主機上,用於物理主機連接該虛擬的網路。虛擬網卡的數量幾乎不受限制,如有有必要,可以創建多個虛擬網卡連接同一個虛擬網路。這裡“虛擬網路”是SCVMM中抽象出的概念,如下圖連接虛擬網卡與虛擬網卡之間的虛線就好比虛擬網路,下圖出現了像個虛擬網路,他們是相互隔離的。可以用VLAN來類比,但是卻不是VLAN技術,而是NVGRE數據包封裝技術。

image

如下圖都是在物理主機上創建出的用戶連接不同虛擬網路的虛擬網卡,這些網卡的配置協議與普通的物理網卡幾乎相同,可以在其中配置IPv4和IPv6。當然在虛擬機中更普遍存在了。

image


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 全新的windows10系統帶來了不少新的特性和改變,其中win10的計算器位置就發生了很多的變化,導致很多網友們都以為win10計算器不見了,那麼,win10計算器在哪裡?如何打開?針對此問題,本文就為大家進行解答 http://hovertree.com/menu/windows/ 七月底,微軟 ...
  • 創建 取消 縮寫使用 insert模式下輸入縮寫,Enter鍵獲得pharse。 ...
  • 一、簡單文件系統操作 : df ( h) 查看磁碟容量; rootfs作為系統啟動時內核載入記憶體之後,在掛載真正的磁碟之前的一個臨時文件系統; /dev/sda2 對應主機硬碟的分區,後面的a表示第幾塊硬碟,2表示分區; du查看目錄的容量, h更易讀的方式展示(預設以blocks的大小展示), d ...
  • linux系統通過setup命令可以調用圖形界面來配置網路,該命令只要centos等版本才有。 ...
  • 游標控制 文件操作 :w 寫文件 :w! 寫文件,忽略警告信息:wq 寫文件之後退出編輯:q 退出編輯器:q! 強制退出編輯器ZZ 退出編輯器,如果文件有改動,則保存再退出:x 退出編輯器,如果文件有改動,則保存再退出:e! 重新從磁碟載入文件:n 編輯地下一行:n! 編輯地下一行(忽略警告) 內容 ...
  • 目前我知道的方法有四種 1.awk 'END {print}' 2.sed -n '$p' 3.sed '$!N;$!D' 4.awk '{b=a"\n"$0;a=$0}END{print b}' ...
  • MSP430 ...
  • atexit函數 atexit函數的原型如下 void atexit(void (*func)(void)) 它是一個參數為返回值和參數均為空的函數指針的函數,含義是當前進程結束之前執行參數函數指針所指向的函數,使用的時候要在main中註冊,一次可以註冊很多函數,函數的執行順序與註冊的先後有關,關係 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...