Proposed home directory architecture, configuration and management
Preamble
The way it was
In the Old World the majority of the CSE home directories were stored on six main NFS servers, each server having local RAID disk storage for home directories.
These servers had names such as ravel, kamen, etc., and home directories were located in ext3/ext4/xfs file systems created on the local block storage and mounted under /export
(e.g., /export/kamen/1
, /export/ravel/2
, etc.). I.e. each physical server had its available disk storage divided into logical block devices of less than 1TB.
User home directory paths would be hard-coded to be on a particular file system on a particular server, e.g., /export/kamen/1/plinich
.
This arrangement meant that a problem on a particular server could potentially affect 1/6th of all accounts until such time as the server itself was fixed, or until the affected home directories were restored from backup to another server and the users' home directory locations were update. This arrangement also meant that home directories were stored in one geographic location.
The way it might be
The proposed architecture disassociates home directories from specific physical/virtual NFS servers and places home directories in virtual hard disk volumes which are actually stored either in the Amazon AWS S3 cloud, or in CSE's distributed Ceph storage cluster.
The key ideas are:
- Home directories are stored on block devices defined either in Amazon's AWS S3 storage, or in CSE's own Ceph storage cluster.
- NFS servers may be physical or virtual and DO NOT have local storage for home directories. They do have their own IP addresses which have NO ASSOCIATION with any of the home directory block devices. I.e., the IP address of an NFS server is used solely to manage the NFS server itself and has no role in making available the home directory NFS exports.
- Home directory storage is attached to the particular NFS servers which export it via either iSCSI, in the case of AWS, or as Ceph RADOS Block Devices (RBD). Both of these attachment methods use TCP and allow the home directory storage to be mounted under Linux as a normal ext3/ext4/xfs file system.
- Each home directory storage block device is associated with a same-named DNS entry with its own IP address. E.g., "home02" would be associated with a DNS entry of "home02.cse.unsw.edu.au" or "home02.cseunsw.site" with a static IP address of, say, 129.94.242.ABC.