Salta al contenuto
Tiantan
Articles

Installa zfs su debian 9 stretch

Su Febbraio 18, 2021 da admin

Ho provato a installare zfs su debian 9.1, tuttavia sto riscontrando alcuni errori.

Il mio primo linstallazione era solo di zfs-dkms, tuttavia ho letto in rete che anche spl-dkms è richiesto per lesecuzione di zfs-dkms.


I miei passaggi erano cambiare il mio sources.list aggiungendo contrib non-free come segue:

/etc/apt/sources.list

deb http://ftp.nl.debian.org/debian/ stretch main contrib non-free deb-src http://ftp.nl.debian.org/debian/ stretch main contrib non-free deb http://security.debian.org/debian-security stretch/updates main contrib non-free deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free # stretch-updates, previously known as "volatile" deb http://ftp.nl.debian.org/debian/ stretch-updates main contrib non-free deb-src http://ftp.nl.debian.org/debian/ stretch-updates main contrib non-free 

Fatto un classico aggiornamento di apt-get e poi ho provato a installare zfs con quanto segue:

apt-get install spl-dkms 

e solo dopo

apt-get install zfs-dkms 

Di conseguenza, ho questi errori:

[email protected]:/etc/apt# apt-get install zfs-dkms Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libnvpair1linux libuutil1linux libzfs2linux libzpool2linux zfs-zed zfsutils-linux ... DKMS: install completed. Setting up libzpool2linux (0.6.5.9-5) ... Setting up libzfs2linux (0.6.5.9-5) ... Setting up zfsutils-linux (0.6.5.9-5) ... Created symlink /etc/systemd/system/zfs-mount.service.wants/zfs-import-cache.service â /lib/systemd/system/zfs-import-cac Created symlink /etc/systemd/system/zfs.target.wants/zfs-import-cache.service â /lib/systemd/system/zfs-import-cache.serv Created symlink /etc/systemd/system/zfs-share.service.wants/zfs-mount.service â /lib/systemd/system/zfs-mount.service. Created symlink /etc/systemd/system/zfs.target.wants/zfs-mount.service â /lib/systemd/system/zfs-mount.service. Created symlink /etc/systemd/system/zfs.target.wants/zfs-share.service â /lib/systemd/system/zfs-share.service. Created symlink /etc/systemd/system/multi-user.target.wants/zfs.target â /lib/systemd/system/zfs.target. zfs-import-scan.service is a disabled or a static unit, not starting it. Job for zfs-mount.service failed because the control process exited with error code. See "systemctl status zfs-mount.service" and "journalctl -xe" for details. zfs-mount.service couldn"t start. Job for zfs-share.service failed because the control process exited with error code. See "systemctl status zfs-share.service" and "journalctl -xe" for details. zfs-share.service couldn"t start. Setting up zfs-zed (0.6.5.9-5) ... Created symlink /etc/systemd/system/zed.service â /lib/systemd/system/zfs-zed.service. Created symlink /etc/systemd/system/zfs.target.wants/zfs-zed.service â /lib/systemd/system/zfs-zed.service. Processing triggers for libc-bin (2.24-11+deb9u1) ... 

Leggendo journalctl -xe come suggerito ottengo:

[email protected]:/etc/apt# journalctl -xe Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Main process exited, code=exited, status=1/FAILURE Aug 02 23:13:13 debian systemd[1]: Failed to start ZFS file system shares. -- Subject: Unit zfs-share.service has failed -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- Unit zfs-share.service has failed. -- -- The result is failed. Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Unit entered failed state. Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Failed with result "exit-code". Aug 02 23:13:13 debian systemd[1]: Starting Mount ZFS filesystems... -- Subject: Unit zfs-mount.service has begun start-up -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- Unit zfs-mount.service has begun starting up. Aug 02 23:13:13 debian zfs[81481]: The ZFS modules are not loaded. Aug 02 23:13:13 debian zfs[81481]: Try running "/sbin/modprobe zfs" as root to load them. Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Main process exited, code=exited, status=1/FAILURE Aug 02 23:13:13 debian systemd[1]: Failed to start Mount ZFS filesystems. -- Subject: Unit zfs-mount.service has failed -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- Unit zfs-mount.service has failed. -- -- The result is failed. Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Unit entered failed state. Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Failed with result "exit-code". Aug 02 23:13:13 debian systemd[1]: Starting ZFS file system shares... -- Subject: Unit zfs-share.service has begun start-up -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- Unit zfs-share.service has begun starting up. Aug 02 23:13:13 debian systemd[81483]: zfs-share.service: Failed at step EXEC spawning /usr/bin/rm: No such file or direc -- Subject: Process /usr/bin/rm could not be executed -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- The process /usr/bin/rm could not be executed and failed. -- -- The error number returned by this process is 2. 

