【首先謝謝「也是新手」讀者先幫忙回了這個問題】
先和大家說聲抱歉,一直忙新書上市的事,因此回文也慢,希望這周能慢慢恢復正常。讀者們常常詢問使用USB直接從Service Console備份Datastore中的問題,事實上在大部分的情況下是不建議的,但還是有這方面的需要,尤其是現在USB Flash的容量越來越大,能直接從Service Console下將資料備份到USB上,對中小型企業,ESX伺服器在身邊的環境來說的確很方便,比使用備份軟體,WinSCP等工具軟體來說的確也比較直觀,因此在這篇文章中,我們就來看看如何使用Service Console中,直接存取USB儲存設備的完整過程。
在開始之前,我們先必須確定下面幾個步驟。
1、USB硬碟是能被ESX認識,並且可以寫入的。目前ESX能讀寫的檔案系統包括了Linux的ext以及Windows下的FAT32。如果你的硬碟是NTFS的話,可能就無法寫入(只能讀取),這就無法完成備份的要求了。
2、ESX有完整安裝,因為在安裝ESX時,必須安裝USB的驅動程式。只要你的ESX系統在安裝時沒有特別「不安裝」什麼,大部分的系統都可以執行。
接下來我們就來看看詳細步驟。
先設定ESX中的USB存取部分
首先我們進入ESX的Service Console,不管是使用SSH,直接到本機,或是使用Dell Perc之類的遠端遙控,重點是必須能使用指令。由於在安裝ESX時,系統會將大部分的空間給Datastore用,因此我們從fdisk中看到的,都是系統碟,目前是看不到USB硬碟的。我們在Service Console下輸入
fdisk -l
![usb02](http://farm5.static.flickr.com/4103/5024863989_bde47a146c_o.jpg)
可以看到目前的sdb就是系統碟。接下來我們將USB Flash插入,輸入
tail -f /var/log/messages
![usb01](http://farm5.static.flickr.com/4127/5024863875_e6d4934b50_o.jpg)
會發現出現「usb-storage」,但此時系統會以VM為主,因此在Service Console之下,還是看不到USB硬碟。我們要將USB的控制從VM上移到Service Console之中。
在ESX/ESXi中,將USB的控制權交還給Service Console,需要將usbarbitrator這個參數關閉,因此我們必須輸入
chkconfig usbarbitrator off
![usb04](http://farm5.static.flickr.com/4092/5025477630_7170cf81b7_o.jpg)
這個動作是讓USB的使用從系統管理,還原到Service Console之下。在設定完之後,必須重新啟動ESX,輸入「reboot」重新啟動ESX。重新啟動之後,當插入USB硬碟時,系統會自動有訊息,並且提示已經抓到USB硬碟,並且指定到sda這個硬碟了。
![usb05](http://farm5.static.flickr.com/4132/5024864319_ee3fccd1c9_o.jpg)
我們可以再輸入「fdisk -l」來查看,發現剛才的USB硬碟已經被認識,在嘉許的系統中,是「/dev/sda」,並且其上有一個分割區是「/dev/sda1」。
![usb06](http://farm5.static.flickr.com/4129/5025477826_9ae68f09b5_o.jpg)
將USB硬碟掛載入ESX的Service Console之下
找到硬碟之後,就可以將這個分割區掛載到Service Console的檔案系統之下了。首先我們先建立一個臨時的目錄,輸入
mkdir /mnt/usbdisk
![usb07](http://farm5.static.flickr.com/4103/5024864509_e0cc2edec3_o.jpg)
輸入完之後,我們就要將USB硬碟掛載在這個目錄之下。接下來輸入
mount /dev/sda1 /mnt/usbdisk -t vfat
![usb08](http://farm5.static.flickr.com/4147/5025478030_cd3292cd0a_o.jpg)
這個指令的參數是將「/dev/sda1」這個裝置掛載到「/mnt/usbdisk」這個目錄下。而「-t vfat」則是指定該分割區的檔案系統。如果你的USB硬碟是Linux可認出的ext2/3的話,甚至可以不需要輸入檔案系統「-v」的參數。
找到置放VM的Datastore並且開始複製
接下來我們進入/mnt/usbdisk」查看,可以看到這個USB硬碟的檔案,接下來要將資料拷貝出來就簡單了。舉例來說,如果我們想要將本機硬碟上的某個Datastore中的VM複製到USB硬碟中,只要先找到該VM置放的Datastore,再使用標準的Linux指令將資料copy出來就行。舉例來說,我們要將Nostalgia下的VM備份到USB中,只要輸入下面的指令即可。
cp /vmfs/volumes/datastore1/Nostalgia/*.* /mnt/usbdisk/.
![usb09](http://farm5.static.flickr.com/4107/5024864801_69af4bf3a0_o.jpg)