「Linux Stroage Stack」- 常见问题(FAQ)

WIP !! Linux I/O Depth 的具体含义?异步 IO 中的 I/O Detph 的含义?同步 I/O 的 I/O Depth 是没有意义的,为什么?

fallocate

Quickly create a large file on a Linux system – Stack Overflow

通过 fallocate 命令,我们能够快速创建大文件:

fallocate -l 10G gentoo_root.img

# 注意事项:
# 并非所有文件系统都支持 fallocate 系统调用

WIP ! fallocate 工作原理

当删除文件时,文件系统的操作

When I delete a file on my computer, where does it go?
What happens to an open file handle on Linux if the pointed file gets moved, delete

Write Barriers

What does the ‘barrier’ mount flag mean in Linux? – Unix & Linux Stack Exchange

现很多文件系统为日志类文件系统,即:针对写入操作,数据先写日志(其位于内存中),随后在写入磁盘。

在日志数据写入磁盘时,必须先写入实际的文件数据,再写入元数据。否则如果发生崩溃,元数据不会与数据一起过时。

但是许多磁盘都有自己的缓存,这些缓存也可能会重新排序写入,进而影响元数据与文件数据写入顺序。某些文件系统会假设这种情况会发生,并会强制磁盘在某些点刷新缓存,以防止这种情况发生。该特性成为 write barriers

对于现代磁盘来说,这样做的性能牺牲可以忽略不计,除非绝对必要,否则不应禁用写屏障。