测试工具通过网络下载如果较慢,也可以直接访问云盘进行下载
链接:https://pan.baidu.com/s/1lrVUeOxDlXpIHR7OBvpxJQ
提取码:h63p

安装测试工具

1、安装依赖程序
  1. # yum -y install gcc gcc-c++ gcc-gfortran
2、创建软件包目录
  1. # mkdir tools
3、安装mpi
  1. # cd tools
  2. # curl -O https://download.open-mpi.org/release/open-mpi/v1.10/openmpi-1.10.7.tar.gz
  3. # ./configure --prefix=/usr/local/openmpi/
  4. # make
  5. # make install
4、添加环境变量

在.bashrc文件中添加以下三行内容

  1. # vim /root/.bashrc
  2. export PATH=$PATH:/usr/local/openmpi/bin/:/usr/local/ior/bin/
  3. export LD_LIBRARY_PATH=/usr/local/openmpi/lib:${LD_LIBRARY_PATH}
  4. export MPI_CC=mpicc
  5. # source /root/.bashrc
5、安装IOR
  1. # cd tools/
  2. # yum -y install git automake
  3. # git clone https://github.com/chaos/ior.git
  4. # cd ior
  5. # ./bootstrap
  6. # ./configure --prefix=/usr/local/ior/
  7. # make
  8. # make install
6、安装mdtest
  1. # cd tools/
  2. # mkdir mdtest
  3. # wget https://nchc.dl.sourceforge.net/project/mdtest/mdtest%20latest/mdtest-1.9.3/mdtest-1.9.3.tgz
  4. # cd mdtest
  5. # tar xf mdtest-1.9.3.tgz
  6. # make

使用IOR和Mdtest进行测试

环境
主机功能 主机IP 主机组件
Server 10.0.98.21 mon,osd,mds
Server 10.0.98.22 mon,osd,mds
Server 10.0.98.23 mon,osd,mds
Clients 192.168.1.100 ceph-fuse,openmpi,ior,mdtest
Clients 192.168.1.102 ceph-fuse,openmpi,ior,mdtest
Clients 192.168.1.103 ceph-fuse,openmpi,ior,mdtest
Clients 192.168.1.104 ceph-fuse,openmpi,ior,mdtest
Clients 192.168.1.105 ceph-fuse,openmpi,ior,mdtest

服务端和客户端组件的的安装这里不再赘述。服务端的配置可以参考之前的文章,通过ceph-ansible快速完成部署;客户端的配置可以参考之前的IOR和Mdtest安装文档进行配置。下面说明一下客户端的部署和配置。

挂载CephFS

以下操作需要在所有的客户端节点完成

1、在客户端节点安装ceph-fuse
  1. # yum -y install ceph-fuse
2、创建ceph文件保存目录
  1. # mkdir /etc/ceph
3、拷贝服务端的ceph的keyring文件
  1. # scp 10.0.98.21:/etc/ceph/* /etc/ceph/
4、创建挂载目录
  1. # mkdir /mnt/fs{1,2,3,4}
5、挂载cephfs
  1. # ceph-fuse -m 10.0.98.21:6789/ /mnt/fs1/
  2. # ceph-fuse -m 10.0.98.21:6789/ /mnt/fs2/
  3. # ceph-fuse -m 10.0.98.21:6789/ /mnt/fs3/
  4. # ceph-fuse -m 10.0.98.21:6789/ /mnt/fs4/
6、在挂载目录下创建测试目录
  1. # mkdir /mnt/fs{1,2,3,4}/iortest

如果有部署ansible服务端的话,可以执行以下命令通过ansible快速完成5个client的配置。如果对ansible的使用不是太熟练,那就老老实实的用上面的步骤在所有的client上手动完成操作吧。

1、安装ceph-fuse
  1. ansible clients -m yum -a name=ceph-fuse state=installed
2、创建ceph文件目录
  1. ansible clients -m file -a name=/etc/ceph state=directory
3、拷贝ceph文件
  1. ansible clients -m copy -a src=/etc/ceph/ceph.client.admin.keyring dest=/etc/ceph/ceph.client.admin.keyring
4、创建挂载目录
  1. ansible clients -m shell -a mkdir -p /mnt/fs{1,2,3,4}’
5、挂载cephfs
  1. ansible clients -m shell -a ceph-fuse -m MDSIP:6789/ /mnt/fs1
  2. ansible clients -m shell -a ceph-fuse -m MDSIP:6789/ /mnt/fs2
  3. ansible clients -m shell -a ceph-fuse -m MDSIP:6789/ /mnt/fs3
  4. ansible clients -m shell -a ceph-fuse -m MDSIP:6789/ /mnt/fs4
6、在挂载目录下创建测试目录
  1. ansible clients -m shell -a mkdir /mnt/fs{1,2,3,4}/iortest
创建测试脚本

