File Systems: Difference between revisions
No edit summary |
|||
| (10 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 16: | Line 46: | ||
==Block Overlays== | ==Block Overlays== | ||
The create a view of one or more block storage, typically using one or more block storage. | |||
* [[LUKS]] - encrypts a partition | * [[LUKS]] - encrypts a partition | ||
* [[LVM]] - joins multiple blocks into a pool from which to allocate blocks | * [[LVM]] - joins multiple blocks into a pool from which to allocate blocks | ||
* [[mdraid]] | * [[mdraid]] | ||
==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== | ==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]] | |||