Uploaded August 2018 | Updated September 2026, 1 hour ago
One of the original goals of ZFS was to “end the suffering” of system administrators, by making storage easier to manage. A big part of that is reducing the restrictions on how ZFS can be configured, thus reducing the need for advance planning and investment. This talk covers two new features that further this goal: Device Removal and RAID-Z Expansion. In this talk, you'll learn how these features work under the hood, as well as how to best take advantage of them.
Device Removal decreases the total amount of usable space in the pool, allowing disks to be removed from the system. As part of the removal process, allocated space on the device is copied to the remaining disks in the pool. There are two primary use cases for this:
A mistake was made when adding a device to the pool. E.g. the wrong device was added, or it was added as the wrong type.
Storage migration. E.g. moving the pool from six 4TB drives to four 10TB drives.
Device Removal is available in FreeBSD CURRENT.
RAID-Z expansion — adding a single disk to an existing RAID-Z group — is perhaps the most-requested OpenZFS feature ever. This feature will make it easy to add small amounts of storage incrementally to modest-sized pools. System administrators will no longer be trapped by their past decisions of RAID-Z group size, forced to continue with a suboptimal RAID-Z stripe size, or rebuild their pool from scratch.
This talk will explore the design trade-offs of RAID-Z Expansion, as well as some implementation details. To give an example: all the data needs to be read and rewritten in the new layout. If there is a disk failure while this is in progress, we must ensure that we can still reconstruct the data, which means that the sectors of each logical stripe must all be on different disks. But with RAID-Z’s variable stripe with, this is nontrivial to ensure, because we don’t know where each logical stripe starts and ends, without an expensive scan of all the pool’s metadata to find every block pointer.
RAID-Z Expansion is coming to OpenZFS and FreeBSD, made possible by a partnership between the FreeBSD Foundation, iXsystems, and Delphix.
bsdcan.org/2018/schedule/events/960.en.html
One of the original goals of ZFS was to “end the suffering” of system administrators, by making storage easier to manage. A big part of that is reducing the restrictions on how ZFS can be configured, thus reducing the need for advance planning and investment. This talk covers two new features that further this goal: Device Removal and RAID-Z Expansion. In this talk, you'll learn how these features work under the hood, as well as how to best take advantage of them.
Device Removal decreases the total amount of usable space in the pool, allowing disks to be removed from the system. As part of the removal process, allocated space on the device is copied to the remaining disks in the pool. There are two primary use cases for this:
A mistake was made when adding a device to the pool. E.g. the wrong device was added, or it was added as the wrong type.
Storage migration. E.g. moving the pool from six 4TB drives to four 10TB drives.
Device Removal is available in FreeBSD CURRENT.
RAID-Z expansion — adding a single disk to an existing RAID-Z group — is perhaps the most-requested OpenZFS feature ever. This feature will make it easy to add small amounts of storage incrementally to modest-sized pools. System administrators will no longer be trapped by their past decisions of RAID-Z group size, forced to continue with a suboptimal RAID-Z stripe size, or rebuild their pool from scratch.
This talk will explore the design trade-offs of RAID-Z Expansion, as well as some implementation details. To give an example: all the data needs to be read and rewritten in the new layout. If there is a disk failure while this is in progress, we must ensure that we can still reconstruct the data, which means that the sectors of each logical stripe must all be on different disks. But with RAID-Z’s variable stripe with, this is nontrivial to ensure, because we don’t know where each logical stripe starts and ends, without an expensive scan of all the pool’s metadata to find every block pointer.
RAID-Z Expansion is coming to OpenZFS and FreeBSD, made possible by a partnership between the FreeBSD Foundation, iXsystems, and Delphix.
bsdcan.org/2018/schedule/events/960.en.html





![LLDB FreeBSD Kernel Module Improvement By: ShengYi Hung
This talk introduces the low level debugger (LLDB) kernel module debug facility for the FreeBSD kernel. The current functional status of LLDB within the FreeBSD kernel is attributed to contributions from [1] and the collaborative efforts of the community. Key functionalities include core dump parsing and memory context building for the coredump, specifically integrated into the process plugin within LLDB for the FreeBSD kernel.
This enhancement equips LLDB for effective post-mortem debugging on the FreeBSD kernel. While the implementation of the process plugin has been successfully completed, the paper emphasizes the imperative need to implement the DynamicLoader plugin for the kernel loader.
This plugin plays a critical role in loading the symbol file of the kernel module, ensuring comprehensive parsing of symbols for loadable kernel modules.
Additionally, given the potential existence of the kernel module as either a relocatable file (for x86) or a shared object (for ARM), the implementation should confirms the usability of both types of ELF format kernel modules. LLDB FreeBSD Kernel Module Improvement By: ShengYi Hung](https://i.ytimg.com/vi/q_Kzdr6LcNI/mqdefault.jpg)




