FUSE Filesystems William Stearns

Slides:



Advertisements
Similar presentations
Va-scanCopyright 2002, Marchany Unit 8 – Solaris File Systems Randy Marchany VA Tech Computing Center.
Advertisements

Allocation Methods - Contiguous
File Management Systems
1 Configuring Web services (Week 15, Monday 4/17/2006) © Abdou Illia, Spring 2006.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 5: Managing File Access.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 5: Managing File Access.
GNU/Linux Filesystem 1 st AUT GNU/Linux Festival Computer Engineering & IT Department Bahador Bakhshi.
Lesson 22 – Introduction to Linux Systems Administration.
70-270, MCSE/MCSA Guide to Installing and Managing Microsoft Windows XP Professional and Windows Server 2003 Chapter Nine Managing File System Access.
Fall 2011 Nassau Community College ITE153 – Operating Systems Session 24 NTFS Permissions and Sharing Printers 1.
Linux+ Guide to Linux Certification Chapter 12 Compression, System Backup, and Software Installation.
Laksh mi.  fdisk is an interactive utility to manipulate disk partitions.  Use fdisk –l to review the disks and partitions on the system.  Use fdisk.
Module 6: Managing Data Storage. Overview Managing File Compression Configuring File Encryption Implementing Disk Quotas.
Linux+ Guide to Linux Certification, Third Edition Chapter 11 Compression, System Backup, and Software Installation.
NovaBACKUP 10 xSP Technical Training By: Nathan Fouarge
CN1260 Client Operating System Kemtis Kunanuraksapong MSIS with Distinction MCT, MCITP, MCTS, MCDST, MCP, A+
Module 1: Installing Active Directory Domain Services
Backups in Linux Ning Zhu Class presentation. Introduction The dump and restore commands are the most common way to create and restore from backups in.
Chapter 11 Compression, System Backup, and Software Installation.
MCB Lecture #3 Sept 2/14 Intro to UNIX terminal.
1 Web Server Administration Chapter 3 Installing the Server.
Linux Installation and Administration – Lesson 5 Tutor: George Papamarkos Topic: Devices in Linux.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring, Managing, and Troubleshooting Resource Access.
Linux+ Guide to Linux Certification
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 5: Managing File Access.
SAMBA Integrating Linux and Window. What is Samba? Free suite of programs that enables flavors of UNIX to work with other operating systems such as OS/2.
1 Web Server Administration Chapter 3 Installing the Server.
| nectar.org.au NECTAR TRAINING Module 9 Backing up & Packing up.
FTP Server and FTP Commands By Nanda Ganesan, Ph.D. © Nanda Ganesan, All Rights Reserved.
Secure Operating Systems Lesson C: Linux Security Features.
Linux+ Guide to Linux Certification Chapter Thirteen Compression, System Back-Up, and Software Installation.
1 Interface Two most common types of interfaces –SCSI: Small Computer Systems Interface (servers and high-performance desktops) –IDE/ATA: Integrated Drive.
Module 3 Configuring File Access and Printers on Windows ® 7 Clients.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Computer Networking From LANs to WANs: Hardware, Software, and Security Chapter 13 FTP and Telnet.
Module 3 Configuring File Access and Printers on Windows 7 Clients.
Module 1: Implementing Active Directory ® Domain Services.
Hepix LAL April 2001 An alternative to ftp : bbftp Gilles Farrache In2p3 Computing Center
Chapter 9: Networking with Unix and Linux. Objectives: Describe the origins and history of the UNIX operating system Identify similarities and differences.
ISCSI. iSCSI Terms An iSCSI initiator is something that requests disk blocks, aka a client An iSCSI target is something that provides disk blocks, aka.
| nectar.org.au NECTAR TRAINING Module 9 Backing up & Packing up.
Filesystem Management and Backups. 2 Section Overview Devices and Files Filesystem Management Network Filesystems Backups.
FTP COMMANDS OBJECTIVES. General overview. Introduction to FTP server. Types of FTP users. FTP commands examples. FTP commands in action (example of use).
Michael Mitchell.  Could we...  Automatically encrypt/decrypt?  Automatically compress/decompress?  Present tars and zips as directory trees?  Show.
Dynamic and Scalable Distributed Metadata Management in Gluster File System Huang Qiulan Computing Center,Institute of High Energy Physics,
Windows Vista Configuration MCTS : NTFS Security Features and File Sharing.
به نام خدای مهربان زبان تخصصی دانشجویان کامپیوتر English for Computer Students درس 3 جوانمرد Ejavanmard.blogfa.com
2Operating Systems  Program that runs on a computer  Manages hardware resources  Allows for execution of programs  Acts as an intermediary between.
Linux Introduction Linux was developed in the early 1990’s by Linus Torvald computer science student at the University of Helsinki Linux is distributed.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com The GRUB bootloader Michael.
Marian Marinov - System Architect - Siteground.com OpenFest th annual conference Gluster Filesystem Sofia 10.Oct.2007.
The GRUB bootloader Michael Opdenacker Thomas Petazzoni Free Electrons
BY: SALMAN 1.
Project 4. “File System Implementation”
SmartCenter for Pointsec - MI
William Stearns FUSE Filesystems William Stearns
Filesystem Management and Backups
BY: SALMAN.
File System Implementation
UBUNTU INSTALLATION
Chapter 12: File System Implementation
Original.
Linux Basic Commands Visit to more Learning Resources.
File Transfer and access
IS3440 Linux Security Unit 4 Securing the Linux Filesystem
Linux File Systems Partitioning Mounting File Systems
Configuring Internet-related services
File System Management
Creating and Managing Folders
Configuring Disk Quotas
Presentation transcript:

