天天看點

CPFS資料生命周期管理實踐前提實踐操作結論

前提

完成線下CPFS環境部署,該CPFS至少包含2個存儲池storage pool,在本次驗證環境中,包含2個存儲池,1個是system pool,另一個是data01 pool(容量型)。system pool對應的是由NVME SSD盤組成的性能型存儲池,data01對應的是有NL-SAS盤組成的容量型存儲池。

實踐操作

1, 編寫規則檔案1,該規則實作了依據檔案路徑,對檔案存放位置進行設定;

首先建立兩個fileset,分别對應不同的storage pool,并建立關聯的目錄:

mmcrfileset cpfs ilm_systemfs1 --inode-space new --inode-limit 200000 -t 'test fileset on system pool'

mmcrfileset cpfs ilm_data01fs1 --inode-space new --inode-limit 200000 -t 'test fileset on data01 pool'

mmlinkfileset cpfs ilm_systemfs1 /cpfs/ilm_systemfs

mmlinkfileset cpfs ilm_data01fs1 /cpfs/ilm_data01fs

編寫policy檔案./t1.policy,該policy的功能說明如下:

将存儲在ilm_data01fs1 fileset(目錄)下的檔案預設存儲在data01 storage pool中,将存儲在ilm_systemfs1 fileset(目錄)下的檔案預設存儲在system storage pool;

Policy檔案内容如下:

cat ./t1.policy

RULE 'slowfile' SET POOL 'data01'

FOR fileset ('ilm_data01fs1')           

RULE 'fastfile' SET POOL 'system'

FOR fileset ('ilm_systemfs1')           

RULE 'Default' SET POOL 'data01'

安裝plicy:

mmchpolicy cpfs ./t1.policy

驗證Policy效果:

檢視在不同fileset下生成檔案的實體存放位置,如下圖,可以看到,在ilm_data01fs目錄下生成的檔案其存儲位置在data01 storage pool,在ilm_systemfs目錄下生成的檔案,其存儲位置在system storage pool。

CPFS資料生命周期管理實踐前提實踐操作結論

2, 編寫規則檔案2,依據檔案名、大小、路徑、時間等屬性,對檔案執行遷移類操作;

編寫policy檔案./t2.policy,該policy的功能說明如下:

當system 存儲池的容量使用率超過12%後,觸發lowSpaceEvents,将system 存儲池上字尾名為.xml和.json檔案按時間順序遷移到data01存儲池,直到system存儲池容量使用率到8%。

cat ./t2.policy

/* Define low space migration rule

This threshold sets the low space trigger value for the system pool */

RULE 'r1' MIGRATE FROM POOL 'system'

THRESHOLD(12,8)  /*12%是磁盤容量觸發遷移條件,一直遷移           

到8%*/

WEIGHT(CURRENT_TIMESTAMP - ACCESS_TIME)
    TO POOL 'data01'
            WHERE  lower(NAME) LIKE '%.xml' OR lower(NAME) LIKE            

'%.json'

mmchpolicy cpfs ./t2.policy

添加callback,當lowDiskSpace 事件發生時觸發policy生效;

mmaddcallback MIGRATION --command /usr/lpp/mmfs/bin/mmstartpolicy --event lowDiskSpace,noDiskSpace --parms "%eventName %fsName --single-instance"

檢視storage pool在使用到一定空間後觸發lowSpace事件後的效果:

cd /cpfs/ilm_systemfs

在歸屬system pool的目錄下生成大檔案,確定system pool磁盤占用率達到12%以上。

for i in

seq 1 10

;do dd if=/dev/zero of=./test160G$i.xml bs=4M count=40960;done

seq 1 10

;do dd if=/dev/zero of=./test160G$i.json bs=4M count=40960;done

使用mmlsattr可以檢視檔案所在的storage pool,可以檢視到這些檔案都屬于system pool;

seq 1 10

;do mmlsattr -L ./test160G$i.json|grep “storage pool name”;done

seq 1 10

;do mmlsattr -L ./test160G$i.xml|grep “storage pool name”;done

執行mmdf cpfs -P system檢視system pool磁盤所占用空間,目前已占到14%,達到觸發policy條件。

CPFS資料生命周期管理實踐前提實踐操作結論

等一段時間,確定system pool檔案已經根據policy被遷移到data01 pool

執行cd /cpfs/ilm_systemfs;mmlsattr -L *.xml|grep -i pool檢視生效情況,如下圖所示,檔案已被遷移到data01 pool,部分檔案未遷移是因為system pool空間占用率已降到8%

CPFS資料生命周期管理實踐前提實踐操作結論

檢視system pool的空間使用率,目前已降到8%!,遷移完成。

CPFS資料生命周期管理實踐前提實踐操作結論

結論

通過以上操作和結果,可以看到CPFS可以依據檔案的命名、大小和時間等中繼資料資訊,執行不同的檔案操作,如存放位置、遷移、備份恢複等,實作資料的生命周期管理。