File Systems: Difference between revisions
(7 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
==Standard File Systems== | ==Standard File Systems== | ||
* BTRFS | |||
* | |||
* | {| class="wikitable" style="margin:auto" | ||
* | |+ File Systems | ||
* | |- | ||
! Name !! Snapshots !! RAID !! Checksumming !! Compression !! CoW !! Erasure coding || Encryption | |||
|- | |||
| BTRFS<ref name="btrfs_documentation>https://btrfs.readthedocs.io/en/latest/Introduction.html</ref> || Yes, Writable || Yes<ref name="btrfs_volume>https://btrfs.readthedocs.io/en/latest/Volume-management.html</ref> || Yes || Yes || Yes || Unstable || No | |||
|- | |||
| ZFS || Yes<ref name="zfs_snapshots">https://docs.oracle.com/cd/E19253-01/819-5461/gbcya/index.html</ref>, Writable<ref name="zfs_clone">https://docs.oracle.com/cd/E19253-01/819-5461/gbcxz/index.html</ref> || Drive-level || Yes || Yes || Yes || Yes || Yes | |||
|- | |||
| EXT4 || No || No || No || No || No || - || No | |||
|- | |||
| XFS || No || No || No || No || No || - || No | |||
|- | |||
| bcachefs<ref name="bcachefs">https://bcachefs.org/</ref> || Yes || Yes || Yes || Yes || Yes || Unstable || Yes | |||
|} | |||
Notes: | |||
* For single drives/blocks, I prefer BTRFS for it's feature set. | |||
* For multiple drives, ZFS is often preferred for it's reliability. | |||
* bcachefs is still under development | |||
For multi-drive deployment, my preferences are: | |||
* If you have multiple same-sized disks and no need for expansion, use ZFS raid. | |||
* If you have different sized disks, want maximum storage, and don't need live parity then use snapraid + btrfs + mergerfs. | |||
* If you need real-time parity and expansion and don't mind slow rebuilds, use mdraid + btrfs. | |||
===Windows=== | |||
# NTRFS | |||
# ReFS | |||
===Mac=== | |||
# APFS | |||
# Mac OS Extended | |||
==Overlay File Systems== | ==Overlay File Systems== | ||
Line 21: | Line 51: | ||
* [[mdraid]] | * [[mdraid]] | ||
==Distributed File Systems | ==Object Stores== | ||
* Minio - S3-compatible object store | |||
* Ceph - joins drives across multiple computers. Has block, file, and object storage APIs. | |||
* Rook - deployment of Ceph using Kubernetes | |||
* SeaweedFS - joins drives across multiple computers to object storage APIs (incl. S3). Has file storage when paired with a database using the SeaweedFS Filer. | |||
==Distributed File Systems== | |||
* GlusterFS - joins filesystem directories across multiple computers | * GlusterFS - joins filesystem directories across multiple computers | ||
* Ceph - joins drives across multiple computers. Has block, file, and object storage APIs. | * Ceph - joins drives across multiple computers. Has block, file, and object storage APIs. | ||
* JuiceFS - creates a POSIX-compatable file storage using an S3 object storage and metadata database. | * JuiceFS - creates a POSIX-compatable file storage using an S3 object storage and metadata database. | ||
==Databases== | ==Databases== | ||
===SQL=== | |||
* PostgreSQL | * PostgreSQL | ||
* MySQL | * MySQL | ||
* SQLite | * SQLite | ||
===NoSQL=== | |||
* MongoDB | |||
==Cloud Providers== | |||
See [[Cloud Providers]] |