以 Geom Vinum 建立軟體磁碟陣列

前言

Geom_Vinum 支援的 Redundant Array of Independent Disks (RAID, 重複磁碟陣列組) 種類如下:
  • Concatenate:HDD容量相加,但資料寫入為一顆 HDD 寫完,才換寫入另一顆 HDD。
  • RAID-0 (Stripe):HDD容量相加,資料分散寫入每個串連的 HDD,可使I/O速度加快。
  • RAID-1 (Mirror):HDD的資料存二份,一顆正本另一顆副本。
  • RAID3 (Parallel Transfer Disks with Parity):資料平均儲存在每顆硬碟,但需要額外一顆硬碟儲存同位元檢查的資料,適合高資料傳輸量系統。
  • RAID-5 (Rotated Block-Interleaved Parity):資料分散寫入 HDD,並有一個同位元檢查 (Praity),當其中一顆 HDD 損壞時仍可繼續運作。
  • RAID-10 (Stripe+Mirror):至少 4 顆 HDD,也就是把容量相加又同時存 2 份。






文章目錄

1、實作環境
2、安裝及設定
     2-1、步驟1 - 載入 geom_stripe.ko Kernel Module
     2-2、步驟2 - 產生 RAID0 Gvinum Plex
     2-3、步驟3 - 修改串連後的 HDD 為 GVinum volume
     2-4、步驟4 - 產生 Gvinum plex 種類後的處理
     2-5、步驟5 - 修改 /etc/fstab
     2-6、步驟6 - 開機便啟動 GVinum 服務
     2-7、步驟7 - 查看所建立 Software RAID 狀態
3、參考





1、實作環境

  • FreeBSD 6.0-RELEASE
  • 內建 Gvinum
  • HDD system: 60G *1 (/dev/ad0) 及 200G *3 (/dev/ad1,2,3)





2、安裝及設定

2-1、步驟1 - 載入 geom_stripe.ko Kernel Module

執行以下指令 (擇其一即可) 來載入 geom_stripe.ko 核心模組。
kldload geom_stripe.ko     //方法一--載入geom_stripe.ko 核心模組
gstripe load                //方法二--載入geom_stripe.ko 核心模組
kldstat                      //查看系統目前載入之核心模組
 Id Refs Address Size Name
 1 4 0xc0400000 63070c kernel
 2 16 0xc0a31000 568dc acpi.ko
 3 1 0xc3a75000 6000 geom_stripe.ko




2-2、步驟2 - 產生 RAID0 Gvinum Plex

執行如下指令產生 RAID0 Gvinum Plex。
gstripe label -v myraid0 /dev/ad1 /dev/ad2 /dev/ad3 //myraid0 即 RAID0
 Metadata value stored on /dev/ad1.
 Metadata value stored on /dev/ad2.
 Metadata value stored on /dev/ad3.
 Done.




2-3、步驟3 - 修改串連後的 HDD 為 GVinum volume

執行後系統將在 /dev/stripe 目錄中 myraid0 設備基礎上建立兩個新設備 (myraid0a 和 myraid0c),其中參數 -w 為 Writing a Standard Label,而參數 -B 為 Installing Bootstraps。
bsdlabel -wB /dev/stripe/myraid0



2-4、步驟4 - 產生 Gvinum plex 種類後的處理

產生您想要的 Vinum Plex 種類後,我們開始來初始化 Gvinum 分割區吧,其中參數 -U 為 Enable soft updates on the new file system。
newfs -U /dev/stripe/myraid0a
開始初始化 Gvinum 分割區。
/dev/stripe/myraid0a: 583443.0MB (1194891224 sectors) block size 16384, fragment size 2048
using 3175 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
with soft updatessuper-block backups (for fsck -b #) at: 160, 376512, 752864, 1129216,


將初始化完成的 volume 掛載來使用。
mount /dev/stripe/myraid0a /mnt
df -h
 Filesystem           Size  Used   Avail   Capacity   Mounted on
 /dev/ad0s1a          496M  55M    401M    12%        /
 devfs                1.0K  1.0K   0B      100%       /dev
 /dev/ad0s1e          496M  12K    456M    0%         /tmp
 /dev/ad0s1f          48G   963M   43G     2%         /usr
 /dev/ad0s1d          2.9G  326K   2.7G    0%         /var
 /dev/stripe/myraid0a 552G  4.0K   508G    0%         /mnt




2-5、步驟5 - 修改 /etc/fstab

確定能將 Gvinum 做好的 RAID 空間掛載 (mount) 起來後,為讓了機器重新開機時就能抓到 mount point 所以我們必須修改 /etc/fstab。
vi /etc/fstab
 /dev/stripe/myraid0a /mnt ufs rw 2 2 //加入這行




2-6、步驟6 - 開機便啟動 GVinum 服務

修改 /boot/loader.conf 以便一開機便自動載入 GVinum 服務。
vi /boot/loader.conf
 geom_stripe_load="YES"




2-7、步驟7 - 查看所建立 Software RAID 狀態

查看 RAID 運作狀態。
gstripe status
 Name Status Components
 stripe/myraid0 UP ad1
            ad2
            ad3


查看 RAID HDD 資訊。
gstripe list
 Geom name: myraid0
 State: UP
 Status: Total=3, Online=3
 Type: AUTOMATIC
 Stripesize: 4096
 ID: 749264402
 Providers:
 1. Name: stripe/myraid0
   Mediasize: 611784314880 (570G)
   Sectorsize: 512
   Mode: r1w1e2
   Consumers:
 1. Name: ad1
   Mediasize: 203928109056 (190G)
   Sectorsize: 512
   Mode: r1w1e3
   Number: 0
 2. Name: ad2
   Mediasize: 203928109056 (190G)
   Sectorsize: 512
   Mode: r1w1e3
   Number: 1
 3. Name: ad3
   Mediasize: 203928109056 (190G)
   Sectorsize: 512
   Mode: r1w1e3
   Number: 2






3、參考