以 Vinum 建立軟體式磁碟陣列

前言

磁碟機陣列組 (RAID, Redundant Array of Independent Disks)
  • Concatenate:HDD 容量相加,資料一顆 HDD 寫才完換另一顆 HDD。
  • RAID-0 (Stripe):HDD 容量相加,資料分散寫入每個串連的 HDD 可使 I/O速 度加快。
  • RAID-1 (Mirror):HDD 的資料存 2 份,一顆正本另一顆副本。
  • RAID-5 (Rotated Block-Interleaved Parity):資料分散寫入 HDD,並有一個同位元檢查 (Praity),當其中一顆 HDD 損壞時仍可繼續運作。
  • RAID-10 (Stripe+Mirror):至少 4 顆 HDD,也就是把容量相加又同時存 2 份。



Vinum 技術名詞
  • Drives:實體 HDD (/dev/ad0s1)。
  • Volume:經過 Vinum 處理過後最後可以拿使用的磁區 (/dev/vinum/root)。
  • Plex:看要哪種 Plex 種類 Concatenate、Stripe、Mirror、Raid-5。
  • Subdisk:在 Drive 內要使用多少空間 (MB) 給 Volume 用。

下列圖表中只有 Mirror (RAID1) 能夠建立 Root on Vinum 也就是能把系統也建立於軟體 RAID 中 (一般來說只有硬體 RAID 能將系統納入),詳細原因請參考 FreeBSD Handbook - 22.8 Using Vinum for the Root Filesystem,另外從 FreeBSD 5.1-Release 開始請使用 bsdlabel 指令 (在這之前的版本指令為 disklabel)。






文章目錄

1、實作環境
2、安裝及設定
2-1、步驟1 - 新增 HDD 成為 Vinum Drive
2-2、步驟2 - 修改 HDD 成為 Vinum Volume
2-3、步驟3 - 建立各種 Vinum Plex1
     2-3-1、步驟3-1 - 建立 Concatenate Plex
     2-3-2、步驟3-2 - 建立 RAID-0 (Stripe) Plex
     2-3-3、步驟3-3 - 建立 RAID-1 (Mirror) Plex
     2-3-4、步驟3-4 - 建立 RAID5 (Rotated Block-Interleaved Parity) Plex
     2-3-5、步驟3-5 - 建立 RAID-10 (Stripe + Mirror) Plex
     2-3-6、步驟3-6 - 查看 Vinum Plex Log
     2-3-7、步驟3-7 - 清除 Vinum Plex 設定
2-4、步驟4 - 初始化 Vinum Volume
2-5、步驟5 - 修改檔案系統設定檔 (/etc/fstab)
2-6、步驟6 - 開機便啟動 Vinum 服務 (/boot/loader.conf)
3、災難復原軟體 RAID
4、參考
5、Me FAQ
5-1、Q1 - freebsd 5.4 無法使用 vinum?





1、實作環境

  • FreeBSD 5.3-RELEASE
  • Base System Vinum
  • Physical HDD * 4 顆
    • System: 4GB (/dev/ad0)
    • Data PATA:1GB *3 (/dev/ad1、/dev/ad2、/dev/ad3)
    • Data SCSI:1GB *4 (/dev/da0、/dev/da1、/dev/da2、/dev/da3)





2、安裝及設定

本次實作將分為 (建立軟體 RAID、災難復原軟體 RAID、Root On Vinum、災難復原 Root On Vinum) 二個部份作說明,主因為軟體 RAID 部份沒有將作業系統包含在內,而 Root On Vinum 則是有將作業系統包含在內。

建立軟體 RAID

2-1、步驟1 - 新增 HDD 成為 Vinum Drive

依序鍵入如下指令來新增/格式化三顆 1GB HDD (/dev/ad1、/dev/ad2、/dev/ad3) 成為 Vinum Drive,完成後我們可以利用 df -h 指令來查看目前系統的 Mount Point 是否已將三顆 1GB HDD (/dev/ad1、/dev/ad2、/dev/ad3) 加入了。
/stand/sysinstall
Configure
#Fdisk >> ad1 >> D = Delete Slice >> A = Use Entire Disk (整顆都拿來用)
   >> Q = Finish >> None >> OK