Cosa cè che non va qui? Mi sono perso qualcosaltro? In che modo il pacchetto zfs-linux è correlato allinstallazione di zfs?

Qual è il modo corretto per installare zfs in Debian 9?

Commenti

  • Qual è loutput di dkms status | grep zfs?

Risposta

La risposta effettiva di @cas è buona ma devono essere applicate alcune correzioni.

Quindi eseguiamo una nuova installazione di Debian 9 e assumendo che contrib non-free non sono abilitati.


Passaggio 0 – Abilita i repository contrib non-free

Ho utilizzato sed per trovare e sostituire la parola main allinterno di /etc/apt/sources.list

sed -i "s/main/main contrib non-free/g" /etc/apt/sources.list apt-get update 

Passaggio 1 – Installazione ZFS

Dallultima correzione spl-dkms viene correttamente visto come zfs-dkms de pendency quindi “viene richiamato automaticamente e non è necessario installarlo manualmente prima di zfs-dkms. Il collegamento simbolico è necessario a causa di un bug allinterno della distribuzione zfs in Debian, che non “cerca il rm binario nella posizione corretta.

apt -y install linux-headers-$(uname -r) ln -s /bin/rm /usr/bin/rm apt-get -y install zfs-dkms 

Passaggio 2 – Riavvio di ZFS

A questo punto zfs-dkms è installato ma genera errori in journalctl -xe; per avviare zfs correttamente usa:

/sbin/modprobe zfs systemctl restart zfs-import-cache systemctl restart zfs-import-scan systemctl restart zfs-mount systemctl restart zfs-share 

Passaggio 3 – DEVI CREARE ALMENO UNO ZPOOL

A questo punto ho scoperto che DEVI creare uno zpool prima di riavviare altrimenti zfs non caricherà i moduli corretti se non ci sono zpool. È “un tipo del meccanismo di salvataggio delle risorse (ma anche in questo caso verranno comunque generati errori allinterno di journalctl -xe)

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864348

“Non lo stiamo facendo perché i moduli ZFS contaminerebbero il kernel, se non ci sono zpool disponibili, non dovrebbero essere caricati.

Se ti perdi questa parte devi iniziare dal Passaggio 2

Ad esempio, utilizzando lesempio fornito da @cas, puoi creare questo zpool basato su file o crearne direttamente quelli basati su disco.

truncate -s 100M /root/z1 truncate -s 100M /root/z2 zpool create tank /root/z1 /root/z2 zpool scrub tank zpool status 

quindi dopo un reboot tutto funzionerà senza errori in journalctl -xe

Risposta

Per me leggere variazioni su Debian 9.4 – dopo le aggiunte ai sorgenti di Apt:

apt-get install linux-headers-amd64 # not tied to specific kernel version apt-get install zfs-dkms zfsutils-linux # my apt recommends is off lsblk # double-check which disks to pool zpool create -f jeff -o ashift=12 -o autoexpand=on -o autoreplace=on mirror sdb sdd zfs set mountpoint=/var/jeff jeff zfs set compression=lz4 jeff zfs create jeff/blog zfs create jeff/docs zfs create jeff/pics zfs set compression=off jeff/pics df -h 

La montatura era NON sospiro presente – ha scoperto che esisteva un /var/jeff con il contenuto – spostato quello di mezzo e ha fatto un reboot …

Dopo il riavvio:

df -htzfs Filesystem Size Used Avail Use% Mounted on jeff 849G 128K 849G 1% /var/jeff jeff/blog 850G 128K 849G 1% /var/jeff/blog jeff/docs 856G 128K 849G 1% /var/jeff/docs jeff/pics 850G 128K 849G 1% /var/jeff/pics 

