NASD ==== What is the motivation for this paper? New applications, bigger files, etc. (the usual) High cost & limited scalability of file servers (see Fig. 4) Figure 2: What is a PAN (peripheral-area network)? SCSI, etc. What is SAN (system area network)? Used to be special, fast networking hardware--e.g., 155 Mbit ATM Now, have much cheaper networks that fast--e.g., Gbit Ethernet What is the function of a file manager? Naming, access control, concurrency control, etc. What is the function of an object store? Store file-like things (including some attributes) Where do Zebra, Autoraid, Frangipani, and AFS fit on diagram? Zebra - #4 Frangipani - Application/FM on frangipani server, Disk--PAN--Some object store in Petal server Some FM also shouldered by separate lock servers Autoraid - Disk plus some object store over PAN to rest of object store AFS - Like #2, but some file management in separate volume server What are enabling technologies? I/O-bound applications Drive attachment technology: High transfer rates -> short busses So we are seeing things like fiberchannel that look more like networks Increasing prevalence of "cluster" environments More transistors on ASICs (Figure 3) Increasing prevalence of cluster environments How did people previously do massive computations? Very expensive supercomputer with parallel processors Synchronous, reliable network between processes Now people use IP over unreliable but fast networks Cost effectiveness + Currently low margins on disk drives What does NASD interface look like? Asynchronous oversignt Only rarely need to contact the file manager Direct data transfer (FM not involved) Is this like Zebra? Sort of, except you don't even need to give blocks to FM Object-based interface What is an object? Variable-length, growable extent of data Some well-defined attributes (e.g., modification time, version) Some opaque attributes So NASD disk is now responsible for allocating individual file-like things How does this compare to petal? Disk now has more information--Why might this be good? No double logging, No need for decommit operations (can't leak storage) Makes it easier to have untrusted clients Cryptographic integrity -- network to disk is no longer trusted What operations does network interface support on objects? Create/remove/resize partition What is the point of partitions? Separate key for security--can delegate control to clients Can split load across many file managers Create/remove/read/write/getattr/setattr object Also, fastcopy, flush & blocksrequired Supports hints for clustered objects--nearby_object attribute Where do you get object IDs? Some well-known object IDs store bootstrapping information (e.g., root dir) FM can give out more object IDs Or possibly clients get them directly (by parsing directories) But can't access w/o getting capability from File Manager How do capabilities work? File manager and NASD disk share a symmetric key K Capability consists of plaintext permissions + MAC, e.g.: Perm = { object-ID, version, expiration time, read-write access, bytes 0 - 0xffffffff } Capability = Perm, MAC (K, Perm) Request accompanied by capability, which drive checks with key How do you revoke a capability? Change version number. All clients must then contact FM to get new capability--ok, infrequent How did they (or would you) implement NFS with NASD? Client---(LAN)---NFS server---(SAN)---NASD One object per file, use the object ID as the NFS file handle Can you enforce quotas with NASD? You have partitions (like AFS volume quotas) For per-user quotas, can use the fact that capabilities contain ranges Performance Fig. 6: FFS has fewer copies from cache, NASD better disk layout (but experiment doesn't really measure NASD) Fig. 7: Is scalability argument convincing? Fig. 9: Why performance difference between Cheops and NFS Cheops stripes each file over multiple disks What is NFS-parallel--multiple copies helps with readahead Note: How do you perform queries like the one in figure 9? What are active disks? How are they different from NASD? Code shipping--run arbitrary code on the disk itself (cool for queries) Can you have security in this model? (Maybe--use something like Java?) Would you rather have NASD or Petal? Petal works with existing hardware NASD has to make excuses--experimental setups weird to compensate NASD gives more flexibility to untrusted clients NASD can possibly have smarter caching at drive (remember UBM--based of fds)