iT邦幫忙

2021 iThome 鐵人賽

DAY 4
4
IT管理

突破困境:企業開源虛擬化管理平台系列 第 4

Proxmox VE 儲存基本配置

https://ithelp.ithome.com.tw/upload/images/20210919/20118848AQAm06lWxI.png

將 Proxmox VE 系統升級至最新版本以後,接著可以來準備磁碟與儲存集區,以提供客體機與其它所需檔案之放置空間。


檢視硬碟資訊

將頁籤切換至 磁碟,右方會將此節點的所有磁碟裝置顯示於清單之中。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848cDtHf3vcfq.png
磁碟清單

在磁碟清單中,會顯示目前已經連接在這個節點上的磁碟,並將詳細資訊顯示於各個欄位之中。較重要的欄位說明如下:

  1. 裝置:顯示該磁碟在作業系統中的名稱,例如 sda、sdb、nvme0n1...等,依據不同裝置類型,會有不同的命名規則
  2. 類別:顯示這個磁碟的連接類型,例如 SSD 表示這是一個 SATA/SAS 內接式的固態硬碟,NVME 表示它是經由 NVME 介面連接的裝置,USB 則是指這是插在 USB 連接埠的外接隨身碟或硬碟
  3. 使用方式:所使用的檔案系統,例如 ZFS、EXT4、XFS、BTRFS...等
  4. 大小:顯示這個磁碟的總容量
  5. 型號:該磁碟的硬體廠牌與型號
  6. 序號:該磁碟的出廠序號,這個資訊非常重要,往後在更換磁碟時要依靠他做正確的判斷
  7. S.M.A.R.T.:這是一種磁碟的自我監測與報告技術,可以提供磁碟的各種健康指數,並依據資訊判斷磁碟是否狀況良好,以利管理者及早準備
  8. Wearout:SSD (固態硬碟) 採用快閃記憶體做為儲存載體,基於本身特性關係有使用耗損的壽命問題。各廠 SSD 發展出耗損平均技術 (Wear Leveling) 解決問題,經由控制器可以計算提供目前已經耗損的比例,做為 SSD 是否更換的參考依據。

 
 

如果想要深入了解磁碟的健康狀況,還可以在選定磁碟後可以按下上方的 顯示 S.M.A.R.T. 數值,或是直接連點該磁碟兩下,會彈出磁碟的健康狀況細節。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848eIaJUktJXy.png
磁碟健康狀況細節

有了這些資訊,可以方便管理者省下登入命令列介面,輸入指令查詢的時間。


建立儲存集區

在實際的應用上,安裝 Proxmox VE 系統的磁碟建議是獨立一顆磁碟,而要用來放置客體機虛擬磁碟的位置則存放在由其它磁碟所組成的磁碟集區為佳。

經驗談:
在過去多年的應用案例中有遇過以及特別測試驗證,如果將客體機磁碟存放在與 Proxmox VE 系統同一個磁碟上,在系統忙碌尤其是磁碟 IO 讀寫 (特別是寫入),有一定機率造成下次開機時系統無法正確啟動,需要進行修復。這個原因在於磁碟 IO 效能不夠加上塞車,從而導致了這場偶發的悲劇。

 
 

儲存集區顧名思義是由「多顆磁碟集合起來的儲存區域」,但其實只用一顆也可以建立儲存集區,就看我們如何配置。在本節的建立程序中,將以 Proxmox VE 預設推薦的本機檔案系統 ZFS 進行操作。

請點選頁籤中的 磁碟 > ZFS,右方清單會顯示這個節點目前已經存在的 ZFS 儲存集區,其中的 rpool 是我們安裝 Proxmox VE 系統在第一顆磁碟並選擇 ZFS 所產生的系統使用集區。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848fYdF32o6sQ.png
ZFS 儲存集區清單

按下上方的 建立: ZFS 按鈕,即可進到 ZFS 儲存集區建立視窗,其中有多種模式可以選擇。

 
 

建立集區 (一顆磁碟)

使用一顆磁碟建立是最簡單的方式,只要挑選任何一種新的磁碟,SATA、SAS、USB 等等介面只要是作業系統可以識別的磁碟裝置的均可。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848mfpKSu0kbH.png
建立一顆磁碟的 ZFS 儲存集區

請在 名稱 欄位輸入要給予這個儲存集區的名稱,例如 vmdisk-1,記得不要使用中文。

接著勾選 加入至儲存 以便於建立完成後可以直接掛接進 Proxmox VE 資源檢視區中進行使用。

若我們只有一顆磁碟,請在 RAID 等級: 右方的下拉清單中請選取 單一磁碟,其餘先維持預設值不做更動。

在下方清單中,請勾選要用那一顆磁碟建立 ZFS 儲存集區,以圖中為例勾選 /dev/sdb 這一顆,完成後按下 建立 即可,完成後回到清單即可看到剛剛建立完成的 vmdisk-1,同時在左邊的資源檢視區中也多出了 vmdisk-1 可以使用。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848T0ycYdQ2XJ.png
建立完成的 vmdisk-1 儲存集區

