From 5706601e64d1b010828c5673b3bc7a44819372b3 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Mon, 21 Mar 2016 06:51:34 +0100 Subject: SEEK-support: move to "done for 3.8" Fixing a typo and added a link to the merged patches for completeness. Change-Id: Iae0155d23f8c16d6923be619bffa4da27dccc22e Signed-off-by: Niels de Vos Reviewed-on: http://review.gluster.org/13792 Reviewed-by: Kaleb KEITHLEY Tested-by: Kaleb KEITHLEY --- accepted/SEEK-support.md | 128 ------------------------------------ done/GlusterFS 3.8/SEEK-support.md | 129 +++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+), 128 deletions(-) delete mode 100644 accepted/SEEK-support.md create mode 100644 done/GlusterFS 3.8/SEEK-support.md diff --git a/accepted/SEEK-support.md b/accepted/SEEK-support.md deleted file mode 100644 index 44599c3..0000000 --- a/accepted/SEEK-support.md +++ /dev/null @@ -1,128 +0,0 @@ -# SEEK support to improve handling of sparse files - -## Summary -All modern file systems support `SEEK_DATA` and `SEEK_HOLE` with the `lseek()` -systemcall. This functionality makes it possible to detect holes in files, so -that copies and backups of sparse files do not get the 'holes' allocated with -zero-bytes. Supporting the detection of holes in files reduces the needed -storage and network overhead when copies are made. - - -## Owners -[Niels de Vos](mailto:ndevos@redhat.com) - -## Current status -Implemented. Only support for sharding ([bug 1301647] -(https://bugzilla.redhat.com/1301647)) and stripe (support not planned) are -missing. - - -## Related Feature Requests and Bugs - -* [Feature request](https://bugzilla.redhat.com/show_bug.cgi?id=1220173) - - -## Detailed Description - -The Gluster protocol does not pass requests for `lseek()` over the network to -the bricks (position in the file descriptor is maintained client-side). In -order to detect holes in a (sparse) file, a `SEEK` request that handles -`SEEK_DATA` and `SEEK_HOLE` needs to be handled by the filesystem on the -brick(s). - - -## Benefit to GlusterFS - -Sparse files are commonly used in environments with virtual machines. Improving -the support for sparse files helps users to reduce the storage needed for -backups and clones of VMs. In addition to that, creating a backup of a VM will -become faster, because there is no need to transport the (zere filled) 'holes' -over the network anymore. - - -## Scope - -#### Nature of proposed change - -A new File Operation (FOP) called `seek` will be introduced. The FOP will only -need to handle the `SEEK_DATA` and `SEEK_HOLE` arguments. There is no need to -handle the older `SEEK_CUR`, `SEEK_SET` and `SEEK_END` arguments because the -position in the file-descriptor is only kept client-side. - -QEMU is one of the main applications that will benefit from `SEEK_DATA` and -`SEEK_HOLE`. Patches for the Gluster block-driver in QEMU will be provided. - -NFS-Ganesha already supports the NFSv4.2 `SEEK` procedure, `FSAL_GLUSTER` can -get extended to call `glfs_lseek()`. - -Samba might benefit from `SEEK_DATA` and `SEEK_HOLE` as well. - - -#### Implications on manageability - -No changes. - - -#### Implications on presentation layer - -`glfs_lseek()` already exists and needs to get extended to call the new FOP. - -The Linux FUSE kernel module does not pass `lseek()` on to the filesystem -implementation. This will need to be added to the Linux kernel. - -Because this adds a new network procedure in the GlusterFS protocol, the -dissector that is part of Wireshark will need to be extended. - - -#### Implications on persistence layer - -None. - - -#### Implications on 'GlusterFS' backend - -None. - - -#### Modification to GlusterFS metadata - -None. - - -#### Implications on 'glusterd' - -None. - - -## How To Test - -Create a file with holes, use `glfs_lseek()` to detect them. Once FUSE in the -kernel support is available, `lseek()` with `SEEK_DATA` and `SEEK_HOLE` may be -used as well. - - -## User Experience - -Improved speed in backing up sparse files from a Gluster Volume. - - -## Dependencies - -None. - - -## Documentation - -Not user visible. Might want to add notes to the administrators guide for -requirements on applications that use `lseek()` for detecting holes and the -kernel version that adds support in the FUSE module. - - -## Comments and Discussion - -* Initial [report on the Gluster mailinglist] - (http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10884) -* Notification of [first patches on the mailinglist] - (http://thread.gmane.org/gmane.comp.file-systems.gluster.maintainers/326) -* [Status update] - (http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/14502) diff --git a/done/GlusterFS 3.8/SEEK-support.md b/done/GlusterFS 3.8/SEEK-support.md new file mode 100644 index 0000000..9192211 --- /dev/null +++ b/done/GlusterFS 3.8/SEEK-support.md @@ -0,0 +1,129 @@ +# SEEK support to improve handling of sparse files + +## Summary +All modern file systems support `SEEK_DATA` and `SEEK_HOLE` with the `lseek()` +systemcall. This functionality makes it possible to detect holes in files, so +that copies and backups of sparse files do not get the 'holes' allocated with +zero-bytes. Supporting the detection of holes in files reduces the needed +storage and network overhead when copies are made. + + +## Owners +[Niels de Vos](mailto:ndevos@redhat.com) + +## Current status +Implemented, all [relevant patches have been +merged](http://review.gluster.org/#/q/status:merged+project:glusterfs+branch:master+topic:bug-1220173). +Only support for sharding ([bug 1301647] (https://bugzilla.redhat.com/1301647)) +and stripe (support not planned) are missing. + + +## Related Feature Requests and Bugs + +* [Feature request](https://bugzilla.redhat.com/show_bug.cgi?id=1220173) + + +## Detailed Description + +The Gluster protocol does not pass requests for `lseek()` over the network to +the bricks (position in the file descriptor is maintained client-side). In +order to detect holes in a (sparse) file, a `SEEK` request that handles +`SEEK_DATA` and `SEEK_HOLE` needs to be handled by the filesystem on the +brick(s). + + +## Benefit to GlusterFS + +Sparse files are commonly used in environments with virtual machines. Improving +the support for sparse files helps users to reduce the storage needed for +backups and clones of VMs. In addition to that, creating a backup of a VM will +become faster, because there is no need to transport the (zero filled) 'holes' +over the network anymore. + + +## Scope + +#### Nature of proposed change + +A new File Operation (FOP) called `seek` will be introduced. The FOP will only +need to handle the `SEEK_DATA` and `SEEK_HOLE` arguments. There is no need to +handle the older `SEEK_CUR`, `SEEK_SET` and `SEEK_END` arguments because the +position in the file-descriptor is only kept client-side. + +QEMU is one of the main applications that will benefit from `SEEK_DATA` and +`SEEK_HOLE`. Patches for the Gluster block-driver in QEMU will be provided. + +NFS-Ganesha already supports the NFSv4.2 `SEEK` procedure, `FSAL_GLUSTER` can +get extended to call `glfs_lseek()`. + +Samba might benefit from `SEEK_DATA` and `SEEK_HOLE` as well. + + +#### Implications on manageability + +No changes. + + +#### Implications on presentation layer + +`glfs_lseek()` already exists and needs to get extended to call the new FOP. + +The Linux FUSE kernel module does not pass `lseek()` on to the filesystem +implementation. This will need to be added to the Linux kernel. + +Because this adds a new network procedure in the GlusterFS protocol, the +dissector that is part of Wireshark will need to be extended. + + +#### Implications on persistence layer + +None. + + +#### Implications on 'GlusterFS' backend + +None. + + +#### Modification to GlusterFS metadata + +None. + + +#### Implications on 'glusterd' + +None. + + +## How To Test + +Create a file with holes, use `glfs_lseek()` to detect them. Once FUSE in the +kernel support is available, `lseek()` with `SEEK_DATA` and `SEEK_HOLE` may be +used as well. + + +## User Experience + +Improved speed in backing up sparse files from a Gluster Volume. + + +## Dependencies + +None. + + +## Documentation + +Not user visible. Might want to add notes to the administrators guide for +requirements on applications that use `lseek()` for detecting holes and the +kernel version that adds support in the FUSE module. + + +## Comments and Discussion + +* Initial [report on the Gluster mailinglist] + (http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10884) +* Notification of [first patches on the mailinglist] + (http://thread.gmane.org/gmane.comp.file-systems.gluster.maintainers/326) +* [Status update] + (http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/14502) -- cgit