操作系统-番外-基于NAND存储设备文件系统F2FS
https://houwanfei.github.io/2020/07/02/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F-%E7%95%AA%E5%A4%96-%E5%9F%BA%E4%BA%8ENAND%E5%AD%98%E5%82%A8%E8%AE%BE%E5%A4%87%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9FF2FS/
F2FS文件系统一 设计背景及框架结构
https://blog.csdn.net/frank_zyp/article/details/96426334
F2FS文件系统二 实验分析f2fs文件系统
https://blog.csdn.net/frank_zyp/article/details/96474245
EROFS - Enhanced Read-Only File System
https://docs.kernel.org/filesystems/erofs.html
EROFS
https://source.android.com/docs/core/architecture/kernel/erofs
LWN: 华为EROFS文件系统
https://blog.csdn.net/Linux_Everything/article/details/100088476
浅谈华为EROFS文件系统的两个主要技术
https://blog.csdn.net/shuangguo121/article/details/90901131
----------------------------
code base:
erofs src:
最新稳定版的mkfs.erofs可以从这里拿到,内含README文件。
https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git -b dev
https://github.com/torvalds/linux/tree/master/fs/erofs
f2fs src
https://github.com/torvalds/linux/tree/master/fs/f2fs
btrfs src
https://github.com/torvalds/linux/tree/master/fs/btrfs
Here is the main features of EROFS:
Little endian on-disk design;
4KiB block size and 32-bit block addresses, therefore 16TiB address space at most for now;
Two inode layouts for different requirements:
Inode metadata size
32 bytes
64 bytes
Max file size
4 GiB
16 EiB (also limited by max. vol size)
Max uids/gids
65536
4294967296
Per-inode timestamp
no
yes (64 + 32-bit timestamp)
Max hardlinks
65536
4294967296
Metadata reserved
8 bytes
18 bytes
Metadata and data could be mixed as an option;
Support extended attributes (xattrs) as an option;
Support tailpacking data and xattr inline compared to byte-addressed unaligned metadata or smaller block size alternatives;
Support POSIX.1e ACLs by using xattrs;
Support transparent data compression as an option: LZ4 and MicroLZMA algorithms can be used on a per-file basis; In addition, inplace decompression is also supported to avoid bounce compressed buffers and page cache thrashing.
Support direct I/O on uncompressed files to avoid double caching for loop devices;
Support FSDAX on uncompressed images for secure containers and ramdisks in order to get rid of unnecessary page cache.
Support multiple devices for multi blob container images;
Support file-based on-demand loading with the Fscache infrastructure.
ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS性能测试对比
https://blog.csdn.net/linkyy5/article/details/125955196
Linux 5.14 SSD Benchmarks With Btrfs vs. EXT4 vs. F2FS vs. XFS
phoronix.com/news/Linux-5.14-File-Systems
Btrfs 介绍与相关操作
https://arch.icekylin.online/advanced/btrfs.html#btrfs-%E7%9A%84%E5%8E%86%E5%8F%B2
Btrfs 与其它文件系统功能比较
Feature | Ext 2 / 3 | Ext 4 | ReiserFS | XFS | OCFS2 | Btrfs |
---|---|---|---|---|---|---|
Journal (date / metadata) | ⚫ / ⚫ | ⚫ / ⚫ | ⚪ / ⚫ | ⚪ / ⚫ | ⚪ / ⚫ | N/A |
Journal (internal / external) | ⚫ / ⚫ | ⚫ / ⚫ | ⚫ / ⚫ | ⚫ / ⚫ | ⚫ / ⚪ | N/A |
Offline extend / shrink | ⚫ / ⚫ | ⚫ / ⚫ | ⚫ / ⚫ | ⚪ / ⚪ | ⚫ / ⚪ | ⚫ / ⚫ |
Online extend / shrink | ⚫ / ⚪ | ⚫ / ⚪ | ⚫ / ⚪ | ⚫ / ⚪ | ⚫ / ⚪ | ⚫ / ⚫ |
Inode allocation map | table | table | B*-tree | B+-tree | table | B-tree |
Sparse files | ⚫ | ⚫ | ⚫ | ⚫ | ⚫ | ⚫ |
Tail packing | ⚪ | ⚫ | ⚫ | ⚪ | ⚪ | ⚫ |
Defragmentation | ⚪ | ⚫ | ⚪ | ⚫ | ⚪ | ⚫ |
ExtArributes / ACLs | ⚫ / ⚫ | ⚫ / ⚫ | ⚫ / ⚫ | ⚫ / ⚫ | ⚫ / ⚫ | ⚫ / ⚫ |
Quotas | ⚫ | ⚫ | ⚫ | ⚫ | ⚫ | |
Dump / restore | ⚫ | ⚫ | ⚪ | ⚫ | ⚪ | ⚪ |
Default block size | 4 KiB | 4 KiB | 4 KiB | 4 KiB | 4 KiB | 4 KiB |
max. file system size | 16 TiB | 1 EiB | 16 TiB | 8 EiB | 4 PiB | 16 EiB |
max. file size | 2 TiB | 1 EiB | 1 EiB | 8 EiB | 4 PiB | 16 EiB |
Support status | SLES | SLES | SLES | SLES | SLE HA | SLES |
按照进率1024(2的十次方)计算:
https://www.cnblogs.com/daysme/p/12162572.html
1Byte = 8 Bit
1 KB = 1,024 Bytes
1 MB = 1,024 KB = 1,048,576 Bytes
1 GB = 1,024 MB = 1,048,576 KB = 1,073,741,824 Bytes
1 TB = 1,024 GB = 1,048,576 MB = 1,073,741,824 KB = 1,099,511,627,776 Bytes
1 PB = 1,024 TB = 1,048,576 GB =1,125,899,906,842,624 Bytes
1 EB = 1,024 PB = 1,048,576 TB = 1,152,921,504,606,846,976 Bytes
1 ZB = 1,024 EB = 1,180,591,620,717,411,303,424 Bytes
1 YB = 1,024 ZB = 1,208,925,819,614,629,174,706,176 Bytes