270 likes | 408 Vues
OpenAFS on Windows: A Status Report. Jeffrey Altman The OpenAFS Project 5 October 2011. 1.6.0b. Compatible with MS11-043 Security Fix Negative caching of non-existent volumes Integrated logon improvements Improved Win7 compatibility. The beginning of the end for ….
E N D
OpenAFS on Windows:A Status Report Jeffrey Altman The OpenAFS Project 5 October 2011
1.6.0b • Compatible with MS11-043 Security Fix • Negative caching of non-existent volumes • Integrated logon improvements • Improved Win7 compatibility
The beginning of the end for … • 1.7 and beyond will no longer provide: • Windows 2000 support • afscreds.exe • afs_config.exe • SMB Submountfunctionality • NSIS (EXE) installers for 32-bit Windows
Status of Win7 Netbios Name Lookup Bug • Microsoft has officially declared the bug “WONT_FIX” • The IFS is the only fix that OpenAFS can provide to the community
IFS Time Line • Originally proposed at SLAC in 2004 • 1.3.60 was the current version • At the time, Windows was just learning to be able to access the namespace via \\AFS instead of \\MACHINE-AFS\ALL\ • “stable” had special meaning on Windows.
The licensing and funding barrier to implementation • In 2004, the Microsoft IFS Kit was ~$1000/developer and required Microsoft to approve each file system release • OSR’s file system framework was $100K per institution • A GPL IFS Kit was not current and license incompatible • Initial development estimate $1M
U Michigan CITI tries their hand at the IFS • Funded with original OpenAFS Elders funding provided by USENIX, Morgan Stanley and Intel in 2000. • Eric Williams developed an IFS mini redirector binding to the AFS cache manager which appeared in the OpenAFS repo in Summer 2005 • Built using Microsoft IFS Kit • Provided anonymous file access without loopback adapter • Produced 5x improvement in read performance
IFS development stalls • Umich IFS mimicked SMB message flows • IFS is only a small piece of the puzzle • MSRPC Pipe Service Emulation • Network Provider interface • Unicode • Pioctls • Network file system emulation • Eric moved on to other endeavors and the project died
Peter Scott, Kernel Drivers • 28 August 2006 • A world renowned Windows kernel specialist with a passion for file systems • Volunteered to review UMich implementation
Major Issues Identified in the design • Architecture did not permit Windows page cache invalidation in response to callbacks • Mini redirector interface no longer compatible with Vista/2008 and maintaining a compatible code base across all revisions would have been challenging • Architecture failed to take into account all of the required functionality
Peju Winery • Pete was thanked for his efforts with a bottle of 2003 Peju Cabernet Sauvignon Reserve
Setting the bar very high • The goal of an IFS was not simply getting rid of the Loopback adapter and the SMB dependency • We wanted a best in class file system that integrates AFS into the Microsoft Windows experience • Pete and I started over
Kernel Drivers File System • Similar to the OSR File System Kit, Pete had developed his own file system which he tailors to the needs of various projects • AFS is like no other project he ever worked on • Pete granted OpenAFS the use of KDFS under a BSD license to use as a starting point • Coding began on 24 April 2007
Taking the Low Risk Path • In order to reduce the risk of new code development, decided to maintain SMB and IFS in parallel • All new functionality must be implemented for both: • Unicode (UTF-8) in 1.5.50 • Interface independent pioctl in 1.5.50 • Pipe Service RPC • Hundreds of bugs in SMB interface discovered during IFS work
1.7.1 released • 15 September 2011 • 1608 days of development • 11 days of vacation
Differences in Behavior • OpenAFS Reparse Tags • Symlinks, MPs, links to UNC paths • Drive mappings to UNC (NET USE) • Drive Substitutions (SUBST) • No Loopback Adapter • No delays to \\AFS after resume
More Differences • Behavior is closer to UNIX write on close • No support for Offline Folders • Each AFS Volume is a Windows volume
Win File System Drivers Require Reboot to unload • SMB mode permitted upgrades to afsd_service without reboot • To obtain same behavior for kernel: • Afsredir.sys – framework file system • Afsredirlib.sys – core afsioctl interface • Afsredirlib.sys can be replaced without reboot
Authentication Groups • UNIX AFS has Process Authentication Groups • Windows has a more flexible model • Each Process can own zero or more groups • Each Process can have one default group • Each Thread can have one default group • Active group inherited by child processes
Subsystem Recognition • NT was designed to support multiple OS personalites • Win32, OS/2, POSIX • Today, Win32 and Wow64 • AFS recognizes personalities and supports separate SysName lists for each
Future Projects • Volume Quota Interface • Volume Shadow Copy Service emulation • DOS attributes • Alternate Data Streams • Extended Attributes
More Future Work • Windows Management Instrumentation • Distributed Link Tracking and Object Identifiers • Windows Access Control Lists • Disconnected Operations • Local volume replication to AFS
Thanks are due to a few • Morgan Stanley • Stanford University • Fermi National Lab • Lawrence Livermore Lab • Rodney Dyer, Andrei Keis, Damian Crosby, AsankaHerath, Peter Scott, Rod Widdowson