環(huán)境
在HPC高性能計算中,存儲需要增加容量,嘗試基于beegfs搭建一套分布式存儲。
以下節(jié)點都是CentOS 7 系統(tǒng)
A節(jié)點 作為beegfs客戶端
B節(jié)點 ALL-In-One服務(wù)節(jié)點
由于部署環(huán)境中沒有外網(wǎng),因而采用rpm包的形式進行安裝,到此站點https://www.beegfs.io/release/beegfs_7_1/dists/rhel7/x86_64/ 下載相關(guān)rpm包
各包定義如下:
Management Server
包:beegfs-mgmtd
作用:Manages configuration and group membership
Hostname or IP address must be known by other nodes at service start timeMetadata Server
包:beegfs-meta
作用:Stores directory information and allocates file space on storage serversStorage Server
包:beegfs-storage
作用:Stores raw file contentsClient
包:beegfs-client beegfs-helperd
作用:Kernel module to mount the file system
Requires userspace helper daemon for logging and hostname resolutionBeeGFS Common
包:beegfs-common
作用:Common files for all packagesBeeGFS utilities for administrators
包:beegfs-utils
作用:beegfs-ctl tool for command-line administration
beegfs-fsck tool for file system checking
Several small helper scripts
beegfs-common是依賴的共通包,各節(jié)點都需要
安裝
- 關(guān)閉SeLinux
sed -i 's/enforcing/disabled/g' /etc/selinux/config
重啟系統(tǒng)
- 管理,元數(shù)據(jù),存儲都放A節(jié)點,因此在節(jié)點A用rpm安裝相應的包
rpm -ivh beegfs-mgmtd beegfs-meta beegfs-storage beegfs-common
- 配置管理服務(wù)
mkdir /beegfs/beegfs_mgmtd
/opt/beegfs/sbin/beegfs-setup-mgmtd -p /beegfs/beegfs_mgmtd
- 配置元數(shù)據(jù)服務(wù)
mkdir /beegfs/beegfs_meta
/opt/beegfs/sbin/beegfs-setup-meta -p { management service path } -s 2 -m { mgmtd_node_ip }
例如:/opt/beegfs/sbin/beegfs-setup-meta -p /beegfs/beegfs_meta -s 2 -m 10.52.255.62
- 配置存儲服務(wù)
像元數(shù)據(jù)服務(wù)進程一樣,BeeGFS的數(shù)據(jù)存儲服務(wù)進程除了需要知道在哪個路徑下存儲數(shù)據(jù)外,還需要知道管理服務(wù)進程的運行IP。通常,你可以把多個存儲服務(wù)進程分布在不同的節(jié)點以及/或者分配到一個存儲服務(wù)進程下的不同的設(shè)備目標(比如多個邏輯卷)中。
另外,你也可以給每個存儲服務(wù)進程設(shè)置一個唯一標識ID。如果該進程內(nèi)有多個設(shè)備目標,我們還可以為每個設(shè)備目標設(shè)置唯一標識ID。設(shè)置的原則是:進程標識ID+設(shè)備目標標識ID,例如某一個Storage Service 的 ID是3,而它配置了兩個Target,此時就可以給第一個Target 的ID設(shè)置為“301”,第二個 Target 的標識ID設(shè)置為“302”
mkdir /beegfs/beegfs_storage1
/opt/beegfs/sbin/beegfs-setup-storage -p /beegfs/beegfs_storage1 -s 3 -i 301 -m { mgmtd_node_ip }
# To add a first storage target on this machine:
e.g./opt/beegfs/sbin/beegfs-setup-storage -p /beegfs/beegfs_storage1 -s 3 -i 301 -m 10.52.255.62
- 在B節(jié)點安裝配置Client端
rpm 安裝 beegfs-client beegfs-helperd beegfs-common
注意,因為client端在第一次啟動服務(wù)時會有編譯動作(編譯Client Kernel model模塊),所以需要先安裝必要的編譯工具和內(nèi)核開發(fā)包
yum install gcc gcc-c++ gcc-g77 libxml2-devel boost-devel openssl* openssl openssl-devel
查看當前kernel版本:
uname -r
查看已安裝kernel-devel
uname -a ; rpm -qa kernel\* | sort
如果版本不一致,到網(wǎng)上下載安裝
yum install "kernel-devel-uname-r == $(uname -r)"
安裝好后,運行以下命令可以手動編譯
/etc/init.d/beegfs-client rebuild
然后配置客戶端
/opt/beegfs/sbin/beegfs-setup-client -m { mgmtd_node_ip }
e.g./opt/beegfs/sbin/beegfs-setup-client -m 10.52.255.62
客戶端的掛載點默認設(shè)置為 /mnt/beegfs,可以在配置文件中修改
- 所有服務(wù),在 /etc/beegfs/目錄下有對應配置文件
啟動
啟動服務(wù)
$ systemctl start beegfs-mgmtd
$ systemctl start beegfs-meta
$ systemctl start beegfs-storage
啟動客戶端
$ systemctl start beegfs-helperd
$ systemctl start beegfs-client
如果安裝了管理界面,可以啟動管理端
systemctl start beegfs-admon
#Java GUI
java -jar /opt/beegfs/beegfs-admon-gui/beegfs-admon-gui.jar
測試
客戶端測試
$ beegfs-ctl --listnodes --nodetype=meta --details
$ beegfs-ctl --listnodes --nodetype=storage --details
$ beegfs-ctl --listnodes --nodetype=client --details
$ beegfs-net