一个关于 md 和 lvm 的问题

107 天前
 cwek

做了一套这样的存储布局:

  1. 先用 md ,每两只磁盘做一个 raid1 ,做了 3 组
  2. 然后用 lvm ,将 3 组 md 做成 3 个 pv (--dataalignment 64K ),组成 1 个 vg ,再组一个条带 lv (近似 raid0 ,-i 3 )
  3. 这个 lv 再格式化为一个 ext4 ( block=4k ,stride=16,stripe-width=48 )

以前也组过类似的组合,不过只有 2 组 raid0 。并且通过 iostat 检查磁盘读写来定时让磁盘休眠。

现在新组的这套存储,iostat 发现每隔几秒就有几 k 的数据写入。用 lsof 也没找到有进程在使用挂载的文件夹,然后 umount 掉就静止下来了。

有没办法确认到这个文件系统是被哪个进程操作中?

1452 次点击
所在节点    Linux
12 条回复
MeteorVIP
107 天前
我都不知道还能这样组的,我以为要么纯 raid,要么纯 lvm.
不过 5 个机械硬盘组 raid0 我觉得很爽了.主要用来 PT.
cwek
107 天前
@MeteorVIP
md 设备也是一个块设备,可以加入 lvm 的 PV 中。这样搞主要是 mdadm 的 raid0 不支持容量扩展,lvm 可以对 lv 扩展容量,前面说过这组本来就只有 2 个 raid1 块。这是用来做暖存储的,下载空间是用另一个磁盘承载。
adrianzhang
107 天前
几 k 的写入是对谁的?
cwek
107 天前
@adrianzhang
磁盘
adrianzhang
106 天前
@cwek 如果卸载 LV 就没有写入,那说明是 LV 上的动作,ext4 是日志式文件系统,如果关闭日志试试呢?不过我还是建议你逐层监控一下,对磁盘,对 md ,对 vg ,对 lv 。以确定到底是什么导致的对磁盘写入,万一是 vg ,折腾 ext4 就没有意义。
Ayahuasec
106 天前
刚格式化完的话,可能是 ext4 的 lazy init 导致的,以前有碰到过一次这个问题,导致几块硬盘一直不休眠。印象里是 mkfs.ext4 加一个啥参数可以立即把初始化数据写完的,而不是慢慢写。
cwek
106 天前
@Ayahuasec
has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg inline_data sparse_super large_file huge_file dir_nlink extra_isize metadata_csum

ext4 特性参数配置了这些,感觉有这个可能。
MeteorVIP
103 天前
@cwek #2 好的,我用 omv 试试,打算是机械硬盘组 raid0,再和固态硬盘组 lvm,
cwek
101 天前
@Ayahuasec @adrianzhang 由于之后往这个磁盘阵列写了一天多的数据,没再继续观察。然后拷完数据以后,就没再出现突然少量写入导致磁盘无法休眠的情况。可能就是新磁盘 lazy init 的问题。
cwek
101 天前
@MeteorVIP 只是变相 raid10 ,而且看了资料,一个已有的 lv 再添加 pv 的话不会和之前的 pv 组合成连续的条带组,所以只有容量增加了,达不到 raid10 的 0 部分的效果。这次其实相当于整个阵列重建,因为新加入的 1 组合的大小和原有的不对,有弄丢之前创建时的参数,所以干脆整个拆掉重建。
MeteorVIP
101 天前
@cwek #10 其实我不需要 raid10 ,只需要机械硬盘 raid0 的速度,lvm 加上固态硬盘的速度。等于是速度最大化吧,
adrianzhang
100 天前
@cwek 点赞!事事有回应。op 是个靠谱的人。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1058580

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX