Gluster 的最小單位是 Brick,當您的新的節點加入到 Gluster Pool 時,需要將 Brick 設定好後才可以開始將可用空間加入到 Volume 以供 Client 使用。
設定 Brick 的過程較為麻煩,需要經過磁碟分割、設定 LVM、格式化、設定掛載等作業,但這些動作只需要一次設定就可以了,偶後只要使用 gluster
指令進行 volume 的相關設定即可。
假設本文的環境為 2 個節點,每個節點設計了分享 2 個 Volume 做為 Brick,一共有 4 個 Brick,其配置如下:
節點名稱 | Brick Path | Size | Disk | VG | Path |
---|---|---|---|---|---|
S1 | lv_01 | 10GB | /dev/sda1 | vg_group | /bricks/brick_01 |
S1 | lv_02 | 10GB | /dev/sda1 | vg_group | /bricks/brick_02 |
S2 | lv_01 | 10GB | /dev/sda1 | vg_group | /bricks/brick_01 |
S2 | lv_02 | 10GB | /dev/sda1 | vg_group | /bricks/brick_02 |
當您將硬碟配置完成後(不論是 RAID 或是單一硬碟),在作業系統會看到一個空的硬碟空間,該空間要先將他設定為 LVM 可用的標記,然後再開始將它切出要使用的邏輯磁碟區。
在每個節點以上表完成設定流程:
分割硬碟
root # fdisk /dev/sda
設定 /dev/sda 啟用 LVM
root # pvcreate /dev/sda1
建立 Volume Group
root # vgcreate vg_group /dev/sda1
設定 Logical Volume 的 Thin Pool
root # lvcreate -L 50G -T vg_group/brick_spool
設定 lv_01 Logical Volume 邏輯磁區
root # lvcreate -L 10G -T vg_group/brick_spool -n lv_01
設定 lv_02 Logical Volume 邏輯磁區
root # lvcreate -L 10G -T vg_group/brick_spool -n lv_02
Gluster 會在 Brick 的分割區中使用較多的 inode 空間以記錄每個檔案的狀態,因此在格式化的時候要將 inode size 設定為 512。
root # mkfs.xfs -i size=512 /dev/vg_group/lv_01
root # mkfs.xfs -i size=512 /dev/vg_group/lv_02
如果該 LV 已經格式過,那麼要重新格式化該 LV 的話,可以使用
-f
參數強迫格式化。
在節點 S1 與 S2 分別設定好目錄掛載,並且在開機的時候一併生效。
建立 brick 掛載目錄
root # mkdir -p /bricks/{brick_01,brick_02}
編輯 /etc/fstab
檔案讓開機時也自動掛載 LV
/dev/vg_group/lv_01 /bricks/brick_01 xfs rw,noatime,nouuid,inode64 0 0
/dev/vg_group/lv_02 /bricks/brick_02 xfs rw,noatime,nouuid,inode64 0 0
掛載目錄
root # mount -a
如果在這個步驟發生錯誤,請檢查
/etc/fstab
檔案是否設定正確。
建立 brick 資料目錄
root # mkdir /bricks/{brick_01,brick_02}/brick