#Label >> C = Create >> ad1s1d /disk2 1024MB UFS2+S Y
   >> W = Write >> WARNING: YES >> Q = Finish >> 離開 sysinstall






2-2、步驟2 - 修改 HDD 成為 Vinum Volume

鍵入指令 bsdlabel 將三顆 1GB HDD (/dev/ad1、/dev/ad2、/dev/ad3) 種類 (fstype) ,從 Vinum Drive (4.2 BSD) 修改為 Vinum Volume (vinum)。
#bsdlabel -e /dev/ad1s1 //將 4.2BSD 修改為 vinum
#bsdlabel -e /dev/ad2s1 //將 4.2BSD 修改為 vinum
#bsdlabel -e /dev/ad3s1 //將 4.2BSD 修改為 vinum


修改前 fstype 為 4.2 BSD

修改後 fstype 為 vinum



2-3、步驟3 - 建立各種 Vinum Plex

在此步驟中自行選擇您所要產生的 Vinum Plex 種類而產生 Vinum Plex 的方式有二種 (直接設定、設定檔),不同點在於自動規劃硬碟空間或手動規劃硬碟空間。
  1. 直接設定 (直接輸入指令):自動規劃整顆 HDD 容量。
  2. 設定檔 (/etc/vinum.conf):手動規劃分配每顆 HDD 容量。

2-3-1、步驟3-1 - 建立 Concatenate Plex

建立 Concatenate Vinum Plex 也就是單純將三顆 HDD (/dev/ad1、/dev/ad2、/dev/ad3) 空間相加,其資料寫入方式為一顆 HDD 空間寫完 (滿了) 才換另一顆 HDD,資料寫入方式如下圖: (Concatenate 圖片引用來源為 FreeBSD Handbook - Chapter 22 The Vinum Volume Manager - 22.2 Access Bottlenecks)。


方式一、直接設定 (指令) Concatenate Vinum Plex 作法如下 (-v 會出現 vinum.conf 的內容)。
vinum //進入 Vinum Prompt
   vinum->concat -v /dev/ad1s1d /dev/ad2s1d /dev/ad3s1d //以 Concatenate 方式連結
   vinum->start                                         //更新設定至 Drive
   vinum->list                                          //查看目前 Vinum 設定
   vinum->Ctrl+D or quit                                //離開 Vinum Prompt



方式二、設定檔 (/etc/vinum.conf) Concatenate Vinum Plex 作法如下 (可指定多少 MB 給 Vinum 使用)。
vi /etc/vinum.conf //建立 Vinum 設定檔,內容如下
  drive ad1 device /dev/ad1s1d   //指定 Drive
  drive ad2 device /dev/ad2s1d
  drive ad3 device /dev/ad3s1d
  volume concat                  //屆時對應至 /dev/vinum/concat
   plex org concat               //指定 Plex 種類為 Concatenate
     sd length 1023m drive ad1   //指定 Subdisk Size為 1023 MB
     sd length 1023m drive ad2
     sd length 1023m drive ad3
vinum //進入 Vinum Prompt
  vinum->create -f /etc/vinum.conf  //載入剛才建立的 Vinum 設定檔
  vinum->start                      //更新設定至 Drive
  vinum->list                       //查看目前 Vinum 設定
  vinum->Ctrl+D or quit             //離開 Vinum Prompt


因為此次實作都是將 HDD 全部容量規劃給 Vinum 所以不管採用方式一或方式二得到的結果皆相同,如下圖所示:




2-3-2、步驟3-2 - 建立 RAID-0 (Stripe) Plex

建立 RAID-0 (Stripe) Vinum Plex 也就是將三顆 HDD (/dev/ad1、/dev/ad2、/dev/ad3) 空間相加,其資料寫入方式為將資料寫入不同 HDD 因此 I/O 速度加快,資料寫入方式如下圖: (RAID-0 (Stripe) 圖片引用來源為 FreeBSD Handbook - Chapter 22 The Vinum Volume Manager - 22.2 Access Bottlenecks)。


方式一、直接設定 (指令) RAID-0 (Stripe) Plex 作法如下 (-v 會出現 vinum.conf 的內容)。
vinum //進入 Vinum Prompt
  vinum->stripe -v /dev/ad1s1d /dev/ad2s1d /dev/ad3s1d  //使用 Stripe 方式連結
  vinum->start                                          //更新設定至 Drive
  vinum->list                                           //查看目前 Vinum 設定
  vinum->Ctrl+D or quit                                 //離開 Vinum Prompt


