struct

Beryl::Bootstrap::DataPoolSpec

Inherits Struct < Value < Object

Spécification d'un pool ZFS data à créer après bsdinstall (hors chroot, depuis mfsBSD qui a déjà remonté zroot sur /mnt).

disks contient les chemins host (/dev/sda, /dev/sdb…) tels que déclarés par l'utilisateur dans freebsd.zfs.<nom>.disks. Le mapping vers les vtbd* QEMU est calculé par QemuInRescue à partir de l'ordre global des disques (boot en premier, data ensuite).

raid est la valeur numérique (0, 1, 5, 6, 7, 10) comme partout ailleurs dans beryl. Contrairement au pool boot (où 10 n'est pas câblé côté bsdinstall), tous les niveaux RAID sont supportés ici via un zpool create natif.

encryption_key_hex : si non-nil, le pool est créé avec ZFS native encryption (-O encryption=on -O keyformat=hex -O keylocation=prompt). La chaîne est 64 chars hex. Au moment du zpool create, la clé est poussée sur stdin du processus distant (jamais en argument shell), puis le pool est exporté avant le reboot bare-metal — la clé ne persiste pas sur le serveur. L'opérateur la rechargera avec beryl unlock après chaque reboot.

Constructors

new(name : String, raid : Int32, disks : Array(String), mountpoint : String, encryption_key_hex : String | Nil = nil)
Source

Instance methods

clone
Source
copy_with(name _name = @name, raid _raid = @raid, disks _disks = @disks, mountpoint _mountpoint = @mountpoint, encryption_key_hex _encryption_key_hex = @encryption_key_hex)
Source
disks
encrypted?
Source
encryption_key_hex
mountpoint
name
raid
validate!
Source
vdev_spec(devices : Array(String)) : String

Rend le fragment vdev d'un zpool create à partir de la liste de devices (ex: ["vtbd2", "vtbd3"]). 0 → "vtbd2 vtbd3" (stripe implicite) 1 → "mirror vtbd2 vtbd3" 5 → "raidz vtbd2 vtbd3 vtbd4" 6 → "raidz2 vtbd2 vtbd3 vtbd4 vtbd5" 7 → "raidz3 vtbd2 vtbd3 vtbd4 vtbd5 vtbd6" 10 → "mirror vtbd2 vtbd3 mirror vtbd4 vtbd5" (paires)

Source