ior的测试通过scripts完成,以下是几个测试脚本示例,实际测试过程中可以根据测试环境进行修改

1、单个客户端单个进程
  1. # cat test/iorconf-11
  2. ===============> start script <===============
  3. IOR START
  4. api=POSIX
  5. hintsFileName=hintsFile
  6. testFile=/mnt/fs1/iortest/f11-1
  7. repetitions=1
  8. readFile=1
  9. writeFile=1
  10. filePerProc=1
  11. segmentCount=1
  12. blockSize=128g
  13. transferSize=1024k
  14. collective=0
  15. IOR STOP
  16. ===============> stop script <===============
2、单个客户端4个进程
  1. # cat test/iorconf-14
  2. ===============> start script <===============
  3. IOR START
  4. api=POSIX
  5. hintsFileName=hintsFile
  6. testFile=/mnt/fs1/iortest/f14-1@/mnt/fs2/iortest/f14-2@/mnt/fs3/iortest/f14-3@/mnt/fs4/iortest/f14-4
  7. repetitions=1
  8. readFile=1
  9. writeFile=1
  10. filePerProc=1
  11. segmentCount=1
  12. blockSize=32g
  13. transferSize=1024k
  14. collective=0
  15. IOR STOP
  16. ===============> stop script <===============
3、5个客户端4个进程
  1. # cat test/iorconf-54
  2. ===============> start script <===============
  3. IOR START
  4. api=POSIX
  5. hintsFileName=hintsFile
  6. testFile=/mnt/fs1/iortest/f54-1@/mnt/fs2/iortest/f54-2@/mnt/fs3/iortest/f54-3@/mnt/fs4/iortest/f54-4@/mnt/fs1/iortest/f54-5@/mnt/fs2/iortest/f54-6@/mnt/fs3/iortest/f54-7@/mnt/fs4/iortest/f54-8@/mnt/fs1/iortest/f54-9@/mnt/fs2/iortest/f54-10@/mnt/fs3/iortest/f54-11@/mnt/fs4/iortest/f54-12@/mnt/fs1/iortest/f54-13@/mnt/fs2/iortest/f54-14@/mnt/fs3/iortest/f54-15@/mnt/fs4/iortest/f54-16@/mnt/fs1/iortest/f54-17@/mnt/fs2/iortest/f54-18@/mnt/fs3/iortest/f54-19@/mnt/fs4/iortest/f54-20
  7. repetitions=1
  8. readFile=1
  9. writeFile=1
  10. filePerProc=1
  11. segmentCount=1
  12. blockSize=32g
  13. transferSize=1024k
  14. collective=0
  15. IOR STOP
  16. ===============> stop script <===============
测试命令
IOR测试IOR测试
1、单个客户端单个进程
  1. # ior -f test/iorconf-11
2、单个客户端4个进程
  1. # mpirun --allow-run-as-root -np 4 ior -f test/iorconf-14
3、5个客户端4个进程
  1. # mpirun --allow-run-as-root --mca plm_rsh_no_tree_spawn 1 -npernode 4 -hostfile test/hosts ior -f test/iorconf-54

注:进行多个客户端测试时,需要在每个节点的对应目录下都上传测试脚本,测试命令中的hosts文件内容如下:

  1. # cat test/hosts
  2. test1 slots=4
  3. test2 slots=4
  4. test3 slots=4
  5. test4 slots=4
  6. test5 slots=4
Mdtest测试
1、单个客户端单个进程
  1. # ./mdtest -F -L -z 4 -b 2 -I 1562 -u -d /mnt/fs1/mdtest/
2、单个客户端4个进程
  1. # mpirun --allow-run-as-root -np 4 ./mdtest -F -L -z 4 -b 2 -I 1562 -u -d /mnt/fs1/mdtest1/@/mnt/fs2/mdtest2@/mnt/fs3/mdtest3@/mnt/fs4/mdtest4
3、5个客户端4个进程
  1. # mpirun --allow-run-as-root --mca plm_rsh_no_tree_spawn 1 -npernode 4 -hostfile /root/test/hosts ./mdtest -F -L -z 4 -b 2 -I 1562 -u -d /mnt/fs1/mdtest1/@/mnt/fs2/mdtest2@/mnt/fs3/mdtest3@/mnt/fs4/mdtest4@/mnt/fs1/mdtest5/@/mnt/fs2/mdtest6@/mnt/fs3/mdtest7@/mnt/fs4/mdtest8@/mnt/fs1/mdtest9/@/mnt/fs2/mdtest10@/mnt/fs3/mdtest11@/mnt/fs4/mdtest12@/mnt/fs1/mdtest13/@/mnt/fs2/mdtest14@/mnt/fs3/mdtest15@/mnt/fs4/mdtest16@/mnt/fs1/mdtest17/@/mnt/fs2/mdtest18@/mnt/fs3/mdtest19@/mnt/fs4/mdtest20