Scaling a File System to Many Cores Using an Operation Log

Total Page:16

File Type:pdf, Size:1020Kb

Scaling a File System to Many Cores Using an Operation Log Scaling a file system to many cores using an operation log Srivatsa S. Bhat,y Rasha Eqbal,z Austin T. Clements,x M. Frans Kaashoek, Nickolai Zeldovich MIT CSAIL ABSTRACT allow file-system-intensive applications to scale better [4, It is challenging to simultaneously achieve multicore scala- 10, 13, 23, 26, 31]. This paper contributes a clean-slate file bility and high disk throughput in a file system. For exam- system design that allows for good multicore scalability by ple, even for commutative operations like creating different separating the in-memory file system from the on-disk file files in the same directory, current file systems introduce system, and describes a prototype file system, ScaleFS, that cache-line conflicts when updating an in-memory copy of implements this design. the on-disk directory block, which limits scalability. The main goal achieved by ScaleFS is multicore scala- ScaleFS is a novel file system design that decouples the bility. ScaleFS scales well for a number of workloads on an in-memory file system from the on-disk file system using 80-core machine, but even more importantly, the ScaleFS per-core operation logs. This design facilitates the use of implementation is conflict-free for almost all commutative highly concurrent data structures for the in-memory repre- operations [10]. Conflict freedom allows ScaleFS to take sentation, which allows commutative operations to proceed advantage of disjoint-access parallelism [1, 20] and suggests without cache conflicts and hence scale perfectly. ScaleFS that ScaleFS will continue to scale even for workloads or logs operations in a per-core log so that it can delay propa- machines we have not yet measured. gating updates to the disk representation (and the cache-line In addition to scalability, ScaleFS must also satisfy two conflicts involved in doing so) until an fsync. The fsync standard file system constraints: crash safety (meaning that call merges the per-core logs and applies the operations to ScaleFS recovers from a crash at any point and provides clear disk. ScaleFS uses several techniques to perform the merge guarantees for fsync) and good disk throughput (meaning correctly while achieving good performance: timestamped that the amount of data written to the disk is commensurate linearization points to order updates without introducing with the changes that an application made to the file system, cache-line conflicts, absorption of logged operations, and and that data is written efficiently). dependency tracking across operations. These goals are difficult to achieve together. Consider Experiments with a prototype of ScaleFS show that its directory operations in Linux’s ext4 file system [29]. Direc- implementation has no cache conflicts for 99% of test cases tories are represented in memory using a concurrent hash of commutative operations generated by Commuter, scales table, but when Linux updates a directory, it also propagates well on an 80-core machine, and provides on-disk perfor- these changes to the in-memory ext4 physical log, which is mance that is comparable to that of Linux ext4. later flushed to disk. The physical log is essential to ensure crash safety, but can cause two commutative directory oper- 1 INTRODUCTION ations to contend for the same disk block in the in-memory log. For example, consider create(f1) and create(f2) un- Many of today’s file systems do not scale well on multicore der the same parent directory, where f1 and f2 are distinct. machines, and much effort is spent on improving them to According to the Scalable Commutativity Rule [10], because y Now at VMware. z Now at Apple. x Now at Google. these two creates commute, a conflict-free and thus scal- able implementation is possible. However, in Linux, they may update the same disk block, causing cache conflicts and Permission to make digital or hard copies of part or all of this work for limiting scalability despite commuting. personal or classroom use is granted without fee provided that copies Multicore scalability is important even for a file system are not made or distributed for profit or commercial advantage and that 1 copies bear this notice and the full citation on the first page. Copyrights for on a relatively slow disk, because many workloads operate third-party components of this work must be honored. For all other uses, in memory without flushing every change to disk. For exam- contact the owner/author(s). ple, an application may process a large amount of data by SOSP’17, October 28–31, 2017, Shanghai, China. creating and deleting temporary files, and flush changes to © 2017 Copyright is held by the owner/author(s). ACM ISBN 978-1-4503-5085-3/17/10. 1In this paper, we use the term “disk” loosely to refer to persistent https://doi.org/10.1145/3132747.3132779 storage, including rotational disks, flash-based SSDs, etc. 1 disk only after producing a final output file. It is important erations that, say, Linux supports (such as sendfile), but that the application not be bottlenecked by the file system ScaleFS does implement many operations required from a when it is not flushing data to disk. Similarly, a file system file system, and supports complex operations suchas rename may be hosting multiple applications, such as a text editor across directories. Furthermore, we believe that extending (which requires strong durability) and a parallel software ScaleFS to support additional features can be done without build (which does not require immediate durability but needs impacting scalability of commutative operations. the file system to scale well). Experiments with ScaleFS on Commuter [10] demon- Our key insight is to decouple the in-memory file system strate that ScaleFS maintains sv6’s high multicore scalabil- from the on-disk file system, and incur the cost of writing ity for commutative operations while providing crash safety. to disk (including the cache-line conflicts to construct an This demonstrates that ScaleFS’s decoupling approach is in-memory copy of the on-disk data structures that will be effective at combining crash safety and scalability. Exper- written to disk) only when requested by the application. To imental results also indicate that ScaleFS achieves better enable decoupling, ScaleFS separates the in-memory file scalability than the Linux ext4 file system for in-memory system from the on-disk file system using an operation log, workloads, while providing similar performance when ac- based on oplog [5]. The operation log consists of per-core cessing disk. ScaleFS is conflict-free in 99.2% of the com- logs of file system operations (e.g., link, unlink, rename). mutative test cases Commuter generates, while Linux is When fsync or sync are invoked, ScaleFS sorts the opera- conflict-free for only 65% of them. Furthermore, experiments tions in the operation log by timestamp, and applies them to demonstrate that ScaleFS achieves good disk performance. the on-disk file system. For example, ScaleFS implements The main contributions of the paper are as follows. directories in such a way that if two cores update different • A new design approach for multicore file systems that entries in a shared directory, then no interaction is neces- decouples the in-memory file system from the on-disk sary between the two cores. When an application calls fsync file system using an operation log. on the directory, ScaleFS merges the per-core operation • Techniques based on timestamping linearization points logs into an ordered log, prepares the on-disk representation, that ensure crash safety and high disk performance. adds the updated disk blocks to a physical log, and finally flushes the physical log to disk. • An implementation of the above design and techniques Although existing file systems decouple representations in a ScaleFS prototype. for reads, the operation log allows ScaleFS to take this ap- • An evaluation of our ScaleFS prototype that confirms proach to its logical extreme even for updates. For example, that ScaleFS achieves good scalability and performance. Linux has an in-memory cache that represents directory en- The rest of the paper is organized as follows. §2 describes tries differently than on disk. However, system calls that related work, §3 describes the semantics that ScaleFS aims modify directories update both the in-memory cache and to provide, §4 provides an overview of ScaleFS, §5 describes an in-memory copy of the on-disk representation. Keeping the design of ScaleFS, §6 summarizes ScaleFS’s implemen- an updated copy of the on-disk representation in memory tation, §7 presents experimental results, and §8 concludes. means that when it is eventually written to disk (e.g., when an application invokes fsync), the on-disk state will cor- 2 RELATED WORK rectly reflect the order in which the application’s system calls executed. The main contribution of ScaleFS is the split design that allows the in-memory file system to be designed for multi- ScaleFS’s log enables two independent file systems: an core scalability and the on-disk file system for durability and in-memory file system tailored to achieve scalability, andan disk performance. The rest of this section relates ScaleFS’s on-disk file system tailored for high disk throughput. The separation to previous designs. in-memory file system can choose data structures that allow for good concurrency, choose inode numbers that can be allo- File system scalability. ScaleFS adopts its in-memory cated concurrently without coordination, etc. (as in sv6 [10]) file system from sv6 [10]. sv6 uses sophisticated parallel- and be completely unaware of the on-disk data structures. programming techniques to make commutative file system On the other hand, the on-disk file system can choose data operations conflict-free so that they scale well on today’s structures that allow for good disk throughput, and can even multicore processors.
Recommended publications
  • FY 2011 Annual Report
    We're software roadies. Software Freedom Conservancy is a public charity that acts as a non-profit home for dozens of Free, Libre, and Open Source Software (FLOSS) projects. Conservancy©s charitable mission is to help improve, develop, and defend FLOSS, and we do that by providing business, legal, and administrative services to our member projects. We have the honor of working with member projects comprised of, in our humble opinion, many of the best software developers in the world. Some of our member projects develop system software so ubiquitous that it permeates virtually every part of our society©s electronics-driven lifestyle. Other member projects are redefining how software will be written and even how computer science will be taught to the next generation of developers. Still others find their niche by solving a small-but- persistent problem better than anyone else ± and attract a cult following of users because of it. And, best of all, all of our member projects release their software under a license that allows the public to study, use, improve, and share the source code. Conservancy provides all of our ªrock starº member projects with a comprehensive suite of services, and then we get out of their way to let them do what they do best: write great software for the public©s benefit. Our structure. Conservancy acts as a fiscal sponsor to our member projects. We©ve engaged the leadership of each member project©s developer community and executed a fiscal sponsorship agreement that allows us to adopt that project as an official part of Conservancy©s corporate structure.
    [Show full text]
  • Linux Journal | August 2014 | Issue
    ™ SPONSORED BY Since 1994: The Original Magazine of the Linux Community AUGUST 2014 | ISSUE 244 | www.linuxjournal.com PROGRAMMING HOW-TO: + OpenGL Build, Develop Programming and Validate Creation of RPMs USE VAGRANT Sysadmin Cloud for an Easier Troubleshooting Development with dhclient Workflow Tips for PROMISE Becoming a THEORY Web Developer An In-Depth A Rundown Look of Linux for Recreation V WATCH: ISSUE OVERVIEW LJ244-Aug2014.indd 1 7/23/14 6:56 PM Get the automation platform that makes it easy to: Build Infrastructure Deploy Applications Manage In your data center or in the cloud. getchef.com LJ244-Aug2014.indd 2 7/23/14 11:41 AM Are you tiredtiered of of dealing dealing with with proprietary proprietary storage? storage? ® 9%2Ä4MHÆDCÄ2SNQ@FD ZFS Unified Storage zStax StorCore from Silicon - From modest data storage needs to a multi-tiered production storage environment, zStax StorCore zStax StorCore 64 zStax StorCore 104 The zStax StorCore 64 utilizes the latest in The zStax StorCore 104 is the flagship of the dual-processor Intel® Xeon® platforms and fast zStax product line. With its highly available SAS SSDs for caching. The zStax StorCore 64 configurations and scalable architecture, the platform is perfect for: zStax StorCore 104 platform is ideal for: VPDOOPHGLXPRIILFHILOHVHUYHUV EDFNHQGVWRUDJHIRUYLUWXDOL]HGHQYLURQPHQWV VWUHDPLQJYLGHRKRVWV PLVVLRQFULWLFDOGDWDEDVHDSSOLFDWLRQV VPDOOGDWDDUFKLYHV DOZD\VDYDLODEOHDFWLYHDUFKLYHV TalkTalk with with an anexpert expert today: today: 866-352-1173 866-352-1173 - http://www.siliconmechanics.com/zstax LJ244-Aug2014.indd 3 7/23/14 11:41 AM AUGUST 2014 CONTENTS ISSUE 244 PROGRAMMING FEATURES 64 Vagrant 74 An Introduction to How to use Vagrant to create a OpenGL Programming much easier development workflow.
    [Show full text]
  • STAT 625: Statistical Case Studies 1 Our Computing Environment(S)
    John W. Emerson, Department of Statistics, Yale University © 2013 1 STAT 625: Statistical Case Studies John W. Emerson Yale University Abstract This term, I’ll generally present brief class notes and scripts, but much of the lecture material will simply be presented in class and/or available online. However, student participation is a large part of this course, and at any time I may call upon any of you to share some of your work. Be prepared. This won’t be a class where you sit and absorb material. I strongly encourage you to work with other students; you can learn a lot from each other. To get anything out of this course you’ll need to put in the time for the sake of learning and strengthening your skills, not for the sake of jumping through the proverbial hoop. Lesson 1: Learning how to communicate. This document was created using LATEX and Sweave (which is really an R package). There are some huge advantages to a workflow like this, relating to a topic called reproducible research. Here’s my thought: pay your dues now, reap the benefits later. Don’t trust me on everything, but trust me on this. A sister document was created using R Markdown and the markdown package, and this is also acceptable. Microsoft Office is not. So, in today’s class I’ll show you how I produced these documents and I’ll give you the required files. I recommend you figure out how to use LATEX on your own computer. You already have Sweave, because it comes with R.
    [Show full text]
  • System Calls and I/O
    System Calls and I/O CS 241 January 27, 2012 Copyright ©: University of Illinois CS 241 Staff 1 This lecture Goals Get you familiar with necessary basic system & I/O calls to do programming Things covered in this lecture Basic file system calls I/O calls Signals Note: we will come back later to discuss the above things at the concept level Copyright ©: University of Illinois CS 241 Staff 2 System Calls versus Function Calls? Copyright ©: University of Illinois CS 241 Staff 3 System Calls versus Function Calls Function Call Process fnCall() Caller and callee are in the same Process - Same user - Same “domain of trust” Copyright ©: University of Illinois CS 241 Staff 4 System Calls versus Function Calls Function Call System Call Process Process fnCall() sysCall() OS Caller and callee are in the same Process - Same user - OS is trusted; user is not. - Same “domain of trust” - OS has super-privileges; user does not - Must take measures to prevent abuse Copyright ©: University of Illinois CS 241 Staff 5 System Calls System Calls A request to the operating system to perform some activity System calls are expensive The system needs to perform many things before executing a system call The computer (hardware) saves its state The OS code takes control of the CPU, privileges are updated. The OS examines the call parameters The OS performs the requested function The OS saves its state (and call results) The OS returns control of the CPU to the caller Copyright ©: University of Illinois CS 241 Staff 6 Steps for Making a System Call
    [Show full text]
  • Linux Journal | February 2016 | Issue
    ™ A LOOK AT KDE’s KStars Astronomy Program Since 1994: The Original Magazine of the Linux Community FEBRUARY 2016 | ISSUE 262 | www.linuxjournal.com + Programming Working with Command How-Tos Arguments in Your Program a Shell Scripts BeagleBone Interview: Katerina Black Barone-Adesi on to Help Brew Beer Developing the Snabb Switch Network Write a Toolkit Short Script to Solve a WATCH: ISSUE Math Puzzle OVERVIEW V LJ262-February2016.indd 1 1/21/16 5:26 PM NEW! Agile Improve Product Business Development Processes with an Enterprise Practical books Author: Ted Schmidt Job Scheduler for the most technical Sponsor: IBM Author: Mike Diehl Sponsor: people on the planet. Skybot Finding Your DIY Way: Mapping Commerce Site Your Network Author: to Improve Reuven M. Lerner Manageability GEEK GUIDES Sponsor: GeoTrust Author: Bill Childers Sponsor: InterMapper Combating Get in the Infrastructure Fast Lane Sprawl with NVMe Author: Author: Bill Childers Mike Diehl Sponsor: Sponsor: Puppet Labs Silicon Mechanics & Intel Download books for free with a Take Control Linux in simple one-time registration. of Growing the Time Redis NoSQL of Malware http://geekguide.linuxjournal.com Server Clusters Author: Author: Federico Kereki Reuven M. Lerner Sponsor: Sponsor: IBM Bit9 + Carbon Black LJ262-February2016.indd 2 1/21/16 5:26 PM NEW! Agile Improve Product Business Development Processes with an Enterprise Practical books Author: Ted Schmidt Job Scheduler for the most technical Sponsor: IBM Author: Mike Diehl Sponsor: people on the planet. Skybot Finding Your DIY Way: Mapping Commerce Site Your Network Author: to Improve Reuven M. Lerner Manageability GEEK GUIDES Sponsor: GeoTrust Author: Bill Childers Sponsor: InterMapper Combating Get in the Infrastructure Fast Lane Sprawl with NVMe Author: Author: Bill Childers Mike Diehl Sponsor: Sponsor: Puppet Labs Silicon Mechanics & Intel Download books for free with a Take Control Linux in simple one-time registration.
    [Show full text]
  • Lab #6: Stat Overview Stat
    February 17, 2017 CSC 357 1 Lab #6: Stat Overview The purpose of this lab is for you to retrieve from the filesystem information pertaining to specified files. You will use portions of this lab in Assignment #4, so be sure to write code that can be reused. stat Write a simplified version of the stat utility available on some Unix distributions. This program should take any number of file names as command-line arguments and output information pertaining to each file as described below (you should use the stat system call). The output from your program should look as follows: File: ‘Makefile’ Type: Regular File Size: 214 Inode: 4702722 Links: 1 Access: -rw------- The stat system call provides more information about a file, but this lab only requires the above. The format of each field follows: • File: the name of the file being examined. • Type: the type of file output as “Regular File”, “Directory”, “Character Device”, “Block Device”, “FIFO”, or “Symbolic Link” • Size: the number of bytes in the file. • Inode: the file’s inode. • Links: the number of links to the file. • Access: the access permissions for the file. This field is the most involved since the output string can take many forms. The first bit of the access permissions denotes the type (similar to the second field above). The valid characters for the first bit are: b – Block special file. c – Character special file. d – Directory. l – Symbolic link. p – FIFO. - – Regular file. The remaining bits denote the read, write and execute permissions for the user, group, and others.
    [Show full text]
  • DM-Relay - Safe Laptop Mode Via Linux Device Mapper
    ' $ DM-Relay - Safe Laptop Mode via Linux Device Mapper Study Thesis by cand. inform. Fabian Franz at the Faculty of Informatics Supervisor: Prof. Dr. Frank Bellosa Supervising Research Assistant: Dipl.-Inform. Konrad Miller Day of completion: 04/05/2010 &KIT – Universitat¨ des Landes Baden-Wurttemberg¨ und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu % I hereby declare that this thesis is my own original work which I created without illegitimate help by others, that I have not used any other sources or resources than the ones indicated and that due acknowledgment is given where reference is made to the work of others. Karlsruhe, April 5th, 2010 Contents Deutsche Zusammenfassung xi 1 Introduction 1 1.1 Problem Definition . .1 1.2 Objectives . .1 1.3 Methodology . .1 1.4 Contribution . .2 1.5 Thesis Outline . .2 2 Background 3 2.1 Problems of Disk Power Management . .3 2.2 State of the Art . .4 2.3 Summary of this chapter . .8 3 Analysis 9 3.1 Pro and Contra . .9 3.2 A new approach . 13 3.3 Analysis of Proposal . 15 3.4 Summary of this chapter . 17 4 Design 19 4.1 Common problems . 19 4.2 System-Design . 21 4.3 Summary of this chapter . 21 5 Implementation of a dm-module for the Linux kernel 23 5.1 System-Architecture . 24 5.2 Log suitable for Flash-Storage . 28 5.3 Using dm-relay in practice . 31 5.4 Summary of this chapter . 31 vi Contents 6 Evaluation 33 6.1 Methodology . 33 6.2 Benchmarking setup .
    [Show full text]
  • Continuous Auditing of SSH Servers to Mitigate Brute-Force Attacks Phuong M
    CAUDIT: Continuous Auditing of SSH Servers To Mitigate Brute-Force Attacks Phuong M. Cao, Yuming Wu, and Subho S. Banerjee, UIUC; Justin Azoff and Alex Withers, NCSA; Zbigniew T. Kalbarczyk and Ravishankar K. Iyer, UIUC https://www.usenix.org/conference/nsdi19/presentation/cao This paper is included in the Proceedings of the 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’19). February 26–28, 2019 • Boston, MA, USA ISBN 978-1-931971-49-2 Open access to the Proceedings of the 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’19) is sponsored by CAUDIT: Continuous Auditing of SSH Servers to Mitigate Brute-Force Attacks Phuong M. Cao1, Yuming Wu1, Subho S. Banerjee1, Justin Azoff2;3, Alexander Withers3, Zbigniew T. Kalbarczyk1, Ravishankar K. Iyer1 1University of Illinois at Urbana-Champaign, 2Corelight, 3National Center for Supercomputing Applications Abstract While only a small fraction of such attempts succeed, they This paper describes CAUDIT1, an operational system have led to major misuses in 51% of 1,800 surveyed organi- deployed at the National Center for Supercomputing Applica- zations, with a financial impact of up to $500,000 per organi- tions (NCSA) at the University of Illinois. CAUDIT is a fully zation [7]. automated system that enables the identification and exclusion This paper describes the production deployment of of hosts that are vulnerable to SSH brute-force attacks. Its CAUDIT at the National Center for Supercomputing Ap- key features include: 1) a honeypot for attracting SSH-based plications (NCSA) at the University of Illinois over a period attacks over a /16 IP address range and extracting key meta- of 463 days.
    [Show full text]
  • Linux Journal | January 2016 | Issue
    ™ AUTOMATE Full Disk Encryption Since 1994: The Original Magazine of the Linux Community JANUARY 2016 | ISSUE 261 | www.linuxjournal.com IMPROVE + Enhance File Transfer Client-Side Performance Security for Users Making Sense of Profiles and RC Scripts ABINIT for Computational Chemistry Research Leveraging Ad Blocking WATCH: ISSUE Audit Serial OVERVIEW Console Access V LJ261-January2016.indd 1 12/17/15 8:35 PM Improve Finding Your Business Way: Mapping Processes with Your Network Practical books an Enterprise to Improve Job Scheduler Manageability for the most technical Author: Author: Mike Diehl Bill Childers Sponsor: Sponsor: people on the planet. Skybot InterMapper DIY Combating Commerce Site Infrastructure Sprawl Author: Reuven M. Lerner Author: GEEK GUIDES Sponsor: GeoTrust Bill Childers Sponsor: Puppet Labs Get in the Take Control Fast Lane of Growing with NVMe Redis NoSQL Author: Server Clusters Mike Diehl Author: Sponsor: Reuven M. Lerner Silicon Mechanics Sponsor: IBM & Intel Download books for free with a Linux in Apache Web simple one-time registration. the Time Servers and of Malware SSL Encryption Author: Author: http://geekguide.linuxjournal.com Federico Kereki Reuven M. Lerner Sponsor: Sponsor: GeoTrust Bit9 + Carbon Black LJ261-January2016.indd 2 12/17/15 8:35 PM Improve Finding Your Business Way: Mapping Processes with Your Network Practical books an Enterprise to Improve Job Scheduler Manageability for the most technical Author: Author: Mike Diehl Bill Childers Sponsor: Sponsor: people on the planet. Skybot InterMapper DIY Combating Commerce Site Infrastructure Sprawl Author: Reuven M. Lerner Author: GEEK GUIDES Sponsor: GeoTrust Bill Childers Sponsor: Puppet Labs Get in the Take Control Fast Lane of Growing with NVMe Redis NoSQL Author: Server Clusters Mike Diehl Author: Sponsor: Reuven M.
    [Show full text]
  • Praise for the Official Ubuntu Book
    Praise for The Official Ubuntu Book “The Official Ubuntu Book is a great way to get you started with Ubuntu, giving you enough information to be productive without overloading you.” —John Stevenson, DZone Book Reviewer “OUB is one of the best books I’ve seen for beginners.” —Bill Blinn, TechByter Worldwide “This book is the perfect companion for users new to Linux and Ubuntu. It covers the basics in a concise and well-organized manner. General use is covered separately from troubleshooting and error-handling, making the book well-suited both for the beginner as well as the user that needs extended help.” —Thomas Petrucha, Austria Ubuntu User Group “I have recommended this book to several users who I instruct regularly on the use of Ubuntu. All of them have been satisfied with their purchase and have even been able to use it to help them in their journey along the way.” —Chris Crisafulli, Ubuntu LoCo Council, Florida Local Community Team “This text demystifies a very powerful Linux operating system . in just a few weeks of having it, I’ve used it as a quick reference a half dozen times, which saved me the time I would have spent scouring the Ubuntu forums online.” —Darren Frey, Member, Houston Local User Group This page intentionally left blank The Official Ubuntu Book Sixth Edition This page intentionally left blank The Official Ubuntu Book Sixth Edition Benjamin Mako Hill Matthew Helmke Amber Graner Corey Burger With Jonathan Jesse, Kyle Rankin, and Jono Bacon Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks.
    [Show full text]
  • Stat System Administration Guide Updated - November 2018 Software Version - 6.2.0 Contents
    Quest® Stat® 6.2.0 System Administration Guide © 2018 Quest Software Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide is furnished under a software license or nondisclosure agreement. This software may be used or copied only in accordance with the terms of the applicable agreement. No part of this guide may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording for any purpose other than the purchaser’s personal use without the written permission of Quest Software Inc. The information in this document is provided in connection with Quest Software products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Quest Software products. EXCEPT AS SET FORTH IN THE TERMS AND CONDITIONS AS SPECIFIED IN THE LICENSE AGREEMENT FOR THIS PRODUCT, QUEST SOFTWARE ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL QUEST SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF QUEST SOFTWARE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Quest Software makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and product descriptions at any time without notice.
    [Show full text]
  • Files and Directories Struct Stat File Types
    struct stat { dev_t st_dev; ino_t st_ino; mode_t st_mode; nlink_t st_nlink; Struct stat uid_t st_uid; gid_t st_gid; dev_t st_rdev; off_t st_size; /* SysV/sco doesn't have the rest... But Solaris, eabi does. */ #if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__) Files and Directories time_t st_atime; time_t st_mtime; time_t st_ctime; #else time_t st_atime; Marco Gruteser long st_spare1; time_t st_mtime; Advanced Programming for Linux long st_spare2; time_t st_ctime; long st_spare3; long st_blksize; long st_blocks; long st_spare4[2]; #endif 1 }; 2 Why does the operating system File types (mode) need to distinguish these? • Regular file • Directory file • Character special file (device access, e.g. serial port) • Block special file (device access, e.g., disk) •FIFO (pipe) • Socket (network connection) • Symbolic link (pointer to another file) 3 4 Some operations only valid on File Access control list certain files • No lseek on Fifo or socket • Every file (includes directories, device • No write on directory files) has • Open on symlink requires redirection – owner user and owner group – Permissions (-rwxr-x---) •… 5 6 Process User- and Group-IDs File access checks • Real user ID • Automatically invoked on file open • Real group ID –Uses effective uid/gid • Effective user ID used for file • Manual invocation through access function possible • Effective group ID access checks What for? –Uses real uid/gid • Saved set-user-ID • Saved set-group-ID saved by exec 7 8 File access checks Setuid / setgid • Requires x permission on all
    [Show full text]