方式二、設定檔 (/etc/vinum.conf) RAID-0 (Stripe) Plex 作法如下 (可指定多少 MB 給 Vinum 使用)。
vi /etc/vinum.conf //建立 Vinum 設定檔,內容如下
  drive ad1 device /dev/ad1s1d   //指定 Drive
  drive ad2 device /dev/ad2s1d
  drive ad3 device /dev/ad3s1d
  volume stripe                  //屆時對應至 /dev/vinum/stripe
   plex org striped 279k         //指定 Plex 種類為 Stripe 資料交錯區塊為 279k (當寫入資料達 279k 就換寫另一顆 HDD)
    sd length 1023m drive ad1    //指定 Subdisk Size為 1023 MB
    sd length 1023m drive ad2
    sd length 1023m drive ad3
vinum //進入 Vinum Prompt
  vinum->create -f /etc/vinum.conf //載入剛才建立的 Vinum 設定檔
  vinum->start                     //更新設定至 Drive
  vinum->list                      //查看目前 Vinum 設定
  vinum->Ctrl+D or quit            //離開 Vinum Prompt


因為此次實作都是將 HDD 全部容量規劃給 Vinum 所以不管採用方式一或方式二得到的結果皆相同,如下圖所示:




2-3-3、步驟3-3 - 建立 RAID-1 (Mirror) Plex

建立 RAID-1 (Mirror) Vinum Plex 也就是二顆 HDD (/dev/ad1、/dev/ad2) 內的資料一模一樣,其資料寫入方式為同一份資料同時寫入二顆 HDD 內(Concatenate + Concatenate)。

方式一、直接設定 (指令) RAID-1 (Mirror) Plex 作法如下 (-v 會出現 vinum.conf 的內容)。
vinum //進入 Vinum Prompt
  vinum->mirror -v /dev/ad1s1d /dev/ad2s1d  //使用 Mirror 方式建立鏡射
  vinum->start                              //更新設定至 Drive
  vinum->list                               //查看目前 vinum 設定
  vinum->Ctrl+D or quit                     //離開 Vinum Prompt


方式二、設定檔 (/etc/vinum.conf) RAID-1 (Mirror) Plex 作法如下 (可指定多少 MB 給 Vinum 使用)。
vi /etc/vinum.conf //建立 Vinum 設定檔,內容如下
  drive ad1 device /dev/ad1s1d     //指定 Drive
  drive ad2 device /dev/ad2s1d
  volume mirror                    //屆時對應至 /dev/vinum/mirror
   plex org concat                 //指定 Plex 種類為 Concatenate
    sd length 1023m drive ad1      //指定 Subdisk Size為 1023 MB
   plex org concat
    sd length 1023m drive ad2
#vinum //進入 Vinum Prompt
  vinum->create -f /etc/vinum.conf //載入剛才建立的 Vinum 設定檔
  vinum->start                     //更新設定至 Drive
  vinum->list                      //查看目前 Vinum 設定
  vinum->start mirror.p1           //啟動 mirror.p1 進行資料同步 (同步 mirror.p0 的資料)
  vinum->Ctrl+D or quit            //離開 Vinum Prompt


因為此次實作都是將 HDD 全部容量規劃給 Vinum 所以不管採用方式一或方式二得到的結果皆相同,如下圖所示:


  1. 當 HDD 狀態 (State) 為 FaultyEmpty 時則代表 mirror.p0 及 mirror.p1 還沒進行資料同步
  2. 當 HDD 狀態 (State) 為 R 百分比 (ex. R 6%) 時則代表 mirror.p0 及 mirror.p1 正在進行資料同步中
  3. 當 HDD 狀態 (State) 為 UP 時則代表 mirror.p0 及 mirror.p1 資料同步完成



2-3-4、步驟3-4 - 建立 RAID5 (Rotated Block-Interleaved Parity) Plex

