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

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 - 编程之家

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值