Shrinking Support
From XFS.org
(Difference between revisions)
(remove dup bullet point) |
m (→Available pieces) |
||
| (One intermediate revision by one user not shown) | |||
| Line 1: | Line 1: | ||
Currently XFS Filesystems can't be shrunk. | Currently XFS Filesystems can't be shrunk. | ||
| − | To | + | To support shrinking XFS filesystems a few things needs to be implemented, based on a list by Dave Chinner [http://marc.info/?l=linux-xfs&m=118091640624488&w=2]: |
* A way to check space is available for shrink | * A way to check space is available for shrink | ||
| Line 15: | Line 15: | ||
* A transaction to shrink the filesystem. | * A transaction to shrink the filesystem. | ||
| − | At that point, we'll | + | At that point, we'll have a "working" shrink that will allow |
| − | shrinking to only 50% of the original size because the log will | + | shrinking to only 50% of the original size because the log |
| − | get in the way. To fix that, we'll need to implement transactions | + | (in the middle of the filesystem) will |
| + | get in the way. To fix that, we'll need to implement transactions | ||
to move the log... | to move the log... | ||
| Line 23: | Line 24: | ||
== Available pieces == | == Available pieces == | ||
| − | * A script from Ruben Porras to check if enough free space is available to support shrinking | + | * A script from Ruben Porras to check if enough free space is available to support shrinking [http://marc.info/?l=linux-xfs&m=118581682117599&w=2] |
* A patch from Ruben Porras to allow / disallow allocation from an allocation group [http://marc.info/?l=linux-xfs&m=118302806818420&w=2] plus userspace support for setting / clearing it [http://marc.info/?l=linux-xfs&m=118881137031101&w=2] | * A patch from Ruben Porras to allow / disallow allocation from an allocation group [http://marc.info/?l=linux-xfs&m=118302806818420&w=2] plus userspace support for setting / clearing it [http://marc.info/?l=linux-xfs&m=118881137031101&w=2] | ||
Latest revision as of 21:19, 21 December 2008
Currently XFS Filesystems can't be shrunk.
To support shrinking XFS filesystems a few things needs to be implemented, based on a list by Dave Chinner [1]:
- A way to check space is available for shrink
- An ioctl or similar interface to prevent new allocations from a given allocation group.
- A variant of the xfs_reno tool to support moving inodes out of filesystem areas that go away.
- A variant of the xfs_fsr tool to support moving data out of the filesystem areas that go away.
- Some way to move out orphan metadata out of the AGs truncated off
- A transaction to shrink the filesystem.
At that point, we'll have a "working" shrink that will allow shrinking to only 50% of the original size because the log (in the middle of the filesystem) will get in the way. To fix that, we'll need to implement transactions to move the log...
[edit] Available pieces
- A script from Ruben Porras to check if enough free space is available to support shrinking [2]
- A patch from Ruben Porras to allow / disallow allocation from an allocation group [3] plus userspace support for setting / clearing it [4]
- The xfs_fsr tool in xfsprogs
- The xfs_reno too, see Unfinished_work#The_xfs_reno_tool