Base di conoscenza

Attacca un volume NVMe aggiuntivo e montalo

Trovare il nuovo dispositivo a blocchi, scegliere un filesystem, montarlo in modo che un disco mancante non possa fermare il boot, e ingrandirlo in seguito senza interruzioni.

Il dispositivo appare senza riavvio

L'NVM aggiuntivo è un componente aggiuntivo venduto ogni cinquecento gigabyte e viene collegato a caldo. Il volume appare come un nuovo dispositivo a blocchi entro pochi secondi dalla conclusione dell'ordine. Non viene riavviato nulla.

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT

Il disco di root è vda; il nuovo prende la lettera successiva. Se non è apparso, dai un momento a udev e guarda di nuovo:

udevadm settle
ls /sys/class/block

Salta la tabella delle partizioni

Una partizione su un disco virtuale non ti dà nulla e aggiunge un passaggio ogni volta che il volume cresce. Metti il filesystem direttamente sul dispositivo:

mkfs.ext4 -L data /dev/vdb

Oppure, per file di grandi dimensioni scritti da molti thread contemporaneamente:

mkfs.xfs -L data /dev/vdb

ext4 si riduce offline, XFS non si riduce mai. XFS è più veloce nei metadati paralleli, ext4 è più indulgente con tutto il resto. Per la maggior parte delle persone, questa è l'intera decisione.

Montalo in modo che un volume mancante non possa fermare il boot

Usa l'etichetta. L'ordine dei dispositivi non è garantito dopo una ricostruzione, e vdb oggi può diventare vdc domani.

mkdir -p /srv/data
echo "LABEL=data /srv/data ext4 defaults,noatime,nofail,x-systemd.device-timeout=10s 0 2" >> /etc/fstab
systemctl daemon-reload
mount -a
findmnt /srv/data

nofail e il timeout del dispositivo sono la parte importante di quella riga. Senza di essi, un'istanza che si avvia prima che il volume sia attaccato si ferma nella shell di emergenza aspettando un disco, e ti ritrovi a leggere l'articolo sulla console prima del previsto.

Trim su timer, non a ogni eliminazione

Non aggiungere l'opzione di mount discard. Il discard continuo emette un trim a ogni unlink, e su un filesystem occupato costa più di quanto renda. Eseguilo periodicamente invece:

systemctl enable --now fstrim.timer
fstrim -v /srv/data

Crescita del volume

Ordina più capacità, poi estendi il filesystem in loco. Nessuno smontaggio, nessun riavvio.

lsblk -o NAME,SIZE
resize2fs /dev/vdb          # ext4, by device
xfs_growfs /srv/data        # XFS, by mount point

Ottenere questi due nell'ordine sbagliato produce un messaggio di errore confuso e nessun danno, che è il modo corretto per uno strumento di comportarsi.

Se lo vuoi crittografato

cryptsetup luksFormat --type luks2 /dev/vdb
cryptsetup open /dev/vdb data
mkfs.ext4 -L data /dev/mapper/data

Comprendi prima la conseguenza. Un volume protetto da passphrase non può montare senza supervisione, quindi ogni riavvio richiede una persona sulla console che lo digiti. Mettere il file chiave sul disco di root rimuove quel problema e gran parte del beneficio allo stesso tempo. Scegli deliberatamente piuttosto che per impostazione predefinita.

Verifica di sanità dell'hardware

fio --name=rw --rw=randwrite --bs=4k --size=2G --numjobs=4 --iodepth=32 --direct=1 --runtime=60 --time_based --group_reporting

Esegui questo sul nuovo volume, mai su /, e mai su un filesystem che contiene qualcosa che vuoi conservare. Se il risultato è di un ordine di grandezza inferiore a quanto descritto nella pagina dell'hardware, apri un ticket con l'output e guarderemo l'host piuttosto che te.

Pronto quando lo sei

Scegli una città. Scegli una dimensione. Paga in criptovaluta.

Nessun modulo su chi sei, nessuna attesa per l'approvazione di una persona, nessuna chiamata per verificare nulla. La fattura viene saldata e le credenziali arrivano nella tua casella di posta.