Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer...
Transcript of Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer...
![Page 2: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/2.jpg)
2
Overview
• Btrfs
• Snapper
• Samba Enhancements‒ Transparent Compression
‒ Server-Side Copy
‒ Snapshots
‒ Previous File Versions
‒ Remote Share Snapshots
![Page 3: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/3.jpg)
Btrfs and Snapper
![Page 4: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/4.jpg)
4
Btrfs
• Next generation filesystem for Linux
• Resilient‒ Checksumming of data and meta-data
• Integrated redundancy‒ Multi-device support (mirrors and stripes)
• Snapshots‒ File range (clone) or subvolume granularity
• Transparent compression
• De-duplication
![Page 5: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/5.jpg)
5
Snapper
• Separate utility for managing Btrfs snapshots‒ Timeline, application or user initiated
‒ Stores associated metadata
• Compare and revert changes
• Authorization
• D-Bus interface
![Page 6: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/6.jpg)
Samba Enhancements
![Page 7: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/7.jpg)
7
SambaBtrfs Integration
• SMB protocol can expose Btrfs features to clients‒ Compression
‒ FSCTL_SET_COMPRESSION and FSCTL_GET_COMPRESSION
‒ Server-Side Copies
‒ FSCTL_SRV_COPYCHUNK and FSCTL_SRV_COPYCHUNK_WRITE
‒ Snapshots
‒ Previous File Versions
‒ File Server Remote VSS Protocol (FSRVP)
• Windows Explorer can expose these features to users
![Page 8: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/8.jpg)
8
CompressionSamba + Btrfs
• User flags compression at a file or directory level‒ Files inherit compression flags from parent directory
![Page 9: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/9.jpg)
9
CompressionSamba + Btrfs
• FSCTL_SET_COMPRESSION sent over the wire‒ Samba's btrfs VFS module translates request into
FS_IOC_SETFLAGS ioctl
‒ Same for FSCTL_GET_COMPRESSION and FS_IOC_GETFLAGS respectively
• Btrfs compresses and uncompresses data during IO
![Page 10: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/10.jpg)
10
Server-Side CopySamba + Btrfs
• FSCTL_SRV_COPYCHUNK sent over the wire‒ Avoids network round-trip of file data done
by a traditional copy
• Samba's btrfs VFS module translates the request into a BTRFS_IOC_CLONE_RANGE ioctl‒ Avoids disk round trip of file data
‒ No duplication of file data on disk
![Page 11: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/11.jpg)
11
Server-Side CopySamba + Btrfs
• Dependent on client support‒ Windows Explorer in Windows 8 and Windows Server 2012
‒ Robocopy in Windows 7 and Windows Server 2008
‒ Linux Kernel CIFS client 3.13.0+
‒ Via CIFS_IOCTL_COPYCHUNK
• Constrained by ioctl requirements‒ Btrfs block-size alignment
‒ Performs local copy on fallback
‒ Network round-trip still avoided
‒ Copy-chunk requests only issued within a single share
![Page 12: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/12.jpg)
12
Previous File VersionsSamba + Snapper + Btrfs
• Allow users to view and restore files from snapshots‒ Windows Explorer associates existing paths with matching
snapshot paths as Previous Versions
‒ Only displays versions with unique modification times
• Samba / Snapper configuration‒ Snapper to take periodic snapshots of share path
‒ snapper Samba VFS module enabled for share
‒ Communicates with Snapper daemon via D-Bus
‒ Users permitted snapshot list and folder traversal permission
![Page 13: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/13.jpg)
13
Previous File VersionsSamba + Snapper + Btrfs
• Expose snapshots via SMB‒ Client enumeration via
FSCTL_SRV_ENUM_SNAPS
• Intercept paths that correspond to snapshots‒ CIFS @GMT path token
‒ SMB2 timewarp (TWrp) create tag
![Page 14: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/14.jpg)
14
Remote SnapshotsSamba + Snapper + Btrfs
• Allow users to remotely manipulate share snapshots‒ Using the File Server Remote VSS Protocol (FSRVP)
‒ Introduced by Molly Brown at SDC 2011
‒ Create, delete and expose share snapshots
Samba FSRVPServer
Snapper& Btrfs
![Page 15: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/15.jpg)
15
Remote SnapshotsSamba + Snapper + Btrfs
• Samba / Snapper configuration‒ Samba's snapper VFS module and FSRVP server enabled
‒ Registry shares enabled
‒ Users granted appropriate permissions
‒ Snapper (ALLOW_USERS) and Samba (Administrator or backup operator)
• Clients‒ Remote backup applications
‒ Samba rpcclient
‒ Windows Diskshadow.exe
‒ Microsoft System Center Data Protection Manager
![Page 16: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/16.jpg)
![Page 17: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/17.jpg)
17
Integration Testing
• Part of Samba's continuous integration test suite‒ Analyse underlying filesystem
‒ Enable btrfs VFS module
‒ Run server-side copy and compression with and without module
• Fake snapshots for previous file versions and FSRVP‒ Simply copy share contents into created snapshot
‒ Enumerate
‒ Test all FSRVP operations against Samba server
![Page 18: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/18.jpg)
Thank you.
18
More information:www.samba.org
![Page 19: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/19.jpg)
![Page 20: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/20.jpg)
20
Title of No-Logo Slide Here (32pt)
• First-level bullet (24pt)‒ Second-level bullet (20 pt)
‒ Third-level bullet (16pt)
‒ Fourth-level bullet (14pt)
![Page 21: Samba and Btrfs - SNIA · PDF fileSamba and Btrfs A Snapshot of ... ‒ Windows Explorer associates existing paths with matching snapshot paths as Previous Versions ... • Expose](https://reader030.fdocuments.in/reader030/viewer/2022011723/5a7e91327f8b9a0a668ee0b3/html5/thumbnails/21.jpg)
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 DisclaimerThis 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.