DWorFS: File System Support for Legacy Applications in ... - CiteSeerX

8 downloads 200199 Views 13KB Size Report
Jan 1, 1998 - Department of Computer Science ... This document describes a system we are developing to support legacy and .... 17(7):365-375, July 1974.
DWorFS: File System Support for Legacy Applications in DISCWorld Craig J. Patten, F. A. Vaughan, K. A. Hawick and A. L. Brown {cjp,francis,khawick,fred}@cs.adelaide.edu.au

Distributed High Performance Computing Group Department of Computer Science University of Adelaide Adelaide, SA 5005, Australia Technical Report DHPC-032 January 1998

1. Introduction This document describes a system we are developing to support legacy and commercial applications in the DISCWorld [haw98] distributed computing environment. Distributed high-performance computing systems, often referred to as metacomputing [cat92] systems, present many challenges not only in their design and implementation, but in the harnessing of the resultant collective resource. Supporting legacy and commercial applications not specifically designed for use in a given metacomputing system is one such challenge. The DISCWorld File System, or DWorFS, which we are developing, provides a standard file system interface to an heterogeneous collection of distributed and/or hierarchical storage resources. DWorFS embeds a storage service Application Programming Interface (API) into the standard file system interface. This allows users of legacy and commercial applications more flexibility and higher performance in the use of their applications, without requiring the modification of their often unavailable source code to use custom storage service APIs.

2. DWorFS Rationale Storage in metacomputing systems often consists of a mixture of heterogeneous distributed and hierarchical media, at a number of levels in the storage hierarchy. There are generally two ways to access such storage. One is through a file system layer, which abstracts over the physical layout of data by providing a standard, uniform file system interface. However high-performance applications using such systems cannot realise the full performance potential of the underlying hardware, because they lack flexibility in spatial and temporal data layout and tiling. The other option for storage access is to provide applications with a storage system interface featuring more functionality than a standard file system. For example, explicit calls in an API for prefetching and data tiling. Since these systems allow applications which use them to customise the manner in which they store and retrieve data, higher performance can generally be achieved. The problem with these systems is that they are usually custom-designed, and therefore legacy applications which use the normal file system interface are unable to use them. It is important to support these applications without

requiring access to their source code.

3. DWorFS Semantics and Design The prime design feature of DWorFS is the use of the standard file system interface. Applications accessing data through DWorFS use virtual directories and filenames to specify to DWorFS the required data and options. It is the task of DWorFS to perform whatever processing is necessary to format the data as desired by the application. This concept of virtual pathname components is also used in other systems [bla93, gif91, cat91] which export a standard file system interface to a more complex underlying system. The purpose of these virtual pathnames is to attach semantics relating to the desired type of requested data to the pathnames themselves. For example, the specification of geometries and file formats in pathnames when accessing an image repository. This allows the user of the application more flexibility in the use of such a repository. The syntax and semantics of these virtual pathname components in DWorFS are dataset-dependent, and in future versions of the system, will be user-configurable through the DISCWorld infrastructure. For our current prototype, we are using traditional tree-structured virtual pathnames, however as future work we intend to explore alternatives such as name-value pairs, as used in the Common Gateway Interface [cgi95]. Some of our driving applications for DISCWorld involve the processing of bulk regular data, for example satellite imagery. We therefore present the following example usage of DWorFS, in the context of a GMS-5 [gms89] satellite imagery repository.

3.1 DWorFS Example Usage: Cloud Cover Application As an example, we describe the use of DWorFS to provide GMS-5 satellite imagery to an application which calculates the percentage of cloud cover in a given GMS-5 image. The requirements of this application on the GMS-5 image repository are fairly straightforward - it opens two GMS-5 images, one for the visual channel and the other for the infrared channel. The pathnames in this example take the form: /gms5/dates/channels/geometry[.formats]

Note that the use of "/" as the internal field separator (IFS) is purely arbitrary. The Network File System (NFS) [sun89, san85], our choice for DWorFS’ external interface, is IFS-independent. For example, if the cloud cover application attempted to read from the following filename through DWorFS: /gms5/199801011200/vis/250x200+950+1700.pgm

The client will be presented with a file handle for a 250x200 Portable Greymap (PGM) [pos89] image file cut out from (950,1700) to (1200,1900) in the visual channel of a GMS-5 image from the 1st January 1998 at 1200 UTC - an image of South Australia. The file transformations occur automatically; in this case the crop, and conversion from Hierarchical Data Format (HDF) [hdf97], in which the

GMS-5 satellite imagery is stored in on our system, to PGM format. The use of arbitrary cropping implies that the operation of listing a directory such as /gms5/199801011200/vis/

is infeasible because of the large number of possible entries, and is not implemented. It is important to note that the data transformations which can be performed are constrained by the fact that a virtual file’s size must be calculable without the actual generation of the deliverable data. For example, transformations to image formats which utilise compression would be infeasible in DWorFS, because the compression ratio for any given file cannot be known in advance.

4. DWorFS Implementation We are in the process of implementing a DWorFS prototype on the Unix [rit74] operating system using the C [ker88] programming language. The primary implementation platform for the associated DISCWorld infrastructure is Java [gos96].

4.1 DWorFS External Interface Two obvious candidates presented themselves for the external interface of DWorFS; the Network File System (NFS), or the Virtual File System (VFS) [kle86]. NFS allows clients to access storage across a network using standard file system semantics as defined in Network Working Group Request for Comments (RFC) documents 1094 [sun89] and 1813 [sun95, paw94]. VFS provides file system implementors with a standard operating system interface, abstracting over the underlying storage model. NFS support exists on many platforms, from supercomputers to personal computers, whereas support for VFS exists primarily on Unix systems, and its use generally requires kernel modifications. User-level NFS servers are far less platform-dependent, and have been used before in the Cryptographic File System [bla93], the Semantic File System [gif91], ATTIC [cat91], and a number of other systems. For these reasons we have chosen NFS as the external interface for DWorFS.

