共享云硬盤的使用場景
使用共享云硬盤必須搭建共享文件系統(tǒng)或類似的集群管理系統(tǒng)。直接掛載至多臺云服務器無法實現(xiàn)共享功能,且存在數(shù)據(jù)覆蓋風險。

共享云硬盤的使用注意事項
1、由于多數(shù)常見集群需要使用SCSI鎖,例如Windows MSCS集群、Veritas VCS集群和CFS集群,因此建議您結(jié)合SCSI模式使用共享云硬盤。若SCSI云硬盤掛載給虛擬化類型為XEN的ECS,則需要安裝驅(qū)動,具體請參見磁盤模式及使用方法。
2、您可以創(chuàng)建VBD類型的共享云硬盤和SCSI類型的共享云硬盤。建議將共享云硬盤掛載至位于同一個反親和性云服務器組內(nèi)的ECS,以提高業(yè)務可靠。
2.1 VBD類型的共享云硬盤:創(chuàng)建的共享云硬盤默認為VBD類型,該類型云硬盤可提供虛擬塊存儲設備,不支持SCSI鎖。當您部署的應用需要使用SCSI鎖時,則需要創(chuàng)建SCSI類型的共享云硬盤。
2.2 SCSI類型的共享云硬盤:SCSI類型的共享云硬盤支持SCSI鎖。
須知:
為了提升數(shù)據(jù)的安全性,建議您結(jié)合云服務器組的反親和性一同使用SCSI鎖,即將SCSI類型的共享云硬盤掛載給同一個反親和性云服務器組內(nèi)的ECS。
如果ECS不屬于任何一個反親和性云服務器組,則不建議您為該ECS掛載SCSI類型的共享云硬盤,否則SCSI鎖無法正常使用,并且會導致您的數(shù)據(jù)面臨風險。
3、反親和性和SCSI鎖的相關概念:
3.1 云服務器組的反親和性:ECS在創(chuàng)建時,將會分散地創(chuàng)建在不同的物理主機上,從而提高業(yè)務的可靠性。關于云服務器組,更多詳情請參見管理云服務器組。
3.2 SCSI鎖的實現(xiàn)機制:通過SCSI Reservation命令來進行SCSI鎖的操作。如果一臺ECS給云硬盤傳輸了一條SCSI Reservation命令,則這個云硬盤對于其他ECS就處于鎖定狀態(tài),避免了多臺ECS同時對云硬盤執(zhí)行讀寫操作而導致的數(shù)據(jù)損壞。
3.3 云服務器組和SCSI鎖的關系:同一個云硬盤的SCSI鎖無法區(qū)分單個物理主機上的多臺ECS,因此只有當ECS位于不同物理主機上時才可以支持SCSI鎖,因此建議您結(jié)合云服務器組的反親和性一起使用SCSI鎖命令。
共享云硬盤的主要優(yōu)勢
1、多掛載點:單個共享云硬盤最多可同時掛載給16個云服務器。
2、高性能:多臺云服務器并發(fā)訪問超高IO共享云硬盤時,隨機讀寫IOPS可高達160000。
3、高可靠:共享云硬盤支持自動和手動備份功能,提供高可靠的數(shù)據(jù)存儲。
4、應用場景廣泛:可應用于只需要VBD類型共享云硬盤的Linux RHCS集群系統(tǒng),同時也可應用于需要支持SCSI指令的共享云硬盤的場景,如Windows MSCS集群和Veritas VCS集群應用。
共享云硬盤的規(guī)格性能
共享云硬盤的規(guī)格性能與非共享云硬盤規(guī)格性能一致,詳情請參見磁盤類型及性能介紹。
共享云硬盤的數(shù)據(jù)共享原理和常見的使用誤區(qū)
1、共享云硬盤本質(zhì)是將同一塊云硬盤掛載給多個云服務器使用,類似于將一塊物理硬盤掛載給多臺物理服務器,每一臺服務器均可以對該硬盤任意區(qū)域的數(shù)據(jù)進行讀取和寫入。如果這些服務器之間沒有相互約定讀寫數(shù)據(jù)的規(guī)則,比如讀寫次序和讀寫意義,將會導致這些服務器讀寫數(shù)據(jù)時相互干擾或者出現(xiàn)其他不可預知的錯誤。
2、共享云硬盤為云服務器提供共享訪問的塊存儲設備,但其本身并不具備集群管理能力,因此需要您自行部署集群系統(tǒng)來管理共享云硬盤,如企業(yè)應用中常見的Windows MSCS集群、Linux RHCS集群、Veritas VCS集群和CFS集群應用等。
3、如果在使用共享云硬盤過程中未通過集群系統(tǒng)進行管理,可能會導致以下問題:
3.1 讀寫沖突導致數(shù)據(jù)不一致
當一個共享云硬盤同時掛載給兩臺云服務器時,云服務器A和云服務器B相互之間無法感知另一個云服務器已使用的存儲空間,云服務器A可能會對該云硬盤上已被云服務器B使用的空間進行重復分配,從而發(fā)生空間分配沖突導致數(shù)據(jù)出錯的情況。
比如,將一塊共享云硬盤格式化為ext3文件系統(tǒng)后掛載給云服務器A和云服務器B,云服務器A在某一時刻向云硬盤上的區(qū)域R和區(qū)域G寫了文件系統(tǒng)的元數(shù)據(jù),下一時刻云服務器B又向區(qū)域E和區(qū)域G寫了自己的元數(shù)據(jù),則云服務器A寫入的數(shù)據(jù)將會被替換,隨后讀取區(qū)域G的元數(shù)據(jù)時即會出現(xiàn)錯誤。
3.2 數(shù)據(jù)緩存導致數(shù)據(jù)不一致
當一個共享云硬盤同時掛載給兩臺云服務器時,若云服務器A上的應用讀取區(qū)域R和區(qū)域G的數(shù)據(jù)后將數(shù)據(jù)記錄在緩存中,此時云服務器A上的其他進程或線程訪問該部分數(shù)據(jù)時,直接訪問緩存中的數(shù)據(jù)即可。如果此時云服務器B上的應用修改區(qū)域R和區(qū)域G中的數(shù)據(jù),則云服務器A上的應用無法感知該部分數(shù)據(jù)已被修改,依舊從緩存中讀取數(shù)據(jù),用戶通過云服務器A無法看到已修改的新數(shù)據(jù)。
比如,將一塊共享云硬盤格式化為ext3文件系統(tǒng)后掛載給云服務器A和云服務器B,兩臺云服務器均將文件系統(tǒng)的元數(shù)據(jù)進行了緩存,此后用戶在云服務器A中創(chuàng)建了一個新的文件F,但云服務器B并無法感知該修改,依舊從緩存中讀取數(shù)據(jù),導致用戶在云服務器B中無法看到文件F。
4、如果您將共享云硬盤掛載到多個云服務器,首先請根據(jù)不同的應用選擇不同的磁盤模式,包括VBD和SCSI。SCSI類型的共享云硬盤支持SCSI鎖,但是需要在云服務器系統(tǒng)中安裝驅(qū)動并保證鏡像在兼容性列表中。
須知:
直接將共享云硬盤掛載給多臺云服務器無法實現(xiàn)文件共享功能,如需在多臺云服務器之間共享文件,需要搭建共享文件系統(tǒng)或類似的集群管理系統(tǒng)。