2019年1月22日 星期二

[經驗分享]Proxmox VE 上傳 ISO 檔注意事項與技巧


在 Proxmox VE 建立 VM 虛擬機完成後安裝系統,需要先掛載安裝 ISO 檔開機後開始進行安裝程序,有那些方法可以讓我們把手上的 ISO 檔案放進 PVE 的放置區呢?




備註:

  • 預設路徑 /var/lib/vz/tmplate/iso/
  • 本文範例 /vmimage/template/iso/




方法一

第一種方法,就是最為容易使用,在 WebUI 上簡單點選即可操作。

WebUI 上傳 ISO 映像檔


如圖所示,點選 Storage 儲存區後,進入 Content 內容,再按下 Upload 上傳按鈕即可進入上傳介面,非常容易。

對於經常使用此功能的使用者,應該會發現有幾個問題,雖然不是大問題,但可能造成困擾。



缺點一:介面等待

開始上傳進度以後,使用者會發現這個介面是強制等待的,不像其它 PVE 的作業可以把視窗關閉後會在 Task 作業區繼續進行,而是結束正在進行的上傳作業。



缺點二:搬移等待

當上傳完成以後,我們一般會認為可以開始使用這個 ISO 檔了,但曾經在某一台比較慢的伺服器上發現,明明上傳完成了,怎麼 ISO 檔還不能用?或是掛起來開機了,但是啟動失敗或是安裝時發生錯誤。

仔細看看下方的 Task 作業視窗,就會發現多了一項作業正在進行。

上傳完成後多一項進行中作業



其實,上傳完成不代表真的完成了,PVE 在 WebUI 接受的上傳檔案作業,實際上是先寫入 /var/tmp 內的暫存檔,當上傳完成後才把這個 ISO 檔放置到實際上應該的位置去,所以我們上傳有兩段等待時間,一是上傳,二是複製

我們可以點選這個項目兩下觀看細節。

上傳作業後置程序


所以這項 Copy data 作業未完成之前,任何使用此 ISO 檔的動作都會有問題。

另外,如果 /var/tmp 所在的磁區容量不夠大,當上傳的 ISO 檔超過此區大小時就會造成上傳失敗





方法二

前面提到,方法一的上傳會有兩個等待階段,若 ISO 檔案很大,那麼等待的時間將會很久,有沒有更快的辦法呢?

有的,我們可以利用 SFTP 工具上傳 ISO 檔案,直接把檔案放到存放 ISO 的專用位置去。

以 FileZilla 上傳 ISO 映像檔


可以利用指令列的 SCP、SFTP 等指令進行上傳,或者使用圖形介面的 FileZilla 動手拖曳,即可完成上傳。


缺點:預先下載

好了,方法一的缺點已經解決,但又想到了一個問題。

既然要用軟體把 ISO 映像檔給丟進去,這表示已經預先下載好了,也就是說還是有兩段作業時間,第一是先下載到工作用電腦,第二是用軟體上傳到 PVE 伺服器。

還有沒有更快的方法?有。





方法三

為了節省先下載到電腦再上傳進 PVE 的時間,我們應該要讓 PVE 直接去抓取所需 ISO 映像檔。

首先,在介面上開啟 Node 節點的 Shell 命令列,或是用 SSH 登入 PVE。

進入 PVE Node 節點 Shell 命令列



接下來,請準備 ISO 的來源下載位址,以 FreeNAS 為例:

取得 ISO 檔案下載位址


有了下載位址以後,就可以利用指令讓 PVE 直接下載該檔案到指定位置。

下載 ISO 映像檔到指定位置
wget https://download.freenas.org/11.2/STABLE/U1/x64/FreeNAS-11.2-RELEASE-U1.iso 
-O /vmimage/template/iso/FreeNAS-11.2-U1.iso


執行以後,就可放著讓 PVE 自己下載了,這個小技巧直接又方便。

直接在 PVE 伺服器下載完成






參考