先看一段來自redbook的Strowize V7000的定義:An IBM Storwize V7000 system is a clustered, scalable, and midrange storage system, and an external virtualization device.前端
V7000最大的賣點是Virtualization。所謂的存儲虛擬化是將不一樣廠商的存儲設備放到一個Pool裏以便統一管理,例以下圖Storwize V7000(SVC)後面能夠接IBM的DS8000,XIV,NetApp,EMC等其餘廠商的設備。將這些設備的全部存儲空間放到一個大的Pool裏,跨設備之間作copy service,Data Migration。對後端存儲作操做時對前端主機是透明的,由於前端host只看到一個Storwize V7000(or SVC)。node
說到虛擬化,IBM除了Storwize V7000,還有SVC(SAN Volume controller)。二者運行的code都是同樣的,只不過一個是做爲Server(SVC),一個是做爲Storage(Storwize V7K)。下圖是一套Storwize V7000系統的組成部分,相似於DS3K/4K/5K,它也分Control Enclosure和Expansion Enclosure。後端
再看看Storwize V7000的硬件,Front view和Font view,硬件外觀上看上去和DS3512很像,只不過Storwize V7000中叫作Node Canisters,而DS3512叫作Controller。每一個Storwize V7000有一個或兩個(optional)control enclosures,每一個control enclosure都包括兩個node canisters,磁盤及兩個PSU。服務器
重要的術語:electron
Control enclosureide |
A hardware unit that includes the chassis with a midplane for connection of node canisters, drives and power supplies with batteries.ui |
Node canisterthis 【相似於DS5K的Controller】spa |
A hardware unit that includes the node electronics, fabric and service interfaces, serial-attached SCSI (SAS) expansion ports and direct connections to internal drives in the enclosure.scala |
Expansion enclosure |
A hardware unit that includes the chassis with a midplane for connection of expansion canisters, drives, and power supplies without batteries. |
Expansion canister 【相似於DS5K擴展櫃的ESM】 |
A hardware unit that includes the electronics to provide serial-attached SCSI (SAS) connections to the internal drives in the enclosure and SAS expansion ports for p_w_upload of additional expansion enclosures. |
Cluster |
Two node canisters in a control enclosure. |
Managed Disk (MDisk) |
A SCSI logical unit (aka LUN) built from an internal or external RAID array. |
Storage pool |
A collection of MDisks providing real capacity for volumes. SVC: Managed Disk Group (MDG) |
Volume |
What the host operating system sees as a SCSI disk drive. SVC: Virtual Disk (VDisk) |
Cluster
Cluster由2~8個節點組成,全部的配置,監控和服務進程是在Cluster level執行,configuration 是copy在Cluster裏的全部node 上。Cluster只分配一個IP而不是每一個node一個IP。其中一個Node會被選出成爲「configuration node canister」,它是惟一一個來activate Cluster IP的node。若是這個node fail了,會從新選出新的「configuration node」,新的「configuration node」會接管這個IP。
I/O Groups:兩個節點構成的相似AB控制器的一對, VDisk在同一個IOgroup的兩個節點之間fail over, fail back
正常狀況下,某個Volume的IO都是由I/O group裏的同一個Node處理的。和DS3K/4K/5K同樣,一個Volume也只有一個Preferred Owner(A控orB控,Node1orNode2),兩個Node是以failover mode模式工做,即一個Node down掉時,另外一個Node能夠繼續工做,而對主機沒有impact。
一個Node就是一個SVC(SAN Volume controller),是個運行Linux的X Series服務器,提供虛擬化,copy service。兩個Node組成一個Cluster。一個Cluster能夠有1-4個Node paris。每一個pair都是一個IO Group。IO group在配置Cluster的時候定義。每一個Node只能在一個IO group裏。
Managed Disk (MDisk)
Host端不會看到Managed disk,相反,他們看到的是Logical disks,也被稱爲Virtual disks。Managed disks再組成managed disk groups。組成Virtual disks的Managed disk必須來自同一個Managed disk group。每一個Managed disk被分紅多個Extents(默認16MB,16MB~8192MB),從0開始,一直到Managed disk的結束。建議一個system裏全部Storage Pool都使用一個Extent,這是在兩個Storage Pool之間作volume Migration的前提,固然若是extent不同,可使用volume Mirroring。
關於Mdisk,Storage Pool,Vdisk之間的關係,下圖闡釋的很是清楚。
Storage Pool
多個Mdisks(最多爲128個)組成一個Storage Pool。
Quorum disk,Configuration Information是存在QuorumDisk上的,system裏的全部node均可訪問,Quorumdisk能夠是一個Mdisk或者是Internal Drive,也是仲裁盤。一個Cluster由3個quorum disk,但只有一個是Active的。在V7K,Internal drive能夠被認爲是Quorum candidates。若是一個環境裏有多個存儲,那爲了不單個Storage壞掉而丟失Quorum disk,應該把Quorum disk分散在多個存儲上。
Quorum disk是來決定當Cluster中的一個node offline 時,哪一個node繼續工做。In this tie-break situation, the first group of nodes that access the quorum disk marks their ownership of the quorum disk and as a result continues to operate as the cluster. If the other group of nodes cannot access the quorum disk or finds it owned by another group of nodes it stops operating as the cluster and does not handle I/O requests.
看下一個write request是怎麼在V7000中完成的:
建立Vdisk時就已經define了preferred node,在上圖中即node1,正常狀況下全部對V1這個Vdisk的讀寫操做都是由node1完成的。
經過Node1 對Vdisk V1進行寫操做請求(1),write data會copy一份到node2裏,而後纔會給主機返回一個寫完成操做(2)。以後,node1會將cache數據destage到disk
總結:寫操做時,處理IO的Node會將數據copy一份到IO group裏的另外一個Node,而後纔會給主機返回一個write completion。讀數據時,和其餘storage同樣,preferred node會先檢查cache中有沒有data。若是沒有就從磁盤中讀。若是IO group裏的一個node fail了,另外一個node會馬上接管過來,因爲write data是在兩個node之間mirror的,因此這種node failure不會形成data loss。Surviving node會將cache裏的數據destage到disk並進入write-through mode,即全部write data直接寫到disk而不通過cache。