- mds 192.168.28.180
- oss1 192.168.28.179
- oss2 192.168.28.178
- client 192.168.28.177
角色介绍
mds:元数据服务器。元数据服务管理,元数据存放位置。
oss1:对象数据服务器1。ost数据存放位置。
oss2:对象数据服务器2。ost数据存放位置。
client:测试BeeGFS挂载服务器。模拟客户端挂载。
模拟配置准备
- mds 20G SSD
- oss1 300G
- oss2 300G
准备前置
配置好主机名,配置好双机互信。验证后,发现可以不用配置双机互信。
MDS元数据服务器
mds格式化磁盘
我这里的mds 20G ssd的设备号为sdb,格式化官方建议使用ext4,文件系统。
mkfs.ext4 /dev/sdb
vim /etc/fstab #加入如下内容
----------------
/dev/sdb /mdt ext4 defaults 0 0
----------------
mkdir /mdt
mount -av
上面我将sdb,挂载到 /mdt下,用于存放元数据,元数据服务。最终如下图。
安装mds管理服务和元数据服务
- 下载beeGFS的软件仓库
wget wget https://www.beegfs.io/release/beegfs_7.2.9/dists/beegfs-rhel7.repo -O /etc/yum.repos.d/beegfs-rhel7.repo
- 安装管理服务和元数据服务
yum install beegfs-mgmtd beegfs-meta libbeegfs-ib -y
#libbeegfs-ib is only required for RDMA
- 初始化管理服务和元数据服务
/opt/beegfs/sbin/beegfs-setup-meta -p /mdt/beegfs/beegfs_meta -s 2 -m mds
#说明:您还可以选择定义一个定制的数字元数据服务ID(范围1..65535)。此处选择数字“2”作为元数据服务ID
/opt/beegfs/sbin/beegfs-setup-mgmtd -p /mdt/beegfs/beegfs_mgmtd
- 启动服务
systemctl start beegfs-mgmtd beegfs-meta
#你会发现,服务启动异常。是因为没有配置auth方式的原因。
- 创建auth文件
dd if=/dev/random of=/etc/beegfs/connauthfile bs=128 count=1
chown root:root /etc/beegfs/connauthfile
chmod 400 /etc/beegfs/connauthfile
#记住这个auth文件,到时候需要拷贝到其他节点上面去。oss节点和所有客户端。
- 修改beegfs-meta.conf,beegfs-mgmtd.conf
vim /etc/beegfs/beegfs-meta.conf
vim /etc/beegfs/beegfs-mgmtd.conf
#将connAuthFile选项设置为: /etc/beegfs/connauthfile
connAuthFile = /etc/beegfs/connauthfile
- 再次启动服务
systemctl start beegfs-mgmtd beegfs-meta
systemctl enable beegfs-mgmtd beegfs-meta
systemctl status beegfs-mgmtd beegfs-meta
OSS对象数据服务器
我们有两台对象服务器,安装软件的操作都差不多,这里我会说明差异部分。
oss格式化磁盘
我这里的oss 300G设备号为sdb,格式化官方建议使用ext4,文件系统。
mkfs.ext4 /dev/sdb
vim /etc/fstab #加入如下内容
----------------
/dev/sdb /ost1 ext4 defaults 0 0
----------------
mkdir /ost1
mount -av
** 注意:oss1挂载分区为ost1,oss2挂载分区为ost2,格式化时记得注意 **
安装oss对象数据存储服务
** oss1和oss2都执行 **
- 下载beeGFS的软件仓库
wget wget https://www.beegfs.io/release/beegfs_7.2.9/dists/beegfs-rhel7.repo -O /etc/yum.repos.d/beegfs-rhel7.repo
- 安装对象存储软件
yum install beegfs-storage libbeegfs-ib -y
#libbeegfs-ib is only required for RDMA
#如果是RDMA,貌似需要编译一下,可以去找官方文档,这里我用的以太网,就不详细展开了。
- 初始化
oss1:
/opt/beegfs/sbin/beegfs-setup-storage -p /ost1/beegfs_storage -s 3 -i 301 -m mds
#说明:您还可以选择定义一个定制的数字存储服务ID和数字存储目标ID(都在范围1..65535中)。此处将选择数字“3”作为存储服务的ID,并使用“301”作为存储目标ID。mds为mds服务的主机名。
#所以oss1和oss2的存储ID不一样,oss1为3,301。oss2为4,401。
oss2:
/opt/beegfs/sbin/beegfs-setup-storage -p /ost2/beegfs_storage -s 4 -i 401 -m mds
- 修改配置文件beegfs-storage.conf
#mds scp 过来connauthfile到/etc/beegfs/connauthfile
vim /etc/beegfs/beegfs-storage.conf
#将connAuthFile选项设置为: /etc/beegfs/connauthfile
connAuthFile = /etc/beegfs/connauthfile
- 启动服务
systemctl start beegfs-storage
systemctl status beegfs-storage
systemctl enable beegfs-storage
客户端
安装客户端服务和命令行服务
- 下载beeGFS的软件仓库
wget wget https://www.beegfs.io/release/beegfs_7.2.9/dists/beegfs-rhel7.repo -O /etc/yum.repos.d/beegfs-rhel7.repo
- 安装客户端服务,命令行服务,帮助服务
yum install beegfs-client beegfs-helperd beegfs-utils -y
yum install kernel-devel -y
#说明:关于helperd和utils的注意:额外的beegfs-helperd包含客户机的userspace助手守护程序,它为客户机模块提供日志记录和DNS查找功能。beegfs-utils包包含例如beegfs-ctl命令行工具,它可以显示统计信息和执行管理任务。
- 初始化配置服务
/opt/beegfs/sbin/beegfs-setup-client -m mds
#说明:mds为元数据服务器主机名
- 修改配置文件
#mds scp 过来connauthfile到/etc/beegfs/connauthfile
vim /etc/beegfs/beegfs-helperd.conf
vim /etc/beegfs/beegfs-client.conf
#将connAuthFile选项设置为: /etc/beegfs/connauthfile
connAuthFile = /etc/beegfs/connauthfile
默认的挂载位置为:/mnt/beegfs 可以在配置文件中修改
vim /etc/beegfs/beegfs-client.conf
- 启动服务
systemctl restart beegfs-helperd beegfs-client
- 检查挂载
一些命令行工具
更多的命令行操作方式,去查找官方文档。
beegfs-ctl --listnodes --nodetype=meta --nicdetails //客户端查看元数据节点信息
beegfs-ctl --listnodes --nodetype=storage --nicdetails //客户端查看存储节点信息
beegfs-ctl --listnodes --nodetype=client --nicdetails //客户端查看客户端节点信息
beegfs-ctl --getentryinfo /beegfs 查看文件系统信息
完成安装
自此,BeeGFS文件系统已经完成安装了。但是更多的存储设置,还需要去参考官方文档,个人觉得这个文件系统安装没那么复杂。目前的状态也是一个笼统的安装过程。有问题欢迎指点。
性能测试
sysbench
yum install -y sysbench
cd /beegfs
sysbench --test=fileio --threads=2 --file-total-size=512M --file-test-mode=rndrw prepare
sysbench --test=fileio --threads=2 --file-total-size=512M --file-test-mode=rndrw run
sysbench --test=fileio --threads=2 --file-total-size=512M --file-test-mode=rndrw cleanup
fio
yum install -y fio
cd /beegfs
rm -rf test_file*
顺序读:
fio -filename=test_file -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
顺序写:
fio -filename=test_file -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
混合随机读写
fio -filename=test_file -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
随机读
fio -filename=test_file -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
随机写
fio -filename=test_file -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=1000 -group_reporting -name=mytest