爲什麼Hyper-v不能夠從SCSI磁盤啓動和關閉?

在hyper-v的虛擬機上我們有兩種磁盤控制器選擇,你可以再一個虛擬機上加入IDE磁盤或者SCSI磁盤.下面列出了它們之間不同的地方.
IDE:工作在操作系統上,不需要集成服務安裝,可以引導虛擬機.
SCSI:支持熱插拔的虛擬磁盤,這種類型的磁盤控制器和你平時在物理機上使用的是一樣的,沒有什麼差別.SCSI上面得VHD文
件也可以儲存在IDE磁盤上,IDE上的VHD文件也能夠儲存在SCSI磁盤上.
爲什麼hyper-v上的虛擬機不能從SCSI磁盤上啓動?
這裏,我們所稱呼爲”SCSI”控制器其實有些不恰當.當我們致力於虛擬服務器的時候,我們聽到一些聲音,讓虛擬服務器工作在SCSI磁盤上.所以,虛擬服務器需要虛擬SCSI磁盤.爲此,我們在虛擬服務器上添加了一個仿真的SCSI控制卡.不幸的是,SCSI控制器是一種非常先進的硬件.最終的結果是,仿效的設備比簡單的IDE控制器要慢.爲了SCSI控制器在虛擬機有更好的性能,我們擴展了仿真控制器並重寫了自定義的驅動,來支持操作系統.在hyper-v中,我們完全放棄了仿真控制卡,相反,我們使用了傳統的仿真IDE 控制器,和一個新的虛擬控制器,基於VMBUS,存儲控制氣.並沒有任何的仿真痕跡.當你選擇在虛擬機裏添加SCSI控制器時,你可以使用這種虛擬存儲控制器.隨之而來的問題是.你的虛擬機的BIOS並不知道VMBUS,它只能認識從仿真驅動設備啓動.這就是爲什麼你可以從一個IDE控制器和一箇舊的網絡適配器啓動,而不是一個SCSI控制器或網卡啓動.
爲什麼你不用關心不能從SCSI啓動的hyper-v?  
我們來討論下用戶在什麼情況下需要從SCSI磁盤啓動虛擬機.有如下兩個理由~!
第一個理由是SCSI比IDE可以支持更大的VHD.爲了解決這一點,我們是hyper-v的IDE控制器使用48-bit LBA.這樣,我們可以附加最大到2TB的VHD.
第二個理由是性能,但是, 這也不是什麼問題.
首先,我從如下的圖中去說明.下圖中的父分區圖並不是100%的Windows Server 2008 R2的,但是,子分區圖,Windows Server 2008和Windows Server 2008 R2是一樣的.這是我想說的一點.
 

首先,你要注意子分區圖上的“Virtual Storage Minport (VSC)”.本質上是加載到虛擬機的SCSI控制器上的一個驅動程序.它連接到 VMBUS上,提供一個非常高的性能,並沒有像仿真方式那樣所涉及任何磁盤的I/O.下一個要注意的是圖上的“Fast Path Filter”這個過濾器驅動能夠獲得虛擬機磁盤上的所有對象.不管是IDE或SCSI.它能夠通過VMBUS進行數據交換.除了一些低等級的操作.(如分區)
這就意味着,一旦安裝了集成服務,不管你是否使用IDE磁盤或SCSI磁盤.它們都使用相同的代碼路徑.
不過IDE磁盤仍然有兩個限制.
一個IDE控制器只能掛載兩個IDE磁盤.
IDE磁盤的I/O block只有512K或者更少,而SCSI控制器可以達到8MB.
但我還沒有看到一個測試如果上述限制,導致IDE和SCSI之間明顯的性能差別.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章