Challenges Implementing a Generic Backup-Restore API for Linux Matthias G. Eckermann Senior Product Manager mge@suse.com Vault, Boston, March 2015 2015-03-12 13:45 UTC
Picture: "Escribano" by Jean Le Tavernier [1]. Licensed under Public Domain via Wikimedia Commons 3 http://commons.wikimedia.org/wiki/file:escribano.jpg#/media/file:escribano.jpg
Agenda Traditional Backup/Restore approaches Challenges of the traditional approach Unused capabilities in Linux Missing Features in Linux Requirements to a Generic Backup-Restore API Proposal 4
Traditional Backup/Restore approaches
Challenges Implementing a Generic Backup-Restore API for Linux Traditional Approaches Physical Layer Block Level incl. Device Mapper Filesystem Application 6
Challenges of the traditional approach
Challenges Implementing a Generic Backup-Restore API for Linux Challenges Re-Invention of the wheel Missing efficiency Slow adaption to new development Unexpected behaviour 8
Unused capabilities in Linux
Challenges Implementing a Generic Backup-Restore API for Linux xfs Backup / Restore xfsdump/xfsrestore/xfsinvutil xfs_freeze Clone (with/without new UUID) xfs_copy xfs_freeze 10
Challenges Implementing a Generic Backup-Restore API for Linux ocfs2 11 RefLinks (CoW)
Challenges Implementing a Generic Backup-Restore API for Linux device mapper Snapshots Deduplication 12
Challenges Implementing a Generic Backup-Restore API for Linux ceph Snapshots RBD Level Layering Diff Incremental Snapshots Can be used for Backup/Restore 13
Challenges Implementing a Generic Backup-Restore API for Linux btrfs CoW everywhere RefLinks Deduplication Snapshots Send/Receive Diff 14 Implemented as Send without sending the data
Missing Features in Linux
Challenges Implementing a Generic Backup-Restore API for Linux Missing Features in Linux Local Generic Freeze/Unfreeze for filesystems Synchronized Checkpoint/Restart for applications cgroups? systemd? Distributed Multi system freeze Distributed Snapshots 16
Requirements to a Generic BackupRestore API
Challenges Implementing a Generic Backup-Restore API for Linux Requirements List = Diff (no data) Resume of a diff Sizing information Export (data) partial full clone Restore full incremental with/without history with/without deduplication 18
Challenges Implementing a Generic Backup-Restore API for Linux Requirements (2) Enforce consistency Freeze/Unfreeze incl. application notification 19 Information / Capabilities
Proposal
Challenges Implementing a Generic Backup-Restore API for Linux The Backup Bus Or Why not a library or just sysfs? Self inspection easy to extend Integrates with other approaches using a bus systemd snapper Option, to transfer messages across machines Easy to plug in for 3rd parties 21
MgE 2006 22
Your comments!? Thank you. 23
24 Corporate Headquarters +49 911 740 53 0 (Worldwide) Join us on: Maxfeldstrasse 5 90409 Nuremberg Germany www.suse.com www.opensuse.org
Unpublished Work of SUSE. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.