Utenzi maintained a Research and
Development department to develop advanced technologies in support of
its Managed Service Provider business and customers. It was a
privilege to work with the team, which consisted of six of the
brightest software developers I have ever known.
The
department was in charge of developing a cross-platform distributed
file system, the Charon Filesystem (CXFS for short). CXFS was
designed to make intelligent decisions about replication across a
hierarchy of redundant network servers, to allow support for multiple
realtime read/write servers.
CXFS design goals included:
Designed to support hierarchical networks of redundant servers
All active servers can independently read/write in realtime
Journaling, for transaction rollbacks, crash recovery and metadata replication
Write collisions resolved intelligently using server priorities, rolling back overridden transactions
Block-level, rather than file-level, replication
Plug-in architecture for functionality such as encryption, compression, and authentication
CXFS includes a journaling
component that tracks pending and completed operations. Journaling
prevents volume rescans on system crashes. In addition, it is the
mechanism used to replicate data across synchronized volumes. Journal
entries are propagated across the network just as if they had come
from the local volume. When writes are propagated throughout the
network, CXFS performs intelligent write collision resolution based
on server's current priority and availability. Transactions can then
be rolled back as needed.
The replication was designed to be
accomplished down at the block level, not file level, so that network
traffic would be reduced to replicating data that actually changed.
If a server experiences network connectivity problems, it is made
inactive and read-only, until it can be later re-synchronized and
re-inserted into the network.
A plug-in architecture was
provided for encryption engines. The encryption was designed to use a
key-exchange protocol similar to SRP, for establishment of secure
sessions across a potentially untrusted network.
The initial
implementation of CXFS was targeted toward Unix, with support for
Solaris, Linux, BSD, HPUX, etc. I was involved in taking the
filesystem to the Windows platform. The major design goal was to be
able to host volumes on any supported platform, with complete binary
compatibility, yet provide a volume management environment that was
familiar to administrators of the target platform. For this reason,
we chose to host CXFS volume management on the Windows platform
within the Microsoft Management Console (MMC), where administrators
typically perform a wide range of administrative tasks.
CXFS
is still under development today.