嘘~ 正在从服务器偷取页面 . . .

CentOS7安装配置BeeGFS并行文件系统


BeeGFS原名为FhGFS,是由Fraunhofer Institute为工业数学计算而设计开发,由于在欧洲和美国的中小
型HPC系统性能表现良好,在2014年改名注册为BeeGFS并受到科研和商业的广泛应用。BeeGFS既是一个网络
文件系统也是一个并行文件系统。客户端通过网络与存储服务器进行通信(具有TCP/IP或任何具有RDMA功能
的互连,如InfiniBand,RoCE或Omni-Path,支持native verbs 接口)。通过BeeGFS添加更多的服务器,
其容量和性能被聚合在单个命名空间中。BeeGFS是遵循GPL的“免费开源”产品,文件系统没有许可证费用。
由ThinkParQ提供专业支持,系统集成商可以为客户构建使用BeeGFS的解决方案。

环境准备

1,本次安装采用虚拟机的形式,所有节点安装在VMware ESXi上。
Software: CentOS 7.5 on all nodes
Host Services: 
node01: Management Server (IP:172.16.80.111)
node02: Metadata Server (IP:172.16.80.112)
node03: Storage Server (IP:172.16.80.113)
node04: Client (IP:172.16.80.114)
node05: Admon Server (IP:172.16.80.115) (可选项)

Storage:

Storage servers with RAID-6, xfs, mounted to "/data".  
Metadata servers with RAID-1, ext4, mounted to "/mnt/md0". 

参考文档:
BeeGFS Documentation

2, 所有节点 配置/etc/hosts

3,所有节点关闭防火墙和SELINUX
systemctl stop firewalld
systemctl disable firewalld
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’/etc/sysconfig/selinux

RAID配置

由于采用虚拟机的形式进行安装,所以RAID采用软RAID的方式实现,分别在Metadata节点和Storage节点通
过mdadm创建RAID。
1,在Metadata节点创建RAID1
fdisk /dev/sdb
fdisk /dev/sdc
mdadm -C /dev/md0 -ayes -l1 -n2 /dev/sd[b,c]1

2,格式化md0并挂载到/data,同时写入fstab
mkfs.ext4 /dev/md0
mkdir -p /data
mount /dev/md0 /data
echo /dev/md0 /data ext4 defaults 0 0 sudo tee -a /etc/fstab

3,打开Metadata Server的扩展属性功能:
tune2fs -o user_xattr /dev/md0

4,以同样的方式在Storage节点创建RAID6,并挂载到/mnt/md0
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
mdadm -Cv /dev/md0 -ayes -l6 -n4 /dev/sd[b,c,d,e]1
mkfs.xfs /dev/md0
mkdir -p /mnt/md0
mount /dev/md0 /mnt/md0
echo /dev/md0 /mnt/md0 xfs defaults 0 0 sudo tee -a /etc/fstab

5,RAID配置完成后,系统分区如下图,如果Storage节点配置有多个RAID6,以同样的方式进行操作。

节点安装****(Package Download and Installation)

1,在所有节点下载BeeGFS的repo文件到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/beegfs-rhel7.repo https://www.beegfs.io/release/latest-stable/dists/beegfs-rhel7.repo

2,在管理节点安装Management Service
yum install beegfs-mgmtd
3,在Metadata节点安装Metadata Service
yum install -y beegfs-meta
4,在Storage节点安装Storage Service
yum install -y beegfs-storage
5,在Client节点安装Client and Command-line Utils
yum install -y beegfs-client beegfs-helperd beegfs-utils
6,在监控节点(Admon)安装Admon Service
yum install beegfs-admon
7,如果需要使用Infiniband RDMA功能,还需要在Metadata和Storage节点安装libbeegfs-ib
yum install libbeegfs-ib

节点配置

1,Management节点配置Management Service,管理服务需要知道它可以在哪里存储数据。它只存储一些
节点信息,比如连接性数据,因此不需要太多的存储空间,而且它的数据访问不是性能关键。因此,此服务
通常可以不在专用机器上运行(可以跑在虚拟机上)。
/opt/beegfs/sbin/beegfs-setup-mgmtd -p /data/beegfs/beegfs_mgmtd

2,Meta节点配置Metadata Service,元数据服务需要知道它可以在哪里存储数据,以及管理服务在哪里运
行。选择定义一个定制的数字元数据服务ID(范围1~65535)。这里我们的Metadata节点是第二个节点,所以
这里我们选择数字“2”作为元数据服务ID。
/opt/beegfs/sbin/beegfs-setup-meta -p /data/beegfs/beegfs_meta -s 2 -m bgfs01

3,Storage节点配置Storage Service,存储服务需要知道它可以在哪里存储数据,以及如何到达管理服
务器。通常,每个存储服务将在不同的机器上运行多个存储服务和/或多个存储目标(例如多个RAID卷)。选
择定义自定义数字存储服务ID和数字存储目标ID(范围1~65535)。这里我们的Storage节点是第三个节点,
因此我们将选择编号“3”作为此存储服务的ID,并使用“301”作为存储目标ID,以表明这是存储服务“3”的第
一个目标(“01”)。
/opt/beegfs/sbin/beegfs-setup-storage -p /mnt/md0/beegfs_storage -s 3 -i 301 -m bgfs01

4,Client节点配置Client(BeeGFS默认会挂载到/mnt/beegfs,可以自行在配置文件/etc/beegfs/
beegfs-mounts.conf中修改)
/opt/beegfs/sbin/beegfs-setup-client -m bgfs01

