在雲系統的高可用性中,vm層的高可用性尤為關鍵,其中又涉及到了vm本身資料的備份和遷移的問題。在現有的平台上,每乙個vm的資料放在乙個單獨的lv(邏輯卷)上,vm資料的備份可通過備份其所在的lv來完成,遷移則需要其他的物理伺服器可以訪問到該vm的資料,也即lv的內容。對於備份,可利用lvm(logical volume manager)的快照功能來完成,遠端訪問則可通過nbd(network block device)來實現。
lvm屬於軟體層,管理著底下的硬碟分割槽,其好處是可以動態調整lv的大小、動態增加pv(物理卷)到vg(捲組)以增大vg容量、建立lv快照等,使得使用者在lv容量不夠用的情況下能夠直接調整lv大小來滿足,而不需要重新對底下的物理硬碟進行分割槽。我們這裡主要用到lvm的快照功能來備份vm資料,具體如下:
假設物理伺服器名為server1,其上某一虛擬機器名為vm1,vm1資料存放在lv-vm1邏輯卷上,該邏輯卷隸屬於名為v**m的捲組。在某一時刻,vm1資料是完好的,我們需要將這一時刻的資料進行備份,以防vm1資料在將來某一時刻被破壞時能恢復到這一時刻的狀態。首先建立乙個邏輯卷快照,命令如下:
lvcreate –l 1g –s –n lv-vm1snapshot /dev/v**m/lv-vm1
其中「1g」為要建立的快照的大小,這個大小根據需要制定。需要注意的是,如果指定的值太小,快照在其生命週期內發生溢位的話,該快照將無效,因此建立時需要對將要寫入快照的資料量有乙個合理的預估。「lv-vm1snapshot」為快照名稱,其他引數可參看相應的幫助文件。
lvm快照使用的是copy-on-write(寫時複製)機制,在快照建立之後,當有資料要往lv-vm1卷上某一位置寫入時,lvm會將這一位置的資料拷貝到lv-vm1snapshot快照邏輯卷上,然後再將新資料寫入lv-vm1,這樣就起到了備份舊資料的作用。而在實際的實現中,lvm可能根本不會去拷貝資料,而是開闢新的位置寫入新資料,然後調整指向資料塊的指標值來達到目的,所以速度會很快。在這裡,我們只需要了解寫時複製就夠了,不必深究實現細節。
以上快照建立之後,我們需要一種方法來遠端訪問這個快照,於是nbd派上用場了。nbd作為網路塊裝置,其內容**為網路上的伺服器,其組成為server/client模型。client機器像訪問本地磁碟一樣訪問資料,而真正的內容儲存在server上。client機器上需要安裝nbd核心模組,當client要訪問server上的資料時,該核心模組將請求發往server,server端有乙個守護程序叫nbd-server,負責解析接收到的請求並讀取資料然後返回給client。
這裡需要兩台物理伺服器,其中一台為上面提到的server1,我們把它當作nbd的server端,另一台當作nbd的client端,假設名為server2。現在需要在server1和server2上安裝nbd,分別在兩台伺服器上進行以下步驟進行安裝:
tar jxf nbd-3.2.tar.bz2
該命令會解壓生成目錄nbd-3.2。接著執行命令:
cd nbd-3.2
./configure //這一步若提示「missing glib」,需要先執行apt-get install libglib2.0-dev
make && make install
到此,server1和server2上都安裝好了nbd服務。
在server1上執行命令:
nbd-server 1234 /dev/v**m/ lv-vm1snapshot
其中1234為埠號,可靈活指定,後面是要通過nbd匯出的邏輯卷名,這裡為上面建立的快照卷。
server2作為nbd的client端,需要安裝核心模組,執行以下命令安裝:
insmod /lib/modules/***/kernel/drivers/block/nbd.ko
其中的***因系統而異。
安裝完核心模組後,若執行命令「ls /dev」,則可看到/dev目錄下多了nbd0、nbd1等裝置。
在server2上執行命令:
nbd-client server1-ip 1234 /dev/nbd0
其中server1-ip為nbd server端的ip位址,1234為埠號,/dev/nbd0表示映象裝置,訪問/dev/nbd0等同於訪問server1上的快照卷「/dev/v**m/ lv-vm1snapshot」。如果需要將快照內容拷貝到server2上,只需要對/dev/nbd0進行dd即可,也可mount裝置/dev/nbd0然後訪問其中的檔案。 資料備份和恢復
阿里雲大學課程 資料備份和恢復 課程介紹 您一定會擔心企業的資料安全問題?如果出現了安全問題,企業敏感資料遭受到重大破壞時,您會尋找備份資料進行恢復?備份和恢復技術比較多,怎麼能有效的來進行資料的備份和恢復呢?本認證課程旨在幫助學員了解到常見的資料備份和恢復技術,掌握在windows系統下對sql ...
資料備份和恢復
阿里雲大學課程 資料備份和恢復 課程介紹 您一定會擔心企業的資料安全問題?如果出現了安全問題,企業敏感資料遭受到重大破壞時,您會尋找備份資料進行恢復?備份和恢復技術比較多,怎麼能有效的來進行資料的備份和恢復呢?本認證課程旨在幫助學員了解到常見的資料備份和恢復技術,掌握在windows系統下對sql ...
資料備份和恢復
資料備份是容災的基礎,是指為防止系統出現操作失誤或系統故障導致資料丟失,而將全部或部分資料集合從應用主機的硬碟或陣列複製到其它的儲存介質的過程。傳統的資料備份主要是採用內建或外接的磁帶機進行冷備份。但是這種方式只能防止操作失誤等人為故障,而且其恢復時間也很長。隨著技術的不斷發展,資料的海量增加,不少...