在新的儲存集區上點兩下,或是按 詳細內容 按鈕,可以查看更詳細的內容,包括該儲存集區的定期狀況掃描結果,以及問題報告。

下方清單會顯示本儲存集區的磁碟組成,後方的 READWRITE 欄位顯示有多少讀取與寫入的錯誤發生,後方的 CKSUM 則是在讀取資料時取用原先寫資料寫入時所計算並存入的校驗碼 (Checksum),如果不相符表示原始資料已經發生錯誤,ZFS 會嘗試修正。若 CKSUM 數值一直降不下來,該磁碟已經不堪使用,請儘早更換。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848xmb9469Q8O.png
檢視 vmdisk-1 儲存集區細節

 
 

建立集區 (兩顆磁碟,使用鏡像)

若想要提升存放客體機虛擬磁碟儲存集區的可靠度,可以使用兩顆相同規格與容量的磁碟組成 Mirror 鏡像模式 (也就是傳統習知的 RAID1),可以提供一顆磁碟的容錯能力。當然,您也可以一次使用三顆甚至四顆磁碟組成鏡像,拉高更多的容錯磁碟數,只是容量永遠是維持在一顆磁碟的水準,是有點浪費成本。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848gBteBOFU1T.png
建立兩顆磁碟的鏡像 ZFS 儲存集區

前置操作步驟與 建立集區 (一顆磁碟) 一節的方式相同,在 RAID 等級: 右方的下拉清單中請選取 Mirror,其餘仍然維持預設值不做更動。

下方的清單中,請將要用來組成鏡像的兩顆磁碟勾選,完成後按下 建立 即可,完成後回到清單即可看到剛剛建立完成的 vmdisk-1,同時在左邊的資源檢視區中也多出了 vmdisk-1 可以使用。

回到 ZFS 儲存集區清單,在建立出來的 vmdisk-1 點選兩下,可以查看組成細節的不同,裝置清單中顯示一個 mirror-0 下有兩個裝置 /dev/sdb1/dev/sdc1,表示這個 mirror-0 鏡像儲存集區裡由兩個磁碟組成沒錯。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848hAml0TvSV6.png
檢視鏡像 vmdisk-1 儲存集區細節

 
 

建立集區 (三顆磁碟,使用 RAIDZ1)

前面使用的鏡像模式雖然已經可以達到容錯能力,但是不管併了幾顆磁碟進來容量永遠只有一顆,對於實際使用的資料成長量肯定不敷使用。

在 ZFS 的軟體陣列提供了 RAID10RAIDZ1RAIDZ2RAIDZ3 等多種模式,RAID10 即是對應於傳統習知的 RAID1+0 (先分別組 RAID1 後再以 RAID0 合併),至於 RAIDZ1、RAIDZ2 則分別對應於傳統習知的 RAID5、RAID6。若要容易記憶後三者的特性,我們可以這樣記住口號:

  • RAIDZ1:可以容許故障 1 顆,最少要以 3 顆磁碟組成
  • RAIDZ2:可以容許故障 2 顆,最少要以 4 顆磁碟組成
  • RAIDZ3:可以容許故障 3 顆,最少要以 5 顆磁碟組成
補充:
在 Proxmox VE 介面中以 RAIDZ 稱呼 RAIDZ1,這兩者是同樣的項目。

這樣看起來是不是容易記住多了呢?其實 ZFS 的軟體定義陣列還有非常多的玩法,待我們在後續章節再來好好的深入了解它。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848cAHZmcc9qB.png
建立三顆磁碟的 RAIDZ ZFS 儲存集區

前置操作步驟與 建立集區 (一顆磁碟) 一節的方式相同,在 RAID 等級: 右方的下拉清單中請選取 RAIDZ,其餘仍然維持預設值不做更動。

下方的清單中,請將要用來組成 RAIDZ1 的三顆磁碟勾選,完成後按下 建立 即可,完成後回到清單即可看到剛剛建立完成的 vmdisk-1,同時在左邊的資源檢視區中也多出了 vmdisk-1 可以使用。

回到 ZFS 儲存集區清單,在建立出來的 vmdisk-1 點選兩下,可以查看組成細節的不同,裝置清單中顯示一個 raidz1-0 下有兩個裝置 /dev/sdb1/dev/sdc1/dev/sde1,表示這個 raidz1-0 RAIDZ1 儲存集區裡由兩個磁碟組成沒錯。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848wKV6Df0QEq.png
檢視 RAIDZ vmdisk-1 儲存集區細節

 
 

經由 Proxmox VE 所提供的方便管理介面,協助我們在進行 ZFS 相關作業時的技術門檻大大降低,而且更能節省許多管理者的時間。

提醒:
本節範例使用 USB 磁碟做為示範,實際上線使用環境時請選擇 SATA/SAS/NVME 等介面磁碟,以確保穩定的存取能力。

建立儲存集區時問題處理

前面的各項儲存集區建立作業都相當順利,但這個是在全新或者是空白磁碟的情況下才能完成,若使用的磁碟已經存在過其它分割區或其它作業系統格式化過的檔案系統,在 Proxmox VE 介面上的防呆會阻止您以該磁碟做為儲存集區的建立來源。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848FLpUYbOeQd.png
建立儲存集區時失敗