建立 RAID5 (Rotated Block-Interleaved Parity) Vinum Plex 也就是將三顆 HDD (/dev/ad1、/dev/ad2、/dev/ad3) 在將資料寫入達 279k 時便寫入一個同位檢查元 (Parity) 來避免當有其中一顆 HDD 損壞時還能保持資料的一致性,也因為這樣的機制所以三顆 HDD 完成 RAID-5 後只能得到二顆 HDD 相加的空間,資料寫入方式如下圖: (RAID-5 圖片引用來源為 FreeBSD Handbook - Chapter 22 The Vinum Volume Manager - 22.3 Data Integrity)


方式一、直接設定 (指令) RAID-5 Plex 作法如下 (-v 會出現 vinum.conf 的內容)。
vinum                   //進入 Vinum Prompt
 vinum->raid5 -v /dev/ad1s1d /dev/ad2s1d /dev/ad3s1d  //使用 RAID-5 方式連結
 vinum->start vinum0.p0                               //啟動 RAID-5 初始設定
 vinum->list                                          //查看目前 Vinum 設定
 vinum->Ctrl+D or quit                                //離開 Vinum Prompt


  1. 當 HDD 狀態 (State) 為 Down、 Init、Empty 時則代表 vinum0.p0.so 及 vinum0.p0.s1 及 vinum0.p0.s2 還沒進行 RAID-5 初始設定
  2. 當 HDD 狀態 (State) 為 UP 時則代表 mirror.p0.so 及 mirror.p0.s1 及 mirror.p0.s2 完成 RAID-5 初始設定

方式二、設定檔 (/etc/vinum.conf) RAID-5 Plex 作法如下 (可指定多少 MB 給 Vinum 使用)。
vi /etc/vinum.conf    //建立 Vinum 設定檔,內容如下
 drive ad1 device /dev/ad1s1d   //指定 Drive
 drive ad2 device /dev/ad2s1d
 drive ad3 device /dev/ad3s1d
 volume raid5                   //屆時對應至 /dev/vinum/raid5
  plex org raid5   279k         //指定 Plex 種類為 RAID-5 (當寫入資料達 279k 就寫入同位檢查元 Parity)
   sd length 1023m drive  ad1   //指定 Subdisk Size為 1023 MB
   sd length 1023m drive  ad2
   sd length 1023m drive  ad3
vinum       //進入 Vinum Prompt
 vinum->create -f /etc/vinum.conf  //載入剛才建立的 Vinum 設定檔
 vinum->start raid5.p0             //啟動 RAID-5 初始設定
 vinum->list                       //查看目前 Vinum 設定
 vinum->Ctrl+D or quit             //離開 Vinum Prompt


  1. 當 HDD 狀態 (State) 為 Down、Init、Empty 時則代表 raid5.p0.so 及 raid5.p0.s1 及 raid5.p0.s2 還沒進行 RAID-5 初始設定
  2. 當 HDD 狀態 (State) 為 UP 時則代表 raid5.p0.so 及 raid5.p0.s1 及 raid5.p0.s2 完成 RAID-5 初始設定



2-3-5、步驟3-5 - 建立 RAID-10 (Stripe + Mirror) Plex

建立 RAID-10 (RAID-0 Stripe + RAID-1 Mirror) Vinum Plex 也就是將四顆 SCSI HDD (/dev/da0、/dev/da1、/dev/da2、/dev/da3) 運用 Stripe + Mirror 技術將資料寫入不同 HDD (I/O 速度加快) 同時又同步 HDD 內的資料,來避免當有其中一顆 HDD 損壞時還能保持資料的一致性,也因為這樣的機制所以四顆 HDD 完成 RAID-10 後只能得到二顆 HDD 相加的空間。

方式一、直接設定 (指令) RAID-10 (Stripe + Mirror) Plex 作法如下 (-v 會出現 vinum.conf 的內容)
vinum                  //進入 Vinum Prompt
 vinum->mirror -v -s /dev/da0s1d /dev/da1s1d /dev/da2s1d  /dev/da3s1d  //使用 RAID-10 方式連結
 vinum->start           //更新設定至 Drive
 vinum->list            //查看目前 Vinum 設定
 vinum->Ctrl+D or quit  //離開 Vinum Prompt


  1. 當 HDD 狀態 (State) 為 Faulty、Empty 時則代表 vinum0.p0.so 及 vinum0.p0.s1 及 vinum0.p1.s0 及 vinum0.p1.s1 還沒進行 RAID-10 初始設定
  2. 當 HDD 狀態 (State) 為 UP 時則代表 vinum0.p0.so 及 vinum0.p0.s1 及 vinum0.p1.s0 及 vinum0.p1.s1 完成 RAID-10 初始設定

