Beegfs分布式文件系统安装实践
环境
在HPC高性能计算中,存储需要增加容量,尝试基于beegfs搭建一套分布式存储。
以下节点都是CentOS 7 系统
A节点 作为beegfs客户端
B节点 ALL-In-One服务节点
由于部署环境中没有外网,因而采用rpm包的形式进行安装,到此站点https://www.beegfs.io/release/beegfs_7_1/dists/rhel7/x86_64/ 下载相关rpm包
各包定义如下:
-
Management Server
包:beegfs-mgmtd
作用:Manages configuration and group membership
Hostname or IP address must be known by other nodes at service start time -
Metadata Server
包:beegfs-meta
作用:Stores directory information and allocates file space on storage servers -
Storage Server
包:beegfs-storage
作用:Stores raw file contents -
Client
包:beegfs-client beegfs-helperd
作用:Kernel module to mount the file system
Requires userspace helper daemon for logging and hostname resolution -
BeeGFS Common
包:beegfs-common
作用:Common files for all packages -
BeeGFS 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是依赖的共通包,各节点都需要
安装
- 关闭SeLinux
sed -i 's/enforcing/disabled/g' /etc/selinux/config
重启系统
- 管理,元数据,存储都放A节点,因此在节点A用rpm安装相应的包
rpm -ivh beegfs-mgmtd beegfs-meta beegfs-storage beegfs-common
- 配置管理服务
mkdir /beegfs/beegfs_mgmtd
/opt/beegfs/sbin/beegfs-setup-mgmtd -p /beegfs/beegfs_mgmtd
- 配置元数据服务
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
- 配置存储服务
像元数据服务进程一样,BeeGFS的数据存储服务进程除了需要知道在哪个路径下存储数据外,还需要知道管理服务进程的运行IP。通常,你可以把多个存储服务进程分布在不同的节点以及/或者分配到一个存储服务进程下的不同的设备目标(比如多个逻辑卷)中。
另外,你也可以给每个存储服务进程设置一个唯一标识ID。如果该进程内有多个设备目标,我们还可以为每个设备目标设置唯一标识ID。设置的原则是:进程标识ID+设备目标标识ID,例如某一个Storage Service 的 ID是3,而它配置了两个Target,此时就可以给第一个Target 的ID设置为“301”,第二个 Target 的标识ID设置为“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节点安装配置Client端
rpm 安装 beegfs-client beegfs-helperd beegfs-common
注意,因为client端在第一次启动服务时会有编译动作(编译Client Kernel model模块),所以需要先安装必要的编译工具和内核开发包
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
如果版本不一致,到网上下载安装
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
客户端的挂载点默认设置为 /mnt/beegfs,可以在配置文件中修改
- 所有服务,在 /etc/beegfs/目录下有对应配置文件
启动
启动服务
$ 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