關於我自己

2019年1月29日 星期二

[經驗分享]Proxmox VE 管理介面快速建立 zfspool



Proxmox VE 在 5.2 某個版本起,提供了在 WebUI 上可以點選硬碟後,再選取 zpool 模式即可簡單快速建立的流程,比起以往都要完全下命令列指令,方便許多,也更能防呆。

本文介紹最快速的 WebUI zfspool 建立方式。






建立儲存

將新購硬碟插上伺服器後,先確認是否被系統所成功識別:

確認成功識別新硬碟


確認硬碟進來以後,即可以開始進行建立程序。

點選 [Node 節點] > [Disks 磁碟] > [ZFS] > [建立: ZFS]

準備建立 ZFS 程序


接下來進入 ZFS 建立畫面,填寫 Name 名稱、勾選 Add Storage 加入至儲存,RAID Level 等級依情況選擇 Single Disk 單一磁碟、Mirror 鏡像、RAID10、RAIDZ、RAIDZ2、RAIDZ3 等,最下面再勾選這次建立 zfspool 要用到那幾顆磁碟。

以本次為例,要將兩顆磁碟做成 Mirror 鏡像的 zfspool。

建立 zfspool 設定畫面


建立完成後,列表上就會出現剛剛這個 zfspool 的名稱,點兩下可以查看細節。

查看 zfspool 細節畫面


在左邊樹狀節點上,也會加入這個 Storage 儲存,點選它可以看到內容類型、可用容量等資訊。

查看 Storage 儲存資訊


這個 Storage 已經可以開始使用,例如建立 VM 所使用的 Disk 存放之用。







問題處理


已有分割區無法建立


正常情況下新購硬碟是沒有分割資訊的,但如果真的有呢?或是拿已經分割過的硬碟想分配使用,卻遇到錯誤:

沒有硬碟可以選取


哎呀,竟然連硬碟都沒得選,那該怎麼辦呢?

PVE 的 WebUI 剛剛做出建立 ZFS 的功能,其它部份例如刪除、修改等的部份還沒有像 FreeNAS 那樣的方便與完整,所以我們需要自己下指令清除這些硬碟上的既有資訊。

以這次來說要清除的是 sdc 與 sdd,指令如下:
清除硬碟上的既有資訊
dd if=/dev/zero of=/dev/sdc bs=512 count=1
dd if=/dev/zero of=/dev/sdd bs=512 count=1

執行完畢以後,即已清除相關資訊。

清除磁碟原有分割等資訊


確認清除完成以後,即可回到 WebUI 重新做 ZFS 建立程序。




改用磁碟 ID 建立 zfspool


若對於使用 sdx 格式的名稱建立 zfspool 有特殊愛好者,可以改用 by-id 的方式建立,好處是容易一眼看出型號與序號,便於管理。

首先到 WebUI 查看型號與序號資訊:

查看磁碟型號與序號


接著,請到命令列以指令方式建立。
建立與查詢 zfspool 指令
zpool create ssdpool1 mirror /dev/disk/by-id/ata-MZXXXXXXXXX_XXXXXXXX /dev/disk/by-id/ata-MZXXXXXXXXX_XXXXXXXX 
zpool status ssdpool1

執行 zpool create 後,沒有消息就是好消息,接著再用 zpool status 可以查看是否正確的以磁碟 id 建立,而不是 sdx 這類的名稱。

以 disk id 建立 zfspool 成功



以指令建立完成的 zfspool,在 PVE WebUI 上也可以正常看見,不過以這種方式建立 zfspool,需要自己增加掛載。

掛載有兩種方式 (2019/01/31 修改,加入 Block Level 與 File Level 兩種設定方式)

  • ZFS (Block Level)
    [Datacenter 資料中心] > [Storage 儲存] -> [增加] -> [ZFS],在 zfspool 欄位選取剛剛建立出來的 zfspool,以本例來說就是「ssdpool1」。不過要特別注意,做這個選取動作時,WebUI 必須直接登入到這個節點,才能在選取畫面中出現這台可以選擇的 zfspool。
     
  • Directory (File Level)
    [Datacenter 資料中心] > [Storage 儲存] -> [增加] -> [Directory],把路徑指向剛剛建立出來的 zfspool 掛載點,若 zfspool 名稱為「ssdpool1」,路徑就是「/ssdpool1」。








結論

隨著 Proxmox VE 逐步改版,已經將許多原本只有指令才能操作的功能放到 WebUI 上來,可以預期的是未來 WebUI 功能將會日益完整,讓管理者更加快速方便,也減少因為使用指令操作而發生輸入不慎造成的遺憾事件。





參考資料