OpenAFS for Windows
Stabilizing the OpenAFS Windows client
David Tanner
Software Development and Integration
HISTORICAL NOTE
• October 31, 2004 – OpenAFS 1.2.11 deployed to all AFS servers.
• November 2, 2004 – OpenAFS servers rolled back to prior version.
• January 28, 2005 – OpenAFS Windows client 1.3.74 deployed.
• January 30, 2005 – OpenAFS 1.2.11 (without CBL) deployed to all OpenAFS servers.
• February 1, 2005 – OpenAFS servers rolled back to prior version.
WHAT DO WE DO NOW????!!!!!
QUESTION:
ANSWER:
STABILIZE THE CLIENT!!!!!
THE BIG QUESTION
MORE QUESTIONS
What is a stable client?
How do we stabilize it?
STABLE CLIENT and TESTING GOALS
The client will be considered stable if it can:• Maintain continuous data streams into and out of specified AFS lockers
for a specified period of time.multiple streams from a single client single lockermultiple streams from a single client multiple lockers within a single volumemultiple streams from a single client multiple lockers across multiple volumes.multiple streams from multiple clients single lockermultiple streams from multiple clients multiple lockers within a single volumemultiple streams from multiple clients multiple lockers across a multiple
volumes
• Maintain a continuous movement of data into and out of specified AFS lockers for a specified period of time.
• Maintain a continuous movement of data between 2 different specified AFS lockers for a specified period of time.
TEST SOFTWARE REQUIREMENTS
• Multiple Windows platform support (W2K, 2003, XP)
• Multiple independent test instances per platform
• Each test instance can be targeted independent of other test instances.
• Each test instance supports multiple processes.
• Each process supports multiple threads.
• Only Microsoft supplied libraries and/or utilities are to be used.
• Log test results in a human readable form.
TEST SOFTWARE DEVELOPMENT
• Started with a port from unix to windows of the Samba.org cifs-load-gen software.
• After evaluation of the cifs-load-gen software, it was determined that software did not meet our software requirements.
• cifs-load-gen was completely rewritten to meet our design needs. The logic for processing the Samba.org test scenarios (files) was retained. In particular, client_plain.txt (with some modifications) met our need for a continuous data stream.
TEST SOFTWARE DEVELOPMENT
• 2 new test scenarios (files) were created. One test scenario (file) for moving data into and out of a specified AFS location. The second test scenario (file) for moving data between to different AFS locations.
Maintain continuous data streams into and out of specified AFS lockers
for a specified period of time.
TEST GOAL
5 processes with 2 threads per process
5 processes with 2 threads per process with volume release
5 processes with 2 threads per process CPU usage
10 processes with 10 threads per process with a deadlock
Data streams into/out of an AFS location Summary
Maintain a continuous movement of data into and out of specified AFS lockers for a
specified period of time.
TEST GOAL
10 processes with 2 threads per process
10 processes with 2 threads per processwith a volume release
10 processes with 2 threads per process CPU usage
Moving files into/out of an AFS location Summary
Maintain a continuous movement of data between 2 different specified AFS lockers
for a specified period of time.
TEST GOAL
10 processes with 2 threads per process
10 processes with 2 threads per processwith a volume release
10 processes with 2 threads per process
CPU usage
Moving files between AFS locations Summary
TESTING GOALS
• Maintain continuous data streams into and out of specified AFS lockers for a specified period of time.
• Maintain a continuous movement of data into and out of specified AFS lockers for a specified period of time.
• Maintain a continuous movement of data between 2 different specified AFS lockers for a specified period of time.
CURRENT STATUS OF THE WINDOWS CLIENT
WORKSTATIONS:
No known issues.
MULTI-USER SYSTEMS:
1 known issue. Under certain conditions (yet to be identified) the client will report that a “volume is no longer available” or that a “path can no longer be found”.