Skip to content
Tiantan
Articles

Installeer zfs op debian 9 stretch

Geplaatst op februari 18, 2021 door admin

Ik heb geprobeerd zfs te installeren op debian 9.1, maar ik ondervind enkele fouten.

Mijn eerste installatie was alleen van zfs-dkms, maar ik las op het net dat ook de spl-dkms nodig is om zfs-dkms te laten draaien.


Mijn stappen waren om mijn sources.list het toevoegen van de bijdrage niet-gratis als volgt:

/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 

Ik heb een klassieke apt-get-update gedaan en vervolgens geprobeerd om zfs te installeren met het volgende:

apt-get install spl-dkms 

en pas na

apt-get install zfs-dkms 

Als resultaat heb ik deze fouten:

[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) ... 

Lezen van journalctl -xe zoals voorgesteld krijg ik:

[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. 

Wat is hier mis? Ik heb iets anders gemist? Hoe is het zfs-linux pakket gerelateerd aan de zfs-installatie?

Wat is de juiste manier om zfs te installeren in Debian 9?

Reacties

  • Wat is de output van dkms status | grep zfs?

Answer

Het daadwerkelijke antwoord van @cas is goed, maar er moeten enkele correcties worden toegepast.

Laten we dus een nieuwe installatie van Debian 9 nemen en aannemen dat de contrib non-free repositories zijn ook niet ingeschakeld.


Stap 0 – Schakel de contrib non-free repositories in

Ik heb sed gebruikt om het woord main binnen /etc/apt/sources.list


Stap 1 – ZFS-installatie

Sinds de laatste reparaties wordt spl-dkms correct gezien als zfs-dkms de pendency zodat het automatisch wordt opgeroepen en het niet nodig is om het handmatig te installeren vóór zfs-dkms. De symbolische link is nodig vanwege een bug in de zfs-distributie in Debian, die “niet zoekt naar rm binair bestand op de juiste positie.

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

Stap 2 – ZFS herstart

Op dit punt is zfs-dkms geïnstalleerd, maar het genereert fouten in journalctl -xe; gebruik om zfs correct te starten:

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

Stap 3 – JE MOET TEN MINSTE ÉÉN ZPOOL MAKEN

Op dit punt ontdekte ik dat U een zpool moet maken voordat u opnieuw opstart anders zal zfs niet de juiste modules laden als er geen zpools zijn. Het is een soort van het besparen van bronnen (maar zelfs in dat geval zal dit nog steeds fouten binnen journalctl -xe veroorzaken)

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

“We doen dit niet omdat ZFS-modules de kernel zouden aantasten, als er geen zpool beschikbaar is, mag deze niet worden geladen.

Als je dit deel mist, moet je beginnen vanaf Stap 2

Door bijvoorbeeld het voorbeeld van @cas te gebruiken, kunt u deze op bestanden gebaseerde zpool maken of direct uw op schijven gebaseerde bestanden maken.

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

en na een reboot zal alles werken zonder fouten in journalctl -xe

Answer

Kleine variaties voor mij op Debian 9.4 – na de toevoegingen aan de Apt-bronnen:

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 

De mount was NIET aanwezig zucht – ontdekte dat er een bestaande /var/jeff met inhoud – verwijderde dat uit de weg en deed een reboot …

Na opnieuw opstarten:

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 

Hoera – allemaal aanwezig en bit-rot beschermd 🙂

Opmerkingen

  • +1 maar raad ten zeerste aan om /dev/disk/by-id/? te gebruiken in plaats van /dev/sd? apparaten. Gebruik ofwel de by-id-namen bij het aanmaken van de pool, of repareer later met zpool export <pool> gevolgd door zpool import -d /dev/disk/by-id/ <pool>. Deze namen, in tegenstelling tot / dev / sd *, ZULLEN blijven bestaan tijdens het opnieuw opstarten. Als u een labelprinter heeft, kunt u ook labels afdrukken met korte versies van de by-id-apparaatnamen (er is meestal een serienummergedeelte van de naam dat een goede naam maakt ‘ , kort, uniek label) en label de schijven om ze gemakkelijk te identificeren als ze ooit moeten worden vervangen.
  • Ummm – maar ZFS geeft niet om de schijfaliassen die tijdens het maken worden gebruikt – alle informatie is geschreven naar zfs-part9 op de schijf – en dat is wat wordt gebruikt om de array te construeren.Het maakt me ‘ niet echt uit of wat / dev / sdb in de toekomst verandert in iets anders, en ik controleer altijd met lsblk -f voordat we met schijfhardware aan het werk gaan – voor onze productieservers is de Dell hdd blink-tool handig om de huidige os-alias te relateren aan de fysieke eenheid 🙂 – Ik denk dat de / dev / disk / by-id nuttiger is voor andere montagesystemen die don ‘ t hebben ZFS ‘ s ingebouwde consistentie – bijv. fstab.
  • als u by-id gebruikt, krijgt u betekenisvolle / nuttige namen (waarmee u het merk, het model en het serienummer van ‘ van elk station identificeert) in zpool -opdracht zoals status en list, die gemakkelijk kunnen worden gekopieerd en geplakt in elke noodzakelijke zpool offline / ontkoppelen / replace / etc-opdrachten. sda zegt ‘ niets nuttigs. ata-ST4000VN008-2DR166_ZDH35XXX geeft precies aan wat voor soort station het is en wat het serienummer is. Je kunt nog steeds de (huidige) korte dev-namen krijgen als je ze ooit wilt gebruiken met de -L optie met zpool list, zpool status, enz. (in mijn ervaring vooral handig met zpool list -L -v).
  • IME, de betekenisvolle namen helpen om menselijke fouten te verminderen. Het ‘ is gemakkelijk verkeerd te typen, bijvoorbeeld sdd als sdf. veel moeilijker om een by-id-naam verkeerd te typen.
  • Lol – veel mensen doen dezelfde aanbeveling – ik vind het persoonlijk gemakkelijker om te onthouden en typ sdc sde sdf en sdg. We kopen schijven in batches en ze beginnen allemaal met dezelfde 48 by-id-tekens en hebben slechts 2-4-cijferige achtervoegsels die verschillen. Mensen ‘ tikken geen by-id-namen – ze gebruiken tab-aanvullen – en leiden eerder tot een oeps IMHO. Ik vind het veel gemakkelijker om één letter in een naam van drie tekens te onderscheiden dan 2-4 cijfers in een naam van 52 tekens. Ik weet dat veel mensen UUID ook aanbevelen. Aangezien ZFS het niet kan schelen ‘, denk ik dat ik me zal houden aan wat ik gemakkelijker vind – minder is soms meer 🙂

Antwoord

Ik heb zojuist een gloednieuwe stretch-VM gemaakt om dit te testen. Minimale installatie (alleen ssh en standaard systeemtools), bewerk sources.list om contrib en niet-gratis toe te voegen, en dan:

apt-get install spl-dkms zfs-dkms 

Misschien wilt u ook handmatig installeer zfsutils-linux. Het zou automatisch moeten worden geïnstalleerd wanneer u zfs-dkms installeert, maar de afhankelijkheden kunnen variëren voor verschillende Debian-releases en voor verschillende versies van de Debian ZoL-pakketten:

apt-get install zfsutils-linux 

Het lijkt erop dat er “een bug in het systemd unit-bestand voor zfs-share zit. Het probeert /usr/bin/rm in plaats van /bin/rm.

De snelle oplossing is om ln -s /bin/rm /usr/bin uit te voeren, of als alternatief:

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

en start de zfs-services opnieuw:

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

OPMERKING: ik heb handmatig modprobe zfs voordat u een van de zfs-services herstart. Ik “weet niet zeker of ze” dat automatisch zullen doen of niet, dus u moet dat misschien ook doen.

Trouwens, u wilt waarschijnlijk ook apt-get install zfs-initramfs , om ervoor te zorgen dat zfs wordt geladen tijdens het initramfs.


Ik heb getest of dit werkt met:

# 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 

De zpool is working en / tank wordt automatisch gemount na een herstart.

Conclusie: het werkt nu.


Trouwens, deze stretch-VM gebruikt een ZFS-zvol die is gemaakt op mijn hoofd sid systeem als schijf. Ik maakte er een momentopname van onmiddellijk na de eerste installatie, voordat ik spl-dkms en zfs-dkms installeerde, zodat ik snel kon terugkeren en opnieuw kon beginnen als er iets belangrijks misging.

Ik heb de zvol eerst gemaakt met slechts 1GB en moest het later vergroten om genoeg ruimte te hebben voor build-essential, linux-headers-amd64 etc:

# 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 op tank in de VM is waarschijnlijk erger dan nutteloos – de zvol heeft al lz4-compressie erop.

Reacties

  • Ik heb geprobeerd om installeer het op een nieuwe vm maar ik ‘ m ondervind nog steeds problemen, denk ik .. sommige services ‘ starten niet correct .. Zoals ver kan ik zien dat de ZFS DKMS-buglijst gevuld is met ” kan ‘ t installeren ” bugrapporten. Ik vraag me af of het normaal is dat ontwikkelaars maanden voorbij laten gaan nadat zoveel bugreparatieverzoeken alleen reproduceerbaar zijn met apt-get install zfs-dkms ..
  • Op het gedeelte waar je naar de cd-directory vraagt, bedoelde je: / etc / systemd / system /? omdat / etc / systemd / service niet bestaat .. ik heb ook dit bericht: ” Herstarten van zfs-import-mount.service is mislukt: Unit zfs-import-mount.service niet gevonden. ” en ” Herstarten van zfs-import-share.service is mislukt: Unit zfs-import-share.service niet gevonden. ”
  • Het lijkt erop dat ik ook problemen heb met de ZFS-ZED-service door journalctl -xe te lezen: 11 augustus 23:03:23 debian zed [ 70734]: ZFS Event Daemon 0.6.5.9-5 (PID 70734) 11 augustus 23:03:23 debian zed [70734]: Initialiseren van libzfs 11 augustus 23:03:23 is mislukt debian systemd [1]: zfs-zed.service : Hoofdproces verlaten, code = verlaten, status = 1 / FAILURE 11 aug. 23:03:23 debian systemd [1]: zfs-zed.service: Eenheid is mislukt. 11 aug. 23:03:23 debian systemd [1]: zfs-zed.service: mislukt met resultaat ‘ exit-code ‘.
  • Zijn er dingen veranderd / verbeterd in Debian 10? En zo ja, moet ik dan een aparte vraag stellen voor Debian 10?

Geschreven door admin

Geef een reactie Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Meest recente berichten

  • Met behulp van een balun met een resonerende dipool
  • Wat is het verschil tussen “ kan niet ” en “ kan niet ”? [duplicate]
  • Kunt u zich bij JFK op binnenlandse vluchten tussen terminals aan de airside verplaatsen?
  • “ Zeer gewaardeerd ” of “ zeer gewaardeerd ”
  • Wat betekent ' abstracte ideeën '? [gesloten]

Archief

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

Auteursrecht Tiantan 2021 | Thema door Theme in Progress | Mogelijk gemaakt door WordPress

Naar boven