4.2 DWorFS Internal Structure The internal processing in DWorFS occurs in a layer under the NFS server in the DWorFS daemon program. NFS requests are transferred to this layer, which performs the actual processing and supplies responses up through the NFS interface. Currently the server is specific to our GMS-5 image repository, but we plan to extend the system to be extensible to, and user-configurable for, arbitrary datasets.

5. Conclusions DWorFS is a mechanism through which we intend to support legacy and commercial applications in the DISCWorld distributed computing infrastructure. We have implemented a prototype, and intend to pursue future work in functionality, performance, and portability.

6. Future Work 6.1 Prefetching in DWorFS

Our current DWorFS prototype has no prefetching capabilities, however we are exploring the possibilities for this functionality. One option is to manipulate the time of last data modification file attribute to implement data prefetching. When DWorFS is presented with a request to set this attribute for a virtual file, the request is interpreted as a notification that the file specified will likely be required at the date and time specified; if the date/time is not in the future it is ignored. The required client functionality to submit such requests is in the Unix touch program, and in the cases where no common program exists which can issue the request, a DISCWorld applet will provide the functionality by directly communicating with DWorFS.

6.2 Writing data through DWorFS The DWorFS prototype is read-only. We are exploring the motivations and issues related to writing data through DWorFS, including the specification of tiling and layout information within virtual pathnames.

6.3 Alternative Virtual Pathname Syntaxes and Semantics As stated previously, virtual pathnames used in the DWorFS prototype are tree-structured. We are also looking at alternative methods of data specification, such as name-value pairs similar to those used in the Common Gateway Interface (CGI) [cgi95]. We are also researching fuller functionality in the pathnames, primarily tiling and layout specifications.

6.4 NFS Multi-Component Lookup Normally NFS clients can only lookup one pathname component per request. This has the obvious detrimental effect where large network latencies are involved, and has been addressed in later NFS servers with WebNFS/Multi-Component Lookup (MCL) [sun96a, sun96b, sun97] functionality. This allows a full pathname lookup to be sent in one NFS request, improving performance. In the future we intend to add WebNFS/MCL support to DWorFS.

Acknowledgements This work is being carried out as part of the Distributed High Performance Computing Infrastructure (DHPC-I) project of the Research Data Networks Cooperative Research Center (RDN CRC) and is managed under the On-Line Data Archives Program of the Advanced Computational Systems CRC. RDN and ACSys are established under the Australian Government’s CRC Program.

References [bla93] Matt Blaze, A Cryptographic File System for Unix, In Proceedings of the First ACM Conference on Communications and Computing Security, Fairfax, Virginia, November 1993. [cat91] Vincent Cate and Thomas Gross, Combining the Concepts of Compression and Caching for a Two-Level Filesystem, In Proceedings of the Fourth Conference on Architectural Support for Programming Languages and Operating Systems, Santa Clara, California, April 1992, pp. 200-211. [cat92] C. Catlett, and L. Smarr, Metacomputing, Communications of the ACM, 35 (1992), pp. 44-52.

[cgi95] National Center for Supercomputing Applications, The CGI Specification, 1995. [gif91] David K. Gifford, Pierre Jouvelot, Mark A. Sheldon, James W. O’Toole, Jr., Semantic File Systems, In Proceedings of the Thirteenth Symposium on Operating Systems Principles, 1991. [gms89] Japanese Meteorological Satellite Center, The GMS User’s Guide, Second Edition, 1989. [gos96] James Gosling, Bill Joy, and Guy Steele, The Java Language Specification, Addison-Wesley JavaSoft Series, 1996. [haw98] K. A. Hawick, et al., DISCWorld: An Integrated Data Environment for Distributed High-Performance Computing, Submitted to the Fifth IDEA Conference, Fremantle, Australia, January 1998. [hdf97] National Center for Supercomputing Applications, HDF Reference Manual, Version 4.1r1, April 1997. [ker88] Brian Kernighan and Dennis Ritchie, The C Programming Language, Prentice Hall Software Series, 1988. [kle86] S. R. Kleiman, Vnodes: An Architecture for Multiple File System Types in Sun Unix, In Proceedings of the USENIX 1986 Winter Conference, 1986, pp. 238-247. [paw94] Brian Pawlowski, Chet Juszczak, Peter Staubach, Carl Smith, Diane Lebel, David Hitz, NFS Version 3 Design and Implementation, In Proceedings of the USENIX 1994 Summer Conference, June 1994. [pos89] Jef Poskanzer, The Extended Portable Bitmap Toolkit, 1989. [rit74] D. M. Ritchie and K. Thompson, The UNIX Time-Sharing System, Communications of the ACM, 17(7):365-375, July 1974. [san85] R. Sandberg, D. Goldberg, S. Kleiman, D. Walsh, and B. Lyon, Design and Implementation of the Sun Network Filesystem, In Proceedings of the USENIX 1985 Summer Conference, pp. 119-130, 1985. [sun89] Sun Microsystems, NFS: Network File System Protocol Specification, Network Working Group Request For Comments (RFC) 1094, March 1989. [sun95] Sun Microsystems, NFS Version 3 Protocol Specification, Network Working Group Request for Comments (RFC) 1813, June 1995. [sun96a] Sun Microsystems, WebNFS Client Specification, Network Working Group Request for Comments (RFC) 2054, October 1996. [sun96b] Sun Microsystems, WebNFS Server Specification, Network Working Group Request for Comments (RFC) 2055, October 1996.

[sun97] Sun Microsystems, WebNFS, April 1997.

Suggest Documents