当前位置: 首页 > 科技观察

Linux开发者讨论建立跟踪块-磁盘运作的全局计数器

时间:2023-03-19 10:22:25 科技观察

Linux开发人员讨论创建一个全局计数器来跟踪块/磁盘操作更改提供了系统范围内唯一的数字编码,而不是基于每个磁盘。这个单调递增的数字是系统范围的。这样systemd和其他用户空间软件可以更好地关联最终重复使用同一设备的事件,如/dev/sda,尤其是/dev/loop0和其他,当一个被分离而另一个被添加时,这些设备往往会被重复使用。尤其是在查看重复出现的设备时,由于没有序列号或其他唯一标识方式,因此没有更好的方法来发现它是否与以前的设备相同。虽然userland可以使用事件侦听器来跟踪磁盘更改,但由于事件可能会延迟到达或未正确排序等问题,这种全局计数器跟踪被认为是最好的方法之一。此外,围绕块名称空间和其他改进的工作也在进行中,但至少systemd的开发人员认为这种方法非常有价值并且对Linux内核有益。这个全局编号放在uevent中,这样用户空间就可以用它来关联驱动程序重用设备的时间。同时会增加一个新的ioctlBLKGETDISKSEQ获取磁盘序列号,序列号也会通过sysfs的diskseq暴露出来。每当底层媒体设备更改时,此序列号都会递增,同样,每当设置或更改备份文件时,循环设备都会递增。对Microsoft的MatteoCroce发布的建议补丁感兴趣的人可以查看此补丁系列以及对此功能优点的讨论:https://lore.kernel.org/lkml/20210623105858.6978-1-mcroce@linux.microsoft.com/