240 likes | 443 Views
HandyFS: A Simple Ad-hoc Distributed File System only using FUSE and SSHFS. Nan DUN Kenjiro Taura Akinori Yonezawa The University of Tokyo. Outline. Background Related Work SSHFS FUSE HandyFS Designs and Implementation Evaluation and Problems Future Work.
E N D
HandyFS: A Simple Ad-hoc Distributed File System only using FUSE and SSHFS Nan DUN Kenjiro Taura Akinori Yonezawa The University of Tokyo http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
Outline • Background • Related Work • SSHFS • FUSE • HandyFS • Designs and Implementation • Evaluation and Problems • Future Work http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
Background: File Sharing on Grid • User explicit sharing operation • rcp, scp[OpenSSH] • FTP[J. Postel, et al. 1985.], GridFTP[Globus] • Conventional Distributed File System • Inner-Cluster Sharing • NFSv3, NFSv4 • Inter-Cluster Sharing • AFS[OpenAFS], Gfarm[Tatebe et al. ‘04] http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
SSHFS: A simple alternative • Complexity of conventional DFSs • Client-Server Configurations • Administrative Privilege • Typical Firewall Setting of the Grid • Simplicity of SSHFS [http://fuse.sourceforge.net/sshfs.html] • Only need available SSH connection • Client-side mount only • User-level Operations without privileges http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
SSHFS: Usage • Create local mount point • user@hongo000:~$ mkdirmnt_chiba • Mount remote directory to mount point • user@hongo000:~$ sshfs chiba000.intrigger.nii.ac.jp:/sharedirmnt_chiba • Access remote files via local mount point • user@hongo000:~$ [ls, rm, cp, mkdir] mnt_chiba http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
SSHFS: Framework User Application General File System Call hostA_mountpoint hostB_mountpoint fuse fuse Translation SSHFS SSH client SSH client SSH Commands hostB hostA http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
SSHFS: Evaluation Data Transfer Rate (Mbps) SSHFS-FUSE overhead http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: Motivation • Disadvantages of Merely Using SSHFS • Non-scalable • Users have to create many mount points for hosts • Non-unified namespace • Files under different mount points (hosts) should be manipulated separately • Motivation of HandyFS • Inherit simplicity from SSHFS • Create a scalable mount for many hosts • Ad-hoc create a unified namespace for files on many hosts http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: Usage • Create ONE local mount point • user@hongo000:~$ mkdirmnt_all • Mount MULTIPLE remote directories to mount point • user@hongo000:~$ handyfs chiba000.intrigger.nii.ac.jp:/sharedir1 chiba001.intrigger.nii.ac.jp:/sharedir2 ......mnt_all • Access remote files via local mount point • user@hongo000:~$ [ls, rm, cp] mnt_all http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: Framework The trick is using FUSE twice 1. SSHFS mount for remote host 2. Local mount for directory merge Host1 Host2 User Application HandyFS SSHFS SSHFS /handyfs_mnt /sshfs_mnt1 User Kernel /sshfs_mnt1 FUSE Kernel Module http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: File Operations Source directory Tree at HostA Source directory Tree at HostB Virtual directory Tree /mnt_hostA /mnt_hostB / /A /B /B /C /A /B /C /B/C /B/D /B/C /B/D • Directories Merge • Source directories and Target (virtual) directory • Source directory: SSHFS mount points for each host • Target directory: Directory in HandyFS namespace http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: File Operations Virtual Directory Source Directories Implemented by using BerkeleyDB to achieve good performance /cmndir /srcdirA/cmndir /srcdirB/cmndir • Directories Merge • Source directories and Target (virtual) directory • Directory Table • To remember virtual directory is merged from which source directory • On-Demand Merge Operation • Merge operation occurs only when request reach non-merged path http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: File Operations Retrieve source directory entries from directory table Lookup a file with full pathname On-demand Merge Lookup file in each retrieved source directory entries If target pathname has not been merged, then merge and store into directory table Return result to user File Lookup http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: File Operations • Directory Split • Remove one or several source directories from virtual directory, we have two alternatives • Remove directory table entries • Heavy Operation: Search entire directory table • Re-insert overhead if source become available again • Blind user view of source directories by filtering • Use a in-memory filter to mark current available sources • File lookup results are filtered before returning to user • Efficient and re-usable http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: File Operations Lookup a file with full pathname Lookup file in each retrieved source directory entries If target pathname has not been merged, then merge and store into directory table Filtering out results that are from removed source directories Retrieve source directory entries from directory table Return result to user Directory Split http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: File Operations • File Creation • File is created at random source directory • For directory file, an entry is created in directory table • Directory Read • Similar as file lookup • Lookup target directory • Read all entries from source directories that composed of target directory http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: File Operations • Some Practical Problems • Same file from multiple sources • Not compatible with UNIX file semantics • Define priority of source directory • Only files from source directory with high priority are visible to user • Stale of Directory Table • Remote directory tree may be modified by its local operations • Periodically update http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: Evaluation • Experimental Environments • InTrigger Platform: https://www.logos.ic.i.u-tokyo.ac.jp/intrigger/ http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: Evaluation SSHFS-FUSE overhead TWICE-FUSE-MOUNT overhead • Experimental Results • Data Transfer Rate http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
HandyFS: Evaluation TWICE-FUSE-MOUNT overhead Wide-Area Latency SSHFS Overhead • Experimental Results • Source Compilation http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx
Future Work • Performance • HandyFS itself • To remove MOUNT-TWICEoverhead • SSHFS performance • Need be tuned at source level • Scalability • “One-to-All” mount “All-to-All” mount http://www.yl.is.s.u-tokyo.ac.jp/~dunnan/talk/070912.JSSST07.pptx