陳 婷
(北京理工大學(xué)珠海學(xué)院,廣東 珠海519000)
在傳統(tǒng)VMware 存儲中,龐大數(shù)量的虛擬機(jī)都由單一LUN 控制,這讓在虛擬卷(VM)粒度上的數(shù)據(jù)管理變得相當(dāng)困難。例如,如果單一虛擬機(jī)占用資源,那么管理員將花大力氣找出問題所在。LUN 粒度上還會帶來這樣的問題:一個(gè)LUN 上控制的所有VM 將獲得統(tǒng)一的數(shù)據(jù)服務(wù)配置,像是快照、復(fù)制、克隆、加密和數(shù)據(jù)去重等等,不管它們是否需要。
虛擬卷改變了這樣一種狀況,存儲能夠預(yù)置給獨(dú)立的虛擬機(jī),而此虛擬機(jī)將被分配需要的服務(wù)。基于存儲策略的管理功能將完成存儲資源的合理分配任務(wù),它將有效簡化存儲配置和日常虛擬機(jī)的管理。
本文主要通過探究傳統(tǒng)的虛擬化解決方案中缺陷和不足,以及對虛擬卷VVols 技術(shù)相關(guān)技術(shù)的介紹,最終確定了軟硬件配置、整體拓?fù)溥B接等基于VVOL 存儲形式的整體構(gòu)建方案。
Virtual Volumes(VVols)是新的概念,可以根據(jù)虛擬機(jī)的需求進(jìn)行動態(tài)地分配,用來幫助虛擬機(jī)和應(yīng)用程序擁有更好的存儲分配。在傳統(tǒng)的基于VMware 的虛擬機(jī)存儲架構(gòu)中,虛擬機(jī)一般被表現(xiàn)為VMFS 文件系統(tǒng)(如vmdk)。而VVols 存儲構(gòu)建方案,與傳統(tǒng)虛擬機(jī)方案相比,則去掉了原來的VMFS 文件系統(tǒng)這一抽象層,它是通過上層軟件GUI 界面的存儲容器Storage Container 技術(shù)給用戶提供了一個(gè)一致統(tǒng)一的抽象層。那么對于虛擬卷上層對象,即虛擬機(jī)來說,該方案封裝了底層存儲的細(xì)節(jié),使得用戶不再需要知道數(shù)據(jù)到底存儲在磁盤陣列的某個(gè)具體位置。從而實(shí)現(xiàn)存儲的定義和使用相互分離的目的,也實(shí)現(xiàn)了存儲虛擬化技術(shù)。
Storage Container(SC)即存儲池,相當(dāng)于儲存池,是底層存儲容量的資源池,用來分配和約束存儲容量。虛擬卷VVols 則存儲在SC 上,當(dāng)對位于某個(gè)存儲池的虛擬卷進(jìn)行操作時(shí),實(shí)際操作的是該SC 對應(yīng)的存儲池所位于的底層磁盤陣列。
存儲池是由軟件GUI 界面的存儲管理員,進(jìn)行定義與創(chuàng)建,是一個(gè)虛擬存儲結(jié)構(gòu)。這樣的話,在理論上,SC 支持實(shí)時(shí)、無限量的容量擴(kuò)容和縮容。另外,SC 的創(chuàng)建較為靈活,還可以給包含不同配置和類型的整個(gè)磁盤陣列創(chuàng)建成一個(gè)SC,在創(chuàng)建虛擬機(jī)時(shí)就可以優(yōu)先選用某些配置高的磁盤陣列。在VVols 存儲方案中,也可以通過VASA Provider 界面給虛擬機(jī)指定磁盤策略(VM Storage Policy),比如金銀銅存儲策略,從而達(dá)到硬件存儲資源的更合理的分配,以及創(chuàng)建虛擬存儲池和磁盤陣列使用分離的目的。[1]
Protocol Endpoints(簡稱PE)即協(xié)議端點(diǎn),主要用于ESXi 主機(jī)與磁盤陣列兩者之間的I/O 通信的數(shù)據(jù)傳輸交流的一種新機(jī)制。其類似于I/O 代理,是ESXi 主機(jī)和虛擬卷之間的I/O 連接通道。PE 是在上層軟件GUI 界面建立的,可建立ESXi 主機(jī)->PE 點(diǎn)->磁盤陣列的FC/iscsi 連接。引入?yún)f(xié)議端點(diǎn)這個(gè)新概念,使得ESXi 主機(jī)原本獲取信息是由存儲陣列上的虛擬卷來得到,現(xiàn)在則可以通過PE 與虛擬卷VVols 之間進(jìn)行通信來獲取信息。
相較于傳統(tǒng)方式,在基于SAN 的存儲系統(tǒng)上,該系統(tǒng)的協(xié)議端點(diǎn)可當(dāng)作一個(gè)個(gè)LUN 來處理;對應(yīng)NFS 存儲陣列,其上PE 可視作一個(gè)掛載點(diǎn)(Mount point),數(shù)據(jù)不會存儲在PE 上,而是從ESXi 主機(jī)轉(zhuǎn)移到在存儲容器上的vSphere VVOL。
VASA Vendor Provider,以下簡稱VASA Provider,即存儲提供程序。其本質(zhì)是在vSphere 環(huán)境中提供充當(dāng)存儲感知服務(wù)的軟件。存儲提供程序的主要功能在于,能夠建立起客戶服務(wù)器、EXSI 主機(jī)、以及底層磁盤陣列三者之間的聯(lián)系。
VASA,指的是存儲感知的vSphere API(編程接口)。該API 接口可為vSphere 提供底層的相關(guān)磁盤陣列的各種信息,包括功能特性(如快照、復(fù)制、擴(kuò)容縮容、RFID 級別)和狀態(tài)(磁盤容量、運(yùn)行狀況、故障排除等)等。
協(xié)議端點(diǎn)PE 是由上層客戶GUI 界面建立并與EXSi服務(wù)器建立初次連接,而其提供的協(xié)議方式是由不同的EXSi 主機(jī)的選擇來決定的,此后通過存儲提供程序VP 實(shí)現(xiàn)vSphere Vcenter 界面來自動感知并獲取不同EXSi 主機(jī)上的相應(yīng)的PE,并將感知到的PE 與對應(yīng)的EXSi 主機(jī)進(jìn)行再次連接,實(shí)現(xiàn)上層服務(wù)器與底層磁盤陣列的I/O 數(shù)據(jù)的傳輸。
VMware vSAN 提供了基于存儲策略的存儲管理SPBM(Storage Policy-Based Management)。通過存儲策略的管理(SPBM),可以實(shí)現(xiàn)軟件定義的存儲實(shí)現(xiàn)策略驅(qū)動(Policy -driven)的自動化。
例如,在主機(jī)集群EXSi 上啟用vSAN,通過主機(jī)EXSi與協(xié)議端點(diǎn)PE 的連接,可在集群界面自動感知在GUI 界面建立好的存儲池SC,并在該界面為該存儲池進(jìn)行設(shè)置,分配相應(yīng)的存儲策略。該存儲策略定義了虛擬機(jī)的存儲要求,這些策略確定如何置備和分配數(shù)據(jù)存儲內(nèi)的虛擬機(jī)存儲對象,以保證達(dá)到要求的服務(wù)級別。如圖1 所示即為基于MascoSAN ISCSI DISK 的VVOL 存儲策略選擇。
在當(dāng)前磁盤存儲市場上的主流存儲解決方案主要為:直連式存儲DAS、網(wǎng)絡(luò)接入存儲NAS 以及存儲區(qū)域網(wǎng)絡(luò)SAN。本文主要討論兩種非直連存儲類型的存儲部署方案。
圖1 存儲策略
SAN 指的是一種儲存技術(shù),其依托于網(wǎng)狀通道(Fiber Channel,簡稱FC)技術(shù),為客戶端服務(wù)器與底層磁盤陣列提供專用的光纖通道網(wǎng)絡(luò)。如圖2 所示,其可允許多臺客戶端服務(wù)器訪問同一磁盤陣列。[2]
圖2 IPSAN 存儲結(jié)構(gòu)圖
圖3 FCSAN 存儲結(jié)構(gòu)圖
如圖2 所示,即為IPSAN 存儲結(jié)構(gòu)圖,其利用IP 網(wǎng)絡(luò)構(gòu)建網(wǎng)絡(luò),使用TCP/IP 協(xié)議的ISCSI 協(xié)議封裝構(gòu)建的存儲區(qū)域網(wǎng)絡(luò)。如圖3 則是FCSAN 存儲結(jié)構(gòu)圖,與IPSAN不同之處在于后者是利用光纖線,通過高速FC 交換機(jī)組成的存儲網(wǎng)絡(luò)。
網(wǎng)絡(luò)附屬存儲NAS 是一種特殊的專用數(shù)據(jù)存儲服務(wù)器,其將存儲設(shè)備連接到現(xiàn)有的網(wǎng)絡(luò)上來提供數(shù)據(jù)和文件服務(wù),可以實(shí)現(xiàn)跨平臺文件共享功能。NAS 本身能夠支持多種協(xié)議,如NFS、CIFS、FTP、HTTP 等,其是可以直接使用的文件系統(tǒng),不需要直接面對塊設(shè)備。[2]
如圖4 所示的NAS 存儲結(jié)構(gòu)圖中,傳統(tǒng)存儲策略即為從擔(dān)任Servers 的磁盤陣列中獲取信息,通過ISCSI/IP交換機(jī),將信息傳輸給客戶端。而NAS 存儲則是直接通過交換機(jī)從云端網(wǎng)絡(luò)獲取信息,發(fā)送給客戶端。相對于其他存儲解決方案,NAS 具有易于部署、跨平臺使用、整體性能高等優(yōu)勢。
圖4 NAS 存儲結(jié)構(gòu)圖
相對于傳統(tǒng)物理IT 架構(gòu)中,使用磁盤陣列作為存儲單位進(jìn)行存儲。基于VMware 的虛擬化IT 架構(gòu),以虛擬機(jī)為單位,體現(xiàn)為一個(gè)個(gè)獨(dú)立的VMDK 文件。在其上的克隆、快照等操作都是以VMDK 為目標(biāo),但在策略配置上存儲對象VMDK 和存儲粒度LUN 不能很好的匹配,造成空間浪費(fèi)。
VVOL 為了解決上述問題,即上層的VMDK 管理不知道底層的存儲,存儲管理不知道VMDK,提出新的存儲概念——虛擬卷。從存儲角度來看,將虛擬卷作為一個(gè)個(gè)LUN 來處理,虛擬機(jī)的操作和對應(yīng)的策略配置都綁在對應(yīng)的虛擬卷上。而在上層客戶端,即軟件GUI 界面看到的虛擬卷是一個(gè)普通文件VMDK、一個(gè)快照文件snapshot 和一個(gè)配置文件config??梢哉f,虛擬卷是一架橫跨在虛擬機(jī)和存儲間通信的一座橋梁,使得虛擬機(jī)成為存儲管理和存儲策略的基本單元。[4]
如圖5 所示[4],即為基于VMware 的虛擬機(jī)存儲方案,其方案即為底層的磁盤陣列,通過存儲分塊等方法,分成1024 級數(shù)數(shù)目的LUN,之后通過vSphere 構(gòu)成存儲策略,即將劃分為一個(gè)個(gè)Ubuntu 虛擬機(jī)。之后在上層客戶端軟件界面對虛擬機(jī)進(jìn)行各種操作,轉(zhuǎn)化成對磁盤容量的操作。
圖5 非VVOL 存儲方案
圖6 VVOL 存儲方案
如圖6 所示[4],則是基于VVOL 的存儲方案,相較于圖5 來說。該方案將Ubuntu 虛擬機(jī)轉(zhuǎn)換成一個(gè)個(gè)虛擬卷,該卷可分為一個(gè)VMDK、一個(gè)快照或一個(gè)配置文件進(jìn)行操作。在層客戶端軟件界面對虛擬機(jī)進(jìn)行操作時(shí),就會轉(zhuǎn)換成相對應(yīng)的卷進(jìn)行操作,這樣將存儲的管理單元由LUN級別縮減到虛擬機(jī)級別,使得存儲管理更靈活高效。
本文通過對傳統(tǒng)存儲方案、基于VMware 的虛擬機(jī)存儲方案和基于VVOL 的存儲方案進(jìn)行對比??梢钥闯鯲VOL 存儲方案有諸多優(yōu)勢,例如提供虛擬機(jī)粒度的靈活高效的管理;分流數(shù)據(jù)負(fù)載;提供基于策略的管理;兼容性好,可與傳統(tǒng)數(shù)據(jù)存儲庫共存等。