Gluster Storage System

Gluster - Stripe 模式

Stripe 模式是當有一個檔案寫入 Volume 時,Gluster 會將該檔案分割後再寫入不同的 Brick 中,此一模式可以解決 Distributed 容量分散不均的問題。

然而 Stripe 本身並不包含高可用性的特點,所以在佈屬的時候最好要能夠將 Replicated 機制也一併包含,這樣才不會在 Stripe Volume 其中的一個 Brick 損毀時造成整個檔案也一併毀壞。

Stripe Volume

特徵討論

效能

Stripe 效能並不如 Distributed 模式快速,其主要用途是能充份的使用 Brick 空間,在使用 Stripe 的情況下,其網路速度最好要能夠大於磁碟寫入速度,才能有較好的效能表現。

節點 / Brick 損毀

使用一個沒有 Replicated 機制的 Stripe 模式,當您的 Volume 成員損毀一個時,存放於該 Volume 之下的檔案都會一併毀毀。

容量

Stripe 的容量總數為所有 Brick 的加總,比如該 Stripe 的 Volume 共有 5 Bricks,每一 Brick 提供 100GB 的可用空間,則該 Volume 會有 5 * 100GB = 500GB 的可用空間。

開始設定 volume

Gluster Stripe Volume 設定

本例將介紹如何新增一個 Stripe Volume,其成員有 2 個 Brick。

  • gfs-01:/bricks/stripe_vol/brick
  • gfs-02:/bricks/stripe_vol/brick

  • 建立 Volume

     root # gluster volume create stripe 2 stripe_vol \
     gfs-01:/bricks/stripe_vol/brick \
     gfs-02:/bricks/stripe_vol/brick
    
  • 啟用 Volume

     root # gluster volume start stripe_vol
    

Gluster Stripe-Replicated Volume 設定

使用 Stripe-Replicated 機制可以保護資料不會因為其中一個 Brick 損壞而造成資料全部遺失的問題,但相對的必需要提供較多的 Brick 進行複寫作業。

雖然要使用用較多的 Brick 保護資料完整性,使用 Replicated 機制也可以提升資料讀速的速度。

Stripe-Replica Volume

本例將介紹如何新增一個 Stripe Volume,其成員有 4 個 Brick。

  • gfs-01:/bricks/strrep_vol/brick
  • gfs-02:/bricks/strrep_vol/brick
  • gfs-03:/bricks/strrep_vol/brick
  • gfs-04:/bricks/strrep_vol/brick

  • 建立 Volume

     root # gluster volume create stripe 2 replica 2 strrep_vol \
     > gfs-01:/bricks/strrep_vol/brick \
     > gfs-02:/bricks/strrep_vol/brick \
     > gfs-03:/bricks/strrep_vol/brick \
     > gfs-04:/bricks/strrep_vol/brick
    
  • 啟用 Volume

     root # gluster volume start strrep_vol
    

新增 Brick

Strip-Replicated Volume

在 Stripe-Replicated 機制下,新增容量的作法與之前的概念較為不同。因為檔案在原本的架構中已經被分割為 Stripe(假設為 2)的數量,那麼當新的 Brick 增加時,Gluster 並不會新組合再分割,而且會產生另一個 Distributed 機制。也就是說待有新檔案寫入時 Gluster 會依 Distributed 計算重新分配其所在位置。

新增 Brick 的時候,必需為 Stripe-Replicated 總合的倍數。比方該 Volume 為 stripe 2 replica 2,那麼新的 Brick 也要一併同時新增 4 個 Brick。

假設要再新增

  • gfs-05:/bricks/strrep_vol/brick
  • gfs-06:/bricks/strrep_vol/brick
  • gfs-07:/bricks/strrep_vol/brick
  • gfs-08:/bricks/strrep_vol/brick

則執行下列流程:

  1. 新增 Brick

     root # glsuter volume add-brick stripe 2 replica 2 strrep_vol \
     > gfs-05:/bricks/distrepl_vol/brick/ \
     > gfs-06:/bricks/distrepl_vol/brick/ \
     > gfs-07:/bricks/distrepl_vol/brick/ \
     > gfs-08:/bricks/distrepl_vol/brick/ \
    
  2. 重新分配檔案位置

     root # gluster volume rebalance strrep_vol start