- NIM refactoring ✍️
This PR substantially refactors NIM microservice. Contains several commits to improve the code of NIM, split code into several files, and avoid files with 2000+ lines.
- Support zfs raid levels during install 🎛
Provides grub parameters to explicitly install zfs and pick the raid level. Support for single disk installation of ZFS is added.
- Show string status for zpool in case of not online ℹ️
Show string status for zpool in case of not online (i.e. One or more devices have been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state.). The library we use has no support for showing this, so I parse the output of zpool status here.
- Support for multiple top-level vdevs in pool 🛠
We will fill children info for multiple top-level vdevs and fill CurrentRaid as the lowest redundancy of all included vdevs.
- Support to install EVE and ZFS on same disk 🎛
Installed with grub parameters eve_install_zfs_with_raid_level=none eve_install_disk=nvme0n1
- Pass grub config file for iso installer 💿
Seems we still need to have the possibility to pass options from grub.cfg comes with config.img file in case of iso installer.
The solution to sort disks (#2309) discussed #2303 (comment) is not enough and we still need to define explicitly the disk to install EVE onto with eve_install_disk option
- Use fixed device/partition UUIDs with ZFS 🛠
For unknown reasons, ZFS creates partition 1 and partition 9 when adding to the pool. As we later add to the pool, we want to ensure that otherwise identical hardware ends up with identical PCR5 measurements from the TPM.
- potentialUUIDUpdate multiple access fix 🛠
Check if zedclient process is not running before run new one. Add mutex to handle multiple function calls from goroutines
- Need longer wait for zboot reset 🛠
On a RPI4 running ZFS with lots of USB sticks as drives and one of them in a failed/hosted state the zboot reset (and other zboot commands) takes more than 20 seconds.
Github:⭐️340(+1) stars 121(+3) forks DockerHub: 280472(+1351)pulls🚀
- Extract raw filename from mime
This is necessary to handle new version of the mime package and allow creating the CDROM directory layout for cloud-init. Note that the handling guards against the directory/filename escaping from the target directory.
- Use 32byte TPM keys only for vault protection 🔒
Starting this commit a new install of EVE-OS will create a vault config file on systems with TPM support. That file will be used to determine whether to use only the TPM key or merge the TPM and controller key. This applies to both ext4 and zfs filesystems.
- Add functionality to send information about disks ℹ️
Add functionality to send information about disks via a separate HardwareInfo message with a rare sending rate. Add serial number assembly for disks in ZFS. Add information about the disk from which information could not be retrieved. Also rewrote the GetSerialNumberForDisk function because an error occurred if the input disk name was a partition (eg /dev/sda1).
- Run tests against zfs-kvm 🛠
We can use zfs-KVM HV to run the single-disk zfs mode of EVE and use it in our tests. We changed the version of EVE in eveupdate tests to recent ones.
- Add S.M.A.R.T data collector for disks 🎛
This PR adds features for collecting disk information, including SMART attributes. Also, a package has been added here that allows you to read the file system, to obtain information about available disks and information about them.
- API update to send more disks information for storage system to EVE ℹ️
Update API to send more disk information (including s.m.a.r.t ones) for the storage system in EVE.
- Add possibility to define nested structures in DisksConfig 🎛
To use stripe of two pairs of mirrored disks we should define DisksConfig without disks with array_type DISKS_ARRAY_TYPE_RAID0 with two children with properly defined disks inside and with array_type DISKS_ARRAY_TYPE_RAID1 and empty children
- Set max_sectors explicitly to run Windows VM with vhost-scsi-pci 🪟
We can see [ 259.573575] vhost_scsi_calc_sgls: requested sgl_count: 2649 exceeds pre-allocated max_sgls: 2048 in kernel messages and Windows VM do not boot with zfs/vhost-scsi-pci. As discussed in https://edk2.groups.io/g/discuss/topic/windows_2019_vm_fails_to_boot/74465994: I/O size exceeds the max SCSI I/O limitation(8M) of vhost-scsi in KVM and we should adjust options to run Windows VM with vhost-scsi-pci.
- Split bucket and path from ds config for AWS ☁️
We can have files located in directories inside the bucket, but now path from datastore assuming as bucket name. We should split the path into bucket names and file paths if we can see '/' inside the bucket.
- Have installer default to fixed disk/partition UUIDs 📝
This is needed to make PCR5 in the TPM measured boot be the same for otherwise identical hardware and firmware/software. The new eve_install_random_disk_uuids can be set to get the old behavior. storage-init recreates as fixed if IMGA has the fixed UUID.