LAYERED FILE SYSTEM Sunil Venkatesh CMSC-601, Spring 2011, 05-02-2011 INTRODUCTION Linux OS Supports more than 30 filesystems VFS subsystem Data structures – inode, file, vm_area_struct, dentry and super_block User Application Sys-call interface User Kernel VFS Layer Conceptual (VFS interface) Filesystem Physical Media MOTIVATION Challenges in administering a Linux server Users, Groups and Others (RWX) Maintaining software New features Delegation of authority Security through isolation (“chroot jail”) Benefits in a Cloud Data is secure Easier maintenance of web- services RELATED WORK Hendricks et al., Method and apparatus for translucent file system, 1991 Works best when a team working on shared data Shared and Private hierarchy Erez Zadok and Ion Badulescu, A Stackable File System Interface For Linux vnode – represents files, directories and devices. wrapfs achieved through vnode interface Erez Zadok and Ion Badulescu and Alex Shender, Cryptfs: A Stackable Vnode Level Encryption File System, 1998. DEPICTING LAYERS System Layer Active Kernels Inactive Kernels 2.6.18-128.el5 2.6.38.4 Layer Contents: vmlinuz initrd grub 2.6.39-rc5 User Layer User Group 1 alpha User Group 2 bravo charlie delta User Group 3 echo foxtrot These layers inturn can contain sublayers like: dev, test golf hotel Application Layer Graphics Toosl OpenGL Development Tools Glib DirectF B gcc Java Office Tools fortro n word spreadsheet LAYERED ORGANIZATION Level 1 Legend: White Font: Directory Black Font: File / T1M1 – Team 1, Member 1 bin dev base lib home mnt ....... bash mkdir mount netstat ping pwd tracepath traceroute … unmount bin root usr lib sbin share ....... Level 2 Legend: White Font: Directory Black Font: File prj1 / T1M1 – Team 1, Member 1 Legend: White Font: Directory Black Font: File dev lib home Legend: White Font: Directory Black Font: File bin bash mkdir mount netstat bash T1M1 ping mkdir pwd mount tracepath netstat traceroute ping … pwd unmounttracepath traceroute … unmount dev mnt lib home T1M1 – Team 1, Member 1 T1M2 T1M3 ....... T2M2 bash mkdir mount netstat ping pwd tracepath traceroute … unmount mnt ....... T NM2 lib home T2MN TNM3 ....... TNMN root / ....... bin dev T2M3 TNM1 ....... T1MN bin T2M1 prj3 ....... temp prjN / T1M1 – Team 1, Member 1 bin prj2 lib mnt bin usr root sbin usr share ....... root ....... lib sbin bin usr share ....... lib sbin share ....... dev dev Level 3 test dev test dev test test AN EXAMPLE OF A LAYER Legend: White Font: Directory Black Font: File / T1M1 – Team 1, Member 1 bin bash mkdir mount netstat ping pwd tracepath traceroute … unmount T1M1 Test Code 1 dev T1M2 T1M3 Level 2. . . . . . . Test Code 1 lib home mnt . . . . . . . root bin T1MN Test Code 1 Test Code Level 32 Python (v2.3) lib gcc (v3.4) usr sbin . . . . . . . share IMPLEMENTATION Components to be implemented A pseudo-filesystem wrapfs layer Modification User Application Sys-call interface dentry operations User Kernel VFS Layer Conceptual (VFS interface) Filesystem Physical Media wrapfs FUTURE WORK Layered hierarchy representation Provide means for delegation of authority Eliminate need for a user and group permission in each file QUESTIONS/SUGGESTIONS