正如标题所示。我无法找到有关软件 RAID 中的脏块的可靠信息,但我多次听到过这个术语。
脏块太多是不是不好?如何检查脏块的数量?为什么系统中会出现/创建脏块?
答案1
您可能混淆了两个不同的概念:
脏页是必须写入稳定存储的已修改内存页。例如,当您在 Linux 下写入某些内容时(即:),
cp /etc/services /etc/testfile
您不会立即写入物理磁盘;相反,Linux 页面缓存会跟踪哪些内存区域被弄脏,并在稍后将其写出;脏块是镜像分支需要从其对等分支(即:另一个镜像分支)重新同步的块。在现代 RAID1/镜像实施中,当磁盘暂时从阵列中失效但随后重新添加时,它通常不需要完全从另一个磁盘重新同步;相反,存在脏块跟踪机制,允许仅选择性地重新同步已更改的区域。
答案2
好的,我可以使用这个链接来回答自己:https://www.thomas-krenn.com/en/wiki/Linux_Page_Cache_Basics
事实证明,我可能指的是脏页,而不是脏块,似乎它被称为“页面”。脏页出现在 Linux 页面缓存中。当 Linux 将某些内容缓存在未使用的 RAM 中并且尚未写入磁盘时,这些页面就是脏的(因为它们尚未保存到磁盘,只保存到 RAM 缓存,以加快保存速度)。您可以使用at /proc/meminfo | grep Dirty
并刷新脏页(从 RAM 保存到磁盘),例如通过执行sync
。
答案3
学习者,我想说 shodanshok 的第二个答案可能对你来说是正确的,因为你说,“在 RAID 的背景下。”
“脏页”纯粹是一个虚拟内存概念,指的是需要写入备份存储的内存页。这与 RAID 无关。
而“脏块”与 RAID 息息相关。这些块目前在阵列中的所有设备上都还不完全相同。