Live data from Hacker News

Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

news.ycombinator.com

1–10 of 32 posts

Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

#1
Forgive me for the ignorance of my question.

I'm tired creating backups, or loosing data. Let's be honest, sometimes it happens. Does a filesystem that never deletes/overwrites anything exist?

I envision something like an append only filesystem where you all files in your hard drive are under some OS level 'version control' and you can rollback to any version you want. Only files in my home dir would be enough. Obviously once space runs out it would start overwriting the oldest versions.

Re: Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

#2
> Does a filesystem that never deletes/overwrites anything exist?

> Obviously once space runs out it would start overwriting the oldest versions.

You can’t have both.

Also, your system wouldn’t prevent data loss on hardware failures.

What you describe is/may be a WORM device (https://en.wikipedia.org/wiki/Write_once_read_many)

Re: Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

#4
I imagine something does exist that does this, but I do not know what it is called.

I know that overlayfs exists, which could enable this sort of thing by capturing each individual change to the filesystem as a new layer. https://www.kernel.org/doc/html/latest/filesystems/overlayfs...

Btrfs and ZFS can do snapshotting, and I would imagine it could be configured to snapshot at certain intervals or after individual changes to the filesystem or a section of the filesystem, like watched directories.

https://wiki.archlinux.org/title/Btrfs#Snapshots

https://docs.oracle.com/cd/E19253-01/819-5461/gbcya/index.ht...

There's also filesystem-in-userland tech like Fuse which could enable something like this. https://www.kernel.org/doc/html/latest/filesystems/fuse.html

Re: Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

#6
The expensive version of what you are describing is a vaulting appliance but I won't continue down that path unless you are a bank.

The affordable version of what you are describing is a set of NAS class servers that use something like DRBD or Ceph for multi-node replication and rsnapshot for local snapshots/versioning if LVM. If using LVM, then rsnapshot should be configured to save its snapshot where the remote clients can not write to it.

Look into setting up Ceph clusters if you plan to build something that will need to scale really large on individual volumes across multiple nodes. Ceph supports creating snapshots. There are pros and cons to solutions such as DRBD, LVM and Ceph. That would be a topic in and of itself. Others here are mentioning ZFS and that is also a popular solution but I have never used it and can't comment on it.

In summary if I was asked to build something that would grow to unknown size, require snapshots to roll-back files to a specific date and be fault tolerant I would go with Ceph. As a bonus feature there are libraries and tools to present Ceph volumes as S3-like buckets. There are ansible playbooks for setting up Ceph clusters. Ceph has some really good security features as well.

Re: Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

#7

Look up "append only" filesystems. That'll get you most of the way there, but you'll have to manually reset things to get rid of old files. Or just use a competent backup system.

Let's say you are editing a source code file. You save and you run. Than you tweak, save and run again. But then you would like to go two changes in the past, but you did not make a commit. Very recent changes are not captured by backup systems, no matter how competent they are.

I'd like to have all my files under git, for every save - and frictionless. I know it is a lot to ask.

Re: Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

#8

I hope this hypothetical OS never needs to use a swap file. More seriously, in a time of unobtrusive automated backups and dirt cheap storage space, why is this such an issue where you want to have this kind of system?

Domain OS had versioning filesystem. You could always load an older version of your file in the editor.

Re: Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

#9
Digital's VMS/OpenVMS had something that was a fair way towards this, in that a file was created with a version number (myfile.txt;1) and when modified, a 2nd file (myfile.txt;2) was created, and so on...

In practice we used to work on things then purge when happy with the final changes, as we didn't have that much 'spare' disk, but it was a nice feature.

Re: Ask HN: I'd like an OS/FileSystem that Never Deletes Anything. Does it exist?

#10
post #8

I hope this hypothetical OS never needs to use a swap file. More seriously, in a time of unobtrusive automated backups and dirt cheap storage space, why is this such an issue where you want to have this kind of system?

Domain OS had versioning filesystem. You could always load an older version of your file in the editor.

Something similar can be achieved today with a combination of autosaves or version saves at the application level as well as time machine backups at the OS level
Post reply on HN