CentOS7 LVM 逻辑卷2种读写策略(磁盘IO性能优化)—— 筑梦之路

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

LVM 逻辑卷的读写策略有两种

  • linear线性方式一块块盘来读写写完一块盘再写第二块盘、第 N 块盘性能低
  • striped条带方式多块盘一起并行读写性能高

查看 LVM 逻辑卷的读写策略的方式lvdisplay -m "LV Path"

root@node-1:~# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/cache_vg00/cache_lv00
  LV Name                cache_lv00
  VG Name                cache_vg00
  LV UUID                SxIt27-kH9m-2lzb-yOGJ-vYVn-xwi2-qY30PK
  LV Write Access        read/write
  LV Creation host, time 10-1-2-159, 2021-06-04 15:05:32 +0800
  LV Status              available
  # open                 1
  LV Size                2.72 TiB
  Current LE             713820
  Segments               6
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

root@node-1:~# lvdisplay -m /dev/cache_vg00/cache_lv00 
  --- Logical volume ---
  LV Path                /dev/cache_vg00/cache_lv00
  LV Name                cache_lv00
  VG Name                cache_vg00
  LV UUID                SxIt27-kH9m-2lzb-yOGJ-vYVn-xwi2-qY30PK
  LV Write Access        read/write
  LV Creation host, time node-1, 2021-06-07 15:05:32 +0800
  LV Status              available
  # open                 1
  LV Size                2.72 TiB
  Current LE             713820
  Segments               6
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Segments ---
  Logical extents 0 to 118969:
    Type        linear
    Physical volume /dev/sdb1
    Physical extents    0 to 118969
省略其他信息……  

看到 --- Segments --- 的 Type linear所以这里的 LVM 逻辑卷读写策略是 linear 线性方式

root@node-2:~# lvdisplay -m /dev/cache_vg00/cache_lv00 
  --- Logical volume ---
  LV Path                /dev/cache_vg00/cache_lv00
  LV Name                cache_lv00
  VG Name                cache_vg00
  LV UUID                7mlqJc-Cxa9-Trhj-O2wp-TeuG-SFYH-Eny0nm
  LV Write Access        read/write
  LV Creation host, time node-2, 2021-06-07 15:11:12 +0800
  LV Status              available
  # open                 1
  LV Size                1.95 TiB
  Current LE             512000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1280
  Block device           253:1
   
  --- Segments ---
  Logical extents 0 to 511999:
    Type        striped
    Stripes         5
    Stripe size     64.00 Kib
省略其他信息……   

看到 --- Segments --- 的 Type striped所以这里的 LVM 逻辑卷读写策略是 striped 条带方式

什么是条带化

当多个进程同时访问一个磁盘时可能会出现磁盘冲突。磁盘系统对访问次数每秒的IO操作IOPS和数据传输速率读写速率TPS有限制。

当达到这些限制时后面需要访问磁盘的进程就需要挂起等待这就是磁盘冲突。避免磁盘冲突是优化I/O性能的一个重要目标。条带化技术是一种自动的将I/0负载均衡到多个物理磁盘上的技术。条带化技术将一块连续的数据分成很多小部分并把他们分别存储到不同的磁盘上去。这样就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突最大化I/0性能。

LVM的条带化为了性能考虑将数据跨越多个磁盘存储即把LV上连续的数据分成大小相同的块然后依次存储在各个磁盘PV上类似于RAID0的数据存放形式实现数据读写的并发管理员一句自己的数据需求定义数据分块大小分布PV磁盘个数信息从而实现读写性能最佳化

粗略来讲条带化strip就是raid0。

 如何创建条带化的LV

以下为一个完整的示例

环境说明

centos7 minal x86_64

系统盘100G  sda
数据盘 100G sd[b-e]

1. 创建pv

pvcreate -v /dev/sd[b-e]1

pvs

2. 创建vg

vgcreate -v vg01_data /dev/sd[b-e]1

vgs

vgdisplay -v vg01_data

3. 创建lv

# lvcreate -L 100G -i 4 -I 128k -n lv_data vg01_data -v
# lvcreate -L 100G -i 4 -I 128k -n lv_data vg01_data /dev/sd[b-e]1

lvdisplay -m /dev/vg01_data/lv_data

4. 验证

dmsetup deps /dev/vg01_data/lv_data

lsblk

5. 格式化并挂载

mkfs.xfs /dev/mapper/vg01_data-lv_data 

df -hP /data/

参考资料

Striped Logical Volumes in Logical Volume Management (LVM)

如何将LVM非条带化修改为条带化

参考资料linux – 将非条带LVM LV更改为条带化LV - 编程之家

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: centos

“CentOS7 LVM 逻辑卷2种读写策略(磁盘IO性能优化)—— 筑梦之路” 的相关文章