1、概述


小于8T,使用ext4分区,大于8T建议使用xfs分区。

fio进行磁盘读写测试。


2、分区(前置条件)


#1.yum
yum install parted xfsprogs  -y

#2.查看数据盘(或新加的盘)
fdisk -l
或
lsblk

#3.定义盘符变量
export d_disk=/dev/vdb   #根据第二步查出的数据盘名称对应修改/dev/vdb

#4.分区
fdisk  ${d_disk}   #(新建磁盘)
n-->p-->1(数字1)-->回车-->回车-->p-->w
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.


3、ext4格式化


#1.格式化
mkfs.ext4 -T largefile ${d_disk}1
y

#2.挂载盘符
mkdir -p /data007  #创建挂载点
mount -t ext4 -o noatime ${d_disk}1 /data007

#3.开机自动挂载
echo "${d_disk}1  /data007  ext4  defaults,noatime 0 0" >> /etc/fstab
或 (换盘情况)
取消/etc/fstab文件中注释
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.


4、xfs格式化


#1.格式化
mkfs -t xfs -f -n ftype=1 ${d_disk}1   ## -f强行格式化
 
#2.挂载盘符
mkdir -p /data007  #创建挂载点
/bin/mount -t xfs -o noatime ${d_disk}1 /data007  

#3.开机自动挂载
echo "${d_disk}1  /data007  xfs   defaults,noatime 0 0" >>/etc/fstab
或 (换盘情况)
取消/etc/fstab文件中注释

#4、检查
xfs_info /data007



##删除分区
#/etc/fstab中配置请清除
#如果有挂载就先umount掉
fdisk  /dev/sdb
m-->d-->1-->w
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.


5、磁盘io测试fio


使用以下命令进行测试,/data/data/test 为磁盘分区的测试目录。

runfio.sh

#!/bin/bash
yum install libaio-devel fio -y
rm -rf /data/data/test
mkdir -p /data/data/test
#顺序读
fio -directory=/data/data/test -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=30 -group_reporting -name=mytest
#顺序写
fio -directory=/data/data/test -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=30 -group_reporting -name=mytest
#随机读
fio -directory=/data/data/test -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=30 -group_reporting -name=mytest
#随机写
fio -directory=/data/data/test -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=30 -group_reporting -name=mytest
#read : io(测试了1G的数据)=1024.0MB, bw(带宽)=139643KB/s, iops(每秒钟的IO数)=136 , runt(总运行时间)=  7509msec
#nohup runfio.sh &
#cat nohup.out |grep iops
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

 测单块ssd iops

mkdir /kudu7/iopstest
#顺序读
fio -directory=/kudu7/iopstest -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=1G -numjobs=10 -runtime=30 -group_reporting -name=mytest
##[R(10)][100.0%][r=954MiB/s,w=0KiB/s][r=61.1k,w=0 IOPS][eta 00m:00s]

#顺序写
fio -directory=/kudu7/iopstest -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=1G -numjobs=10 -runtime=30 -group_reporting -name=mytest
##[W(10)][100.0%][r=0KiB/s,w=301MiB/s][r=0,w=19.3k IOPS][eta 00m:00s]

#随机读
fio -directory=/kudu7/iopstest -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=1G -numjobs=10 -runtime=30 -group_reporting -name=mytest
[r(10)][100.0%][r=953MiB/s,w=0KiB/s][r=61.0k,w=0 IOPS][eta 00m:00s]
#随机写
fio -directory=/kudu7/iopstest -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=1G -numjobs=10 -runtime=30 -group_reporting -name=mytest

[w(10)][100.0%][r=0KiB/s,w=300MiB/s][r=0,w=19.2k IOPS][eta 00m:00s]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.


这里是对您提供的 fio 命令中各个参数的简要解释:

-directory=/kudu7/iopstest: 指定进行测试的目录路径。

-direct=1: 启用直接 I/O,绕过文件系统缓存。

-iodepth 1: 每个作业中正在发生的 I/O 数。

-thread: 每个作业使用独立线程。

-rw=read: 读取操作的模式为随机读取。

-ioengine=psync: 使用 psync I/O 引擎。

-bs=16k: 每个 I/O 操作使用的块大小为 16KB。

-size=10G: 模拟总共 10GB 的数据。

-numjobs=10: 同时执行的作业数量为 10。

-runtime=30: 测试运行时间为 30 秒。

-group_reporting: 输出聚合报告。

-name=mytest: 指定测试作业的名称为 "mytest"。


6、常见问题


1、问mount -a 有什么作用?
答:mount -a 就是重新加载fstab文件中的内容
相当于更新你刚刚修改fstab文件内容

2、如何重载系统配置
答:systemctl daemon-reload
然后在进行mount
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.