方式二、設定檔 (/etc/vinum.conf) RAID-10 (Stripe + Mirror) 作法如下 (可指定多少 MB 給 Vinum 使用)
vi /etc/vinum.conf     //建立 Vinum 設定檔,內容如下
 drive d0 device /dev/da0s1d  //指定 Drive
 drive d1 device /dev/da1s1d
 drive d2 device /dev/da2s1d
 drive d3 device /dev/da3s1d
  volume raid10               //屆時對應至 /dev/vinum/raid10
   plex org striped 279k      //指定 Plex 種類為 Stripe
    sd length 1023m drive d0
    sd length 1023m drive d2
   plex org striped 279k
    sd length 1023m drive d1
    sd length 1023m drive d3
vinum      //進入 Vinum Prompt
 vinum->create -f /etc/vinum.conf  //載入剛才建立的 Vinum 設定檔
 vinum->start raid10.p1            //更新設定至 Drive
 vinum->list                       //查看目前 Vinum 設定
 vinum->Ctrl+D or quit             //離開 Vinum Prompt


  1. 當 HDD 狀態 (State) 為 Faulty 及 Empty 時則代表 raid10.p0.so 及 raid10.p0.s1 及 raid10.p1.s0 及 raid10.p1.s1 還沒進行 RAID-10 初始設定
  2. 當 HDD 狀態 (State) 為 UP 時則代表 raid10.p0.so 及 raid10.p0.s1 及 raid10.p1.s0 及 raid10.p1.s1 完成 RAID-10 初始設定



2-3-6、步驟3-6 - 查看 Vinum Plex Log

當設定完成您所要的 Vinum Plex 後您可透過 Vinum Log 來查看完整的 Vinum 產生記錄。
more /var/log/vinum_history  //查看 Vinum Log

採用直接設定 Vinum Plex 方式常用指令說明:
  • vinum->ls //查看目前 Vinum 設定 (狀態)
  • vinum->list //查看目前 Vinum 設定 (詳細)
  • vinum->printconfig //顯示設定內容 (類似 vinum.conf)
  • vinum->start raid10.p1 //更新設定至 Drive
  • vinum->Ctrl+D or quit //離開 Vinum Prompt



2-3-7、步驟3-7 - 清除 Vinum Plex 設定

當您設定好 Vinum Plex 後在尚未進行初始化 Vinum Volume 以前您可隨時更改您的 Vinum Plex 種類,下列步驟為清除 Vinum Plex 設定。
vinum                    //進入 Vinum Prompt
 vinum->resetconfig               //清除 Plex 設定 (系統警告將清除所有設定!!)
 WARNING!  This command will completely wipe out your vinum configuration.
 All data will be lost.  If you really want to do this, enter the text
 NO FUTURE
 Enter text ->                    //鍵入 NO FUTURE 後按下 Enter
 Vinum configuration obliterated  //顯示清除 Vinum Plex 設定
 vinum->list                      //查看目前 Vinum 設定
 0 drives:                        //可發現沒有任何 Vinum Plex 設定
 0 volumes:
 0 plexes:
 0 subdisks:




2-4、步驟4 - 初始化 Vinum Volume

