Secondary Storage VM 介紹

原文地址:http://www.cloudstack-china.org/2012/09/543.html

Secondary Storage VM 二級存儲虛擬機簡稱ssvm, 作爲系統虛機的一種,在cloudstack中扮演了很重要的角色,沒有它很多功能都無法實現。

一、 什麼是ssvm?
        簡單來說ssvm主要用來管理二級存儲,也就是對二級存儲相關的操作都會通過它來完成,二級存儲存放模板,ISO,快照,volume等信息, 也就是說對這些資源的管理都是通過SSVM進行的。每一個資源域可以有多個SSVM, 當SSVM被刪除或停止,它會自動被重建並啓動。
        1.創建ssvm
        當配置並enable zone之後,cloudstack會嘗試使用系統虛機模板創建SSVM。針對不同的主機(xenserver, vmware, kvm),cloudstack提供了3種不同的系統模板,我們需要將模板安裝到二級存儲中,供cloudstack使用,安裝步驟如下:
        a. 在你的管理服務器上掛載二級存儲設備。此示例假定在二級存儲服務器上路徑是/nfs/share
        # mount -t nfs servername:/nfs/share /mnt/secondary
        b. 獲得和解壓系統VM模板。運行安裝在管理服務器上的腳本/usr/lib64/cloud/agent/scripts/storage/secondary/cloud- install-sys-tmplt。對每一個用戶將在所在資源域(Zone)內運行的hypervisor類型都執行此步驟。這樣,系統將會有最大的靈活性來運行系統虛擬機。每次運行,在本地文件系統中需要大約10GB的剩餘磁盤空間。
        具體運行的命令取決於hypervisor的類型,請在命令中替換SystemVM爲實際存放模板的路徑。
        對於vSphere:
/usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -f ../SystemVm/vmware/systemvm.ova -h vmware -F
        對於KVM:
/usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -f ../SystemVm/kvm/systemvm.qcow2.bz2 -h kvm -F
        對於XenServer:
/usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -f ../SystemVm/xenserver/systemvm.vhd.bz2 -h xenserver -F
        c. 腳本執行完畢,卸載二級存儲設備。

        2.啓動&配置ssvm
        使用系統虛機模板創建出來的VM,沒有任何配置信息,也並不具備管理二級存儲的功能,而這些功能都是通過ssvm啓動的時候,通過command line的方式加入到ssvm中.可以通過命令cat /proc/cmdline查看到給SSVM的配置信息,包括網卡,nds,用戶等相關信息。而這些信息都是在創建資源域的時候填寫的。

        3. ssvm與cloudstack
        cloudstack 是通過ssh訪問直接訪問ssvm, 系統虛機模板中已經植入了一個ssh 的private key,此時cloudstack只需要通過自己的public key訪問就可以了,端口爲3922,這裏xen與vmware的機制有些不同,由於默認vmware是禁止ssh登陸的,所以對於vmware來說,可以通過cloudstack的management server直接訪問ssvm的public ip.在配置完ssvm後,cloudstack會讓ssvm重新生成一對public key和private key,以後就使用新的key來訪問ssvm。
        在ssvm中有一個java進程,專門負責與cloudstack的8250端口進行通訊,而這個java進程,以及相關shell腳本都是在通過創建完ssvm之後,由cloudstack注入進去的,如vmware,會有一個system.iso,這裏面就存放着所有系統虛機需要的文件,在mount上二級存儲之後,會將這個文件拷貝到ssvm中,在ssvm解壓,並將相關文件存到指定路徑下。

二、ssvm管理二級存儲?
        ssvm管理二級存儲其實也就是對存放在二級存儲裏面的資源進行管理,首先ssvm會將二級存儲mount到本地,之後對二級存儲的操作也就轉換成對本地文件夾的操作。從功能上講,ssvm負責管理snapshot, volume, iso, template, 下面將分別從上傳,下載,查詢,刪除者4個角度說明對這些資源是如何管理的。

上傳資源:
        當用戶選擇上傳資源時,management server 會將url傳遞給ssvm, 這樣ssvm就可以通過wget從指定的url中下載資源。

下載資源:
        當用戶選擇下載指定資源時候,management server 首先從數據庫中查找該資源對應的路徑,並將該路徑傳遞給ssvm,ssvm 使用內置的apache server來提供資源上傳服務。這樣用戶就可以通過ssvm下載所需要的資源了

查詢資源:
        ssvm會定期向management server上傳自己的狀態信息

刪除資源:
        由於二級存儲已經掛載到ssvm中,這樣它就可以直接將二級存儲裏面的內容刪除

三、 如何驗證ssvm?
        那如何驗證ssvm並可以正常使用呢?在ssvm中有一個ssvm-check.sh,這個shell文件主要負責對ssvm的相關配置進行驗證。驗證內容包括: dns, mount的二級存儲, 與management server的連接,相關java進程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章