New release: stratisd 1.0.1
by Andy Grover
Hi all,
stratisd 1.0.1 is a bugfix release. The one user-visible change is that
the directory that Stratis places symlinks to filesystems has changed
from /dev/stratis to /stratis. This lets Stratis work better in
conjunction with systemd, and also happens to be similar to ZFS's behavior.
Along with that, a number of critical bugs were fixed:
* creating a snapshot with "stratis filesystem snapshot" fails with
"xfs_db: command not found" due to PATH issue (#1251)
* Adding a device to a full pool does not allow a user to immediately
create new FS (#1234)
* Limit what we allow in pool names & filesystem names (#1263)
* creating snapshot does not check for name conflict (#1289)
* stratisd fails when cache grows to ~40TiB (#1292)
* Corrupt fs after tying to rsync some 90G on a 150G single fs pool (#1242)
* Running out of space during FS creation results in bad state as dm
table is left behind (#1254)
These changes should mean that Stratis is no longer *guaranteed* to eat
your data. :-) Please give it a spin. Shortlog follows.
Thanks -- Regards -- Andy
stratisd 1.0.1:
Andy Grover <agrover(a)redhat.com> (9):
add rpm specfile for automated copr builds
fix copr specfile
fix copr specfile 2
fix copr specfile 3
docs/RELNOTES-0.5.md moved to docs repo
Try using BufWriter to speed up some tests
README: Tell people how to get the correct rustfmt version
Fix clippy
Call udev_settle() after failed fs create
Todd Gill <tgill(a)redhat.com> (7):
Add validation of stratis pool and filesystem names
Add unit test for validate_name()
Increase the FILESYSTEM_LOWATER to 4x the DATA_LOWATER
Increase the default DATA_EXPAND_SIZE to max(8 GiB,
current_dirty_mem)
Increase the DATA_LOWATER to 2 GiB
Increase META_LOWATER_FALLBACK to MetaBlocks(1024)
Update test_thinpool_expand to handle DATA_LOWATER >
INITIAL_DATA_SIZE
Tony Asleson <tasleson(a)redhat.com> (6):
We are @ major ver. 1
Change symlink directory
Correct release version & link
Use more specific assert
tests/client-dbus: Add test for Snapshot name
Ensure snapshot name does not exist
mulhern <amulhern(a)redhat.com> (19):
Really run clippy
Fix two clippy lints
Fix some deeper clippy errors
Avoid overlapping ranges
Omit redundant nested if in stratisd.rs
Omit redundant field names
Don't match events by reference
Omit some matches by reference
Wipe only the first 4K of each metadata device
Invoke xfs_db directly
Use "-x", expert flag
Call thin pool's check method after adding data devs
Eliminate Backstore::add_blockdevs
Do not remove pool from engine if it can't be destroyed
Temporarily allow a Travis failure
Revert "Temporarily allow a Travis failure"
Destrengthen existence check
Do not compare fs_objects against "/"
Make a method to remove specified blockdevs
4 years, 10 months
Basic questions
by Matthew Miller
I'm about to buy a new desktop PC. (I want a system with AMD open source
graphics.) Because, hey, big case, I've got the ability to put in multiple
disks. Soooo, I was thinking maybe I'd play with stratis, because dogfood
and all that. This leads me to some naive questions:
* Can I boot to stratis? That is, / on stratis? Or do I need a basic system
and then use stratis for data volumes like /home, /srv?
* I see the new version allow a cache disk. Is two mirrored spinning rust
disks and a SSD cache a reasonable setup for general use?
I guess even if the answer to the first question is "no", I could, say, use
20GB of an SSD for / and /usr and make the rest a stratis cache?
--
Matthew Miller
<mattdm(a)fedoraproject.org>
Fedora Project Leader
4 years, 11 months
Stratis 1.0 released
by Andy Grover
Hi all,
I'm pleased to announce the release of stratisd and stratis-cli 1.0.0.
This version indicates on-disk metadata and command-line interface
stabilization, and an indicator that Stratis is ready for a wider scope
of evaluation and testing.
The shortlong is below, showing a significant shunk of work from the
entire core team -- Todd, Mulhern, Tony, thanks for pulling so hard to
get the last minute issues resolved!
The official release notes are here:
https://stratis-storage.github.io/relnotes/relnotes-1.0.html
Stratis 1.0 will be available soon for Fedora, and we invite you to kick
the tires and tell us what you think. I'd still exercise restraint when
putting irreplaceable data on it just yet.
Now would also be a great time for other distros to consider packaging
Stratis. Of course, it depends on Python 3 and Rust support, but if
those are available then packaging should be doable. Please feel free to
get in touch offline if there's anything I can do to make packaging easier.
stratisd 1.0.0:
Andy Grover <agrover(a)redhat.com> (18):
Use thindev status for Filesystem::used()
Use dm-rs 0.25.0
Rewrite destroy_filesystem to fail properly if fs is mounted
Do not abort setting up filesystems if one fails
Add TODO around fs duplicate id/uuid handling
Set throttling in all directories under /sys/fs/cgroup/blkio
Rename *current_capacity() to size()
Replace "capacity" in method names with "size" and "allocated"
Remove backstore.available() in favor of .available_in_{cap,
backstore}()
Change Blockdev::total_size() to ::size()
Update README.md with alternatives to using GitHub
Destroy thindev if create_fs() fails
Add versions to Sigblock, metadata header, and metadata
Map Engine errors to DbusErrorEnum::ERROR instead of INTERNAL_ERROR
Remove DbusErrorEnum::NIX_ERROR
Remove DbusErrorEnum::IO_ERROR
version 1.0.0
Update data.py for new supported signals
Todd Gill <tgill(a)redhat.com> (8):
Fix spelling of specified
Remove FilesystemUsedChanged event
Export the pool state as a dbus property
Send PoolStateChanged event to listeners on state change
Extend PoolState to track the DM state of a pool
Add PoolExtendState to Pool for tracking the extention of
meta/data devs
Add PoolExtendStateChanged to dbus
Publish pool FreeSpaceState changes on dbus
Tony Asleson <tasleson(a)redhat.com> (11):
Ignore incomplete udev entries during enumeration
device_as_map: Remove expect(s)
Bug fix: correct is_stratis_device
find_all: Remove redundant check if Stratis device
Remove warn! for pool already known
devlinks: Do not return results
devlinks: Add setup_pool_devlinks function
Setup symbolic links on event driven pool bringup
remove 'force' flag
Remove 'force' from dbus client tests
Make test/README.md a link
mulhern <amulhern(a)redhat.com> (10):
Refactor calc_lowater to avoid unnecessary duplication
Factor out a value that is used in two subsequent expressions
Remove a FIXME
Add a method to get a StratBlockDev from a StratPool
Unpublicize a few things that shouldn't be publicized
Update to devicemapper-rs v0.26.0
Use display rather than description for DmError::Core errors
Change specification of variable length metadata
Check value of DM_MULTIPATH_DEVICE_PATH
When setting up the data tier use a reasonable size
stratis-cli 1.0.0:
Andy Grover <agrover(a)redhat.com> (2):
Update _data.py for API changes
version 1.0.0
Tony Asleson <tasleson(a)redhat.com> (4):
Move add-data & add-cache from blockdev -> pool
Update man page: add-data & add-cache move
Update tests: add-data & add-cache move
Remove 'force' option
mulhern <amulhern(a)redhat.com> (2):
Expand an error diagnosis to include the wider range of possibilities
Update StratisdErrors enum for stratisd changes
devicemapper 0.25.0 and 0.26.0:
Andy Grover <agrover(a)redhat.com> (3):
Change teardown methods to take &mut self
version 0.25.0
version 0.26.0
mulhern <amulhern(a)redhat.com> (1):
Use primitive type-based chaining mechanism
4 years, 11 months