這一則建立失敗的訊息無法讓我們看清楚原因,可以點選下方作業記錄區該則事件兩下,以檢視詳細的失敗原因資訊。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848HceiMaWeuC.png
檢視詳細的失敗原因

在這裡的訊息很明確的指出該磁碟已經有 EFI 標籤存在,所以拒絕我們在上面建立 ZFS 檔案系統,以免覆蓋原有資料。其它還有不同的錯誤類型,有可能是已經存有 Partition 分割區等等,都是同樣狀況。

面對這種狀況,我們有兩種處理方式,第一種是先把該磁碟在接其它作業系統上清除所有磁碟分割區,在不同作業系統上的作業工具如下:

Windows

  • 磁碟管理 (內建視窗化工具)
  • Diskpart (內建命令列工具)
  • EASEUS Partition Master Free (第三方視窗化工具)
  • AOMEI Partition Assistant Standard Free (第三方視窗化工具)
  • Macrorit Disk Partition Free (第三方視窗化工具)
提醒:
這些第三方工具軟體免費版本僅限於非商業使用。

Linux

  • GParted (內建視窗化工具)
  • fdisk (內建命令列工具)

macOS

  • 磁碟工具程式 (內建視窗化工具)
  • diskutil (內建命令列工具)

這些工具的使用方式不在此說明,您可搜尋參考網路上的其它相關教學文章,我也有整理一些不錯的教學列於本文的參考資料小節。

 
 

如果已經把磁碟安裝至 Proxmox VE 主機上,那麼我們可以怎麼處理呢?遇到這種狀況,我們需要使用第二種方式。

請在 磁碟 頁籤中,先選取該磁碟再按下 抹除磁碟 按鈕。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848IwGb6Y11hr.png
抹除磁碟內容

此時 Proxmox VE 會彈出確認對話框,顯示這個磁碟的識別資訊讓您確認,以確保要抹除的是正確磁碟,防止資料不慎遺失。

https://ithelp.ithome.com.tw/upload/images/20210919/20118848NExFUeIVew.png
抹除磁碟內容

若確認無誤,按下 之後即會開始進行,當進度完成至 100% 且視窗消失時即表示完成。若您不想等待完成或需要進行其它作業,可以將該對話窗關閉,它會在背景繼續作業且呈現在下方的作業記錄區當中。

當作業完成以後,您就可以用這顆磁碟來建立新的 ZFS 儲存集區了。


參考資料


上一篇
Proxmox VE 版本升級設定
下一篇
Proxmox VE 安裝虛擬機:Windows 10 (一)
系列文
突破困境:企業開源虛擬化管理平台30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
liaommx
iT邦新手 5 級 ‧ 2022-10-24 21:44:07

請問js前輩,
這幾天正好開始研究PVE,
有其他前輩介紹你這系列文,所以開始慢慢研究

這邊碰到幾個疑惑.
我手邊有一個4bay 3.5"+1bay 2.5"的硬體
2.5"我安裝了ssd,
也把PVE系統裝在ssd上面(全部分配給PVE,這邊假設step 0)
啟動系統後,看到硬碟中的確有5個(4個HDD+1個SSD)
https://ithelp.ithome.com.tw/upload/images/20221024/20154324TCYzuFsjzA.png

假設我希望的配置是
在ssd硬碟上安裝pve系統控管所有的裝置和vm
然後分配100G裝windows,
分配50G裝truenas(掛載四顆HDD硬碟)

請問這邊step0的部分是不是就要先分割好?
PVE本身建議的size有沒有什麼需求呢?
還是說直接下一步,完整安裝pve到ssd就好?

另外我安裝的truenas的部分(這部分可能會搭配到下一篇文章相關)
我是要直接建立一個4顆HDD的zfs呢?
還是要在剛剛step 0的地方分割完truenas要用的大小,然後掛載這邊4顆hdd的zfs?

這部分不清楚前輩有沒有什麼建議呢?

因為初次接觸pve,還有很多不懂的地方,希望前輩解惑,謝謝

sda 整個做為 PVE OS 碟,不要做其它用途。

upsangel iT邦新手 5 級 ‧ 2023-09-12 11:41:37 檢舉

另外我安裝的truenas的部分(這部分可能會搭配到下一篇文章相關)
我是要直接建立一個4顆HDD的zfs呢?
還是要在剛剛step 0的地方分割完truenas要用的大小,然後掛載這邊4顆hdd的zfs?

你也可以考慮將 trunas系統裝在SSD,作爲PROXMOX的虛擬機或LXC。另外 四個HDD 用直通 passthrough 的方法交給TRUENAS管理,給TRUENAS去創建ZFS。
這樣的好處是能利用TRUENAS的NAS管理和ZFS支援,不好是所有HDD都依賴TRUENAS做介面,TRUENAS不開機/有問題就全部HDD訪問不了。
大陸有人分享這樣做:https://foxi.buduanwang.vip/virtualization/pve/1183.html/

我要留言

立即登入留言