性能测试出错,dd 命令在 /dev/mapper/device 上创建了 13TB 的数据。为什么系统没有崩溃?HDD-250GB

性能测试出错,dd 命令在 /dev/mapper/device 上创建了 13TB 的数据。为什么系统没有崩溃?HDD-250GB

所以我想在我的嵌入式设备上对加密和正常数据存储进行一些性能测试。

这根本就不是我期望看到的!

你能解释一下刚才发生了什么吗?为什么dd命令输出是 1843200+0 条记录进出,但df -h显示文件系统磁盘空间使用情况为13TB

这是我的工作流程:

dd if=/dev/urandom of=enc_per_test.img bs=512 count=2097152

dd if=/dev/urandom of=normal_per_test.img bs=512 count=2097152

并收到 2 张每张 1GB 的图像 - 正如我所预测的那样。

losetup /dev/loop1 enc_per_test.img 

losetup /dev/loop2 normal_per_test.img

之后我执行:

dmsetup -v create enc_per_test --table "0 $(blockdev --getsz /dev/loop1) crypt <crypt_setup> 0 /dev/loop1 0 1 sector_size:512"

mkfs.ext4 /dev/mapper/enc_per_test

mkdir /mnt/enc_per_test

mount -t ext4 /dev/mapper/enc_per_test /mnt/enc_per_test/

正如我所料,df-h显示了已安装的 enc_per_test:

 Filesystem ############## Size ### Used ## Avail ## Use% ### Mounted on #####           

 /dev/mapper/enc_per_test ## 976M ## 2.6M ## 907M ## 1% #### /mnt/enc_per_test

我清除缓存:

echo 3 > /proc/sys/vm/drop_caches

最后执行 dd 命令来填充 enc_per_test:

time dd if=/tmp/random of=/dev/mapper/enc_per_test conv=fsync

1843200+0 records in
1843200+0 records out
943718400 bytes (944 MB, 900 MiB) copied, 152.098 s, 6.2 MB/s

所以我想,好吧,没问题。这就是我想要的。让我们看看它在 df -h 中是什么样子:

 Filesystem ############## Size ### Used ## Avail ## Use% ### Mounted on #####           

 /dev/mapper/enc_per_test ## 13T ## 13T ## 0 ## 100% #### /mnt/enc_per_test

这里发生了什么事?

谢谢你!

相关内容