gpt4 book ai didi

linux - 跟踪 block 设备上的脏 block

转载 作者:可可西里 更新时间:2023-11-01 11:47:51 25 4
gpt4 key购买 nike

我正在寻找一种方法来跟踪 block 设备上的哪些 block 在某个时间点后被修改。我最终想要使用它的方式是让两个 2TB 磁盘保持同步,其中一个每月只上线一次(通过 USB 连接)。在不知道修改了哪些 block 的情况下,我每次都必须遍历整个 2TB。

我使用的是最新的 GNU/Linux 操作系统,并且具有 C 和 Python 经验。我希望避免编写内核级代码,因为我在该领域没有任何经验。我目前的理论是,在执行磁盘刷新时,应该有一些 Hook 可以调用我的代码。

有什么想法吗?

最佳答案

如果你小心避免 a bug in the block layer,应该可以使用 Linux MD .每个月左右,您将 USB 磁盘添加为 2 磁盘 RAID 组的新成员(默认情况下缺少一个),并让它同步更改的 block 。一个写意向位图似乎对此很有帮助,所以不要忘记准备一个位图。

# Creation
mdadm -C /dev/md0 -l 1 -n 2 -e 1.0 -b internal /dev/sda missing

# Addition of slave disk
mdadm /dev/md0 -a /dev/thatusbthing

另见 a longer description of this setup ,以及更多关于选项/潜在陷阱的讨论。

附录:

rsync 旨在通过(相对较慢的)网络传输文件。这意味着双方都将在本地扫描他们的设备,计算滚动校验和,然后传输更改的 block 。更改列表当然取决于计算校验和。 (以 30+MB/s 的速度从磁盘读取比在 100mbit 网络上无条件地以 10MB/s 的速度读取要快。)

对于 MD 写意图位图,扫描阶段不是必需的,因为它已经通过此位图知道自磁盘上次同步以来哪些 block 已更改。

关于linux - 跟踪 block 设备上的脏 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4581952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com