在 Proxmox VE 5.1 LXC 中安裝 OpenMediaVault 4

OpenMediaVault 不知不覺已經出到 4 了,也正式支援 Debian 9,以前在 omv3 時想要把他裝在 lxc 要做不少設定,現在變得簡單許多啦,大概 10 分鐘就可以裝起來了。

準備

  • 一個夠用的 zpool

 

新增 Debian 9 的 Lxc

這個部份我全部都照預設來建立,我的分配如下:

CPU Ram Disk Swap
4 Cores 8192 MB 16 GB 2048 MB

 

建好以後先別急著開機,我參考先前 omv3 的安裝方法 OpenMediaVault installation in LXC with attached HW block device 照著修改 Lxc 的設定,在剛剛新建的 Lxc 的 conf  (/etc/pve/lxc/LXC_ID.conf)上加上這三行:

lxc.apparmor.profile: unconfined
lxc.mount.auto: cgroup:rw
lxc.mount.auto: proc:rw
lxc.mount.auto: sys:rw

 

 

修改完存檔再把 Lxc 開機,在更新 Lxc 之前先把 APT 改到國網中心的鏡像站,這樣更新速度會快非常多:

 

之後下指令更新系統,我習慣更新後重啟 Lxc:

apt update && apt dist-upgrade -y && reboot

 

 

新增 APT Source

echo "deb http://packages.openmediavault.org/public arrakis main" > /etc/apt/sources.list.d/openmediavault.list

 

在下 apt update 之前需要先修正 NO_PUBKEY 的問題,但是如果直接新增會發現缺了套件 dirmngr,先安裝:

apt-get install dirmngr

 

取得公鑰:

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5

 

 

 

安裝 OpenMediaVault

這個步驟需要一點時間,檔案有點大,不過比起之前的安裝步驟來說現在真的簡單多了。

apt update
apt-get install openmediavault
poweroff

Lxc 關機後就可以來建立硬碟了。

 

 

以下都操作都在 PVE 內進行,不是LXC內

新增 Virtual Block Device

再來要透過 ZFS 來模擬一個假的硬碟讓 OMV 以為他真的有硬碟了,其實上只是建立一個 Virtual Block Device 再 Passthrough 給 Lxc 抓,我的 POOL 是 3TB*4 使用 RaidZ1 組成的 zpool,容量自己調整:

zfs create -V 1024G YOUR_ZPOOL/omv_sda

 

看一下這假硬碟在 PVE 內的位置是在哪裡:

ls /dev/zvol/data/OMV_sd* -al
lrwxrwxrwx 1 root root 11 Apr 1 03:40 /dev/zvol/data/OMV_sda -> ../../zd192
ls -al /dev/zd192
brw-rw---- 1 root disk 230, 192 Apr 1 04:19 /dev/zd192

 

這兩個紅色的數字相當重要,等等 passthrough 硬碟的時候用的到,在 Lxc 的 conf 加上這幾行:

lxc.cgroup.devices.allow: b 230:192 rwm
lxc.cgroup.devices.allow: b 230:193 rwm  
lxc.autodev: 1
lxc.hook.autodev: /var/lib/lxc/ID/mount-hook.sh

之後在omv格式化硬碟的時候須要去讀寫 sda1,在 vdev 中分割的話他的數字就會 +1,我測試了一下如果不加 193 這行的話 OMV 是沒有辦法新增檔案系統的,會出現一堆錯誤訊息。(沒加的話 blkid 抓不到硬碟)

 

新增 script 讓 Lxc 啟動時自動掛載 Virtual Device 成 sda 到 Lxc 內:

vim /var/lib/lxc/ID/mount-hook.sh

 

加入以下內容:

mknod -m 777 ${LXC_ROOTFS_MOUNT}/dev/sda b 230 192
mknod -m 777 ${LXC_ROOTFS_MOUNT}/dev/sda1 b 230 193

增加執行權限:

chmod +x /var/lib/lxc/ID/mount-hook.sh

 

這是我完整的設定檔:

arch: amd64
cores: 4
hostname: omv4
memory: 8192
net0: name=eth0,bridge=vmbr0,gw=172.16.0.254,hwaddr=8A:34:43:CD:B0:CE,ip=172.16.0.21/24,type=veth
ostype: debian
rootfs: local-zfs:subvol-111-disk-1,size=16G
swap: 2048
lxc.apparmor.profile: unconfined
lxc.mount.auto: cgroup:rw
lxc.mount.auto: proc:rw
lxc.mount.auto: sys:rw
lxc.cgroup.devices.allow: b 230:192 rwm
lxc.cgroup.devices.allow: b 230:193 rwm
lxc.autodev: 1
lxc.hook.autodev: /var/lib/lxc/111/mount-hook.sh

 

然後..就可以把 Lxc 打開了 XD

 

登入OMV4

預設帳號密碼是 admin/openmediavault,安裝的時候就會提示了,點一下 儲存裝置 >磁碟 可以看到硬碟囉:

 

但是在 SMART 的部份會出現錯誤,不過不要緊,因為硬碟的健康狀況可以直接在 PVE 上面檢查,我只要 omv 可以提供服務就好了:

 

再點一下檔案系統,格式化一下硬碟,單碟就可以了,Raid 的部份已經透過 ZFS 來做了,系統格式當然選效能最好的 EXT4:

 

初始化儲存空間需要一點時間:

 

跑完就可以抓到硬碟容量了:

 

測試了一下 SMB…直接吃滿 1G 的速度…爽XD

 

 

問題

如果系統一直噴錯,請先在 PVE 內將該裝置切成一個獨立的分割區,這樣子就不會出現這個錯誤了

 


See also

comments powered by Disqus