cryptofreak.org cryptofreak home projects
contact about
Contact:


projects
News Agenda
Antera Antera
News Commentator
News fcreate
Linux Porting Linux Porting
mod-chal mod-chal
Quake III Quake III
News Zope
Contact: webmaster

From: June Mullins (junemullins, earthlink dot net)
Date: 2001.11.03 - 14.05 MST


Here's a list of components for Opie. I've added some highlights (or 
lowlights)
and some issues. Some of this might look strikingly familiar to you.

I have not written a formal ARVM architecture doc yet. The gist of my 
thoughts
about how ARVM and snapshot are implemented are outlined in the bullets.

I'm also attaching this as a Word doc for people who prefer it.

June

1 Opie Components
1.1 RAID5
· Implements RAID5 in software.
· Minimum RAID set size = 2 ISU's
· When new ISU's added, the entire RAID group is morphed
· Need to work out data integrity issues around morphing
· How to handle different geometries (i.e., adding a bigger disk to a 
RAID group)
· Always add to existing RAID group or form new one with different geometry?
· RAID5 group = logical volume (or part of volume if multiple extents)
· Support multiple logical volumes?
· Implemented by fixed mapping tables
· Any need for multiple extents / volume?
· Any need for multiple logical volumes per physical volume?
· Do we still want to use MD (RAID0) at the ISU level?
1.2 NBD
· Allows a networked device to be accessed as a block device.
· Need to tackle NBD performance issues
· Consider iSCSI?
1.3 Snapshot Copy
· Snapshots are for backup purposes only
· Can we hide snapshots from the user, since we use them only for backup?
· Implement via hashed mapping table - mark mapping table of source and 
snap as snapshot. When receive write request to source, first copy 
segment for snapshot, then add to hash. Then satisfy write request to 
source.
· Since we are in charge of backup, we delete snapshot as soon as backup 
is done
· What are the interactions between morphing and snapshot?
· Space must be reserved for copy-on-write data
· Would it be reasonable to force write-through for copy-on-write data?
1.4 Backups
· Initiated one-time by user or as scheduled jobs?
· No HSM yet
· What is the backup medium? If disk, should be RAID5 protected also.
1.5 File System
· Needs to support large file systems
· Should be journaled
· Is ACL support necessary? Posix or Windows ACL's?
1.6 Active / Passive Heads
· Need to send config changes from active to passive head
· Need to send Snapshot changes from active to passive head
· Mapping hash table
· Copy-on-write data (or force write-through - see above)
1.7 Configuration Management
1.7.1 Persistent store
· Do we need to keep multiple permanent copies of the configuration?
· Should ISU's store their own configurations (or everybody's 
configuration)?
· Do we allow for spare (or unassigned) ISU's?
· Some configuration data we need:
· ISU MAC address, name(?), and IP address
· ISU function (active, unassigned)
· If active, which RAID5 group(s) is ISU part of?
· Each ISU should also know at least the head's IP address or something 
to identify its head.
1.7.2 Existing device discovery
· There needs to be a mechanism for devices that are already configured 
to announce themselves.
· Needed both at boot up time and when a previously broken ISU is now 
functional.
1.7.3 New device discovery and configuration
· New, not yet configured devices need to be able to announce 
themselves. The head has to be able to recognize that a new device has 
been added to the system.
· How do we do this? We can make the head a DHCP server and use DHCP - 
but we were not able to figure out how to get from DHCP discovering a 
new device to getting that fact over to our code.
· How about writing our own equivalent of a simplified DHCP - simply 
have the ISU's broadcast to a well-know port behind which is our code? 
Our code would dole out from a (user-specified?) list of reserved IP 
addresses. Since the assumption is that the ISU's are isolated behind a 
switch, this should work.
· We might also make the user configure the ISU IP addresses via 
something like the serial port.
1.7.4 Configuration of heads
· How do heads get their IP addresses?
· Need to configure which is active and which is passive
1.8 System Initialization
· Each ISU can boot independently, but the file system cannot be started 
until sufficient ISU's are operational.
1.8.1 ISU initialization
· Each ISU starts its own RAID0 configuration (if used).
· Then starts its nbd servers (if used).
· Then report status to the head.
1.8.2 Active Head Initialization
· Once sufficient ISU's operational, the active head starts its nbd 
clients.
· Then activates its RAID5 volumes
· Then activates share export.
1.8.3 Passive Head Initialization
· ?????
1.9 Status Monitor
· Responsible for detecting changes in ISU status, or ISU status 
transitions.
· Responsible for detecting failures in active or passive head??
· Individual ISU's monitor their own status (Node booting, normal, hard 
disk failure, MD broken, NBD server or client down)
· Network connectivity is monitored (or do we just rely on the nbd layer 
for this?)
· Nodes report their status to big kahuna status monitor (maybe recovery 
component).
1.10 Recovery
· Responsible for initiating actions to recover from "degraded" mode.
· If hot spare available, it must activate hot spares automatically 
after a user-defined timeout period.
· Responsible for initiating failover to passive node if active node fails
· CIFS issues - in-flight transactions lost?
· Buffer cache issues
1.11 Dual Head Synchronization
· Responsible for sending configuration updates (and buffer cache 
updates?) from active to passive head
1.12 Shares Management
· What types of shares must we support? CIFS? NFS (2 or 3)? Apple?
· Support CIFS via security=domain?
1.13 GUI
· What needs to be supported in the GUI?
· Head configuration (active or passive)
· Add ISU (and make it active or unassigned)
· Administer backups
· Administer shares
· Display status
· Display storage usage
· Display logs
· ?????




-- This is the antera mailing list. To unsubscribe, email majordomo, cryptofreak dot org with message body `unsubscribe antera'. Or, for more information, visit http://www.cryptofreak.org/.



This archive was generated by hypermail 2b30 : 2001.11.04 - 04.02 MST