1. 程式人生 > >[moosefs] storage class

[moosefs] storage class

alt 邏輯 多次 cgi 初始 height 復雜 進行 通過

chapter 1 moosefs 3.1 storage class 功能的介紹

1.1 什麽是storage class

在moosefs中,storage class允許指定文件的chunks存放在哪些chunkservers上。

storage class使用label進行表達。

為了與早起的版本的goal功能兼容,moosefs 3.0以上會自動在系統中建立1~9 storage class。goal工具將默認在對應的storage class下進行工作。

1.2 什麽是label

label是可以被分配給chunkserver的字母(a~z,26個字母可選),每個chunkserver可以被打上多個標簽(即標記上多個字母,但最多可以打26個label)

完整的label表達式可以由多個子表達式構成,每個子標簽之間用逗號分隔。每個子表達式特指文件副本的一種存儲模式。子表達式可以為星號*或一個label schema。

label schema可以是一個label或由加法、乘法和括號構成的復雜表達式。

加法是邏輯“或”的含義,即文件的副本可以被存放在任意含有加法元素label的chunkserver上。例如,一個文件的storage class是a+b+c,那麽任何含有a、b或c標簽的chunkserver都可以用來存儲該文件的副本。

乘法是邏輯“與”的含義,即文件的副本僅可以存放在包含所有label的chunkserver上。例如,一個文件的storage class是abc,那麽只有當一臺chunkserver同時含有abc三個標簽時,它才能用於存放該文件的副本。

相同的子表達式可以通過在表達式前加數字的方式來表示,而不用重復顯示聲明多次。

chapter 2 如何使用storage class

2.1 機器配置

在本文的示例中,將在11臺機器上安裝moosefs:

ts02, ts03 為master servers

ts04 .. ts12 為chunkservers

前提假設:

已有一些初始化數據存放在示例的moosefs文件系統中,並且goal為2(storage class 2)

2.2 不設置storage class情況下moosefs的安裝方法

技術分享圖片

如果chunkserver上沒有設置任何的label,則moosefs 3.0系統中數據的分布將於2.0版本時相同,如下圖所示

技術分享圖片

2.3 為chunkservers加上label

若要給chunkserver打label,則需要修改相應chunkserver的配置文件 /etc/mfs/mfschunkserver.cfg

編輯該配置文件,將LABELS = A前面的註釋符號去掉,並設置上你想要的標簽

設置好後,需要通知chunkserver進程配置文件已更新,使用如下兩個命令均可

service moosefs-pro-chunkserver reload

mfschunkserver reload

再為ts04..ts07設上A標簽,ts08..ts12設上B標簽後,從cgi頁面看到chunkserver的信息如下:

技術分享圖片

若想為chunkserver設置多個標簽,則如下三種方式都可以:

LABELS = XYZ

or

LABELS = X Y Z

or

LABELS = X, Y, Z

設好標簽後的集群如下:

技術分享圖片

2.4 創建storage class

使用mfsscadmin工具可以在moosefs系統中創建storage class。

[moosefs] storage class