一台PC與 Synology DS1618+ NAS搞定VMware ESXi外部儲存運用
企業在建構內部儲存設備,通常會選擇DAS、NAS與SAN來解決不同環境的需求,當然價格絕對是選擇儲存方式的主要因素。一般電腦是以DAS(Direct Attached Storage)的方式直接存取檔案系統,省錢方便又直接,但在共享與佔用主機資源也帶來了困擾。目前中小企業或每個家庭,擁有一台NAS並不是一件奢望的事情,現今的NAS似乎已不是我們想像中的網路儲存裝置而已,速度越來越快且支援更多的服務,筆者將 Synology DS1618+ NAS提升10Gb網路搭配iSCSI,輕鬆踏入類似SAN環境的領域,輕鬆搞定VMware ESXi外部儲存運用。
DAS簡單的說就是主機內的硬碟儲存裝置,網路連接儲存裝置(Network Attached Storage,NAS)顧名思義也是利用網路來進行儲存的一種設備,通常是以檔案為單位的通訊協定,像是NFS(在UNIX系統上很常見)或是SMB(常用於Windows系統),NAS實質上近似一台檔案伺服器,可提供網路上的多台伺服器與多個使用者存取檔案,最簡單的說就是然後透過網路芳鄰的方式分享,相信大部分的人都很清楚其運作模式。至於SAN最大的用途不僅在於做為資料的儲存,而是在於其容錯與災難備援的能力,這也是企業採用SAN的主要原因。
下圖中可以了解SAN是使用以區塊區塊式儲存方式給主機用,而不是像 NAS 提供的是網路協定的檔案系統 (NFS, SMB…),區塊式儲存系統有著高效率、容量大與擴充容易的優點,但缺點就是昂貴複雜與不易維護,大企業架構SAN都採用快速的光纖(Fiber Channel)來配置,因此SAN建置的高成本不是一般中小企業所能負荷,但 FC-SAN 比傳統的存儲架構具有更多顯著的優勢。然而,使用網路線當傳輸媒介,替代SAN使用光纖設備的iSCSI出現了(俗稱IP-SAN)。
IP-SAN的通信管道是IP,而不是光纖通道,iSCSI是一種運行在IP網上,適合目前乙太網的架構環境,也就是說實現了在IP網絡上運行SCSI協議,這樣用戶就可輕鬆透過TCP/IP網絡來存取儲存裝置。既然SAN可以使用iSCSI來實現SCSI over IP,將所有的Fiber Channel元件置換成IP元件。那如果將NAS也以iSCSI來運作,加成本低廉的區域網路10Gb高速的來臨,NAS中分出一個獨立的儲存空間來運作iSCSI,絕對是便宜的獨立Datastore方案,筆者就是想要使用 Synology NAS 做為 VMware datastore,這樣可更彈性地合併及分享儲存空間,最大化儲存空間使用率並簡化管理。
NAS就是利用本身上的儲存槽建立一個空間,透過網路芳鄰的方式(SMB、NFS ),即可連線成網路碟機來使用,就是把NAS上的空間當成桌機上的一個磁碟對應,只是這個磁碟不是一般的DAS直連式儲存連接方式(Direct Attached Storage),而是利用網路來存取。既然如此,為何又要提供iSCSI呢?因為使用區塊為單位的通訊協定不只給你空間,而是給你整顆硬碟般的環境,讓你可以格式化與安裝系統,尤其有使用Vmware虛擬伺服器的人都知道它的好處。
筆者將PC與Synology DS1618+ 各插上一塊 E10G17-F2 10Gb雙埠網路卡,就是要將Synology NAS 除了一般NAS用外,也要變成VMware的datastore。因為筆者家中不是工作室,小小的一台電腦桌上要擺NAS、router、switch、PC實在有點捉襟見肘,已經挪不出多餘空間擺ESXi專屬電腦,因此VMware ESXi就交給VMware WorkSatation Pro來模擬,這樣一台PC與DS1618+ NAS就搞定。
VMware Workstation 多網卡設定
對IT人員及程式開發人員來說,常常為了測試系統與軟體,大部分都是依賴Microsoft Virtual PC、VMware或irtualBox 等工具來建虛擬機器,VMware在這個領域算是佼佼者,筆者也是Vmware Workstation的愛用者,之前寫過Windows 10使用VMware把玩 Mac OS 10.12虛擬硬碟檔的文章,連VMware ESXi的升級都是使用Vmware workstation來測試,安裝虛擬機器時都不會特別去更改網路設定,但要是安裝像ESXi Server這類軟體(可參考「使用 VMware Workstation Pro 安裝 ESXi Server 6.x 虛擬平台」文章),需要一些手動的方式來讓虛擬機器能辨識多張網卡。
像筆者的PC主機板上有兩個實體1Gb網路、1個WiFi與兩個10Gb網路,建立VM虛擬機器時到底會從連上哪個實體網路麼呢?尤其筆者有插上E10G17-F2 10Gb雙埠網路卡,與主機板內建的1Gb差10倍,當然希望實質上的對應。
一般建立VM虛擬機時都會使用Bridge Mode的Automatic預設值居多,為了讓ESXi Server能抓到多張實體網卡,且能順利運作10Gb的網路速度,所以必須進入Virtual Network的設定來修改。
接著點選右下的〔Change Settings〕。
在Bridge to設預設是自動的(Automatic),請設定成您要指定的網路卡,筆者先將指定其主機板上的網卡。
雖然VM可以虛擬多張網卡,但想要連結到多個實體網路來達到分流,原則上電腦就要有多個實體網路卡,例如筆者一個1Gb是一般NAS服務用的網段,一條10Gb是要給ESXi Server的datastore連接用的,所以新增一張網路卡,例如下圖新增VMnet2網卡。
並將VMnet2網卡在「Bridge to」選擇10Gb的實體網卡來對應,這下就有VMnet0與VMnet2各Bridge對應1Gb與10Gb兩張實體網路卡。
為了讓ESXi Server能夠抓到兩張對應的實體網卡,在ESXi Server虛擬環境參數的網路上新增虛擬網卡時都選擇Custom,且一張對應之前設定的VMnet0,另一張指定VMnet2。
設定 ESXi 的VMkernal NIC
設定了VM 網路對應就是要讓ESXi Server能夠抓到對應的實體網路卡,使用vSphere Web Client連接ESXi Server後確實看到了兩張網路卡,一張是vmnic0使用e1000的驅動程式(就是1Gb速度),另一張是10Gb的vmnic1,使用vnmenet3的驅動程式。
為了讓iSCSI走獨立的通道,故建立一個虛擬的switch,名稱指定「vSwitch1」,為了幫 iSCSI 啟用Jumbo 框架,將預設的1500最大傳輸單位 (MTU)調整為9000,一般網路環境 MTU 值,1GbE 網路的 MTU 值設為 1500,而10GbE 網路的 MTU 值設為 9000。「上行1」就是指定此switch的連接的實體NIC網路,當然就是10Gb的vmnic1。
VMkernel 網路層會提供與主機的連線,並處理 vSphere vMotion、IP 儲存區、Fault Tolerance、Virtual SAN 及其他的標準系統流量。所以為 iSCSI 建立單一 VMkernel 介面,至「網路」→「VMkernel NIC」 →「新增 VMkernel NIC」。
建立VMkernel NIC實會要求一個新的通訊埠群組名稱 (port group),為了方便辨識,筆者輸入「10Gb iSCSI」,交換器選擇剛剛建立的「vSwitch1」,MTU指定9000,IP可以接受 DHCP 或指派,筆者指定自己想要的 IP 後,按一下 〔建立〕來繼續。
下圖VMkernel NIC 已準備好 vmk1 透過 iSCSI 介面卡連線至您的 Synology NAS。
為什麼要將ESXi Server設定兩張網卡,主要是一條管理用,也可以走筆者家中相連的網段,另一條走10Gb給iSCSI專用連上Synology NAS。
VMware ESXi 上掛載 Synology iSCSI Target
Synology在DSM 6.2後有個專為管理 iSCSI LUN 及目標所設計 iSCSI Manager 套件,可以協助您輕鬆管理與監控 iSCSI 服務,可為外部主機提供整顆硬碟般的環境,只要將 iSCSI LUN 連結至 iSCSI Target,用戶端便可以透過 iSCSI 啟動器存取儲存空間,如同存取本機磁碟一般。想要將 Synology NAS 做為 VMware ESXi datastore,使用iSCSI是最經濟實惠的方案,因此建立Synology iSCSI Target來讓ESXi Server平台來掛載是事宜將相當重要的事,有了Synology iSCSI Manage套件一切輕鬆如意。
為了測試SSD與傳統硬碟的差異,筆者特意在SSD上建立一個Target-1與傳統硬碟的Target-2,除了Target名稱不同外,也可刻意將容量分成150GB與120GB,以方便判斷,如下圖所示。
那如何將 Synology NAS 上的 iSCSI Target 掛載至 VMware ESXi Hypervisor 上呢?首先進入在「儲存區」→「介面卡」→「設定iSCSI」畫面。
啟用iSCSI後按下「新增連接埠連結」來選擇 Synology NAS 連線的 VMkernel NIC,就是之前建立的vmk1 的VMkernel NIC。
接著在「動態目標」欄位右邊按下「新增動態目標」,其內容輸入 Synology NAS 的 IP 位址,筆者輸入的是 Synology DS1618+上的E10G17-F2 10Gb網路卡 IP位址,最後按下〔儲存組態〕。
隔了一陣子,感覺怪怪的,到「裝置」頁面按下「重新整理」發現有逾時的錯誤。
找了半天一直找不出問題,畢竟由Windows 10中執行Vmware Workstation Pro後再模擬ESXi Server平台,結過測試到把vmk1的VMkernel NIC內的MTU條回原先預設的1500即可過關。
一台機器的硬體由Host中虛擬了兩層,短時間內無法找出是Vmware Workstation Pro或是ESXi Server平台的問題,筆者不是這方面的專家(讀者若知道問題點或蛛絲馬跡也希望能讓筆者知道一下),明知1500 MTU運作在10Gb網卡上的缺失,無奈也只能暫時這樣的解決,調整完MTU後再到「裝置」頁面按下「重新整理」,果然出現正常的狀態,至於已降級訊息是因為筆者在NAS上建立儲存空間都是單顆無RAID保護環境的原因。
想要iSCSI 服務更穩定,可以修改「設定iSCSI」→「進階設定」內的LoginTimeout、NoopTimeout、DelayedAck等參數設定(參考官方教學文件)。
VMware ESXi 的外部儲存設定
確定抓到NAS上的iSCSI Target後,接下來就是掛載的動作,直接進入「儲存區」→「資料存放區」→「新增資料存放區」畫面。
出現新增資料存放區的精靈畫面,總共有4的步驟,第一是資料存放區的類型,有新增、範圍、擴充、掛接等類型,當然是選擇一個全新的VMFS資料存放區。
第二步驟是為此datastore 的名稱命名,並選擇一個 LUN。由於筆者有建立兩個Target,所以下圖中抓到兩個Target的LUN,到底要選哪一個?直接看容量比較快,還記得在建立兩個Synology iSCSI Target時有容量的不同嗎?先選擇SSD對應的150GG那個LUN。
第三步驟取得空間的大小與VMFS版本,當然你可以取得部分空間來使用即可,但筆者測試建立時就指定的不大,所以選擇使用全部的空間,而VMFS版本的選擇,主要是向下相容的問題,例如使用vSphere ESXi 6.0就必須使用VMFS 5以上。
最後出現設定的資訊,確定無誤後就按下〔完成〕來掛接。
掛接後一可看到一個新的 datastore 已可以使用了。
同樣的再新增一個資料存放區,不過掛載的是傳統硬碟的iSCSI Target。
兩個掛載的Synology NAS上的空間,iSCSI DS1618-1是SSD的Target,而iSCSI DS1618-2則是傳統硬碟的Target。
建立ESXi的虛擬機器
VMware ESXi平台可以在一部實體機器上模擬完整的網路環境與硬體設備,不論是技術、操作、功能與速度,是市面上其他虛擬軟體所望其項背的,對於其網路、快照、拖曳複製與共享等種種功能,保證一用上就上癮。雖然此文章是架設在VMware workstation Pro下,一台機器兩層的虛擬環境,建立虛擬機器的動作沒有什麼改變,尤其ESXI 6.0使用web Client的管理方式,瀏覽器就可完成一切的操作,方便極了,首先來建立一個虛擬機器吧!
出現建立虛擬機器的精靈步驟,只要5個步驟即可完成虛擬機器的相關設定,首先是選擇「建立新的虛擬機器」。
第二個步驟是虛擬機器的名稱、ESXi版本相容性、想要模擬的作業系統類別與作業系統的版本,如下圖所示。
由於筆者有建立兩個外部儲存設定,一個是SSD的iSCSI DS1618-1上,另一個iSCSI DS1618-2則是傳統硬碟。筆者的想法是在SSD的外部儲存存空間上建立w7-1的虛擬機器,傳統硬碟的iSCSI DS1618-2建立w7-2的虛擬機器,這樣往後即可以測試比較及效能與差異,所以下圖先選擇SSD的iSCSI DS1618-1。
接下來就是CPU、記憶體、硬碟大小等裝置的調整,依你的PC裝置效能調整符合需求的w7-1虛擬機器環境。
最後顯示所有的裝置設定環境,確定後按下〔完成〕。
記得要啟動w7-1虛擬機器之前,要將先上傳作業系統的ISO檔至預設的datastore1上,並將CDDVD媒體瀏覽指定上傳的ISO。
這樣看到的w7-1虛擬機器即可點選開始安裝系統。
虛擬機器安裝系統如同一般系統安裝沒兩樣,唯一差別是安裝完系統一定要安裝VMware Tools。
速度測試的迷失
由於筆者只有兩塊E10G17-F2 10Gb雙埠網路卡,各插在PC與Synology DS1618+ NAS上,家中沒有多餘的10G網卡與PC,甚至也沒10Gb Switch,一時間找不到測試VM效能的方式,暫時使用目前的環境來區分3大組合。第一種是由Windows 10直接使用內建的iSCSI 啟動器連接DS1618+ SSD LUN3,第二種透過VMware Workstation Pro來產生一個Windows 7的虛擬機器,其系統安裝的空間也是使用DS1618+ SSD LUN3,第三種是使用VMware Workstation Pro模擬ESXi Server平台,再從ESXi Server平台下建立兩個Windows 7的虛擬機器,一個虛擬機器是使用DS1618+ 傳統硬碟 LUN2,另一是DS1618+ SSD LUN1,下圖就是透過3種組合下的4種模式。
先從ESXi Server平台下的虛擬機器來說明,從上圖中可知ESXi Server已經是經過VMware Workstation Pro模擬出來的,第三種組合就是在此模擬的ESXi Server平台再模擬w7-1與w7-2虛擬機器,先來看看使用SSD LUN1的w7-1的VM,開啟w7-1的VM後進行CrystalDiskMark磁碟效能測試,發現循序讀取有303 MB/s超過1Gb網卡的125 MB/s,想說10Gb的網路卡揮發作用,其實不然,請繼續看下去。
同樣的安裝w7-2虛擬機器,步驟相同,差別儲存設定要選擇iSCSI DS1618-2的傳統硬碟,再使用CrystalDiskMark磁碟效能測試,即使是傳統硬碟也跑到303 MB/s,可能是VMware Workstation Pro的快取與加速機制造成CrystalDiskMark測試真實的狀況,不過在寫入部分只有39.89 MB/s ,所以使用SSD的iSCSI DS1618-1還是有用的。
為了測試PC連線 Synology DS1618+ iSCSI的效能(第一種組合),所以在DS1618+ iSCSI Mnanger上再建立一個Target 3的SSD的儲存空間。
利用Windows 8 / 10 都有內建 iSCSI 的連線啟動器服務,來連接剛剛建立的Tager 3的LUN-3的SSD儲存空間。
直接由系統連接到NAS的iSCSI Target,沒有透過VMware Workstation或ESXi的模擬機制,格式化後筆者使用CrystalDiskMak來測試一下速度循序的讀寫速度來到798.5 / 462.6.8 ( MB/s),個人覺得相當不錯,可見10GbE 網路介面卡有如虎添翼的效果,問題是筆者設定iSCSI Targer上的SSD僅有500 MB/s 左右的速度,哪來的近800 MB/s,可見NAS的iSCSI快取或CrystalDiskMak的測試基準都是有可能是影響因素。
第一種組合是直接連結到NAS上iSCSI Target上,如同系統上的硬碟般的使用,第二種組合透過VMware Workstation Pro來產生一個W7-3的虛擬機器,空間使用第一種組合連結的儲存空間,在虛擬機器內執行CrystalDiskMak測試,竟然高達1700MB/s以上,照理論來說,相同的條件的儲存空間,經過模擬後效能會較差才對,但卻出現大於NAS上SSD的速度,可見VMware Workstation Pro應該有透過筆者本機的M.2 PICe SSD碟進行快取機制,導致測出的速度是PC本身的PCIe系統碟速度。
心得與感想
Synology DS1618+ NAS要當 VMware ESXi 外部儲存的運用,網路速度與硬碟的速度是最大的瓶頸,DS1618+的PCIe擴充槽可安裝10GbE網路的E10G17-F2介面卡,硬碟可使用SSD或RAID來提升,原本單純的問題即可迎刃而解,無奈筆者是個窮MIS人員,只有一台Intel i5-7500 32G RAM的PC與一台 Synology DS1618+ NAS,因此想要模擬ESXi Server的iSCSI運用,勢必得靠一台PC來硬撐,VMware Workstation Pro的確解決我的問題,至少筆者撰寫的ERP測試下很方便,但在求好之外要更好的狀況下,嘗試各種組合來測試其效能,或許真的是不得其門而入,顯得有些凌亂,待筆者有空再重新規劃再來測試。