Add tiering API
This commit modifies the truenas API to wrap around tiering design
in the following ways:
A new namespace zfs.tier. will be added. This contains global
configuration for systemwide tiering settings. Parameters include
- enabled: whether to enable tiering. This feature requries changes
to global ZFS behavior and we will have various internal checks
that check this value in datastore extend context methods.
- max_concurrent_jobs: the maximum number of concurrent rewrite
jobs (tier migrations for existing data).
- min_available_space: point in available space for a dataset where
tier migrations will error out.
The namespace will also support APIs for managing and querying
[9 lines not shown]
NAS-140202 / 27.0.0-BETA.1 / Make running non-iscsi tests possible on the same TrueNAS machine (#18407)
iscsi modules are not easy to install automatically. They also make
runtest.py crash with no reason.
NAS-140081 / 27.0.0-BETA.1 / Simplify alerts (#18332)
As a part of mypy refactoring, I want to make `AlertClass` dataclasses
and store alert args there as typed attributes. In order to do that, we
need to liberate these classes of some of their responsibilities.
Now, oneshot create/delete methods are classmethods, and middleware
instance is not stored in the `AlertClass` object anymore.
All `OneShotAlertClass` are `SimpleOneShotAlertClass`, complex creation
logic was shifted to the caller.
---------
Co-authored-by: Logan Cary <logan.cary at ixsystems.com>