zl程序教程

您现在的位置是:首页 >  系统

当前栏目

CentOS7 利用lvm cache结合机械盘和SSD盘实现磁盘IO性能提升 —— 筑梦之路

centos7性能IO 实现 利用 提升 结合 磁盘
2023-09-14 09:09:36 时间

环境说明

1.操作系统:CentOS7 最小化安装

2.系统盘sda 100G (机械盘)+ 数据盘sdb 100G(机械盘)+ SSD缓存盘 sdc 64G

实现过程

1. 对数据盘和缓存盘进行分区,建立一个区就行

parted /dev/sdb

parted /dev/sdc

2. 创建pv

pvcreate /dev/sdb1 /dev/sdc1

3. 创建vg

vgcreate vg /dev/sdb1 /dev/sdc1

4. 创建数据卷 并指定创建在/dev/sdb1上

lvcreate -n data -L 98G vg /dev/sdb1

5. 创建缓存卷 并指定创建在/dev/sdc1上

lvcreate -n cache -L 60G vg /dev/sdc1

6. 创建meta卷 并指定创建在/dev/sdc1

lvcreate -n meta -L 3G vg /dev/sdc1

7. 创建缓存池

lvconvert --type cache-pool --poolmetadata vg/meta vg/cache

一定要注意cache和meta的顺序,不能搞错。一定要注意cache和meta的顺序,不能搞错。一定要注意cache和meta的顺序,不能搞错

8. 给数据卷提供缓存

lvconvert --type cache --cachepool vg/cache --cachemode writeback vg/data


注意:Cache与Meta的比例不能超过1000:1

9. 查看验证
lsblk

10. 格式化并挂载

mkfs.xfs /dev/vg/data

mkdir /data

mount /dev/mapper/vg-data /data

使用fio测试磁盘IO性能

# 取消缓存

lvconvert --uncache vg/data
#磁盘IO性能测试脚本

#!/bin/bash
# fiopressure.sh
filename=/data/fiotest
size=5G
runtime=60
report_path=/var/log/fio.report
# 4k顺序读
echo ">>>正在进行4k顺序读测试"
fio -filename=$filename  -direct=1 -iodepth 1 -thread -rw=read -rwmixread=70 -ioengine=psync -bs=4k -size=$size -numjobs=20 -runtime=$runtime -group_reporting -name=4k顺序读 > $report_path
# 4k顺序写
echo ">>>正在进行4k顺序写测试"
fio -filename=$filename  -direct=1 -iodepth 1 -thread -rw=write -rwmixread=70 -ioengine=psync -bs=4k -size=$size -numjobs=20 -runtime=$runtime -group_reporting -name=4k顺序写 >> $report_path
# 4k顺序混合读写
echo ">>>正在进行4k顺序混合读写测试"
fio -filename=$filename  -direct=1 -iodepth 1 -thread -rw=rw -rwmixread=70 -ioengine=psync -bs=4k -size=$size -numjobs=20 -runtime=$runtime -group_reporting -name=4k顺序混合读写 >> $report_path
# 4k随机读
echo ">>>正在进行4k随机读测试"
fio -filename=$filename  -direct=1 -iodepth 1 -thread -rw=randread -rwmixread=70 -ioengine=psync -bs=4k -size=$size -numjobs=20 -runtime=$runtime -group_reporting -name=4k随机读 >> $report_path
# 4k随机写
echo ">>>正在进行4k随机写测试"
fio -filename=$filename  -direct=1 -iodepth 1 -thread -rw=randwrite -rwmixread=70 -ioengine=psync -bs=4k -size=$size -numjobs=20 -runtime=$runtime -group_reporting -name=4k随机写 >> $report_path
# 4k随机混合读写
echo ">>>正在进行4k随机混合读写测试"
fio -filename=$filename  -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=$size -numjobs=20 -runtime=$runtime -group_reporting -name=4k随机混合读写 >> $report_path
echo ">>>FIO测试完毕,测试报告位于$report_path"

磁盘IO性能对比图,左边为未使用lvm cache  右边为使用lvm cache

 

 

参考资料:

SSD作缓存方案之LVM cache - LinCaes - 博客园

LVM Cache折腾杂记(一) · 大专栏

Ubuntu Server使用LVM Cache机制为大容量机械硬盘加速(保姆级教程)_NAS存储_什么值得买