Asenna zfs debian 9 stretch
On helmikuu 18, 2021 by adminYritin asentaa zfs debian 9.1: een, mutta minulla on joitain virheitä.
Ensimmäinen asennus oli vain zfs-dkms-tiedostoja, mutta luin netistä, että myös spl-dkms vaaditaan zfs-dkms: n suorittamiseksi.
Vaiheideni oli muuttaa sources.list lisäämällä ei-vapaa seuraavasti:
/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
Suoritettu klassinen apt-get-päivitys ja yritetty asentaa sitten zfs seuraavilla tavoilla:
apt-get install spl-dkms
ja vasta
apt-get install zfs-dkms
jälkeen minulla on seuraavat virheet:
root@debian:/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) ...
journalctl -xe lukeminen ehdotetulla tavalla:
root@debian:/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.
Mitä vikaa tässä on? Kaipasin jotain muuta? Kuinka zfs-linux -paketti liittyy zfs-asennukseen?
Mikä on oikea tapa asentaa zfs debian 9: een?
Kommentit
Vastaus
Todellinen vastaus käyttäjältä @cas on hyvä, mutta siihen on tehtävä joitain korjauksia.
Otetaan siis uusi Debian 9 -asennus ja oletetaan, että ei-vapaita -tietovarastoja ei myöskään ole otettu käyttöön.
Vaihe 0 – Ota käyttöön maksuton maksuton tietovarasto
Käytin sed
etsimään ja korvaamaan sana main sisältä /etc/apt/sources.list
sed -i "s/main/main contrib non-free/g" /etc/apt/sources.list apt-get update
Vaihe 1 – ZFS-asennus
Viimeisten korjausten jälkeen spl-dkms
nähdään oikein nimellä zfs-dkms
de riippuu, joten se palautuu automaattisesti eikä sitä tarvitse asentaa manuaalisesti ennen zfs-dkms
. Symbolinen linkki tarvitaan Debianin zfs-jakelun sisällä olevan virheen takia, joka ei etsi rm
-binaaria oikeassa asennossa.
apt -y install linux-headers-$(uname -r) ln -s /bin/rm /usr/bin/rm apt-get -y install zfs-dkms
Vaihe 2 – ZFS: n uudelleenkäynnistys
Tässä vaiheessa zfs-dkms asennetaan, mutta se heittää virheitä tiedostoon journalctl -xe
; Käynnistä zfs oikein:
/sbin/modprobe zfs systemctl restart zfs-import-cache systemctl restart zfs-import-scan systemctl restart zfs-mount systemctl restart zfs-share
Vaihe 3 – Sinun on luotava vähintään yksi ZPOOL
Tässä vaiheessa huomasin että sinun on luotava zpool ennen uudelleenkäynnistystä muuten zfs ei lataa oikeita moduuleja, jos zpooleja ei ole. Se lajittelee resurssien säästämismekanismista (mutta tällöin tämäkin heittää virheitä journalctl -xe
)
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864348
”Emme tee tätä, koska ZFS-moduulit vahingoittavat ydintä, jos zpoolia ei ole käytettävissä, sitä ei pitäisi ladata. ”
Jos unohdat tämän osan, sinun on aloitettava kohdasta Vaihe 2
Esimerkiksi @ cas -esimerkin avulla voit luoda tämän tiedostopohjaisen zpool-tiedoston tai luoda suoraan levy-pohjaiset.
truncate -s 100M /root/z1 truncate -s 100M /root/z2 zpool create tank /root/z1 /root/z2 zpool scrub tank zpool status
sitten reboot
jälkeen kaikki toimii ilman virheitä ryhmässä journalctl -xe
vastaus
Hieman muunnelmia minulle Debian 9.4: ssä – Apt-lähteiden lisäysten jälkeen:
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
Kiinnitys oli EI huokaus – huomasi, että /var/jeff
sisällöllä – siirsi sen pois tieltä ja teki reboot
…
Uudelleenkäynnistyksen jälkeen:
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
Hurraa – kaikki läsnä ja bittimädän suojatut 🙂
Kommentit
- +1, mutta suosittelemme vahvasti
/dev/disk/by-id/?
-laitteiden käyttöä/dev/sd?
-laitteiden sijaan. Joko käytä by-id-nimiä, kun luot poolin, tai korjaa myöhemmin valitsemallazpool export <pool>
ja sen jälkeenzpool import -d /dev/disk/by-id/ <pool>
. Nämä nimet, toisin kuin / dev / sd *, jatkuvat uudelleenkäynnistyksissä. Lisäksi, jos sinulla on tarratulostin, voit tulostaa tarroja, joissa on lyhyitä versioita oheislaitteiden nimistä (siellä ’ s yleensä sarjanumeron osa nimestä, mikä tekee hyvästä , lyhyt, yksilöllinen tarra) ja merkitse asemat, jotta ne on helppo tunnistaa, jos niitä on koskaan vaihdettava. - Ummm – mutta ZFS ei välitä luomisen aikana käytetyistä levialiaksista – kaikki tiedot kirjoitetaan levyn zfs-part9-tiedostoon – ja sitä käytetään taulukon rakentamiseen.Minusta ’ ei ole väliä, muuttuuko / dev / sdb mikä tahansa muu tulevaisuudessa, ja tarkistan aina vain
lsblk -f
ennen dickering-aseman laitteistoa – tuotantopalvelimillemme Dell hdd -merkkityökalu on hyödyllinen nykyisen os-aliaksen liittämisessä fyysiseen yksikköön 🙂 – Luulen, että / dev / disk / by-id on hyödyllinen muille asennusjärjestelmille, jotka Don ’ ei ole ZFS ’ -rakenteita rakennettu johdonmukaisesti – esim. fstab. - by-id: n käyttäminen antaa sinulle mielekkäitä / hyödyllisiä nimiä (jotka tunnistavat jokaisen aseman ’ merkin, mallin ja sarjanumeron) kohdassa
zpool
-komento, kutenstatus
jalist
, jotka voidaan helposti kopioida kaikkiin tarvittaviin offline-tiloihin / irrotettaviin zpooliin / korvaa / etc -komennot.sda
ei kerro ’ t sinulle mitään hyödyllistä.ata-ST4000VN008-2DR166_ZDH35XXX
tunnistaa tarkalleen minkä tyyppisen aseman se on ja sen sarjanumeron. Voit silti saada (nykyiset) lyhyet dev-nimet, jos haluat niitä koskaan käyttämällä-L
-vaihtoehtoazpool list
,zpool status
jne. (kokemukseni mukaan enimmäkseen hyödyllinenzpool list -L -v
kanssa). - IME, merkitykselliset nimet auttavat vähentämään inhimillisiä virheitä. Se ’ on helppo kirjoittaa väärin, esim. Sdd sdf: nä. paljon vaikeampaa kirjoittaa väärin sivutunnus.
- Lol – monet ihmiset tekevät saman suosituksen – Minusta on helpompaa muistaa ja kirjoittaa sdc sde sdf ja sdg. Ostamme levyjä erissä, ja ne kaikki alkavat samoilla noin 48 sivumerkillä ja niillä on vain 2–4-numeroiset loppuliitteet, jotka eroavat toisistaan. Ihmiset eivät ’ kirjoita by-id-nimiä – he käyttävät sarkainnäppäimiä – johtavat todennäköisemmin oho IMHO: han. Yhden kirjaimen erottaminen kolmen merkin kohdalla on paljon helpompaa kuin 2–4 numeroa 52 merkin nimessä. Tiedän, että monet ihmiset suosittelevat myös UUID: tä. Koska ZFS ei välitä ’ siitä, pidän kiinni siitä, mikä on mielestäni helpompaa – vähemmän on joskus enemmän 🙂
Vastaus
Loin juuri uuden venyvän virtuaalikoneen tämän testaamiseksi. Pienin asennus (vain ssh ja tavalliset järjestelmätyökalut), muokkaa sources.list lisätäksesi sisältöä ja ei-vapaata, sitten:
apt-get install spl-dkms zfs-dkms
Voit myös haluta manuaalisesti asenna zfsutils-linux
. Se tulisi asentaa automaattisesti, kun asennat zfs-dkms
, mutta riippuvuudet voivat vaihdella eri Debian-julkaisuissa ja Debian ZoL -pakettien eri versioissa:
apt-get install zfsutils-linux
Näyttää siltä, että zfs-share
-järjestelmätiedostotiedostossa on vika. Se yrittää suorittaa /usr/bin/rm
/bin/rm
-kohdan sijaan.
Pika-asennus on suorittaa ln -s /bin/rm /usr/bin
tai vaihtoehtoisesti:
cd /etc/systemd/system cp -a /lib/systemd/system/zfs-share.service . edit zfs-share.service and change `/usr/bin/rm` to `/bin/rm`
ja käynnistä sitten zfs-palvelut uudelleen:
systemctl restart zfs-import-cache systemctl restart zfs-import-scan systemctl restart zfs-mount systemctl restart zfs-share
HUOMAUTUS: Suoritin modprobe zfs
ennen minkä tahansa zfs-palvelun käynnistämistä uudelleen. En ole varma, tekevätkö he sen automaattisesti vai eivät, joten sinun on ehkä tehtävä se myös.
BTW, haluat todennäköisesti myös apt-get install zfs-initramfs
, varmistaaksesi, että zfs ladataan initramfs: n aikana.
Testasin, että tämä toimii:
# 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
Zpool on työskentely ja / tankki asennetaan automaattisesti uudelleenkäynnistyksen jälkeen.
Johtopäätös: se toimii nyt.
BTW, tämä venyvä virtuaalikone käyttää ZFS-zvolia, joka on luotu pääosastoni sid
järjestelmän levykkeeksi. Tein siitä tilannekuvan heti ensimmäisen asennuksen jälkeen, ennen kuin asennin spl-dkms ja zfs-dkms, jotta voisin nopeasti palata ja aloittaa uudelleen, jos jotain suurta meni pieleen.
Tein zvolin ensin vain 1 Gt: lla ja sitä on lisättävä myöhemmin, jotta siinä on tarpeeksi tilaa build-essentialille, Linux-headers-amd64 jne.:
# zfs list -r -t all export/volumes/stretch NAME USED AVAIL REFER MOUNTPOINT export/volumes/stretch 6.25G 834G 1.77G - export/volumes/stretch@2017-08-03-18:31:04 279M - 1.09G -
setting compression=lz4
VM: n säiliössä on todennäköisesti huonompi kuin hyödytön – zvolissa on jo lz4-pakkaus.
Kommentit
- Yritin asenna se uudelle uudelle vm: lle, mutta minulla ’ m on edelleen ongelmia, luulen .. jotkut palvelut eivät ’ t käynnisty oikein .. Kuten en näe ZFS: n DKMS-virheluetteloa ” voi ’ asentaa ” vikailmoitukset. Ihmettelen, onko normaalia, että kehittäjät antavat kuukausien kulua monien vikakorjauspyyntöjen jälkeen, jotka voidaan toistaa vain apt-get install zfs-dkms: llä.
- Sieltä, mistä kysyt tarkoittamaasi CD-hakemistoa: / etc / systemd / system /? koska / etc / systemd / service ei ole olemassa … myös minulla on tämä viesti: ” zfs-import-mount.service ei käynnistynyt uudelleen: Unit zfs-import-mount.service not löytyi. ” ja ” zfs-import-share.service: n käynnistäminen uudelleen epäonnistui: Yksikkö zfs-import-share.palvelua ei löydy. ”
- Vaikuttaa siltä, että minulla on ongelmia myös ZFS-ZED-palvelun kanssa lukemalla journalctl -xe: 11. elokuuta 23:03:23 debian zed [ 70734]: ZFS Event Daemon 0.6.5.9-5 (PID 70734) 11. elokuuta 23:03:23 debian zed [70734]: libzfs-tiedoston alustus epäonnistui 11. elokuuta 23:03:23 debian systemd [1]: zfs-zed.service : Pääprosessi poistunut, koodi = poistunut, tila = 1 / VIKA 11. elokuuta 23:03:23 debian systemd [1]: zfs-zed.service: Yksikkö tuli epäonnistuneeseen tilaan. 11. elokuuta 23:03:23 debian systemd [1]: zfs-zed.service: Epäonnistui tuloksella ’ exit-code ’.
- Onko tilanne muuttunut / parantunut Debian 10: n kanssa? Ja jos on, pitäisikö minun lähettää erillinen kysymys Debian 10: lle?
dkms status | grep zfs
-lähdön tulos?