From d7f9233aad8f727fc1bc77bb18bb93669a7426e7 Mon Sep 17 00:00:00 2001 From: Steven Jenkins Date: Mon, 10 Mar 2008 22:13:57 +0000 Subject: [PATCH 1/1] none --- AFSLore/DemandAttach.mdwn | 30 ++++++++++++++++++++++++++++++ AFSLore/WebHome.mdwn | 1 + 2 files changed, 31 insertions(+) create mode 100644 AFSLore/DemandAttach.mdwn diff --git a/AFSLore/DemandAttach.mdwn b/AFSLore/DemandAttach.mdwn new file mode 100644 index 0000000..157c031 --- /dev/null +++ b/AFSLore/DemandAttach.mdwn @@ -0,0 +1,30 @@ +-- [[StevenJenkins]] - 10 Mar 2008 + +The Demand Attach fileserver is a new architecture for the fileserver, volserver, and salvager that brings volumes online as as needed, and takes volumes offline when they have been idle. This greatly speeds up the fileserver startup and shutdown times. + +The full presentation on the Demand Attach fileserver was given by Tom Keiser at the 2007 AFS Workshop. This entry is merely a summary of key information. + +- The format of the volume and vnode structures did not change; however, the bosserver, fileserver, volserver, salvageserver, salvager, and salvage must be rebuilt (using the --enable-demand\_attach\_fs argument to configure). +- The fs instance must be removed, and a replacement dafs instance added. See the bos\_create(8) man page for details +- There are new options to the fileserver. Note in particular that unless -vattachpar is larger than 1, many of the parallel I/O advantages of DAFS will not be enabled (Tom Keiser notes that 1 thread per partition is the logical extreme during startup; however, during shutdown, more threads can be used, so a value of 128 is not unreasonable). However, tuning this value for a given environment will require experimentation. + +The key engine for offlining volumes is the VLRU (Volume Least Recently Used) queue. This is a garbage collection facility which automatically offlines unused volumes in the background. The process of offlining a volume from the "attached" state to the"pre-attached" state is called "soft detachment". + +VLRU works in a manner similar to a generational garbage collector. There are five queues on which volumes can reside: + +1. new +2. intermediate +3. old +4. held: queue for volumes which are administratively barred from VLRU activity +5. candidate: queue for volumes which have not been accessed recently, and thus are canddidates for soft detachment + +The new, intermediate, and old queues are generational queues for active volumes, with the state transitions among them controlled by the following inactivity rules: + +- candidate->new activity present +- new->candidate (1\*vlruthresh) minutes since last transition; no activity +- new->mid (2\*vlruthresh) minutes since last transition; activity present +- mid->old (4\*vlruthresh) minutes since last transition; activity present +- old->mid 92\*vlruthresh) minutes since last transition; no activity +- mid->new (1\*vlruthresh) minutes since last transition; no activity + +Note that the VLRU engine can be controlled and tuned by the vlrudisable, vlruthresh, vlruinterval, and vlrumax parameters to the fileserver. diff --git a/AFSLore/WebHome.mdwn b/AFSLore/WebHome.mdwn index e309765..e098998 100644 --- a/AFSLore/WebHome.mdwn +++ b/AFSLore/WebHome.mdwn @@ -11,6 +11,7 @@ Welcome to the home of **%WIKITOOLNAME%.%WEB%**. This is a web-based collaborati - [[CodeArchitecture]] - [[GateKeeping]] - [[How To Build OpenAFS from Source|Main/HowToBuildOpenAFSFromSource]] +- [[DemandAttach]] Note: This area is about AFS, whose name is properly spelled in all uppercase. Unfortunately, this creates interesting challenges in coming up with appropriate [[WikiWords|TWiki/WikiWord]] for naming topics. Please bear with us -- or come up with better names! -- 1.9.4