Browse Prior Art Database

Barrus Filesystem: A Reliable Filesystem

IP.com Disclosure Number: IPCOM000014944D
Original Publication Date: 2001-Oct-28
Included in the Prior Art Database: 2003-Jun-20
Document File: 2 page(s) / 40K

Publishing Venue

IBM

Abstract

This articles describes a reliable storage filesystem that is used to reliably store configuration data for an embedded computing system. The Barrus (Latin for elephant) Filesystem solves the problem of corrupted critical configuration data preventing an embedded computing system (Internet Access Device) from booting when its configuration files have been corrupted. The Barrus Filesystem was developed because there were a number of critical configuration files that could be corrupted if power was removed from the device at an inopportune moment. Corruption of any of these critical configuration files would prevent the device from booting. The Barrus Filesystem solves the problem by implementing a filesystem that checksums data stored in it, and maintains backup copies of the data written to the filesystem. The filesystem acts as a filter, in that it does not actually manage the storage, it relies on an underlying filesystem for storage. The Barrus Filesystem adds reliability to the underlying filesystem.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

Barrus Filesystem: A Reliable Filesystem

This articles describes a reliable storage filesystem that is used to reliably store configuration data for an embedded computing system. The Barrus (Latin for elephant) Filesystem solves the problem of corrupted critical configuration data preventing an embedded computing system (Internet Access Device) from booting when its configuration files have been corrupted. The Barrus Filesystem was developed because there were a number of critical configuration files that could be corrupted if power was removed from the device at an inopportune moment. Corruption of any of these critical configuration files would prevent the device from booting. The Barrus Filesystem solves the problem by implementing a filesystem that checksums data stored in it, and maintains backup copies of the data written to the filesystem. The filesystem acts as a filter, in that it does not actually manage the storage, it relies on an underlying filesystem for storage. The Barrus Filesystem adds reliability to the underlying filesystem.

The Barrus Filesystem adds reliability using the following techniques:

Cheksum file data -- When files are written to the Barrus Filesystem, the data is checksummed at file close time and the checksum is appended to the underlying filesystem.

Backup files -- When files are modified in the Barrus Filesystem, the original file data is never modified, a new copy of the data is created in the underlying raw filesystem. There can be up to three backup files stored in the raw filesystem: (1) .new file for a new version of a file, (2) .old version for data that has been superseded, and (3) .rm version for data that has been deleted.

File open -- When a file is opened for reading, Barrus checks the checksum of the underlying raw file to insure the integrity of the underlying file. If the checksum check fails, then the .new, .old, and .rm backups are checked. If any of them are found to contain a valid checksum, the backup file is copied to the original raw file, and the underlying filesystem is sync'd. Using this technique, the filesystem is self repairing -- when an attempt is made to access a file whose data is corrupted, the file is automatically restored and opened.

If a file is opened for writing, and the underlying file already exists then a new file is created in the underlying raw filesystem. If truncation was not specified on the open call, the original data is copied else an empty file is created. This new file will be used to store all of the data written to the file until it is closed.

For...