在上述步驟中設定好您要的 Vinum Plex 種類後,請執行如下指令來進行初始化 Vinum 分割區的動作。
# newfs /dev/vinum/vinum0    //初始化 Volume (類似如下數據)
 /dev/vinum/vinum0: 19535.4MB (40008600 sectors) block size 16384, fragment size 2048
 using 107 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
 super-block backups (for fsck -b #) at:
 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,  3387328,
 5269088, 5645440, 6021792, 6398144, 6774496, 7150848, 7527200, 7903552,  8279904, 8656256,
 10161664, 10538016, 10914368, 11290720, 11667072, 12043424, 12419776, 12796128, 13172480,
 14677888, 15054240, 15430592, 15806944, 16183296, 16559648, 16936000, 17312352, 17688704,


完成 Vinum Volume 初始化之後我們可以嘗試將該 Volume 掛載來使用。
mount /dev/vinum/vinum0 /filecenter



2-5、步驟5 - 修改檔案系統設定檔 (/etc/fstab)

將 Vinum Volume 初始化完成並且順利掛載後,為了屆時若系統重新開機時便能自動將 Vinum Volume掛載使用,請修改檔案系統設定檔 (/etc/fstab)。
vi /etc/fstab
 /dev/vinum/vinum0   /filecenter    ufs    rw   2   2 //加入此行




2-6、步驟6 - 開機便啟動 Vinum 服務 (/boot/loader.conf)

修改 /boot/loader.conf 以便系統重新開機時便自動載入 Vinum 服務 (適用於 FreeBSD 5.x Release)。
vi /boot/loader.conf
 vinum_load="YES"
 vinum.autostart="YES"


一般來說在 FreeBSD 中要啟動服務是修改 /etc/rc.conf 但此次實作的 FreeBSD 5.x Release 無法透過設定 /etc/rc.conf 中的 start_vinum="YES" 來帶起 Vinum 服務,若使用此方式嘗試帶起 Vinum 服務則系統將無法正確開機並出現如下錯誤訊息。
 Fatal trap 12: page fault while in kernel mode
 fault virtual address   =0x0
 fault code              = supervisor read, page not present
 instruction pointer     = 0x8:0xc05dcb1c
 stack pointer           = 0x10:0xcbcfecac
 frame pointer           = 0x10:0xcbcfecc4
 code segment            = base 0x0, limit 0xfffff, type 0x1b
                         = DPL 0, pres 1, def32 1, gran 1
 processor eflags        = interrupt enabled, resume, IOPL = 0
 current process         = 4 (g_down)
 trap number             = 12
 panic: page fault
 Cannot dump. No dump device defind.
 Automatic reboot in 15 seconds - press a key on the console to abort






3、災難復原軟體 RAID

建立好軟體 RAID 之後第一步當然就是先測試災難復原啦,以下災難復原步驟將以 Rebuild RAID-5 為例:
1.開機倒數十秒畫面,按 4 進入 Single User Mode
2.執行 mount -a 指令來載入所有 Mount Point
3.假設損壞的 HDD 為 /dev/ad1 (進入 Vinum Prompt 模式後使用 list 指令來查看哪顆 HDD 損壞)
4.關機後更換新 HDD 再次執行上述步驟 1 ~ 3
5.將新 HDD 執行 Fdisk 及 Label (同 步驟1.新增 HDD 成為 Vinum Drive 所述)
     1.執行 umount /ad1 指令修改 fstype 狀態從 4.2 BSD 修改為 vinum (同 步驟2.修改 HDD 成為 Vinum Volume 所述)
     2.修改完成後進入 Vinum Prompt 後使用 list 指令確定 /dev/ad1 狀態如下
          1.Drives: State:referenced unknow A: 0/0MB
          2.Plexes: State:degraded
          3.Subdisks: State:stale
6.在 Vinum Prompt 模式下執行 create -f 設定檔指令可看到 drive ad1 的狀態變化如下 (修改 unknow 為 /dev/ad1s1d)
     1.drive ad1 device /dev/ad1s1d: HDD 正常情況下
     2.drive ad1 device unknown: HDD 損壞後變成 unknow
7.將 unknow 修改為 /dev/ad1s1d 後 Vinum 會出現訊息 ad1 State 變為 UP
8.在 Vinum Prompt 模式下執行 start vinum0.p0 來執行 Rebuild RAID-5 (此時打 list 指令可看到重建 RAID-5 百分比)






4、參考






5、Me FAQ

5-1、Q1 - freebsd 5.4 無法使用vinum?

Error Message:
5.4 無法使用 vinum 怎麼做都是有問題,經測試後發現使用 gvinum 便可順利執行,而 gvinum 的建立方式跟 vinum 沒差多少以下是差異點。

Ans:
其實跟 vinum 沒差多少,原則上就是注意一下路徑的不同即可:
  1. 建立vinum plex若是建立 raid5 則無法直接下 raid5 會說 unknow
  2. 設定檔就跟 vinum.conf 內容一樣即可,當然要叫做 /etc/gvinum.conf
  3. 初始化 vinum 分割區執行 newfs /dev/gvinum/raid5
  4. 開機自動啟動則是修改/boot/loader.conf 加入 geom_vinum_load="YES"即可
  5. 記得修改/etc/fstab