我有一台主机,只有一个缓存 LV(多 TB RAID 阵列前面有约 800GB SSD;直写模式)。昨晚我对 RAID 进行了例行清理(lvchange --syncaction check
)。自从完成清理后,系统一直以 100% 的 I/O 容量运行;iostat
告诉我它正在从 SSD 读取数据并写入 RAID。
缓存 LV 的输出Cpy%Sync
列(lvs
不是RAID)在清理之前一开始就处于 98% 左右,这本身就令人担忧,但现在它正在稳步向下,目前已达到70%左右。
我认为Cpy%Sync
对于缓存 LV 来说,它表示缓存中也存在于后备存储中的数据量,因此在直写模式下,它应该始终为 100%。这实际上意味着什么?系统正在做什么,导致它持续下降?
dmesg 中没有任何有用的信息。
答案1
根据 lvmraid 手册页 [1]:
当 RAID LV 激活时,会发生自动同步,但由于位图会减少检查的区域,因此同步通常只是部分同步。当 RAID LV 中的设备被替换时,需要进行完全同步。
RAID LV 的同步状态通过以下命令报告,其中“Cpy%Sync”=“100%”表示同步完成:
lvs -a -o name,sync_percent
另一段摘录:
当将完整性添加到 LV 时,内核需要初始化 LV 中所有块的完整性元数据(校验和)。dm-integrity 执行的数据损坏检查将仅对已初始化的 LV 区域进行操作。完整性初始化的进度由“syncpercent”LV 报告字段(以及 Cpy%Sync lvs 列下)报告。
然而,另一个声称存在类似问题的来源[2]提到了有关磁盘活动的以下内容:
缓存始终将其内容刷新到磁盘 - 因此如果您有“写回”变体并且有一些未写入的数据仅位于缓存中,它们会被自动推送到原始(缓存)设备 - 这可能是您的磁盘活动。