Network File System (NFS)



Similar documents
Network File System (NFS) Pradipta De

Chapter 11 Distributed File Systems. Distributed File Systems

Distributed File Systems. NFS Architecture (1)

We mean.network File System

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters

Network Attached Storage. Jinfeng Yang Oct/19/2015

Chapter 11: File System Implementation. Operating System Concepts with Java 8 th Edition

Distributed File Systems. Chapter 10

Lab 2 : Basic File Server. Introduction

RAID Storage, Network File Systems, and DropBox

UNIX File Management (continued)

Web DNS Peer-to-peer systems (file sharing, CDNs, cycle sharing)

Distributed Systems [Fall 2012]

Chapter 11: File System Implementation. Operating System Concepts 8 th Edition

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Operating System Engineering: Fall 2005

ProTrack: A Simple Provenance-tracking Filesystem

Distributed File Systems

Distributed File Systems

Sun s Network File System (NFS)

Last class: Distributed File Systems. Today: NFS, Coda

Direct NFS - Design considerations for next-gen NAS appliances optimized for database workloads Akshay Shah Gurmeet Goindi Oracle

Linux Kernel Architecture

Implementing the Hadoop Distributed File System Protocol on OneFS Jeff Hughes EMC Isilon

Simple Solution for a Location Service. Naming vs. Locating Entities. Forwarding Pointers (2) Forwarding Pointers (1)

Finding a needle in Haystack: Facebook s photo storage IBM Haifa Research Storage Systems

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Designing an NFS-based Mobile Distributed File System for Ephemeral Sharing in Proximity Networks

Distributed File Systems Part I. Issues in Centralized File Systems

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

OPERATING SYSTEMS FILE SYSTEMS

Naming vs. Locating Entities

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters

The Linux Virtual Filesystem

File-System Implementation

Security in Storage Networks A Current Perspective

NFS File Sharing. Peter Lo. CP582 Peter Lo

Project Group High- performance Flexible File System

Introduction to Highly Available NFS Server on scale out storage systems based on GlusterFS

Sunita Suralkar, Ashwini Mujumdar, Gayatri Masiwal, Manasi Kulkarni Department of Computer Technology, Veermata Jijabai Technological Institute

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

UNISOL SysAdmin. SysAdmin helps systems administrators manage their UNIX systems and networks more effectively.

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

File System Design for and NSF File Server Appliance

Akshay Kumar Jain Department of CSE, Jaypee Institute of Engg. & Technology Guna (M.P.), India

FILE ARCHIVING FROM NETAPP TO EMC DATA DOMAIN WITH EMC FILE MANAGEMENT APPLIANCE

File Management. COMP3231 Operating Systems. Kevin Elphinstone. Tanenbaum, Chapter 4

An Open Source Wide-Area Distributed File System. Jeffrey Eric Altman jaltman *at* secure-endpoints *dot* com

SiRiUS: Securing Remote Untrusted Storage

COS 318: Operating Systems. File Layout and Directories. Topics. File System Components. Steps to Open A File

Four Reasons To Start Working With NFSv4.1 Now

Considerations when Choosing a Backup System for AFS

A Content-Based Load Balancing Algorithm for Metadata Servers in Cluster File Systems*

Plutus: Scalable secure file sharing on untrusted storage

NFSv4.1 Server Protocol Compliance, Security, Performance and Scalability Testing - Implement RFC, Going Beyond POSIX Interop!

How To Test The Multix File System Performance

Client/Server and Distributed Computing

Caché Integration with a Network Appliance Filer

AIX NFS Client Performance Improvements for Databases on NAS

Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam

Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction

6.828 Operating System Engineering: Fall Quiz II Solutions THIS IS AN OPEN BOOK, OPEN NOTES QUIZ.

NFS Tuning for High Performance Tom Talpey Usenix 2004 Guru session.

Berkeley Ninja Architecture

Considerations when Choosing a Backup System for AFS

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

HDFS Under the Hood. Sanjay Radia. Grid Computing, Hadoop Yahoo Inc.

Lecture 5: GFS & HDFS! Claudia Hauff (Web Information Systems)! ti2736b-ewi@tudelft.nl

Operating Systems File system mounting, sharing, and protection. File System Mounting

Key Components of WAN Optimization Controller Functionality

Worksheet 3: Distributed File Systems

It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed.

Journaling the Linux ext2fs Filesystem

