內容預覽:
企業部署虛擬化后,如果發現存儲的性能出現問題,或者需要對存儲進行維護時,就需要進行Storage vMotion。
不同於虛擬機的vMotion,Storage vMotion遷移的是虛擬機存儲的位置,而不是內存運行位置。
虛擬機在Esxi中是以文件的形式存在,Storage vMotion就是將虛擬機的文件從a存儲遷移到B存儲,如圖所示:
Storage vMotion的源和目的存儲可以是VMFS,也可以是NFS,或者2種的混合,唯一的條件是:需要Esxi能同時看到源和目的的存儲。下面,我們就Storage vMotion中的流程做出詳細的說明。
1.1. VAAI
VAAI全稱vstorage APIs array Integrate,是vMware的一個API接口,部分廠家的存儲支持該功能。Storage vMotion在遷移時實際是調用的FSDM/FS3DM的服務,該服務的默認的優先級是Hardware FS3DM>Software FS3DM>FSDM。如果存儲支持VAAI,使用的就是Hardware FS3DM,它是從源存儲直接拷貝到目標存儲,傳輸走的是存儲網絡,Kernel級別只進行信令的驗證。
VAAI由4個組件組成,此處重點說下Delete Status。該組件的作用是存儲自動回收空間,比如你的虛擬機采用的是thin provision模式,當你將該虛擬機刪除后,只有存儲支持Delete Status時,存儲才會自動回收這部分空間,不是所有支持VAAI的存儲都支持該模式,可以通過命令進行查看。
1.2. VMFS
當Storage vMotion檢測到存儲不支持VAAI,並此時的文件系統是VMFS時,則會觸發Software FS3DM的遷移,此時所有的數據會通過VMkernel完成遷移。
1.3. NFS
當Storage vMotion檢測到存儲不支持VAAI,並此時的文件系統是NFS時,則會觸發FSDM遷移,由於NFS本身具備文件系統,所以此時的遷移是Application級別。
2.1.調用的服務類型,從遷移的效率來說,Hardware FS3DM>Software FS3DM>FSDM。
2.2.block size,源和目的存儲的block size大小一致時效率最高,其次是源存儲的block size小於目的存儲的block size,最后是源存儲的block size大於目的存儲的block size。
2.3.文件系統類型,由上面得知,數據遷移可以發生在硬件層面,kernel層面和application層面,所以這就是為什么我們不推薦使用NFS存儲或者VMFS和NFS混合存儲的原因。
2.4.當然,還有網絡帶寬,建議至少是千兆網,有條件的話萬兆網更好。
無論調用哪種遷移方式,遷移的流程都是一樣,以hardware FS3DM為例,虛擬機在遷移時的流程為:
3.1.需要遷移的虛擬機發出Storage vMotion請求
3.2.檢測判斷調用哪種遷移方式
3.3.將源數據想目標存儲遷移,同時為申請遷移的虛擬機開啟一個新的進程
3.4.開啟mirror driver,該進程的作用是確保數據的一致性。storage vmotion是通過快照實現的,遷移開始時,會為需要遷移的數據做一個快照,將這部分的數據拷貝到目標存儲上,在遷移過程中新寫入的數據部分是通過mirror driver向源和目標存儲同時寫入,遷移完成后,mirror driver的寫入部分會與拷貝部分的數據合並,確保數據的完整性。
3.5.當遷移全部完成時,會將源存儲上的數據和源虛擬機進程刪除掉,至此,整個遷移結束