
|
 |
|
DSF - Data Sharing Facility
|  |
Data Sharing Facility (DSF) is an experimental project to build a serverless file system that distributes all aspects of file and storage management over cooperating machines interconnected by a fast switched network.
DSF is aimed at building a system that would scale from several to several hundred machines using commodity components. The first prototype is based on a cluster of NT workstations connected by a Fast Ethernet of 100Mbps; DSF will be perceived by each workstation as a native file system (i.e., a file system driver in NT terminology).
DSF contains four types of entities: Clients, File Managers, Storage Managers, and Logical Volumes. When configured together over a fast network, these entities provide a global memory cache, distributed file management, and distributed storage repository.
DSF Client – runs on some workstation and provides access to DSF files and directories. The DSF Client maintains a memory cache of data blocks accessed by applications on the Client workstation. The Client accepts file system requests from user programs, sends data to Storage Managers on writes, forwards reads to File Managers on cache misses, and receives replies from Storage Managers or other Clients. It also answers forwarding requests from File Managers by sending data to other Clients.
DSF File Manager – manages the metadata and cache consistency for a subset of DSF files. To provide scalable service, DSF splits the management of its files among several File Managers. The Manager of a file controls two sets of information about the file: cache consistency state and file structure metadata blocks. Together, these structures allow the File Manager to track all copies of the file's data blocks. The File Manager can thus forward Client read requests to other Clients, thereby implementing cooperative client caching.
DSF Storage Manager – stores and maintains data and metadata blocks on its local disks. The Storage Manager reacts to requests from File Managers by supplying data to Clients that have initiated I/O operations. DSF Storage Managers contain the intelligence to support DSF Logical Volumes.
DSF Logical Volume – consists of a number of logical disks that span multiple Storage Manager machines and provides an abstract interface to disk storage with a rich set of recovery properties. The logical volume hides the physical distribution of its logical disks so that new disks and Storage Managers can be dynamically incorporated into the system without interrupting system operation. This increases storage capacity and throughput. The storage system may be further reconfigured by moving disks between Storage Managers to match different working environments and workloads.
The logical volume supports a rich set of block operations, such as: read, write, allocateAndWrite, allocate, and delete. Furthermore, special care is taken when handling metadata blocks, e.g., inodes and indirect blocks. Metadata block operations include soft-write, soft-allocate, and soft-delete, which can be committed or aborted later on, and thus be efficiently used for multi-disk atomic transactions.
The performance and scalability of DSF is affected by several important design features:
- Separation of storage from file management
Caching and metadata management can be done on a machine that is different from the one that stores the data.
- Dynamic distribution of file management across multiple machines at file open time
This offers superior performance and scalability compared to traditional server-based file systems. Changing the management machine for a particular file can be done for load balancing, or in response to system configuration changes such as machine addition or deletion. This also enables dynamic load balancing of the system at file open time and avoids the problems associated with static load balancing at discrete time intervals.
- Cooperative caching
Client machine memories are treated as one global cooperative cache. Clients are able to access blocks cached by other clients, thereby reducing the load on Storage Managers and reducing the cost of local cache misses.
- Lack of dedicated machines
This eliminates source bottlenecks. Any machine in the system, including one that runs user applications, can be made responsible for storing, caching, and managing any piece of data or metadata. Furthermore, any machine in the system can assume the responsibilities of a failed component.
- Freedom to configure the file system
DSF can be configured to match different system environments depending on machine memories and CPU speeds. DSF can have multiple configurations ranging from a "small office system", where the file system is shared between two machines and only one is responsible for storing the data, to a large "clustered system" of hundreds of machines such as GPFS, where each machine is made responsible for storing, caching and managing the file system.
- Use of logical volumes
DSF logical volume can be used to dynamically reconfigure the storage subsystem without interrupting file system operation. The support for transactional operations over multiple disks improves the performance of file operations that require atomic multi-block writes, such as file sync and directory operations. The new allocateAndWrite technique removes the need to allocate a new block prior to its writing to disk.
|
 |
|
 |
|