Virtual File Systems in Samba 3.0 Alexander Bokovoy Samba Team, Optifacio Software Services CIFS 2003 conference, San Jose, 11-15 August.

Slides:



Advertisements
Similar presentations
OS Organization Continued Andy Wang COP 5611 Advanced Operating Systems.
Advertisements

Data Management Expert Panel - WP2. WP2 Overview.
Operating-System Structures
CS-550: Distributed File Systems [SiS]1 Resource Management in Distributed Systems: Distributed File Systems.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Technical Architectures
Chapter 9 Chapter 9: Managing Groups, Folders, Files, and Object Security.
File System Implementation
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Processes in Unix, Linux, and Windows CS-502 Fall Processes in Unix, Linux, and Windows CS502 Operating Systems (Slides include materials from Operating.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Module 2: Planning to Install SQL Server. Overview Hardware Installation Considerations SQL Server 2000 Editions Software Installation Considerations.
© 2005 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Advanced Samba Administration Part.
Tasks Necessary for Setting Up a Hard Disk Initializing the disk with basic or dynamic storage type Creating partitions on basic disks or volumes on dynamic.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
© 2005 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Advanced Samba Administration Part.
1 SAMBA. 2 Module - SAMBA ♦ Overview The presence of diverse machines in the network environment is natural. So their interoperability is critical. This.
Chapter 3 Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Uniting Cultures, Technology & Applications A Case Study University of New Hampshire.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
SPREAD TOOLKIT High performance messaging middleware Presented by Sayantam Dey Vipin Mehta.
Chapter 10: File-System Interface Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 Chapter 10: File-System.
1 Introduction to Microsoft Windows 2000 Windows 2000 Overview Windows 2000 Architecture Overview Windows 2000 Directory Services Overview Logging On to.
CE Operating Systems Lecture 11 Windows – Object manager and process management.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
1 Chapter Overview Performing Configuration Tasks Setting Up Additional Features Performing Maintenance Tasks.
PI Data Archive Server COM Points Richard Beeson.
National Partnership for Advanced Computational Infrastructure San Diego Supercomputer Center Persistent Management of Distributed Data Reagan W. Moore.
Configuring File Services. Using the Distributed File System Larger enterprises typically use more file servers Used to improve network performce Reduce.
June 15, 2009GITB Open Meeting, Brussels1 GITB Alternative Architectures and Business Models CEN/ISSS eBIF Global eBusiness Interoperability Test Bed Methodologies.
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.
Page 1 Remote Procedure Calls Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Copyright © 2012 UNICOM Systems, Inc. Confidential Information z/Ware Product Overview illustro Systems International A Division of UNICOM Global.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
Linux+ Guide to Linux Certification, Third Edition
Lecture 18: Object-Oriented Design
CSC414 “Introduction to UNIX/ Linux” Lecture 2. Schedule 1. Introduction to Unix/ Linux 2. Kernel Structure and Device Drivers. 3. System and Storage.
Database authentication in CORAL and COOL Database authentication in CORAL and COOL Giacomo Govi Giacomo Govi CERN IT/PSS CERN IT/PSS On behalf of the.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
LCG Distributed Databases Deployment – Kickoff Workshop Dec Database Lookup Service Kuba Zajączkowski Chi-Wei Wang.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
MCSE Guide to Microsoft Exchange Server 2003 Administration Chapter One Introduction to Exchange Server 2003.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
CEG 2400 FALL 2012 Linux/UNIX Network Operating Systems.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
LINUX Presented By Parvathy Subramanian. April 23, 2008LINUX, By Parvathy Subramanian2 Agenda ► Introduction ► Standard design for security systems ►
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Introduction to Operating Systems Concepts
z/Ware 2.0 Technical Overview
Self Healing and Dynamic Construction Framework:
Chapter 2: System Structures
File System Implementation
Software Design and Architecture
Introduction to J2EE Architecture
Chapter 3: Windows7 Part 4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2: The Linux System Part 2
Chapter 2: System Structures
Outline Midterm results summary Distributed file systems – continued
Lecture 1: Multi-tier Architecture Overview
Samba.
Chapter 15: File System Internals
Chapter 2: Operating-System Structures
Presentation transcript:

Virtual File Systems in Samba 3.0 Alexander Bokovoy Samba Team, Optifacio Software Services CIFS 2003 conference, San Jose, August

1 CIFS Conference, 2003 Virtual file systems General approach to extend a storage: Most operating systems support abstraction of a storage on a low level (Kernel-level VFS) Some applications provide storage abstraction as well (application-level VFS) Follow common UNIX™ paradigm: Do one thing at time but do it best Virtual file system concept is often understood differently in different contexts: As means to gather data using different protocols through an unified user interface As means to assimilate incompatible interfaces between different protocols As means to organize storage itself

1 CIFS Conference, 2003 Virtual file systems (cont.) Kernel-level VFS: Local file systems: Easy to create thing-in-itself, interoperability is left up to higher level: more than 40 in Linux 2.4 series One ring to rule them all – same code handles both client access and backend storage Network file systems: Tend to solve interoperability issues: Act as connectors between remote storages More complicated than local ones Use client-server architecture Server-side is often implemented in user space

1 CIFS Conference, 2003 Virtual file systems (cont.) Application-level VFS Grand unified access method: Consistency in representation for user: regular files and folders Compressed “folders” local and “remote” resources merged together from user point of view Consistency in application development: same API for higher layers: everything is a file meta-data abstraction: different formats faded into one “meta-format” Least surprised way for developer to extend a storage: tradition matters!

1 CIFS Conference, 2003 Virtual file systems (cont.) Disadvantages of VFS: Loss of some semantic attributes: lower layers have to fall in line with higher ones Loss of context information: Higher layers usually split operation into a number of lower layers' ones: Where to track user activity? Where to perform transaction rollback? Possible solutions: Multi-level virtualization Vertical push of context between layers

1 CIFS Conference, 2003 Samba 3.0 Common modularized architecture: Everything can be served as external module: Pluggable password and authentication Pluggable character sets Pluggable RPC pipes Pluggable ID mapping And... Pluggable virtual file systems

1 CIFS Conference, 2003 Samba 3.0 VFS features Common module infrastructure Unified module configuration Stackable modules Generic testing infrastructure Full coverage of file system operations Simplified module source code Documentation (not exactly VFS...): Docbook XML 4.2 as source format Easy integration with Samba official manual pages Migration guide for VFS developers

1 CIFS Conference, 2003 Samba 3.0 VFS example

1 CIFS Conference, 2003 Common module infrastructure Subsystem management in Samba 3.0 is regularized: Modules can be compiled dynamically or statically Modules probed in known locations during loading Modules can register events Same binary object could provide modules for different subsystems

1 CIFS Conference, 2003 Unified module configuration In Samba 2.2: Modules were left on its own to get and process its options Want to store options in smb.conf? Hack Samba source! In Samba 3.0: Parametric options add more freedom: Each module can have own option domain (no more name conflicts) Different types of data supported (string, list, integer, boolean, etc) Option format is standardized: domain: name = value No need to hack Samba source anymore

1 CIFS Conference, 2003 Stackable modules In Samba 2.2: One module per share, therefore: Multiple actions have to be coded in one module In Samba 3.0: Multiple modules per share Different types of modules supported: “Opaque” modules “Transparent” modules Order of module execution is configurable Per-module, per-connection local storage One module can be loaded several times for the same share with different 'roles'

1 CIFS Conference, 2003 Generic testing infrastructure Modules can be loaded either to SMBD daemon or to specific vfstest utility Vfstest utility allows: Load dynamic modules Test VFS operations without network access Push predefined data through VFS stack Scriptable testing Debugging on different levels of verbosity

1 CIFS Conference, 2003 Full coverage of file operations In Samba 2.2: 62 file system operations: Disk management Directory access File access NT ACLs POSIX ACLs Inconsistency: some operations were outside VFS In Samba 3.0: 76 file system operations New subsystems: Extended attributes Quota management

1 CIFS Conference, 2003 Simplified module source code Typical Samba 2.2 VFS module code: File operations' functions Local static table of pointers to functions Configuration parsing (external configuration file) Initialization functions: Copy passed default operations Override defined operations with local ones Return pointer to local static table of VFS operations merged with passed default one Defects: Hard to maintain, easy to overlook changes in API No resistance against passed NULL pointers as hooks

1 CIFS Conference, 2003 Simplified module source code Typical Samba 3.0 VFS module code: File operations' functions Static mapping table between operations and functions including operation type (opaque or transparent) Initialization function: Register VFS module using common modules' API Configuration options: Access smb.conf parametrical options where needed Local per-module, per-connection storage: No need for persistent variables in module code

1 CIFS Conference, 2003 Documentation for VFS modules Samba 3.0 uses completely new approach to maintain documentation for configuration options: Options documented using Docbook XML 4.2 One option description – one source XML file Options categorized and split to subdirectories according to a category Manual page is generated using set of XSLTs VFS developers and distribution vendors could: Generate own manual pages using same approach Add documentation to main smb.conf(5) manual

1 CIFS Conference, 2003 VFS developers' guide Samba 3.0 developers documentation includes chapter on VFS modules development: How to write module from scratch How to migrate module for Samba 2.2 to Samba 3.0 How to store data on per-connection basis How to distribute modules Samba 3.0 VFS examples include: Module to perform connection audit Module to support AppleTalk interoperability Module to store default quotas Module to organize recycle bin for removed files

1 CIFS Conference, 2003 Available third-party modules DatabaseFS: access MySQL database as file system: OpenAntivirus: scan files for viruses with several commercial and open source antivirus solutions: DrWeb-samba: virus scanner for DrWeb antivirus: ftp://ftp.drweb.ru/pub/unix/betas/