Evviva – tutto presente e protetto contro la decomposizione 🙂

Commenti

  • +1 ma consigliamo vivamente di utilizzare /dev/disk/by-id/? anziché /dev/sd? dispositivi. Utilizza i nomi per id durante la creazione del pool o correggili in un secondo momento con zpool export <pool> seguito da zpool import -d /dev/disk/by-id/ <pool>. Questi nomi, a differenza di / dev / sd *, persisteranno durante i riavvii. Inoltre, se disponi di una stampante per etichette, puoi stampare etichette con versioni brevi dei nomi dei dispositivi per id (di solito ‘ è una parte del numero di serie del nome che è un buon , breve, etichetta univoca) ed etichettare le unità per renderle più facili da identificare se devono essere sostituite.
  • Ummm – ma ZFS non si preoccupa degli alias del disco utilizzati durante la creazione – tutte le informazioni sono scritte a zfs-part9 sul disco – e questo è ciò che viene utilizzato per costruire larray.Non ‘ mi interessa davvero se ciò che era / dev / sdb cambia in qualcosaltro in futuro e controllo sempre con lsblk -f solo prima di eseguire il dicking con lhardware dellunità – per i nostri server di produzione lo strumento Dell hdd blink è utile per mettere in relazione lattuale alias del sistema operativo con lunità fisica 🙂 – Penso che / dev / disk / by-id sia più utile per altri sistemi di montaggio che don ‘ t hanno ‘ coerenza incorporata di ZFS, ad es. fstab.
  • lutilizzo di by-id ti fornirà nomi significativi / utili (identificando la marca, il modello e il numero di serie di ciascuna unità ‘) in zpool come status e list, che può essere facilmente copiato e incollato in qualsiasi zpool necessario offline / scollega / sostituire / etc comandi. sda ‘ non ti dice nulla di utile. ata-ST4000VN008-2DR166_ZDH35XXX identifica esattamente il tipo di unità e il numero di serie. Puoi comunque ottenere i nomi di sviluppo brevi (correnti) se li desideri utilizzando lopzione -L con zpool list, zpool status, ecc (nella mia esperienza, per lo più utile con zpool list -L -v).
  • IME, i nomi significativi aiutano a ridurre lerrore umano. È ‘ facile da digitare in modo errato, ad esempio sdd come sdf. molto più difficile digitare in modo errato un nome per id.
  • Lol – molte persone fanno lo stesso consiglio – personalmente trovo più facile ricordare e digitare sdc sde sdf e sdg. Acquistiamo dischi in batch e iniziano tutti con gli stessi 48 caratteri by-id e hanno solo suffissi di 2-4 cifre che differiscono. Le persone non ‘ digitano nomi per id – usano il completamento con tabulazione – è più probabile che porti a un oops IMHO. Trovo che differenziare una lettera in tre caratteri sia molto più semplice di 2-4 cifre in un nome di 52 caratteri. So che molte persone raccomandano anche lUUID. Dato che a ZFS ‘ non interessa, penso che mi atterrò a ciò che trovo più facile: a volte meno è meglio 🙂

Risposta

Ho appena creato una nuova VM stretch per testarlo. Installazione minima (solo ssh e strumenti di sistema standard), modifica sources.list per aggiungere contrib e non-free, quindi:

apt-get install spl-dkms zfs-dkms 

Potresti anche volerlo manualmente installa zfsutils-linux. Dovrebbe essere installato automaticamente quando installi zfs-dkms ma le dipendenze possono variare per diversi rilasci Debian e per diverse versioni dei pacchetti Debian ZoL:

apt-get install zfsutils-linux 

Sembra che “ci sia un bug nel file di unità systemd per zfs-share. Si sta tentando di eseguire /usr/bin/rm invece di /bin/rm.

La soluzione rapida è eseguire ln -s /bin/rm /usr/bin o in alternativa:

cd /etc/systemd/system cp -a /lib/systemd/system/zfs-share.service . edit zfs-share.service and change `/usr/bin/rm` to `/bin/rm` 

e quindi riavvia i servizi zfs:

systemctl restart zfs-import-cache systemctl restart zfs-import-scan systemctl restart zfs-mount systemctl restart zfs-share 

