我在这里问了一个关于ext4lazyinit的问题。从我已阅读和理解的所有内容来看,它仅使您可以开始使用hdd,而无需为文件系统创建所有inode。
您知道或可以测量的唯一方法是ext4lazyinit
在中进行监视iotop
。有没有办法取得百分比进展?
我在这里问了一个关于ext4lazyinit的问题。从我已阅读和理解的所有内容来看,它仅使您可以开始使用hdd,而无需为文件系统创建所有inode。
您知道或可以测量的唯一方法是ext4lazyinit
在中进行监视iotop
。有没有办法取得百分比进展?
Answers:
检查此补丁讨论。您可以在没有lazyinit的情况下初始化系统,但无法进行测量。如果您有时间等待,请稍等。您可以尝试从讨论中打补丁,但根据Patchwork,它的状态为“已拒绝”。
我似乎找到了一种近似ext4lazyinit进度的方法。
TL; DR:请参见下面的脚本。
此方法假定自从首次安装分区以来,从未断开磁盘的连接(也没有重新引导系统),并且已向分区写入了与正在使用的磁盘一样多的数据(因此不会删除)或修改文件)。
步骤1:将fdisk中的分区大小(转换为kiB)与df中显示的1K块数进行比较。从(以kiB为单位的分区大小)中减去(1K块的数量)以获得(inode表的大约大小)。
编辑:例如,fdisk:
Sector size (logical/physical): 512 bytes / 4096 bytes
(...omitted...)
Device Start End Sectors Size Type
/dev/sdd1 2048 11720978398 11720976351 5.5T Linux filesystem
df:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/workbackup 5813233164 1217095176 4596121604 21% /mnt/backup_work
11720976351扇区* 512字节/扇区/ 1024 = 5860488175.5 kiB(接近5.5 TiB,就像fdisk所说的那样)。对于近似的inode表大小,负df的5813233164等于47255011.5 kiB(约45 GiB)。
第2步:获取(写入分区的总kiB):
awk '{ print $3"\t"$10 }' /proc/diskstats
为您的分区选择正确的行并将其转换为kiB。
编辑:例如:
sdb 260040
sdb1 260040
sdd 2530109116
sdd1 2530108940
在我的情况下使用sdd1,写入的总kiB = 2530108940扇区* 512字节/扇区/ 1024 = 1265054470 kiB(接近1.2 TiB)。
步骤3:仅当您已将任何数据写入文件系统时才需要。从(写入分区的总kiB)中减去(使用的1K块数,以df表示),得到(写入到inode表中的大约kiB)。
编辑。
步骤4:除(将大约kiB写入inode表)除以(在kiB中的inode表的大小),再乘以100,以百分比表示进度。
编辑:例如:近似进度= 47959294 / 47255011.5 * 100%= 101.5%
脚本
或将其编写为部分脚本(出于安全原因,在此我拒绝编写对fdisk的调用的脚本):
let sectorsize=$(cat /sys/block/sda/queue/hw_sector_size)
let partsize=$2*$sectorsize/1024
let fssize=$(df -- "$3" | tail -n -1 | awk '{print $2}')
let approxinodetablesize=$partsize-$fssize
let tkw=$(awk "/$1/"' {print $10}' /proc/diskstats | head -n 1)*$sectorsize/1024
let used=$(df -- "$3" | tail -n -1 | awk '{print $3}')
let tkw_inodetable=$tkw-$used
echo "Approximate progress: $(bc -l <<< "$tkw_inodetable*100.0/$approxinodetablesize") %"
调用$ 1 =“分区名称”(例如sdd1),$ 2 =“根据fdisk分区的分区”,$ 3 =“不带斜杠的装载点”
检测结果
我只测试了一次我的方法。设定:
6 TB分区
使用cryptsetup加密
使用-m 0以外的默认参数创建的文件系统
在ext4lazyinit完成之前,将279 GiB文件写入分区。
结果:完成时的读数为99.7%:-)
编辑:同一张磁盘上几乎写入了另一个TiB数据后,现在得出的估计值为101.5%。我认为准确到足以有用。