Administrasi dan Manajemen Jaringan 2. File Transfer Protocol (FTP)

Sanbolic s SAN Storage Enhancing Software Portfolio

AIX 5L NFS Client Performance Improvements for Databases on NAS

OpenFlow Based Load Balancing

tmpfs: A Virtual Memory File System

VMware Server 2.0 Essentials. Virtualization Deployment and Management

COS 318: Operating Systems

The Trivial Cisco IP Phones Compromise

SANE: A Protection Architecture For Enterprise Networks

CHAPTER 17: File Management

The Native AFS Client on Windows The Road to a Functional Design. Jeffrey Altman, President Your File System Inc.

Selling Compellent NAS: File & Block Level in the Same System Chad Thibodeau

DeployStudio Server Quick Install

FILE ARCHIVING FROM EMC CELERRA TO DATA DOMAIN WITH EMC FILE MANAGEMENT APPLIANCE

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju

Why is it a better NFS server for Enterprise NAS?

Transcription:

Network File System (NFS) Brad Karp UCL Computer Science CS GZ03 / M030 10 th October 2011

NFS Is Relevant Original paper from 1985 Very successful, still widely used today Early result; much subsequent research in networked filesystems fixing shortcomings of NFS NFS is a great substrate for cool distributed systems NCS projects! 2

Why Build NFS? Why not just store your files on local disk? Sharing data: many users reading/writing same files (e.g., code repository), but running on separate machines Manageability: ease of backing up one server Disks may be expensive (true when NFS built; no longer true) Displays may be expensive (true when NFS built; no longer true) 3

Goals for NFS Work with existing, unmodified apps: Same semantics as local UNIX filesystem Easily deployed Easy to add to existing UNIX systems Compatible with non-unix OSes Wire protocol cannot be too UNIX-specific Efficient enough Needn t offer same performance as local UNIX filesystem 4

Goals for NFS Work with existing, unmodified apps: Same semantics as local UNIX filesystem Easily deployed Easy to add to existing UNIX systems Compatible with non-unix OSes Wire protocol cannot be too UNIX-specific Efficient enough Ambitious, conflicting goals! Does Needn t NFS achieve offer same them performance all fully? as local UNIX Hint: filesystem Recall New Jersey approach 5

NFS Architecture App1 App2 Clients LAN Server (w/disk) syscalls Filesystem User Kernel RPCs 6

Simple Example: Reading a File What RPCs would we expect for: fd = open( f, 0); read(fd, buf, 8192); close(fd); 7

Simple Example: NFS RPCs for Reading a File Where are RPCs for close()? 8

File Handle: Function and Contents 32-byte name, opaque to client Identifies object on remote server Must be included in all NFS RPCs File handle contains: filesystem ID i-number (essentially, physical block ID on disk) generation number 9

Generation Number: Motivation Client 1 opens file Client 2 opens same file Client 1 deletes the file, creates new one UNIX local filesystem semantics: Client 2 (App 2) sees old file In NFS, suppose server re-uses i-node Same i-number for new file as old RPCs from client 2 refer to new file s i-number Client 2 sees new file! 10

Generation Number: Solution Each time server frees i-node, increments its generation number Client 2 s RPCs now use old file handle Server can distinguish requests for old vs. new file Semantics still not same as local UNIX fs! Apps 1 and 2 sharing local fs: client 2 will see old file Clients 1 and 2 on different workstations sharing NFS fs: client 2 gets error stale file handle 11

Generation Number: Solution Each time server frees i-node, increments its generation number Trade Client precise 2 s RPCs UNIX now fs semantics use old file handle for simplicity Server can distinguish requests for old vs. New Jersey approach new file Semantics still not same as local UNIX fs! Apps 1 and 2 sharing local fs: client 2 will see old file Clients 1 and 2 on different workstations sharing NFS fs: client 2 gets error stale file handle 12

Why i-numbers, not Filenames? Local UNIX fs: client 1 reads dir2/f NFS with pathnames: client 1 reads dir1/f Concurrent access by clients can change object referred to by filename Why not a problem in local UNIX fs? i-number refers to actual object, not filename 13

Where Does Client Learn File Handles? Before READ, client obtains file handle using LOOKUP or CREATE Client stores returned file handle in vnode Client s file descriptor refers to vnode Where does client get very first file handle? 14

NFS Implementation Layering Why not just send syscalls over wire? UNIX semantics defined in terms of files, not just filenames: file s identity is i-number on disk Even after rename, all these refer to same object as before: File descriptor Home directory Cache contents 15

