1. 配置信息
① Software
@H_
404_2@ 所有节点均为CentOS 7.1的虚拟机。
@H_
404_2@ 另外,物理机为百兆网卡,虚拟机为千兆网卡。
@H_
404_2@
@H_
404_2@
@H_
404_2@ ② Host Services
@H_
404_2@ BeeGFS-01(192.168.28.165):Management Server
@H_
404_2@ BeeGFS-02(192.168.28.166):
Metadata Server
@H_
404_2@ BeeGFS-03(192.168.28.167):Storage Server
@H_
404_2@ BeeGFS-04(192.168.28.168):Client
@H_
404_2@ BeeGFS-05(192.168.28.169):Admon Server (optional for graphical interface)
@H_
404_2@
@H_
404_2@
@H_
404_2@ ③ Storage
@H_
404_2@ Storage servers with RAID 6 data partition formatted with xfs。
@H_
404_2@
Metadata servers with RAID 1 data partition formatted with ext4。
@H_
404_2@
@H_
404_2@
@H_
404_2@
2. 更新源服务器地址(可选步骤)
“网速较慢”或者“安装软件失败”的情况下,可以考虑替换成国内的镜像:
@H_
404_2@
@H_
404_2@
@H_
404_2@ ① 备份原镜像
文件
@H_
404_2@ $ sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
@H_
404_2@
@H_
404_2@
@H_
404_2@ ② 下载CentOS-Base.repo到/etc/yum.repos.d/
@H_
404_2@ $ sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
@H_
404_2@
@H_
404_2@
@H_
404_2@ ③ 重新
生成缓存
@H_
404_2@ $ yum clean all
@H_
404_2@ $ yum makecache
@H_
404_2@
@H_
404_2@
@H_
404_2@ ④ 更新系统
@H_
404_2@ $ sudo yum -y update
@H_
404_2@
@H_
404_2@
@H_
404_2@
3. 时间同步(可选步骤)
$ sudo yum -y install ntp
@H_
404_2@ $ sudo service ntpd start
@H_
404_2@
@H_
404_2@
@H_
404_2@
4. RAID配置
mdadm是Multiple Devices Admin 的简称,它是Linux下的一款标准的软件RAID管理工具。
@H_
404_2@
@H_
404_2@
@H_
404_2@ ① BeeGFS-02(
Metadata Server)配置RAID 1
@H_
404_2@ RAID 1至少需要2块盘,使用fdisk命令对/dev/sdb和/dev/sdc进行分区:
@H_
404_2@ $ sudo fdisk /dev/sdb
@H_
404_2@ $ sudo fdisk /dev/sdc
@H_
404_2@
@H_
404_2@
@H_
404_2@ 创建RAID 1:
@H_
404_2@ $ sudo yum install -y mdadm
@H_
404_2@ $ sudo mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sd[b,c]1
@H_
404_2@
@H_
404_2@
@H_
404_2@ 查看RAID 1状态:
@H_
404_2@ $ cat /proc/mdstat
@H_
404_2@ $ sudo mdadm -D /dev/md1
@H_
404_2@
@H_
404_2@
@H_
404_2@ 格式化磁盘阵列:
@H_
404_2@ $ sudo mkfs.ext4 /dev/md1
@H_
404_2@
@H_
404_2@
@H_
404_2@ 建立挂载点并挂载:
@H_
404_2@ $ sudo mkdir -p /data
@H_
404_2@ $ sudo mount /dev/md1 /data
@H_
404_2@
@H_
404_2@
@H_
404_2@ 写入/etc/fstab:
@H_
404_2@ $ echo /dev/md1 /data ext4 defaults 0 0 | sudo tee -a /etc/fstab
@H_
404_2@
@H_
404_2@
@H_
404_2@ 打开
Metadata Server的扩展
属性功能:
@H_
404_2@ sudo tune2fs -o user_xattr /dev/md1
@H_
404_2@
@H_
404_2@
@H_
404_2@ ② BeeGFS-03(Storage Server)配置RAID 6
@H_
404_2@ RAID 6至少需要4块盘,使用fdisk命令对/dev/sdb、/dev/sdc、/dev/sdd和/dev/sde进行分区:
@H_
404_2@ $ sudo fdisk /dev/sdb
@H_
404_2@ $ sudo fdisk /dev/sdc
@H_
404_2@ $ sudo fdisk /dev/sdd
@H_
404_2@ $ sudo fdisk /dev/sde
@H_
404_2@
@H_
404_2@
@H_
404_2@ 创建RAID 6:
@H_
404_2@ $ sudo yum install -y mdadm
@H_
404_2@ $ sudo mdadm --create /dev/md1 --level=6 --raid-devices=4 /dev/sd[b,c,d,e]1
@H_
404_2@
@H_
404_2@
@H_
404_2@ 查看RAID 6状态:
@H_
404_2@ $ cat /proc/mdstat
@H_
404_2@ $ sudo mdadm -D /dev/md1
@H_
404_2@
@H_
404_2@
@H_
404_2@ 格式化磁盘阵列:
@H_
404_2@ $ sudo mkfs.xfs /dev/md1
@H_
404_2@
@H_
404_2@
@H_
404_2@ 建立挂载点并挂载:
@H_
404_2@ $ sudo mkdir -p /mnt/md1
@H_
404_2@ $ sudo mount /dev/md1 /mnt/md1
@H_
404_2@
@H_
404_2@
@H_
404_2@ 写入/etc/fstab:
@H_
404_2@ $ echo /dev/md1 /mnt/md1 xfs defaults 0 0 | sudo tee -a /etc/fstab
@H_
404_2@
@H_
404_2@
@H_
404_2@ 类似的,还可以对/dev/sdf、/dev/sdg、/dev/sdh和/dev/sdi配置RAID 6,并挂载到/mnt/md2。
@H_
404_2@
@H_
404_2@
@H_
404_2@
5. YUM安装
① 所有节点下载CentOS-Base.repo到/etc/yum.repos.d/
@H_
404_2@ $ sudo wget -O /etc/yum.repos.d/beegfs-rhel7.repo http://www.beegfs.io/release/beegfs_6/dists/beegfs-rhel7.repo
@H_
404_2@
@H_
404_2@
@H_
404_2@ ② 下载安装
@H_
404_2@ BeeGFS-01节点安装Management Service:
@H_
404_2@ $ sudo yum install -y beegfs-mgmtd
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-02节点安装
Metadata Service:
@H_
404_2@ $ sudo yum install -y beegfs-
Meta
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-03节点安装Storage Service:
@H_
404_2@ $ sudo yum install -y beegfs-storage
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-04节点安装Client and Command-line Utils:
@H_
404_2@ $ sudo yum install -y beegfs-client beegfs-helperd beegfs-utils
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-05节点安装Admon Service(可选步骤):
@H_
404_2@ $ sudo yum install -y beegfs-admon
@H_
404_2@
@H_
404_2@
@H_
404_2@ ③ BeeGFS-04节点Client Kernel Module Autobuild(如果没有RDMA-capable network hardware,则忽略该步骤)
@H_
404_2@ $ sudo vi /etc/beegfs/beegfs-client-autobuild.conf
@H_
404_2@ Find the option "buildArgs" and set it to enabled ibverbs support:
@H_
404_2@ buildArgs=-j8 BEEGFS_OPENTK_IBVERBS=1
@H_
404_2@
@H_
404_2@
@H_
404_2@ If you installed separate OFED kernel modules,add the OFED_INCLUDE_PATH:
@H_
404_2@ buildArgs=-j8 BEEGFS_OPENTK_IBVERBS=1 OFED_INCLUDE_PATH=/usr/src/openib/include
@H_
404_2@
@H_
404_2@
@H_
404_2@ 重构client kernel module:
@H_
404_2@ $ sudo /etc/init.d/beegfs-client rebuild
@H_
404_2@
@H_
404_2@
@H_
404_2@ ④ 基本配置
@H_
404_2@ BeeGFS-02、BeeGFS-03、BeeGFS-04和BeeGFS-05节点都需要更新/etc/hosts:
@H_
404_2@ $ echo 192.168.28.165 BeeGFS-01 | sudo tee -a /etc/hosts
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-01节点配置Management Service:
@H_
404_2@ $ sudo /opt/beegfs/sbin/beegfs-setup-mgmtd -p /data/beegfs/beegfs_mgmtd
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-02节点配置
Metadata Service(
Metadata Service ID的范围为从1到65535,此处ID使用的2):
@H_
404_2@ $ sudo /opt/beegfs/sbin/beegfs-setup-
Meta -p /data/beegfs/beegfs_
Meta -s 2 -m BeeGFS-01
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-03节点配置Storage Service(Storage Service/Target ID的范围为从1到65535,此处Storage Service ID使用的3,Storage Target ID使用的
301):
@H_
404_2@ $ sudo /opt/beegfs/sbin/beegfs-setup-storage -p /mnt/md1/beegfs_storage -s 3 -i
301 -m BeeGFS-01
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-03节点
添加一个Storage Target(可选步骤):
@H_
404_2@ $ sudo /opt/beegfs/sbin/beegfs-setup-storage -p /mnt/md2/beegfs_storage -s 3 -i 302
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-04节点配置Client(BeeGFS默认会挂载到/mnt/beegfs,可以自行在
配置文件/etc/beegfs/beegfs-mounts.conf中
修改):
@H_
404_2@ $ sudo /opt/beegfs/sbin/beegfs-setup-client -m BeeGFS-01
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-05节点
修改配置文件:
@H_
404_2@ $ sudo vi /etc/beegfs/beegfs-admon.conf
@H_
404_2@ sysMgmtdHost=BeeGFS-01
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@ ⑤ 启动服务
@H_
404_2@ BeeGFS-01节点启动Management Service:
@H_
404_2@ $ sudo systemctl start beegfs-mgmtd
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-02节点启动
Metadata Service:
@H_
404_2@ $ sudo systemctl start beegfs-
Meta
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-03节点启动Storage Service:
@H_
404_2@ $ sudo systemctl start beegfs-storage
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-04节点启动Client:
@H_
404_2@ $ sudo systemctl start beegfs-helperd
@H_
404_2@ $ sudo systemctl start beegfs-client
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-05节点启动Admon Service:
@H_
404_2@ $ sudo systemctl start beegfs-admon
@H_
404_2@
@H_
404_2@
@H_
404_2@ BeeGFS-05节点启动Admon UI(可选步骤):
@H_
404_2@ $ sudo yum install -y java
@H_
404_2@ $ java -jar /opt/beegfs/beegfs-admon-gui/beegfs-admon-gui.jar
@H_
404_2@ 我的环境上,这一步报错:Your environment doesn't support a graphical user interface. Is a X-environment available or X-forwarding in your ssh session enabled?
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@ ⑥ 客户端测试
@H_
404_2@ $ beegfs-ctl --listnodes --nodetype=
Meta --details
@H_
404_2@ $ beegfs-ctl --listnodes --nodetype=storage --details
@H_
404_2@ $ beegfs-ctl --listnodes --nodetype=client --details
@H_
404_2@ $ beegfs-net
@H_
404_2@
@H_
404_2@
@H_
404_2@
6. 性能测试
① dd测试
@H_
404_2@ 客户端写入1G数据:
@H_
404_2@ $ mkdir -p /mnt/beegfs/dd_test
@H_
404_2@ $ dd if=/dev/zero of=/mnt/beegfs/dd_test/test_file bs=1000000 count=1000
@H_
404_2@
@H_
404_2@
@H_
404_2@ 测试结果:
@H_
404_2@ 1000+0 records in
@H_
404_2@ 1000+0 records out
@H_
404_2@ 1000000000 bytes (1.0 GB) copied,10.1934 s,98.1 MB/s
@H_
404_2@
@H_
404_2@
@H_
404_2@ ② sysbench测试
@H_
404_2@ $ sudo yum install -y sysbench
@H_
404_2@ $ mkdir -p /mnt/beegfs/sysbench_test
@H_
404_2@ $ cd /mnt/beegfs/sysbench_test
@H_
404_2@ $ sysbench --test=fileio --threads=2 --file-total-size=512M --file-test-mode=rndrw prepare
@H_
404_2@ $ sysbench --test=fileio --threads=2 --file-total-size=512M --file-test-mode=rndrw run
@H_
404_2@ $ sysbench --test=fileio --threads=2 --file-total-size=512M --file-test-mode=rndrw cleanup
@H_
404_2@
@H_
404_2@
@H_
404_2@ 测试结果:
@H_
404_2@ File operations:
@H_
404_2@ reads/s: 89.92
@H_
404_2@ writes/s: 59.95
@H_
404_2@ fsyncs/s: 189.14
@H_
404_2@
@H_
404_2@
@H_
404_2@ Throughput:
@H_
404_2@ read,MiB/s: 1.41
@H_
404_2@ written,MiB/s: 0.94
@H_
404_2@
@H_
404_2@
@H_
404_2@ General statistics:
@H_
404_2@ total time: 10.0033s
@H_
404_2@ total number of events: 3393
@H_
404_2@
@H_
404_2@
@H_
404_2@ Latency (ms):
@H_
404_2@ min: 0.00
@H_
404_2@ avg: 5.88
@H_
404_2@ max: 1315.41
@H_
404_2@ 95th percentile: 12.98
@H_
404_2@ sum: 19963.77
@H_
404_2@
@H_
404_2@
@H_
404_2@ Threads fairness:
@H_
404_2@ events (avg/stddev): 1696.5000/12.50
@H_
404_2@ execution time (avg/stddev): 9.9819/0.00
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@ ③ Fio测试
@H_
404_2@ $ sudo yum install -y fio
@H_
404_2@ $ mkdir -p /mnt/beegfs/fio_test
@H_
404_2@ $ touch /mnt/beegfs/fio_test/test_file
@H_
404_2@
@H_
404_2@
@H_
404_2@ 顺序读:
@H_
404_2@ $ fio -filename=/mnt/beegfs/fio_test/test_file -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
@H_
404_2@ 测试结果:
@H_
404_2@ READ: io=30720MB,aggrb=152289KB/s,minb=152289KB/s,maxb=152289KB/s,mint=206562msec,maxt=206562msec
@H_
404_2@
@H_
404_2@
@H_
404_2@ 顺序写:
@H_
404_2@ $ fio -filename=/mnt/beegfs/fio_test/test_file -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
@H_
404_2@ 测试结果:
@H_
404_2@ WRITE: io=524576KB,aggrb=1710KB/s,minb=1710KB/s,maxb=1710KB/s,mint=306653msec,maxt=306653msec
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@ $ fio -filename=/mnt/beegfs/fio_test/test_file -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
@H_
404_2@ 测试结果:
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@
随机写:
@H_
404_2@ $ fio -filename=/mnt/beegfs/fio_test/test_file -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=1G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
@H_
404_2@ 测试结果:
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@ 混合
随机读写:
@H_
404_2@ $ fio -filename=/mnt/beegfs/fio_test/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
@H_
404_2@ 测试结果:
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@
@H_
404_2@ blocksize可以自行调整:一般而言,4k、8k是针对小
文件,128k、256k是针对大
文件。
@H_
404_2@
@H_
404_2@
@H_
404_2@
7. RPM安装
① 查看ChangeLog
@H_
404_2@ http://www.beegfs.io/release/beegfs_6/Changelog.txt
@H_
404_2@
@H_
404_2@
@H_
404_2@ ② 最新RPM包的路径
@H_
404_2@ http://www.beegfs.io/release/beegfs_6/dists/rhel7/x86_64/
@H_
404_2@
@H_
404_2@
@H_
404_2@
8. 源码安装
$ sudo yum install -y git
@H_
404_2@ $ git clone https://git.beegfs.com/pub/v6.git
@H_
404_2@
@H_
404_2@
@H_
404_2@
9. 参考资料
①《Installation Commands Walk-Through (Quickstart Guide)》,http://www.beegfs.com/wiki/ManualInstallWalkThrough