NOTA: ho eseguito manualmente modprobe zfs prima di riavviare uno dei servizi zfs. Non sono sicuro che lo faranno automaticamente o meno, quindi potrebbe essere necessario farlo anche tu.

A proposito, probabilmente vorrai anche apt-get install zfs-initramfs , per garantire che zfs venga caricato durante initramfs.


Ho verificato che funzioni con:

# truncate -s 100M /root/z1 # truncate -s 100M /root/z2 # zpool create tank mirror /root/z1 /root/z2 # zfs set compression=lz4 tank # rsync -ax /etc /tank/ # du -sch /etc /tank/etc/ 3.5M /etc 825K /tank/etc/ 4.3M total # zpool scrub tank # zpool status pool: tank state: ONLINE scan: scrub repaired 0 in 0h0m with 0 errors on Thu Aug 3 19:28:21 2017 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 /root/z1 ONLINE 0 0 0 /root/z2 ONLINE 0 0 0 errors: No known data errors 

Lo zpool è funzionante e / tank viene montato automaticamente dopo un riavvio.

Conclusione: funziona ora.


BTW, questa VM stretch utilizza uno zvol ZFS creato sul mio sid sistema come disco. Ne ho fatto unistantanea subito dopo linstallazione iniziale, prima di installare spl-dkms e zfs-dkms in modo da poter tornare rapidamente e ricominciare se qualcosa di importante fosse andato storto.

Per prima cosa ho creato zvol con solo 1 GB e dovevo aumentarlo in un secondo momento per avere spazio sufficiente per build-essential, linux-headers-amd64 ecc:

# zfs list -r -t all export/volumes/stretch NAME USED AVAIL REFER MOUNTPOINT export/volumes/stretch 6.25G 834G 1.77G - export/volumes/[email protected]:31:04 279M - 1.09G - 

setting compression=lz4 sul tank nella VM è probabilmente peggio che inutile – lo zvol ha già la compressione lz4 su di esso.

Commenti

  • Ho provato a installalo su una nuova macchina virtuale ma ‘ riscontro ancora problemi immagino .. alcuni servizi non ‘ si avviano correttamente .. As posso vedere che lelenco dei bug di ZFS DKMS è pieno di ” può ‘ t installare ” segnalazioni di bug. Mi chiedo se sia normale che gli sviluppatori lasciano passare mesi dopo tante richieste di correzione di bug riproducibili solo con apt-get install zfs-dkms ..
  • Nella parte in cui chiedi la directory cd intendevi: / etc / systemd / system /? perché / etc / systemd / service non esiste .. ho anche questo messaggio: ” Impossibile riavviare zfs-import-mount.service: Unit zfs-import-mount.service not trovato. ” e ” Impossibile riavviare zfs-import-share.service: unità zfs-import-share.servizio non trovato. ”
  • Sembra che ho anche problemi con il servizio ZFS-ZED leggendo journalctl -xe: 11 agosto 23:03:23 debian zed [ 70734]: ZFS Event Daemon 0.6.5.9-5 (PID 70734) 11 agosto 23:03:23 debian zed [70734]: Impossibile inizializzare libzfs 11 agosto 23:03:23 debian systemd [1]: zfs-zed.service : Processo principale terminato, codice = uscito, stato = 1 / FAILURE 11 agosto 23:03:23 debian systemd [1]: zfs-zed.service: unità entrata in stato di errore. 11 agosto 23:03:23 debian systemd [1]: zfs-zed.service: non riuscito con risultato ‘ exit-code ‘.
  • Le cose sono cambiate / migliorate con Debian 10? E se è così, dovrei pubblicare una domanda separata per Debian 10?

Scritto da admin

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Articoli recenti

  • Utilizzando un balun con un dipolo risonante
  • Qual è la differenza tra “ non può ” e “ non può ”? [duplicate]
  • Al JFK, puoi muoverti tra i terminal airside sui voli nazionali?
  • “ Molto apprezzato ” o “ molto apprezzato ”
  • Che cosa significa ' idee astratte '? [chiuso]

Archivi

  • Febbraio 2021
  • Gennaio 2021
  • Dicembre 2020
  • Novembre 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Testo del copyright Tiantan 2021 | Theme by Theme in Progress | Proudly powered by WordPress

Torna Su