William Stearns wstearns@pobox.com http://www.stearns.org FUSE Filesystems William Stearns wstearns@pobox.com http://www.stearns.org.

Slides:



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

SSH Operation and Techniques - © William Stearns 1 SSH Operation and Techniques The Swiss Army Knife of encryption tools…
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.
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.
Network File System CIS 238. NFS (Network File System) The most commercially successful and widely available remote file system protocol Designed and.
Firewalls, Perimeter Protection, and VPNs - SANS © SSH Operation The Swiss Army Knife of encryption tools…
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
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.
MCB Lecture #3 Sept 2/14 Intro to UNIX terminal.
SSH Keys William Stearns
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
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.
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
| 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.
Sys Admin Course NFS and SAMBA Fourie Joubert. Sys Admin Course NFS NFS is the Network File System It allows Linux systems to share a file system, or.
Module 3 Configuring File Access and Printers on Windows 7 Clients.
1 Linux Networking and Security Chapter 5. 2 Configuring File Sharing Services Configure an FTP server for anonymous or regular users Set up NFS file.
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.
Windows Vista Configuration MCTS : NTFS Security Features and File Sharing.
2Operating Systems  Program that runs on a computer  Manages hardware resources  Allows for execution of programs  Acts as an intermediary between.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com The GRUB bootloader Michael.
FUSE Filesystems William Stearns
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.
Guide to Operating Systems, 5th Edition
Project 4. “File System Implementation”
SmartCenter for Pointsec - MI
Filesystem Management and Backups
BY: SALMAN.
File System Implementation
UBUNTU INSTALLATION
Chapter 12: File System Implementation
Linux Basic Commands Visit to more Learning Resources.
File Transfer and access
File System Management and Fault Tolerance
IS3440 Linux Security Unit 4 Securing the Linux Filesystem
Configuring Internet-related services
Web Servers / Deployment
bitcurator-access-webtools Quick Start Guide
File System Management
Creating and Managing Folders
Network File System (NFS)
Configuring Disk Quotas
Presentation transcript:

William Stearns wstearns@pobox.com http://www.stearns.org FUSE Filesystems William Stearns wstearns@pobox.com http://www.stearns.org

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

Existing filesystems Underlying block device Format with filesystem 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 wstearns@zaphod:/home/wstearns/ ~/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 Parallel storage 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 127.0.0.1 # * End-volume

client-1-1.vol volume client type protocol/client option transport-type tcp/client option remote-host 127.0.0.1 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 Permissions 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 http://fuse.sourceforge.net http://fuse.sf.org/sshfs.html Fuse diagram courtesy of this site http://fuse.sf.org/sshfs.html http://www.arg0.net/encfs http://www.gluster.org

Questions? wstearns@pobox.com