5,监控节点修改配置文件:
vi /etc/beegfs/beegfs-admon.conf
sysMgmtdHost=bgfs01

6,以上配置完成后,在所有节点启动服务并设置开机自动启动
Management节点:
systemctl start beegfs-mgmtd
systemctl enable beegfs-mgmtd
Metadata节点:
systemctl start beegfs-meta
systemctl enable beegfs-meta
Storage节点:
systemctl start beegfs-storage
systemctl enable beegfs-storage
Client节点:
systemctl start beegfs-helperd
systemctl enable beegfs-helperd
systemctl start beegfs-client
systemctl enable beegfs-client
Admon节点:
systemctl start beegfs-admon
systemctl enable beegfs-admon

7,执行完以上配置后,重启所有节点,并确认重启后所有节点上的服务均已经正常启动,到这里BeeGFS的基
本配置就完成了。

8,检查节点状态,在Client节点执行以下命令:
beegfs-ctl –listnodes –nodetype=meta –nicdetails
beegfs-ctl –listnodes –nodetype=storage –nicdetails
beegfs-ctl –listnodes –nodetype=client –nicdetails
beegfs-net #显示Client实际使用的连接
beegfs-check-servers #显示服务的连接性
beegfs-df #显示存储和元数据目标的空闲空间和索引节点

读写测试

1,使用dd进行测试,在Client节点执行以下操作进行写入测试
mkdir -p /mnt/beegfs/dd-test
dd if=/dev/zero of=/mnt/beegfs/dd-test/test-file bs=1MB count=50000
50000+0 records in
50000+0 records out
50000000000 bytes (50 GB) copied, 545.962 s, 91.6 MB/s
df -hT
Filesystem Type Size Used Avail Use% Mounted on
beegfs_nodev beegfs 100G 47G 54G 47% /mnt/beegfs

2,在Storage节点查看写入情况,确认上一步测试中写入的数据写入了/mnt/md0

3,使用sysbench进行测试,在Client节点执行以下操作进行写入测试
yum install -y epel-release
yum install -y sysbench
mkdir -p /mnt/beegfs/sysbench-test
cd /mnt/beegfs/sysbench-test
sysbench –test=fileio –threads=20 –file-total-size=1G –file-test-mode=rndrw prepare
sysbench –test=fileio –threads=20 –file-total-size=1G –file-test-mode=rndrw run

4,在Storage节点查看写入情况,确认上一步测试中写入的数据写入了/mnt/md0

Storage节点配置多个Storage Target

1,以相同的方式在Storage节点创建两个RAID6,md1和md2
2,挂载md1和md2
mkdir -p /mnt/md1
mkdir -p /mnt/md2
mount /dev/md1 /mnt/md1
mount /dev/md2 /mnt/md2
echo /dev/md1 /mnt/md1 xfs defaults 0 0 sudo tee -a /etc/fstab
echo /dev/md2 /mnt/md2  xfs   defaults   0   0 sudo tee -a /etc/fstab
3,添加Storage Target,配置完成后如下图
/opt/beegfs/sbin/beegfs-setup-storage -p /mnt/md1/beegfs_storage -s 3 -i 302
/opt/beegfs/sbin/beegfs-setup-storage -p /mnt/md2/beegfs_storage -s 3 -i 303

4,在Client节点执行dd写入测试
dd if=/dev/zero of=/mnt/beegfs/dd-test/test-file bs=1MB count=100000
100000+0 records in
100000+0 records out
100000000000 bytes (100 GB) copied, 954.976 s, 105 MB/s
5,dd写入完成后,在Storage节点查看写入情况,如下图100G的数据被并行平均写入到三个md中。

多Storage节点

1,我们再安装一台虚拟机VM,并配置为Storage节点,创建1个Storage Targate为601,因为是第六个
节点的第一个Storage Targate,所以ID配置为601方便管理。

2,使用dd执行测试写入10G数据。
dd if=/dev/zero of=/mnt/beegfs/dd-test/4node bs=10M count=1000
1000+0 records in
1000+0 records out
10485760000 bytes (10 GB) copied, 182.301 s, 57.5 MB/s

3,dd写入完成以后,查看Storage节点空间占有用情况,与写入前对比,可以看到10GB数据被平均写入到
4个Storage Target中。这里我们一共配置了两个存储节点,4个Storage Target。

Admon GUI控制台

1,在Admon节点上执行以下命令即可启动web管理页面,首次运行时系统会提示运行Admon守护进程的主机的
主机名和端口(默认值:8000)。还可以更改GUI的内部桌面的分辨率和GUI的默认日志级别。
java -jar /opt/beegfs/beegfs-admon-gui/beegfs-admon-gui.jar

2,登录机制基于两个预定义的用户。
用户“Information”(初始密码“Information”)只能查看统计信息,而用户“Administrator”(初始密码“
admin”)可以执行管理任务。

3,登录后,即可以图形界面方式监控和管理BeeGFS。

到这里BeeGFS的安装测试就完成了,由于是在VM虚拟机中进行的演示,所有节点都是在同一个LUN上面,并
且网络为千兆网卡,所以这里的演示并不能展示出BeeGFS的实际性能。如果Storage节点采用物理机进行安
装,并采用10G或目前比较流行的25G网络,同时采用RDMA功能,所有Storage建立在硬件RAID上,其并行
数据读写性能才会得到充分发挥。这里只是对BeeGFS的安装配置进行一个基本的演示。


文章作者: kclouder
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 kclouder !
  目录