FUSE Filesystems William Stearns

Overview ● Adding features to filesystems ● Fuse overview and examples – Setup – Sshfs, encfs, and gluster – Pros and cons ● Wrap up

Existing filesystems ● Underlying block device – Translation: partition or full drive ● Format with filesystem ● Kernel mounts block device with filesystem

Could we... ● Automatically encrypt/decrypt? ● Automatically compress/decompress? ● Present tars and zips as directory trees? ● Show an SQL table as a directory? ● Set up a hierarchical filesystem?

Where do we put this code? ● Modify each application ● Modify existing libraries or new library ● New filesystem layer ● Existing filesystems

Issues with core filesystems ● C only – Limited libraries – Kernel mode, more complicated ● No access to network or other files ● Kernel: poor place for complex features

Add features to individual FS's? ● Different features in different fs's – Give ext3 transparent decompression – Give XFS ability to descend into tars – Give reiserfs4 encryption and decompression ● See the problem? – What if Intel nics could send TCP only and other nics UDP only?

So what's the answer? ● Applications don't have these restrictions ● Let an application present whatever it wants

FUSE ● Filesystems in USErspace – Now a program (fuse application) is responsible for dirs and files – When file is needed, kernel asks fuse application for it ● Fuse application can access anything to get raw data – Including existing local or remote file trees – Network connections – Carrier Pigeon – /dev/random!

Example: decompfs ● Existing file tree /archives/ –.tar.gzs,.zips,.bz2s ● Want to see uncompressed files – Without having to manually compress and decompress

Decompfs ● Mount /uncomp/ as decompfs – Request for /uncomp/2008tax.xls – Handed to decompfs – Decompfs asks for /archives/2008tax.xls.bz2 – Decompresses – Hands file back to original requestor

Fuse Setup ● yum install fuse fuse-libs ● usermod -a -G fuse {username} – Log out and log back in ● modprobe fuse ● Check group membership – groups

SSHFS Overview ● See files on remote server ● All communication over ssh – Encrypted, authenticated – Access any other OS with an SSH server

Sshfs Install ● yum install fuse-sshfs

Sshfs Example ● mkdir -p ~/mnt/zaphod/ ● sshfs ~/mnt/zaphod/ ● ls -al ~/mnt/zaphod/

Encfs Overview ● Encrypted files live on disk – Good if laptop stolen or lost ● Encfs presents them as unencrypted ● File by file encryption – No need to create a new block device and preallocate space

Encfs Install ● yum install fuse-encfs – Depends on the “rlog” package

Encfs Example ● mkdir ~/.encfs-private/ ~/encfs-root/ ● encfs ~/.encfs-private/ ~/encfs-root/ – Walks you through setup, next slide ● /etc/fstab: – encfs /home/wstearns/encfs-root fuse defaults,user,nodev,nosuid,noauto 0 0

Encfs setup options ● Blowfish for 32 bit cpus ● 256 bit for maximum strength ● Default 512 byte block size ● Block filename encoding ● No filename IV chaining – Files can be moved to a different dir without re-encoding filename ● Yes, Per-file IV ● No block auth code headers ● Password....

Glusterfs Overview ● Network filesystem – TCP/IP, Infiniband ● Parallel storage – Replicate files on multiple remote servers – Keep one server local too! ● Backend storage is in native format

Glusterfs Install ● We'll do client and server on one machine ● yum install glusterfs-client glusterfs-server glusterfs- libs ● mkdir -p ~/glusterfs-test/conf ~/glusterfs-test/mnt ~/glusterfs-test/brick-1-1

server-1-1.vol – volume brick – type storage/posix – option directory /home/wstearns/glusterfs-test/brick-1-1 – end-volume – volume server – type protocol/server – subvolumes brick – option transport-type tcp/server – option client-volume-filename /home/wstearns/glusterfs-test/conf/client-1- 1.vol – option auth.ip.brick.allow # * – End-volume

client-1-1.vol – volume client – type protocol/client – option transport-type tcp/client – option remote-host – option remote-subvolume brick – end-volume

Glusterfs Example ● tail -f /var/log/glusterfs/glusterfsd.log ● glusterfsd -f ~/glusterfs-test/conf/server-1-1.vol ● glusterfs -f ~/glusterfs-test/conf/client-1-1.vol ~/glusterfs-test/mnt/

Unmounting ● fusermount -u {mount_point} ● umount {mount_mount}

Other fuse filesystems ● Yacufs – on the fly {music} file conversion ● Clamfs – on-access AV scanning ● Archive access: cpio, tar, rar, ~20 more ● Compression FS's ● Database: mysql, postgresql, bdb ● Network: smb, webdav, gmailfs, httpfs, wikipediafs, curlftpfs, imapfs ● Unionfs, copyfs, svn, git, cvsfs

Fuse Pros ● Many programming languages ● Support for Linux, OS/X, FreeBSD, NetBSD, OpenSolaris, Hurd ● No public windows drivers – But: re-export fuse mount with samba ● Present any vaguely hierarchical data

Fuse Cons ● Performance – Context switches – Apps slower than kernels ● Swappable – Fuse content not generally cacheable ● Permissions – User and “anyone” permissions fine – Group permissions tough

Other similar approaches ● File managers – Nautilus – Midnight commander – Above only good if you're using these apps ● Podfuk – coda/nfs based ● LUFS – No active development – LUFS bridge available

More details ● – Fuse diagram courtesy of this site ● ● ●

Questions? ●