玩了幾天的 Proxmox VE 後 , 要開始建立我的 NAS 了
我的 Server 中其實有三顆硬碟 , 第一顆 160G 是安裝 Proxmox VE , 有兩個 500G 用主機板的 RAID BIOS 建立磁碟陣列 , 因此我要再建立一個 OpenVZ 出來當作 NAS Server
而基本上 OpenVZ 建立的虛擬機 , 是沒有辦法使用實體硬碟的 , 而且 Proxmx VE 預設是不會偵測 Fake RAID(主機板的假 RAID) , 因此只好手動來做了
首先要先解決 Proxmox VE 沒偵測到我的硬碟的問題 , 我的主機板的晶片是 ICH9R 的 , Linux Kernel 2.6.24 是有支援的 , 但因為 Proxmox VE 沒有安裝 dmraid 這個套件 , 所以就沒偵測到 , 因此我就在 proxmox 下用以下列指令來來建立我的磁碟陣列裝置
apt-get install dmraid
dmraid -ay
如果安裝了 dmraid 套件後並且啟用之後會發現 /dev/mapper/ 下多了個 isw_ecfbfjiafh_Volume0 這類的裝置 , 那代表磁碟陣列裝置有抓到了 , 接下來就是要讓 NAS Server 能夠用這個磁碟陣列
由於 OpenVZ 沒辦法直接使用硬碟 , 因此要先用 proxmox 去 mount 實體硬碟之後 , 然後用 mount --bind 的方式讓 NAS Server 使用 , 我就先假定 proxmox 下的 /mnt/nas 是我要去 mount 實體硬碟的目錄 , 而 /mnt/nas 將會用 mount --bind 去對應到編號 102 虛擬機的 /data 目錄 , 作法如下
- 先對硬碟做分割及 format 動作 , 做完之後 , 應該 /dev/mapper 下又多出了分割的裝置 , 例如我就整顆硬碟 format 成 ext3 , 在 /dev/mapper 下就多了個 isw_ecfbfjiafh_Volume01 裝置檔
- 然後將裝置檔 mount , 例如 mount -t ext3 /mnt/nas , 當然若寫在 /etc/fstab 也可以 , 這樣開機就自動 mount 了
- 在虛擬機下的目錄建立 data 目錄 , mkdir /var/lib/vz/root/102/data
- 執行 mount --bind /mnt/nas /var/lib/vz/root/102/data
弄好之後 , 進入 NAS Server 的環境下 df 指令 , 應該會變成下面的樣子
[root@nas /]# df 檔案系統 1K-區段 已用 可用 已用% 掛載點 simfs 8388608 605620 7782988 8% / /dev/mapper/isw_ecfbfjiafh_Volume01 480696480 13211584 443066100 3% /data none 4081288 4 4081284 1% /dev
這樣該 NAS Server 就可以完全存取這整顆硬碟了 , 當然以上所說的是手動方式 , 若要讓虛擬機啟動時候自動 mount , 則必須撰寫 /etc/vz/conf/102.mount 及 /etc/vz/conf/102.umout 兩個 shell , 讓虛擬機在啟動或停止時自動 mount 及 umount
, 撰寫前 , 要先確定 NAS Server 這個虛擬機是否在 stopped 狀態 , 一定要是這狀態 , 不然會 mount 不起來
102.mount 內容如下
#!/bin/bash
source /etc/vz/vz.conf
source ${VE_CONFFILE}
mount --bind /mnt/nas ${VE_ROOT}/data
102.umount 內容如下
#!/bin/bash
source /etc/vz/vz.conf
source ${VE_CONFFILE}
umount ${VE_ROOT}/data
當寫好這兩個檔案後 , 權限要設定為可執行(chmod +x) , 然後就可以重開虛擬機了 , 以上關於 OpenVZ 掛載實體硬碟的資料是參考下面原文說明來做修改的