180 likes | 299 Views
Implementation of Concurrent Access to File Systems in USB Devices. GSPx 2004 Bogdan Vacaliuc. Overview. Advocacy Description of the problem Related Work Description of a solution Implementation Requirements Enhancements. Why do we need this?.
E N D
Implementation of Concurrent Access to File Systems in USB Devices GSPx 2004 Bogdan Vacaliuc
Overview • Advocacy • Description of the problem • Related Work • Description of a solution • Implementation Requirements • Enhancements 2
Why do we need this? • Intelligent devices produce/consume media content. • MSDC is ubiquitous for USB devices. • Implementing concurrent access enables: • Command/Control via file sharing. • Firmware Upgrades. • Exchange of data between host and device. … All without the need for OS-specific drivers … 3
The Concurrency Problem • Host MSDC implicitly caches file system data and metadata. • Device modifies data and metadata. • Without synchronization, host modifications can supercede device modifications. 4
Related Work • Distributed File Systems • Granularity of File Object. • NFS, AFS • Sprite, SpritelyNFS, NQNFS • Shared Block Devices • Granularity of Logical Block on Media • GPFS, GFS/OpenGFS • NBD, Shared SCSI 6
A Solution • Primary Requirements • It must be simple • It must operate with existing host MSDC drivers • Secondary Requirements • FAT File System • Shared Block Device approach 7
A Solution (cont.) • Establish epochs of exclusive access to metadata on the device • Define implicit criteria for obtaining exclusive access to the media by the host • Define explicit criteria for releasing exclusive access by the host • Implement fine-grain locking on accesses made by the device. 8
Use Cases • Client creates new file • Metadata is modified • Client modifies file contents • File data is modified • Client extends file • Both file and metadata are modified 10
USB/MSDC Principles • Command Block Wrapper (CBW) • Command Status Word (CSW) • Identify device as “removable media” • Use Unit Attention condition to notify host of changed data 12
Implementation Requirements – Device Side • Identify as ‘removable media’ device • Use Unit Attention condition to notify host of media content change • Implement a structured block device and cache interface • Implement file system locking which is exposed to the USB driver 13
Implementation Requirements – Host Side • Implement ‘eject media’ operation when file work is complete. • Can be user-driven (explicit drive letter ‘eject’) • Can be software-driven (close files and unmount/eject) • Behavioral differences between OS’es 14
Summary • Correct operation under concurrent access conditions is obtained by: • Implicit locking based on USB media access • Explicit release via media eject operation • Use of Unit Attention condition • Features • No new driver added to host operating system • Minimal requirements on device (best practices) 16
Enhancements and Future Work • Would like to remove explicit eject requirement on host • Use SCSI_RESERVE commands to manage locking epoch begin and end • Requires Installable File System (IFS) driver 17
Thank You 18