Dmdedup: Device Mapper Target for Data Deduplication Appears in the Proceedings of the 2014 Ottawa Linux Symposium (OLS’14)

Total Page:16

File Type:pdf, Size:1020Kb

Dmdedup: Device Mapper Target for Data Deduplication Appears in the Proceedings of the 2014 Ottawa Linux Symposium (OLS’14) Dmdedup: Device Mapper Target for Data Deduplication Appears in the Proceedings of the 2014 Ottawa Linux Symposium (OLS’14) Vasily Tarasov Deepak Jain Geoff Kuenning Stony Brook University & IBM Research Stony Brook University Harvey Mudd College [email protected] [email protected] [email protected] Sonam Mandal Karthikeyani Palanisami Stony Brook University Stony Brook University [email protected] [email protected] Philip Shilane Sagar Trehan Erez Zadok EMC Stony Brook University Stony Brook University [email protected] [email protected] [email protected] Abstract Primary-storage deduplication poses several challenges compared to backup datasets: access locality is less We present Dmdedup, a versatile and practical primary- pronounced; latency constraints are stricter; fewer du- storage deduplication platform suitable for both regular plicates are available (about 2× vs. 10× in backups); users and researchers. Dmdedup operates at the block and the deduplication engine must compete with other layer, so it is usable with existing file systems and appli- processes for CPU and RAM. To facilitate research in cations. Since most deduplication research focuses on primary-storage deduplication, we developed and here metadata management, we designed and implemented present a flexible and fully operational primary-storage a flexible backend API that lets developers easily build deduplication system, Dmdedup, implemented in the and evaluate various metadata management policies. We Linux kernel. In addition to its appealing properties implemented and evaluated three backends: an in-RAM for regular users, it can serve as a basic platform both table, an on-disk table, and an on-disk COW B-tree. We for experimenting with deduplication algorithms and have evaluated Dmdedup under a variety of workloads for studying primary-storage datasets and workloads. and report the evaluation results here. Although it was In earlier studies, investigators had to implement their initially designed for research flexibility, Dmdedup is own deduplication engines from scratch or use a closed- fully functional and can be used in production. Under source enterprise implementation [3, 21, 23]. Dmdedup many real-world workloads, Dmdedup’s throughput ex- is publicly available under the GPL and we submitted ceeds that of a raw block device by 1.5–6×. the code to the Linux community for initial review. Our final goal is the inclusion in the mainline distribution. 1 Introduction Deduplication can be implemented at the file system or block level, among others. Most previous primary- As storage demands continue to grow [2], even continu- storage deduplication systems were implemented in the ing price drops have not reduced total storage costs. Re- file system because file-system-specific knowledge was moving duplicate data (deduplication) helps this prob- available. However, block-level deduplication does not lem by decreasing the amount of physically stored infor- require an elaborate file system overhaul, and allows any mation. Deduplication has often been applied to backup legacy file system (or database) to benefit from dedupli- datasets because they contain many duplicates and rep- cation. Dmdedup is designed as a stackable Linux ker- resent the majority of enterprise data [18, 27]. In recent nel block device that operates at the same layer as soft- years, however, primary datasets have also expanded ware RAID and the Logical Volume Manager (LVM). In substantially [14], and researchers have begun to ex- this paper, we present Dmdedup’s design, demonstrate plore primary storage deduplication [13, 21]. its flexibility, and evaluate its performance, memory us- 1 age, and space savings under various workloads. can be used beneath any block-based file system such as Ext4, GPFS, BTRFS, GlusterFS, etc., allowing re- Most deduplication research focuses on metadata man- searchers to bypass a file system’s limitations and de- agement. Dmdedup has a modular design that allows sign their own block-allocation policies. For that rea- it to use different metadata backends—data structures son, we chose to implement Dmdedup at the block level. for maintaining hash indexes, mappings, and reference Our design means that Dmdedup can also be used with counters. We designed a simple-to-use yet expressive databases that require direct block-device access. API for Dmdedup to interact with the backends. We implemented three backends with different underlying The drawbacks of block-level deduplication are three- data structures: an in-RAM hash table, an on-disk hash fold: (1) it must maintain an extra mapping (beyond the table, and a persistent Copy-on-Write B-tree. In this file system’s map) between logical and physical blocks; paper, we present our experiences and lessons learned (2) useful file-system and application context is lost; while designing a variety of metadata backends, and in- and (3) variable-length chunking is more difficult at clude detailed experimental results. We believe that our the block layer. Dmdedup provides several options for results and open-source deduplication platform can sig- maintaining logical-to-physical mappings. In the future, nificantly advance primary deduplication solutions. we plan to recover some of the lost context using file system and application hints. 2 Design In this section, we classify Dmdedup’s design, discuss Timeliness. Deduplication can be performed in-line the device-mapper framework, and finally present Dmd- with incoming requests or off-line via background edup’s architecture and its metadata backends. scans. In-line deduplication saves bandwidth by avoid- ing repetitive reads and writes on the storage device and 2.1 Classification permits deduplication on a busy system that lacks idle periods. But it risks negatively impacting the perfor- mance of primary workloads. Only a few studies have Levels. Deduplication can be implemented at the ap- addressed this issue [21, 24]. Dmdedup performs inline plication, file system, or block level. Applications can deduplication; we discuss its performance in Section4. use specialized knowledge to optimize deduplication, but modifying every application is impractical. Deduplication in the file system benefits many applica- 2.2 Device Mapper tions. There are three approaches: (1) modifying an ex- isting file system such as Ext3 [15] or WAFL [21]; (2) creating a stackable deduplicating file system either in- The Linux Device Mapper (DM) framework, which has kernel [26] or using FUSE [11,20]; or (3) implementing been part of mainline Linux since 2005, supports stack- a new deduplicating file system from scratch, such as able block devices. To create a new device type, one EMC Data Domain’s file system [27]. Each approach builds a DM target and registers it with the OS. An has drawbacks. The necessary modifications to an ex- administrator can then create corresponding target in- isting file system are substantial and may harm stabil- stances, which appear as regular block devices to the ity and reliability. Developing in-kernel stackable file upper layers (file systems and applications). Targets rest systems is difficult, and FUSE-based systems perform above one or more physical devices (including RAM) poorly [19]. A brand-new file system is attractive but or lower targets. Typical examples include software typically requires massive effort and takes time to reach RAID, the Logical Volume Manager (LVM), and en- the stability that most applications need. Currently, this crypting disks. We chose the DM framework for its per- niche is primarily filled by proprietary products. formance and versatility: standard, familiar tools man- age DM targets. Unlike user-space deduplication solu- Implementing deduplication at the block level is eas- tions [11, 13, 20] DM operates in the kernel, which im- ier because the block interface is simple. Unlike many proves performance yet does not prohibit communica- file-system-specific solutions, block-level deduplication tion with user-space daemons when appropriate [19]. 2 Application tracks the hashes and locations of the chunks; (3) a map- ping between Logical Block Numbers (LBNs) visible to File System upper layers and the Physical Block Numbers (PBNs) Dmdedup Block Device where the data is stored; (4) a space manager that tracks space on the data device, maintains reference counts, al- Deduplication logic locates new blocks, and reclaims unreferenced data; and (5) a chunk store that saves user data to the data device. Hash LBN Space Manager Index Mapping Chunk Store 2.4 Write Request Handling Metadata Device Data Device Figure2 shows how Dmdedup processes write requests. Figure 1: Dmdedup high-level design. 2.3 Dmdedup Components Chunking. The deduplication logic first splits all in- coming requests into aligned, subrequests or chunks with a configurable power-of-two size. Smaller chunks Figure1 depicts Dmdedup’s main components and a allow Dmdedup to detect more duplicates but increase typical setup. Dmdedup is a stackable block device the amount of metadata [14], which can harm perfor- that rests on top of physical devices (e.g., disk drives, mance because of the higher metadata cache-miss rate. RAIDs, SSDs), or stackable ones (e.g., encryption DM However, larger chunks can also hurt performance be- target). This approach provides high configurability, cause they can require read-modify-write operations. To which is useful in both research and production settings. achieve optimal performance, we recommend that Dmd- edup’s chunk size should match the block
Recommended publications
  • Achieving Superior Manageability, Efficiency, and Data Protection With
    An Oracle White Paper December 2010 Achieving Superior Manageability, Efficiency, and Data Protection with Oracle’s Sun ZFS Storage Software Achieving Superior Manageability, Efficiency, and Data Protection with Oracle’s Sun ZFS Storage Software Introduction ......................................................................................... 2 Oracle’s Sun ZFS Storage Software ................................................... 3 Simplifying Storage Deployment and Management ............................ 3 Browser User Interface (BUI) ......................................................... 3 Built-in Networking and Security ..................................................... 4 Transparent Optimization with Hybrid Storage Pools ...................... 4 Shadow Data Migration ................................................................... 5 Third-party Confirmation of Management Efficiency ....................... 6 Improving Performance with Real-time Storage Profiling .................... 7 Increasing Storage Efficiency .............................................................. 8 Data Compression .......................................................................... 8 Data Deduplication .......................................................................... 9 Thin Provisioning ............................................................................ 9 Space-efficient Snapshots and Clones ......................................... 10 Reducing Risk with Industry-leading Data Protection ........................ 10 Self-Healing
    [Show full text]
  • Red Hat Enterprise Linux 7 7.1 Release Notes
    Red Hat Enterprise Linux 7 7.1 Release Notes Release Notes for Red Hat Enterprise Linux 7 Red Hat Customer Content Services Red Hat Enterprise Linux 7 7.1 Release Notes Release Notes for Red Hat Enterprise Linux 7 Red Hat Customer Content Services Legal Notice Copyright © 2015 Red Hat, Inc. This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
    [Show full text]
  • The Linux Kernel Module Programming Guide
    The Linux Kernel Module Programming Guide Peter Jay Salzman Michael Burian Ori Pomerantz Copyright © 2001 Peter Jay Salzman 2007−05−18 ver 2.6.4 The Linux Kernel Module Programming Guide is a free book; you may reproduce and/or modify it under the terms of the Open Software License, version 1.1. You can obtain a copy of this license at http://opensource.org/licenses/osl.php. This book is distributed in the hope it will be useful, but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose. The author encourages wide distribution of this book for personal or commercial use, provided the above copyright notice remains intact and the method adheres to the provisions of the Open Software License. In summary, you may copy and distribute this book free of charge or for a profit. No explicit permission is required from the author for reproduction of this book in any medium, physical or electronic. Derivative works and translations of this document must be placed under the Open Software License, and the original copyright notice must remain intact. If you have contributed new material to this book, you must make the material and source code available for your revisions. Please make revisions and updates available directly to the document maintainer, Peter Jay Salzman <[email protected]>. This will allow for the merging of updates and provide consistent revisions to the Linux community. If you publish or distribute this book commercially, donations, royalties, and/or printed copies are greatly appreciated by the author and the Linux Documentation Project (LDP).
    [Show full text]
  • Linux on the Road
    Linux on the Road Linux with Laptops, Notebooks, PDAs, Mobile Phones and Other Portable Devices Werner Heuser <wehe[AT]tuxmobil.org> Linux Mobile Edition Edition Version 3.22 TuxMobil Berlin Copyright © 2000-2011 Werner Heuser 2011-12-12 Revision History Revision 3.22 2011-12-12 Revised by: wh The address of the opensuse-mobile mailing list has been added, a section power management for graphics cards has been added, a short description of Intel's LinuxPowerTop project has been added, all references to Suspend2 have been changed to TuxOnIce, links to OpenSync and Funambol syncronization packages have been added, some notes about SSDs have been added, many URLs have been checked and some minor improvements have been made. Revision 3.21 2005-11-14 Revised by: wh Some more typos have been fixed. Revision 3.20 2005-11-14 Revised by: wh Some typos have been fixed. Revision 3.19 2005-11-14 Revised by: wh A link to keytouch has been added, minor changes have been made. Revision 3.18 2005-10-10 Revised by: wh Some URLs have been updated, spelling has been corrected, minor changes have been made. Revision 3.17.1 2005-09-28 Revised by: sh A technical and a language review have been performed by Sebastian Henschel. Numerous bugs have been fixed and many URLs have been updated. Revision 3.17 2005-08-28 Revised by: wh Some more tools added to external monitor/projector section, link to Zaurus Development with Damn Small Linux added to cross-compile section, some additions about acoustic management for hard disks added, references to X.org added to X11 sections, link to laptop-mode-tools added, some URLs updated, spelling cleaned, minor changes.
    [Show full text]
  • Dm-X: Protecting Volume-Level Integrity for Cloud Volumes and Local
    dm-x: Protecting Volume-level Integrity for Cloud Volumes and Local Block Devices Anrin Chakraborti Bhushan Jain Jan Kasiak Stony Brook University Stony Brook University & Stony Brook University UNC, Chapel Hill Tao Zhang Donald Porter Radu Sion Stony Brook University & Stony Brook University & Stony Brook University UNC, Chapel Hill UNC, Chapel Hill ABSTRACT on Amazon’s Virtual Private Cloud (VPC) [2] (which provides The verified boot feature in recent Android devices, which strong security guarantees through network isolation) store deploys dm-verity, has been overwhelmingly successful in elim- data on untrusted storage devices residing in the public cloud. inating the extremely popular Android smart phone rooting For example, Amazon VPC file systems, object stores, and movement [25]. Unfortunately, dm-verity integrity guarantees databases reside on virtual block devices in the Amazon are read-only and do not extend to writable volumes. Elastic Block Storage (EBS). This paper introduces a new device mapper, dm-x, that This allows numerous attack vectors for a malicious cloud efficiently (fast) and reliably (metadata journaling) assures provider/untrusted software running on the server. For in- volume-level integrity for entire, writable volumes. In a direct stance, to ensure SEC-mandated assurances of end-to-end disk setup, dm-x overheads are around 6-35% over ext4 on the integrity, banks need to guarantee that the external cloud raw volume while offering additional integrity guarantees. For storage service is unable to remove log entries documenting cloud storage (Amazon EBS), dm-x overheads are negligible. financial transactions. Yet, without integrity of the storage device, a malicious cloud storage service could remove logs of a coordinated attack.
    [Show full text]
  • The Xen Port of Kexec / Kdump a Short Introduction and Status Report
    The Xen Port of Kexec / Kdump A short introduction and status report Magnus Damm Simon Horman VA Linux Systems Japan K.K. www.valinux.co.jp/en/ Xen Summit, September 2006 Magnus Damm ([email protected]) Kexec / Kdump Xen Summit, September 2006 1 / 17 Outline Introduction to Kexec What is Kexec? Kexec Examples Kexec Overview Introduction to Kdump What is Kdump? Kdump Kernels The Crash Utility Xen Porting Effort Kexec under Xen Kdump under Xen The Dumpread Tool Partial Dumps Current Status Magnus Damm ([email protected]) Kexec / Kdump Xen Summit, September 2006 2 / 17 Introduction to Kexec Outline Introduction to Kexec What is Kexec? Kexec Examples Kexec Overview Introduction to Kdump What is Kdump? Kdump Kernels The Crash Utility Xen Porting Effort Kexec under Xen Kdump under Xen The Dumpread Tool Partial Dumps Current Status Magnus Damm ([email protected]) Kexec / Kdump Xen Summit, September 2006 3 / 17 Kexec allows you to reboot from Linux into any kernel. as long as the new kernel doesn’t depend on the BIOS for setup. Introduction to Kexec What is Kexec? What is Kexec? “kexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel. It is like a reboot but it is indepedent of the system firmware...” Configuration help text in Linux-2.6.17 Magnus Damm ([email protected]) Kexec / Kdump Xen Summit, September 2006 4 / 17 . as long as the new kernel doesn’t depend on the BIOS for setup. Introduction to Kexec What is Kexec? What is Kexec? “kexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel.
    [Show full text]
  • Netbackup ™ Enterprise Server and Server 8.0 - 8.X.X OS Software Compatibility List Created on September 08, 2021
    Veritas NetBackup ™ Enterprise Server and Server 8.0 - 8.x.x OS Software Compatibility List Created on September 08, 2021 Click here for the HTML version of this document. <https://download.veritas.com/resources/content/live/OSVC/100046000/100046611/en_US/nbu_80_scl.html> Copyright © 2021 Veritas Technologies LLC. All rights reserved. Veritas, the Veritas Logo, and NetBackup are trademarks or registered trademarks of Veritas Technologies LLC in the U.S. and other countries. Other names may be trademarks of their respective owners. Veritas NetBackup ™ Enterprise Server and Server 8.0 - 8.x.x OS Software Compatibility List 2021-09-08 Introduction This Software Compatibility List (SCL) document contains information for Veritas NetBackup 8.0 through 8.x.x. It covers NetBackup Server (which includes Enterprise Server and Server), Client, Bare Metal Restore (BMR), Clustered Master Server Compatibility and Storage Stacks, Deduplication, File System Compatibility, NetBackup OpsCenter, NetBackup Access Control (NBAC), SAN Media Server/SAN Client/FT Media Server, Virtual System Compatibility and NetBackup Self Service Support. It is divided into bookmarks on the left that can be expanded. IPV6 and Dual Stack environments are supported from NetBackup 8.1.1 onwards with few limitations, refer technote for additional information <http://www.veritas.com/docs/100041420> For information about certain NetBackup features, functionality, 3rd-party product integration, Veritas product integration, applications, databases, and OS platforms that Veritas intends to replace with newer and improved functionality, or in some cases, discontinue without replacement, please see the widget titled "NetBackup Future Platform and Feature Plans" at <https://sort.veritas.com/netbackup> Reference Article <https://www.veritas.com/docs/100040093> for links to all other NetBackup compatibility lists.
    [Show full text]
  • Anatomy of Linux Loadable Kernel Modules a 2.6 Kernel Perspective
    Anatomy of Linux loadable kernel modules A 2.6 kernel perspective Skill Level: Intermediate M. Tim Jones ([email protected]) Consultant Engineer Emulex Corp. 16 Jul 2008 Linux® loadable kernel modules, introduced in version 1.2 of the kernel, are one of the most important innovations in the Linux kernel. They provide a kernel that is both scalable and dynamic. Discover the ideas behind loadable modules, and learn how these independent objects dynamically become part of the Linux kernel. The Linux kernel is what's known as a monolithic kernel, which means that the majority of the operating system functionality is called the kernel and runs in a privileged mode. This differs from a micro-kernel, which runs only basic functionality as the kernel (inter-process communication [IPC], scheduling, basic input/output [I/O], memory management) and pushes other functionality outside the privileged space (drivers, network stack, file systems). You'd think that Linux is then a very static kernel, but in fact it's quite the opposite. Linux can be dynamically altered at run time through the use of Linux kernel modules (LKMs). More in Tim's Anatomy of... series on developerWorks • Anatomy of Linux flash file systems • Anatomy of Security-Enhanced Linux (SELinux) • Anatomy of real-time Linux architectures • Anatomy of the Linux SCSI subsystem • Anatomy of the Linux file system • Anatomy of the Linux networking stack Anatomy of Linux loadable kernel modules © Copyright IBM Corporation 1994, 2008. All rights reserved. Page 1 of 11 developerWorks® ibm.com/developerWorks • Anatomy of the Linux kernel • Anatomy of the Linux slab allocator • Anatomy of Linux synchronization methods • All of Tim's Anatomy of..
    [Show full text]
  • Speeding up Linux Disk Encryption Ignat Korchagin @Ignatkn $ Whoami
    Speeding Up Linux Disk Encryption Ignat Korchagin @ignatkn $ whoami ● Performance and security at Cloudflare ● Passionate about security and crypto ● Enjoy low level programming @ignatkn Encrypting data at rest The storage stack applications @ignatkn The storage stack applications filesystems @ignatkn The storage stack applications filesystems block subsystem @ignatkn The storage stack applications filesystems block subsystem storage hardware @ignatkn Encryption at rest layers applications filesystems block subsystem SED, OPAL storage hardware @ignatkn Encryption at rest layers applications filesystems LUKS/dm-crypt, BitLocker, FileVault block subsystem SED, OPAL storage hardware @ignatkn Encryption at rest layers applications ecryptfs, ext4 encryption or fscrypt filesystems LUKS/dm-crypt, BitLocker, FileVault block subsystem SED, OPAL storage hardware @ignatkn Encryption at rest layers DBMS, PGP, OpenSSL, Themis applications ecryptfs, ext4 encryption or fscrypt filesystems LUKS/dm-crypt, BitLocker, FileVault block subsystem SED, OPAL storage hardware @ignatkn Storage hardware encryption Pros: ● it’s there ● little configuration needed ● fully transparent to applications ● usually faster than other layers @ignatkn Storage hardware encryption Pros: ● it’s there ● little configuration needed ● fully transparent to applications ● usually faster than other layers Cons: ● no visibility into the implementation ● no auditability ● sometimes poor security https://support.microsoft.com/en-us/help/4516071/windows-10-update-kb4516071 @ignatkn Block
    [Show full text]
  • Latency-Aware, Inline Data Deduplication for Primary Storage
    iDedup: Latency-aware, inline data deduplication for primary storage Kiran Srinivasan, Tim Bisson, Garth Goodson, Kaladhar Voruganti NetApp, Inc. fskiran, tbisson, goodson, [email protected] Abstract systems exist that deduplicate inline with client requests for latency sensitive primary workloads. All prior dedu- Deduplication technologies are increasingly being de- plication work focuses on either: i) throughput sensitive ployed to reduce cost and increase space-efficiency in archival and backup systems [8, 9, 15, 21, 26, 39, 41]; corporate data centers. However, prior research has not or ii) latency sensitive primary systems that deduplicate applied deduplication techniques inline to the request data offline during idle time [1, 11, 16]; or iii) file sys- path for latency sensitive, primary workloads. This is tems with inline deduplication, but agnostic to perfor- primarily due to the extra latency these techniques intro- mance [3, 36]. This paper introduces two novel insights duce. Inherently, deduplicating data on disk causes frag- that enable latency-aware, inline, primary deduplication. mentation that increases seeks for subsequent sequential Many primary storage workloads (e.g., email, user di- reads of the same data, thus, increasing latency. In addi- rectories, databases) are currently unable to leverage the tion, deduplicating data requires extra disk IOs to access benefits of deduplication, due to the associated latency on-disk deduplication metadata. In this paper, we pro- costs. Since offline deduplication systems impact la-
    [Show full text]
  • Kdump, a Kexec-Based Kernel Crash Dumping Mechanism
    Kdump, A Kexec-based Kernel Crash Dumping Mechanism Vivek Goyal Eric W. Biederman Hariprasad Nellitheertha IBM Linux NetworkX IBM [email protected] [email protected] [email protected] Abstract important consideration for the success of a so- lution has been the reliability and ease of use. Kdump is a crash dumping solution that pro- Kdump is a kexec based kernel crash dump- vides a very reliable dump generation and cap- ing mechanism, which is being perceived as turing mechanism [01]. It is simple, easy to a reliable crash dumping solution for Linux R . configure and provides a great deal of flexibility This paper begins with brief description of what in terms of dump device selection, dump saving kexec is and what it can do in general case, and mechanism, and plugging-in filtering mecha- then details how kexec has been modified to nism. boot a new kernel even in a system crash event. The idea of kdump has been around for Kexec enables booting into a new kernel while quite some time now, and initial patches for preserving the memory contents in a crash sce- kdump implementation were posted to the nario, and kdump uses this feature to capture Linux kernel mailing list last year [03]. Since the kernel crash dump. Physical memory lay- then, kdump has undergone significant design out and processor state are encoded in ELF core changes to ensure improved reliability, en- format, and these headers are stored in a re- hanced ease of use and cleaner interfaces. This served section of memory. Upon a crash, new paper starts with an overview of the kdump de- kernel boots up from reserved memory and pro- sign and development history.
    [Show full text]
  • Communicating Between the Kernel and User-Space in Linux Using Netlink Sockets
    SOFTWARE—PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2010; 00:1–7 Prepared using speauth.cls [Version: 2002/09/23 v2.2] Communicating between the kernel and user-space in Linux using Netlink sockets Pablo Neira Ayuso∗,∗1, Rafael M. Gasca1 and Laurent Lefevre2 1 QUIVIR Research Group, Departament of Computer Languages and Systems, University of Seville, Spain. 2 RESO/LIP team, INRIA, University of Lyon, France. SUMMARY When developing Linux kernel features, it is a good practise to expose the necessary details to user-space to enable extensibility. This allows the development of new features and sophisticated configurations from user-space. Commonly, software developers have to face the task of looking for a good way to communicate between kernel and user-space in Linux. This tutorial introduces you to Netlink sockets, a flexible and extensible messaging system that provides communication between kernel and user-space. In this tutorial, we provide fundamental guidelines for practitioners who wish to develop Netlink-based interfaces. key words: kernel interfaces, netlink, linux 1. INTRODUCTION Portable open-source operating systems like Linux [1] provide a good environment to develop applications for the real-world since they can be used in very different platforms: from very small embedded devices, like smartphones and PDAs, to standalone computers and large scale clusters. Moreover, the availability of the source code also allows its study and modification, this renders Linux useful for both the industry and the academia. The core of Linux, like many modern operating systems, follows a monolithic † design for performance reasons. The main bricks that compose the operating system are implemented ∗Correspondence to: Pablo Neira Ayuso, ETS Ingenieria Informatica, Department of Computer Languages and Systems.
    [Show full text]