Tiered Storage mit Btrfs
Moin,

Tiered Storage mit Btrfs mix aus hdd und ssd's ist mit folgenden Kernel jetzt möglich unter Proxmox:

https://tuxist.de/files/proxmox-kernel .

Ihr könnt den Pfad direkt als Repo einbinden.
Nach dem ihr den Kernel installiert müsst ihr die ssd's zu eurem hdd pool hinzufügen und sofort den Befehl:
btrfs device usage 'mountpunkt'

such die Device id's der ssd's raus und gibt ein:
echo 2 | tee /sys/fs/btrfs/'fsid'/devinfo/'devicenummer'/type

Wichtig macht das für jede ssd.
Jetzt sind die HDD's an der Reihe schaut euch wieder nach den Device Id's und jetzt gebt folgendes für die HDD's ein:
echo 3 | tee /sys/fs/btrfs/"fsid"/devinfo/"devicenummer"/type

Danach konvertiert ihr die Meta in den single mode und danach zum Beispiel in ein Raid1. Dabei werden die Daten auf die SSD verschoben.
Wenn ihr das gemacht habt sollte ihr ein Tiered storage haben. Im moment werden diese Einstellungen noch nicht im Dateisystem gespeichert dafür könnt ihr aber einen systemd Service anlegen der Einstellungen immer wieder setzt:

[Unit]
Requires=data.mount
After=data.mount
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=bash -c '/usr/bin/echo 3 | /usr/bin/tee /sys/fs/btrfs/502b9898-ffd9-4326-accc-3bae63091d60/devinfo/1/type'
ExecStart=bash -c '/usr/bin/echo 3 | /usr/bin/tee /sys/fs/btrfs/502b9898-ffd9-4326-accc-3bae63091d60/devinfo/4/type'
ExecStart=bash -c '/usr/bin/echo 2 | /usr/bin/tee /sys/fs/btrfs/502b9898-ffd9-4326-accc-3bae63091d60/devinfo/2/type'
ExecStart=bash -c '/usr/bin/echo 2 | /usr/bin/tee /sys/fs/btrfs/502b9898-ffd9-4326-accc-3bae63091d60/devinfo/3/type'

[Install]
WantedBy=default.target

Das ist eigentlich alles was ihr machen müsst ;-)
verfasst von Jan Köster am 2023-11-08