文件系統
文件系統類型
可使用 df 命令的 -T
選項查看 Type 字段。
EXT4
最常用的 Linux 文件系統,兼具穩定性和性能。
- 最大文件 2 TB。
- 最大分區 32 TB。
- 默認日志模式是有序模式(Order)。
- 支持多種日志模式。
VFAT
Linux 對 FAT 文件系統的支持,常用於與 Windows 系統共享數據。
TMPFS
基於內存的虛擬文件系統,讀寫快。
文件元數據 - inode
在 ext 文件系統中,元數據使用 inode 存儲。
使用 ls -i` 查看
會輸出 foo 文件的 inode 編號。
使用 stat 命令
顯示文件的詳細信息。
inode 的使用情況
新建文件會消耗一個 inode,例如下面的命令。
可以看到 /dev/vda3
的 IFree 減 1 了。如果 inode 用完,就不能新建文件了。
日志模式類型
文件系統一般分為 3 種日志模式:
- Writeback:回寫模式。
- Ordered:有序模式。
- Journal:完全日志模式。
Writeback - 回寫模式
特性:文件系統只記錄元數據的日志,實際的數據寫入操作和元數據的更新是異步進行的。也就是說,數據可能在元數據之前寫入磁盤,或者在元數據之後寫入。
優點:性能較高,因為數據寫入的順序不受嚴格限制。
缺點:由於數據和元數據之間的寫入順序可能不一致,如果系統崩潰,可能會導致元數據和數據不一致,進而出現數據損壞的風險。
Order - 有序模式
特性:文件系統確保所有的數據塊在元數據更新之前被寫入磁盤。換句話說,數據的寫入必須在元數據更新前完成。
優點:比回寫模式安全得多,因為它減少了數據與元數據不一致的風險,同時保持了較好的性能。
缺點:性能稍低於回寫模式,但仍然是很多場景下的良好平衡點。
Journal - 完全日志模式
特性:文件系統不單止記錄元數據的日志,還記錄數據本身的日志。所有的數據和元數據在實際寫入磁盤之前,都會先記錄到日志中。
優點:這種模式提供了最高的安全性,因為在任何時候,數據和元數據都可以從日志中恢復,即使系統崩潰,文件系統仍然可以保證數據的完整性。
缺點:性能較低,因為每次寫入都要進行兩次寫操作(一次寫日志,一次寫實際數據)。