在計算機世界我們隨處可以見的一種方法,那就是抽象。1946年馮諾依曼提出了計算機的基本結構包含:計算器,存儲器和I/O設備。這可能是對計算機這一新生事物最重要的一次抽象,它直接影響了今後幾十年計算機軟硬件的發展。我們每個人對計算機的計算器,存儲器和I/O設備都有不同的認知,你可能不認識所有計算芯片,不了解各種存儲設備和輸入輸出設備,但是這絕對不會阻礙你區分出它們來。計算機系統中的各個部分可能是不可或缺的,但一定是可以替換的,這就是抽象的力量。沒有抽象,我們可能要為每一套硬件開發不同的操作系統,要為每一種操作系統開發不同的應用程序,那簡直是不可想象的事情。
當然事情發展到今天,我們依然覺得軟硬件系統種類太多了,我們需要新的層次上的抽象。虛擬化就是一個抽象的過程,是對軟硬件資源的進行抽象的過程。虛擬化的目的之一是讓上層無需感知下層的差異,並提供統一的接口以備上層使用下層資源。
理想狀態下的硬件虛擬化要實現的也許就是對硬件不受任何限制的使用,應用程序無需感知計算、存儲和網絡等硬件設備的差異而能夠充分利用硬件資源。但是現實的情況,我們還是需要考慮或多或少考慮硬件的限制的。接下來我們先來考慮硬件虛擬化中,最關鍵的角色——存儲。
一、存儲發展現狀
對於存儲每個人都會有直觀的認識,從紙帶、軟盤、光盤到硬盤。根據馮諾依曼的計算機結構理論,存儲的概念就如同字面一樣簡單,就是任何可用於存儲數據的設備,也如同這一抽象的獨立的概念,存儲設備在計算機結構中甚至是可以相對獨立的。隨著網絡的發展,存儲不再局限於計算機外殼的內部,網絡存儲在服務器領域日益成為主流。
在存儲設備中最重要的應該是硬盤,對硬盤的讀寫速度、容量和質量的追求,硬盤技術幾經變遷。單從與主板的接口標准上分就有ATA(IDE)、SATA、SCSI、SAS、FC和Infiniband之多,他們在接口、傳輸媒介和協議上都存在一定區別。其中ATA接口常連接大家熟悉的IDE設備;SATA(Serial ATA)是串行ATA;SAS(Serial Attached SCSI)是串行SCSI;SATA與SAS是孿生兄弟,SATA硬盤可以連接SAS接口,反之卻不兼容;FC(Fiber Channel)是光纖通道,光纖通道其實不一定使用光纖,也可以使用銅質電纜。需要詳細了解各接口技術細節請google之。
隨著網絡存儲的發展,區分出了DAS (Direct-Attached Storage) 、NAS(Network Attached Storage)、SAN(Storage Area Network)等存儲模式。下圖是他們之間的比較,其中每個虛線框表示為一個相對獨立的整體,箭頭左側描述的是一種接口或者連接方式,右側描述的是實現存儲的技術方案。圖中所顯示的只是各個模式中最為簡單的組織或連接方式。DAS中File System連接Storage的方式不僅僅限於機器內部各種接口和線纜(如計算機連接內置SAS硬盤),也可以是外部的接口和線纜(如通過外部SAS線纜連接存儲),這樣情況就會變得復雜了,NAS或SAN作為整體可以容易成為DAS的一部分。但DAS與其他二者的最大不同在於DAS不需要網絡的支持。NAS和SAN最初的最大區別在於NAS是基於文件的存儲,而SAN是基於數據塊的存儲。NAS存儲更多表現為獨立的文件服務器,但SAN更多表現的像是一塊磁盤,因而SAN可以成為NAS網絡中更加底層的那一部分。
最後是分布式存儲,簡單來說分布式存儲充分利用廉價的硬件設施,在操作系統之上實現了對存儲的抽象。分布式存儲暫時與本文討論無關,今後另開篇討論。
二、Windows Server 2012 操作系統的存儲特性
接下來,我們來看看Windows Server 2012對支持存儲虛擬化的幾項重要改進。在Windows Server 2012中新增和改進許了多存儲特性實現對存儲虛擬化的支持,其中最為引人關注的是iSCSI目標服務器、SMB3.0和存儲空間。Windows Server 2012及其集群可以容易實現目前主流的存儲方案用於測試或生產環境,並且微軟還有一套自己特有的基於文件服務器及文件服務器集群(SMB3.0和存儲空間技術)的存儲解決方案。
1、iSCSI目標服務器
iSCSI(Internet Small Computer System Interface)即Internet小型計算機系統接口。iSCSI在服務器與存儲系統之間使用以太網連接,基於TCP/IP協議封裝傳輸SCSI指令和數據,創建IP SAN。iSCSI和IP SAN應該是目前最具性價比的存儲解決方案了。
在Windows Server 2012 中,iSCSI目標服務器(iSCSI Software Target Server)成為一個內建於文件與存儲服務下的一個服務器角色,集成在服務器管理器中,不再需要額外下載安裝(之前的Server版本都需要下載獨立安裝包進行安裝),因此部署與更新變得更加簡單。查找文檔後我們發現iSCSI 目標服務器可提供下列服務:
由上可見,如果不考慮高性能iSCSI目標服務器生產環境中還是有用武之地的,在測試環境中更是不可或缺的幫手。另外iSCSI目標服務器可以配置成為Windows Server 2012故障轉移集群的集群角色,同時通過配置MPIO實現高可以性。這裡向iSCSI目標服務器發起連接與向其他iSCSI設備發起連接並沒有什麼不同。
2、文件服務器/SMB3.0
在Windows Server 2012中,文件服務器是另一個重要服務器角色。訪問文件服務器有兩個可選協議:NFS(Network File System)和SMB(Server Message Block) / CIFS(Common Internet File System )協議。在配置文件服務器的時候會要求進行選擇,我們來看看他們的區別: