安裝pve zfs 如何讓zfs能夠上傳iso檔案以及備份vm

我上一篇文章 「很神奇的電腦公司,能配合安裝esxi、proxmox ve(pve) 」最後終於做好三顆硬碟zfs系統,也依照「 PVE 6 zfs 檢查硬碟狀況並且發通知 」設定好自動檢查程序,但此時我發現這台新主機並沒有地方可以放 ISO檔案以及備份存放區。(OS碟例外)

我希望此ZFS還能當作ISO檔案上載以及備份存放區,改如何做呢?

1、執行zpool list查看初始zfs名稱

root@host:~# zpool list
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
RAIDZ  5.45T  1.59M  5.45T        -         -     0%     0%  1.00x    ONLINE  -
root@host:~#

2、在初始ZFS目錄底下,建立子zfs

#先前執行zpool list得到zfs名稱為RAIDZ,此時我們在RAIDZ底下再新增名為 ISO 子zfs,
#但此時還不能使用。(需以Directory方式掛載)
zfs create RAIDZ/ISO

3、回到pve web網址,在Datacenter新增Directory,並且將ISO子zfs掛載起來

  --

設定完畢,系統將會掛載起來。

大功告成,此時不只能放image與container,還多個RAIDZ-ISO能放ISO檔案與備份檔案惹。

很神奇的電腦公司,能配合安裝esxi、proxmox ve(pve)

有一次要幫朋友的朋友弄一組新電腦,配置為pve 8(SSD)+3顆2T HDD,3顆HDD我打算做RAIDZ,沒想到他們配合的廠商能代為安裝pve 8且不額外收費 ,這樣我就能省去遠端教他們一步一步製作、安裝pve 8。

過了幾天,主機送來了,果真安裝好pve 8 , 我遠端連線過去一台筆電,再連線設定該台pve主機,沒想到要劃分zfs時候,卻發現電腦廠商已經很好心把3顆hdd主動用主機板內建的磁碟陣列功能設定成raid 5,這樣反而造成我的困擾,pve系統提示已有硬體raid(isw_raid_member),無法做zfs

好險後來發現,pve重新wipe 那三顆hdd,電腦重開機之後,isw_raid_member(硬體raid5) 就自動不見了,真是幸運,否則還要跑去朋友的朋友那邊「遠得不要不要公司」處理,實在勞民傷財。


PVE 6 zfs 檢查硬碟狀況並且發通知

zfs很強,pve也支援,但很多要手動調整,例如zfs的快取。直到現在我才發現,pve設定好zfs,若硬碟壞了,是不會主動通知的,甚至使用pve介面查詢,一樣發現不了硬碟壞了,我真的有點驚訝到,或許其他系統如FreeNAS也是如此。

查詢zfs狀態

PVE設定好zfs之後,請定期執行zfs檢查

#zpool scrub <zfs名稱>
#例如我在pve使用3顆1T硬碟,作成zfs,名稱取為Z1
#我就可以輸入以下指令,進行背景檢查
zpool scrub Z1
#若不想背景檢查,則改成
zpool scrub -S Z1

當執行完 zpool scrub指令後,可以再下zpool status -v ,此時會出現 scrub in progress(正在執行中)字樣

最後發現一顆硬碟壞了

此時使用pve gui介面,才會出現錯誤訊息

設定zfs 設定檔案,使其能正確發送email

vi /etc/zfs/zed.d/zed.rc
######################################################3
#請修改紅色部分
ZED_EMAIL_ADDR="it@test.com"
ZED_NOTIFY_INTERVAL_SECS=3600

#若為1則任何zfs動作一律發email,懶得測試0,反正email多收比少收好 
ZED_NOTIFY_VERBOSE=1 
######################################################3

設定crontab並且測試

收到email了,但硬碟壞一顆,不開心

其他指令

#若更換硬碟後,需要resilver
zpool resilver <zpool名稱>

pve 6上調整zfs快取大小

我自己在pve 6上使用zfs的經驗不是很順利;有遇到慢的、不穩的,現在可能還需要調整zfs的快取大小,才能讓zfs順利使用。
新增一個檔案 /etc/modprobe.d/zfs.conf
並修改如下:

範例為最小4G, 最大16G, 可自行依照主機實力設定,千萬不可多。 修改後重開機, 可下arcstat 查詢是否成功

options zfs zfs_arc_min=4294967296
options zfs zfs_arc_max=17179869184
options zfs zfs_flags=0x10

pve 無法移除自身zfs的vm檔案

查看zfs的狀態

root@pve:/dev/zvol/zdata# zpool status
   pool: zdata
  state: ONLINE
   scan: scrub repaired 0B in 2h35m with 0 errors on Sun Mar  8 02:59:48 2020
 config:
 NAME                                           STATE     READ WRITE CKSUM zdata                                          ONLINE       0     0     0   mirror-0                                     ONLINE       0     0     0     wwn-0xDC_WD10EZEX-08WN4A0_WD-WCC6Y3LRYL6X  ONLINE       0     0     0     wwn-0xDC_WD10EZEX-08WN4A0_WD-WCC6Y2SYFNY2  ONLINE       0     0     0
 errors: No known data errors

查看zfs的檔案

root@pve:/dev/zvol/zdata# zfs list -t volume
 NAME                  USED  AVAIL  REFER  MOUNTPOINT
 zdata/vm-100-disk-0  33.0G   175G    56K  -
 zdata/vm-100-disk-1   683G   142G   683G  -
 zdata/vm-101-disk-0  27.0G   142G  27.0G  -
 zdata/vm-102-disk-0  10.3G   142G  10.3G  -
 zdata/vm-103-disk-0  4.12G   142G  4.12G  -

刪除某個vm, 但是失敗

root@pve:/dev/zvol/zdata# zfs destroy zdata/vm-103-disk-0
 cannot destroy 'zdata/vm-103-disk-0': dataset is busy

停用 multipathd 服務, 然後再刪除看看, 結果成功

root@pve:/dev/zvol/zdata# systemctl stop multipathd.service
 Warning: Stopping multipathd.service, but it can still be activated by:
   multipathd.socket
root@pve:/dev/zvol/zdata# zfs destroy zdata/vm-103-disk-0
root@pve:/dev/zvol/zdata# zfs list -t volume
 NAME                  USED  AVAIL  REFER  MOUNTPOINT
 zdata/vm-100-disk-0  33.0G   179G    56K  -
 zdata/vm-100-disk-1   683G   146G   683G  -
 zdata/vm-101-disk-0  27.0G   146G  27.0G  -
 zdata/vm-102-disk-0  10.3G   146G  10.3G  -
 root@pve:/dev/zvol/zdata# 

FreeNas(11.2) 的 NFS 效率低落

咖啡偶使用FreeNas分享的NFS路徑的時候, 發現效率低落, 非常緩慢, 硬碟一直在閃.

網路查詢的結果有可能在於 zfs 隨時執行資料同步造成的, 因此可以停掉隨時同步的功能, 據說也沒有人遇到突然關機造成系統資料錯誤的問題, 所以咖啡偶就衝下去惹, 步驟如下:

1. ssh登入FreeNas

2. 列出zfs管理的目錄

root@freenas[~]# zfs list                           
NAME                USED  AVAIL  REFER  MOUNTPOINT
Data6T             8.35T  1.86T   723G  /mnt/Data6T

3. 停用指定的目錄

zfs set sync=disabled Data6T

實驗結果真的速度變好快, 真的太棒了!

XigmaNAS(原Nas4Free)如何卸載pool

XigmaNAS 要卸載pool的時候,必須考慮到正在使用的服務, 停用相關的服務,才可卸載(umount),

否則會出現device busy can not umount error.

建議卸載步驟:

1.備份pool的資料

2. 停用相關服務(如smb, iscsi)

3. 停用virtualbox並且刪除vm

4. ssh登入server , 輸入

zfs umount -f <mount point>

5. 使用web功能刪除pool