NFS Implementation Layering vnode s purpose: remember file handles! Why not just send syscalls over wire? UNIX semantics defined in terms of files, not just filenames: file s identity is i-number on disk Even after rename, all these refer to same object as before: File descriptor Home directory Cache contents 16

Example: Creating a File over NFS Suppose client does: fd = creat( d/f, 0666); write(fd, foo, 3); close(fd); RPCs sent by client: newfh = LOOKUP (fh, d ) filefh = CREATE (newfh, f, 0666) WRITE (filefh, 0, 3, foo ) 17

Server Crashes and Robustness Suppose server crashes and reboots Will client requests still work? Will client s file handles still make sense? Yes! File handle is disk address of i-node What if server crashes just after client sends an RPC? Before server replies: client doesn t get reply, retries What if server crashes just after replying to WRITE RPC? 18

WRITE RPCs and Crash Robustness What must server do to ensure correct behavior when crash after WRITE from client? Client s data safe on disk i-node with new block number and new length safe on disk Indirect block safe on disk Three writes, three seeks: 45 ms 22 WRITEs/s, so 180 KB/s 19

WRITEs and Throughput Design for higher write throughput: Client writes entire file sequentially at Ethernet speed (few MB/s) Update inode, &c. afterwards Why doesn t NFS use this approach? What happens if server crashes and reboots? Does client believe write completed? Improved in NFSv3: WRITEs async, COMMIT on close() 20

Client Caches in NFS Server caches disk blocks Client caches file content blocks, some clean, some dirty Client caches file attributes Client caches name-to-file-handle mappings Client caches directory contents General concern: what if client A caches data, but client B changes it? 21

Multi-Client Consistency Real-world examples of data cached on one host, changed on another: Save in emacs on one host, make on other host make on one host, run program on other host (No problem if users all run on one workstation, or don t share files) 22

Consistency Protocol: First Try On every read(), client asks server whether file has changed if not, use cached data for file if so, issue READ RPCs to get fresh data from server Is this protocol sufficient to make each read() see latest write()? What s effect on performance? Do we need such strong consistency? 23

Compromise: Close-to-Open Consistency Implemented by most NFS clients Contract: if client A write()s a file, then close()s it, then client B open()s the file, and read()s it, client B s reads will reflect client A s writes Benefit: clients need only contact server during open() and close() not on every read() and write() 24

Compromise: Close-to-Open Consistency 25

Compromise: Close-to-Open Consistency Fixes emacs save, then make example so long as user waits until emacs says it s done saving file! 26

Close-to-Open Implementation FreeBSD UNIX client (not part of protocol spec): Client keeps file mtime and size for each cached file block close() starts WRITEs for all file s dirty blocks close() waits for all of server s replies to those WRITEs open() always sends GETATTR to check file s mtime and size, caches file attributes read() uses cached blocks only if mtime/length have not changed client checks cached directory contents with GETATTR and ctime 27

Name Caching in Practice Name-to-file-handle cache not always checked for consistency on each LOOKUP If file deleted, may get stale file handle error from server If file renamed and new file created with same name, may even get wrong file s contents 28

NFS: Secure? What prevents unauthorized users from issuing RPCs to an NFS server? e.g., remove files, overwrite data, &c. What prevents unauthorized users from forging NFS replies to an NFS client? e.g., return data other than on real server 29

NFS: Secure? What prevents unauthorized users from issuing RPCs to an NFS server? e.g., remove files, overwrite data, &c. What prevents unauthorized users from forging NFS replies to an NFS client? e.g., return data other than on real server IP-address-based authentication of mount requests weak at best; no auth of server to client Security not a first-order goal in original NFS 30

Limitations of NFS Security: what if untrusted users can be root on client machines? Scalability: how many clients can share one server? Writes always go through to server Some writes are to private, unshared files that are deleted soon after creation Can you run NFS on a large, complex network? Effects of latency? Packet loss? Bottlenecks? 31

Limitations of NFS Security: what if untrusted users can be root on client machines? Scalability: how many clients can share one server? Despite its limitations, NFS a huge success: Simple enough to build for many OSes Correct Writes enough always and go through performs to server well enough to be practically useful in deployment Some writes are to private, unshared files that are deleted soon after creation Can you run NFS on a large, complex network? Effects of latency? Packet loss? Bottlenecks? 32