LVM底层原理(生产故障排查)

背景:之前在生产上遇到磁盘空间充足但是无法写入的情况,后面深入了解了LVM存储的一些原理,因此记录一下

存储架构 : 虚拟化存储平台 ——> 虚拟机(多块磁盘制作LVM)

涉及知识点:
1、linux 存储原理
2、LVM底层原理
3、虚拟化平台存储分配原理

扩展: LVM架构下的存储,数据是怎么写进LV的?

  • 线性模式 (linear):假如我将 sda, sdb这两个硬盘加入到 VG 当中,并且整个VG只有一个LV 时,那么所谓的线性模式就是:当sda的容量用完之后,sdb的硬盘才会被使用到, 这也是我们所建议的模式。也是默认的模式。
  • 交错模式 (triped):假设将一笔数据拆成两部分,分别写入 sda 与 sdb 的意思,感觉上有点像 RAID 0 啦!如此一来,一份数据用两颗硬盘来写入,理论上,读写的效能会比较好。

基本上,LVM 最主要的用处是在实现一个可以弹性调整容量的文件系统上, 而不是在创建一个效能为主的磁碟上。因此,LVM 默认的读写模式是线性模式。如果使用交错模式,要注意,当任何一个分区损坏时,所有的数据都会“损坏”。所以,不是很合适使用这种模式。如果要强调性能与备份,那么就直接使用 RAID 即可,不需要使用 LVM。

排查过程:

1、查看磁盘利用率,发现仍然有大量空间,但是数据缺没办法写入。甚至没办法查看
2、查看内核日志,无报错。
3、检查LVM pv vg lv 也没有发现问题
4、怀疑是底层存储有问题
   - 排查虚拟化平台存储,发现制作LVM的两块磁盘,一块 sda 还剩2G空间,另外一块 sdb 基本还没开始使用
   - 后面研究了LVM的写入原理。默认是线性读写。初步怀疑是 sda 没写满,所以无法向sdb写入
   - sda写不满的原因? 后来发现sda所在的卷组空间不够导致的。由于LVM 默认是线性写入的,只有写满 第一块盘才会写第二块。导致数据一直往sda去写,但是sda的空间已经不够了。这也是系统层面看到磁盘还有空间但是写不进去的情况。
   	
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值