Acties:
  • 0 Henk 'm!

  • willemw12
  • Registratie: Maart 2015
  • Laatst online: 22-08 20:18
zpool clear zet alleen de error count op nul, verder niets.

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
willemw12 schreef op zondag 13 augustus 2023 @ 14:26:
zpool clear zet alleen de error count op nul, verder niets.
Dus dan zou het (inderdaad) de dubbele scrub zijn geweest? Want de eerste hielp dus niet.

Of zou het iets te maken kunnen hebben met dat bv op de achtergrond nog zaken plaatsvinden na de destroy? (Snapshots die opnieuw aan elkaar geknoopt moet worden, dus 11_daily => 12_daily => 13_daily dat 11_daily => 13_daily moet worden). Waardoor het snapshot dus wel al "uit de lijst was" en daardoor niet van locatie / hex code vertaald kon worden naar een label maar wel nog in de metadata/superblocks zat. En dat bij de tweede scrub dan wel alle achtergrond werk was afgerond en dus de "fout locatie" ook verdwenen was.

Acties:
  • +1 Henk 'm!
RobertMe schreef op zondag 13 augustus 2023 @ 14:21:
[...]

code:
1
errors: No known data errors

Pfoe, dus toch. Maar clear heeft toch alleen betrekking op device errors (ook volgens de man page)? Of zou het de dubbele scrub zijn geweest? Waarbij de tweede scrub nu toevallig na een clear kwam. Error was ook pas weg toen de scrub klaar was. Na de clear was die er nog, tijdens de scrub ook nog aantal keren gekeken en was die er ook nog.
zfs destroy <snapshot> is synchrone operatie. Er is wel een async_destroy property die je kan zetten, maar die is by default false dacht ik.

Even niets...


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Hmm, blijkbaar is het toch nog steeds niet in orde. "Zomaar" een scrub gestart, zonder vooraf de status te bekijken (ook geen mail ontvangen dat iets zou zijn). Vervolgens meteen na starten de status bekijken en "al" (van nu, of eerder):
code:
1
2
3
4
5
6
7
errors: Permanent errors have been detected in the following files:

        <0x8a2f>:<0x0>
        <0x9636>:<0x0>
        <0x54cc>:<0x0>
        <0x73cc>:<0x0>
        <0xad2>:<0x0>


Waarbij de SMART data ook nog steeds pico bello is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        63 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    1%
Data Units Read:                    8,333,344 [4.26 TB]
Data Units Written:                 20,073,813 [10.2 TB]
Host Read Commands:                 50,353,712
Host Write Commands:                606,935,533
Controller Busy Time:               930
Power Cycles:                       138
Power On Hours:                     480
Unsafe Shutdowns:                   66
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               63 Celsius
Temperature Sensor 2:               66 Celsius
Thermal Temp. 2 Transition Count:   1

Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged


Toch maar eens gaan kijken wat ik hier nu weer mee ga doen... In principe kan (/wilde ik mogelijk sowieso al) ik de redundant NVME drive uit de NAS halen (mirror setup). In principe zou ik dan (middels een tweede systeem met dubbel NVME) een volledige clone kunnen doen (en niet vergeten de EFI partitie te clonen), middels een nieuwe pool en send & receive. Evt zou ik dan ook tijdelijk op die drive kunnen draaien, en als dan alles in orde zou zijn / blijven de pool recreëren op de huidige SSD. Maarja, blij wordt ik er niet van en "vertrouwen" in het systeem is momenteel ook nogal "laag" (zij het het PCtje zelf, zij het de SSD, ergens gaat toch iets serieus mis).

Edit:
En na tweede scrub is weer alles weg 8)7 (zonder clear tussendoor dus)

Edit2:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
`--> sudo zpool status -v rpool
  pool: rpool
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
  scan: scrub repaired 0B in 00:03:13 with 0 errors on Mon Aug 14 10:03:05 2023
config:

        NAME                                              STATE     READ WRITE CKSUM
        rpool                                             ONLINE       0     0     0
          nvme-Samsung_SSD_980_1TB_<knip>-part2  ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        rpool/user/<knip>@pyznap_2023-08-14_09:45:11_frequent:<0x0>


* zucht *. Dus de status van de scrub die om 10:03 was afgerond was "alles in orde" maar om 10:20 blijkt toch dat alweer iets aan de hand is...

Vanavond dus maar eens rebooten en wellicht even de SSD eruit halen en opnieuw er in zetten. Dit is naar mijn idee te random om daadwerkelijk een issue te zijn.

[ Voor 20% gewijzigd door RobertMe op 14-08-2023 10:23 ]


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Dit draadje op GitHub is wel interessant, in mijn "case".

First off: de dubbele scrub is (soms) nodig om (niet zo) permanent errors te fixen omdat zpool status de errors van van de laatste twee scrubs laat zien. Dus na de eerste scrub is het (mogelijk) wel gefixt maar laat die nog steeds de error(s) van de voorlaatste runs zien. Door nog een scrub te doen waren de laatste twee runs (mogelijk) wel zonder error en dus is de lijst dan wel leeg.

Daarnaast staan er ook wat posts m.b.t. dat deze errors optreden na een send & receive. Iets dat bij mij potentieel ook het geval is (die van vanmorgen, scrub om 10:03 afgerond zonder errors, om 10:20 wel error(s), heeft om/vanaf 10:05 een send & receive gelopen).
Daarnaast kan encryptie er ook een rol in spelen, en de twee verschillende dataset/snapshot namen die ik gezien heb zijn beiden encrypted (ZFS native encryption dus, doh).
En daar bovenop is er nog een post van iemand die de (encryptie) code aandachtig aan het bestuderen is en die blijkbaar vol bugs zit. Van (mogelijke) race conditions tot "undefined behaviour". Dus ook dat speelt er potentieel een rol in(?).

En v.w.b. "waarom nu". Dit was gisteren de eerste, maandelijkse, scrub nadat het offsite systeem een week of twee offline is geweest. Daarnaast is het offsite systeem dan opnieuw "geïnitialiseerd" doordat de HDD bad sectors had en deze door een SSD is vervangen, en ik dus from scratch ben begonnen. Mogelijk dat daardoor de send & receive net iets anders loopt.

Acties:
  • 0 Henk 'm!

  • willemw12
  • Registratie: Maart 2015
  • Laatst online: 22-08 20:18
Heb je in de dmesg output gekeken, voor hardware fouten o.i.d?

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
willemw12 schreef op maandag 14 augustus 2023 @ 21:31:
Heb je in de dmesg output gekeken, voor hardware fouten o.i.d?
Ah, jup, gisteren al gedaan. Niet heel uitgebreid maar ook niks opvallends gezien. (Als in: alleen maar messages van nftables die ik denies laat loggen en dat lijkt enige te zijn de afgelopen dagen).

En dan ook maar meteen een "update". Eerder op de avond (/eind middag) liet zpool status -v rpool wederom een error in een snapshot zien. Later op de avond, en nu nog steeds, is het "weer" met een vage hex code. Naar mijn idee dus "snapshot is verwijderd" (zal een "frequent" snapshot zijn geweest dat elke 15 minuten gemaakt wordt en er maar 6 van bewaard blijven). Als in: de eerder gelogde error zal verwijzen naar een dataset / snapshot die intussen niet meer bestaat. En waar die eerder nog de "hex code" (/verwijzing naar dataset / snapshot) kon vertalen naar een naam is die naam nu weg.

Gezien het ook elke keer gaat om inode 0x0 gaat kan ik mij dan eigenlijk ook niets anders dan indenken dat het te maken heeft met dat vage gedrag dat in de gelinkte GitHub discussie staat. (Potentieel) buggy implementatie die (soms) false flags geeft.
Enige "zorgzame" is dan de situatie van gisteren (/zaterdag) waarbij een snapshot daadwerkelijk onleesbaar was en daardoor send & receive faalde.
Waarbij ik vandaag op een gegeven moment nog gecontroleerd heb of de snapshots aan de andere kant arriveerden, wat het geval was. En dat zal ik in ieder geval komende dagen blijven doen. Naast dat ik moet kijken naar iets van monitoring / dagelijkse status mail vanaf de andere kant / ....

Acties:
  • 0 Henk 'm!

  • willemw12
  • Registratie: Maart 2015
  • Laatst online: 22-08 20:18
Een vergelijkbare issue met daarin weer links naar andere issues.

Acties:
  • 0 Henk 'm!
Wat zou dan de trigger zijn? Ik draai ZFS 2.1.11, met Encryption, en doe ook veel send/receives.
Ik doe sends vanaf een mirrored pool en vanaf een RAIDZ2 pool.

Even niets...


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
willemw12 schreef op dinsdag 15 augustus 2023 @ 09:04:
Een vergelijkbare issue met daarin weer links naar andere issues.
Dat lijkt voornamelijk upgrade gerelateerd waarbij er iets met de encryptie veranderd is? Dat in 2.1.0 iets gewijzigd is waardoor encrypted datasets vanaf 2.0 een foutmelding / mount error geven? Waarbij een send & receive een workaround lijkt te zijn (send -w & receive naar een nieuwe dataset, oude verwijderen, nieuwe hernoemen, waarna de accounting metadata in orde is, of als alternatief twee snapshots maken, incremental stream in een file zetten, rollbacken naar eerste snapshot, en dan de update stream receiven).
FireDrunk schreef op dinsdag 15 augustus 2023 @ 09:21:
Wat zou dan de trigger zijn? Ik draai ZFS 2.1.11, met Encryption, en doe ook veel send/receives.
Ik doe sends vanaf een mirrored pool en vanaf een RAIDZ2 pool.
Uhm, geen idee? Wellicht te oude ZFS versie aan de andere kant? Maar lijkt mij ook gek aangezien er geen bidirectionele communicatie is (omdat het AFAIK uberhaupt niet kan over een pipe?).

Gaat bij mij in ieder geval om een nieuw systeem, eerder dit jaar op gezet met Bookworm (toen nog "testing") en intussen ook weer (semi) up-to-date met ook zfs 2.1.11 (zowel zfs als zfs-kmod).

Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
Ik draai al jaren een server met ZFS on linux (Ubuntu server) in een RAIDZ2 opsteling met 6 schijven. Dit draait al zo lang stabiel, dat ik eingelijk helemaal weer moet inlezen nu ik wat wil gaan wijzigen. Gelukkig heeft het al die jaren mijn bestand goed beschermd en kan ik weer even bijspijkeren nu.

Recent heb ik een nieuw mobo gekocht met ruimte voor 2 nvme ssd's. Het leek me interessant om een SLOG en L2ARC aan de pool toe te voegen. Kan dit zomaar of alleen bij een nieuwe pool? Is het best practice om daar 2 ssd's voor te gebruiken of kan het ook prima met een enkele SSD.

Ik heb een SSD (WD RED van 500GB die zou ik dan zo partitioneren:
- 60GB voor boot/OS
- 16 GB voor SLOG
- 120 GB voor L2ARC.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!
@Beninho Kan altijd op latere ZFS versies, maar is vrijwel altijd zinloos.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
CurlyMo schreef op dinsdag 15 augustus 2023 @ 13:53:
@Beninho Kan altijd op latere ZFS versies, maar is vrijwel altijd zinloos.
Moest even lachen. Want dat had ik zelf inderdaad ook al 'een beetje' geconcludeerd op basis van wat ik had gelezen. 't is meer een soort whishfull thinking dat het wel iets toevoegd :9

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • +1 Henk 'm!

  • GioStyle
  • Registratie: Januari 2010
  • Laatst online: 15:56
Op mijn servertje heb ik 32GB geheugen aan ram, waarvan 24GB voor ARC. Opslagruimte is een nvme ssd van 2TB. Ik denk dat in mijn geval L2ARC toevoegen de boel juist zou vertragen. Als ik ergens nog voor een prikkie 2x32GB kan kopen, dan overweeg ik dat te doen, omdat het kan. :P

Als snelheid een 'probleem' is in een thuisomgeving, dan is meer geheugen toevoegen in mijn ogen de beste oplossing en niet L2ARC. Zeker met de huidige geheugenprijzen.

Acties:
  • +1 Henk 'm!
Beninho schreef op dinsdag 15 augustus 2023 @ 14:04:
[...]


Moest even lachen. Want dat had ik zelf inderdaad ook al 'een beetje' geconcludeerd op basis van wat ik had gelezen. 't is meer een soort whishfull thinking dat het wel iets toevoegd :9
Daarbij komt ook nog dat het pas echt goed werkt met Enterprise SSD's met een hoge QD=1 prestatie. Consumenten SSD's vinden dit soort workflows helemaal niet leuk.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
GioStyle schreef op dinsdag 15 augustus 2023 @ 14:05:
Op mijn servertje heb ik 32GB geheugen aan ram, waarvan 24GB voor ARC. Opslagruimte is een nvme ssd van 2TB. Ik denk dat in mijn geval L2ARC toevoegen de boel juist zou vertragen. Als ik ergens nog voor een prikkie 2x32GB kan kopen, dan overweeg ik dat te doen, omdat het kan. :P

Als snelheid een 'probleem' is in een thuisomgeving, dan is meer geheugen toevoegen in mijn ogen de beste oplossing en niet L2ARC. Zeker met de huidige geheugenprijzen.
Ah, gelukkig heb ik 64GB ramgeheugen geprikt afgelopen weekend. Hoe heb je dat gereserveerd als ARC? *zoekt het even op.

Ik denk dat snelheid vooral een probleem was, doordat ik op een AMD zacate boardje uit 2011 werkte tot vorige week.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • +1 Henk 'm!

  • GioStyle
  • Registratie: Januari 2010
  • Laatst online: 15:56
Beninho schreef op dinsdag 15 augustus 2023 @ 14:09:
[...]


Ah, gelukkig heb ik 64GB ramgeheugen geprikt afgelopen weekend. Hoe heb je dat gereserveerd als ARC? *zoekt het even op.

Ik denk dat snelheid vooral een probleem was, doordat ik op een AMD zacate boardje uit 2011 werkte tot vorige week.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
nano /etc/modprobe.d/zfs.conf

# Setting up ZFS ARC size on Debian
# 1GB == 1073741824 Bytes
# 2GB == 2147483648 Bytes
# 8GB == 8589934592 Bytes
# 16GB == 17179869184 Bytes
# 24GB == 25769803776 Bytes
 
# Set Max ARC size
options zfs zfs_arc_max=25769803776
 
# Set Min ARC size
options zfs zfs_arc_min=2147483648

update-initramfs -u -k all


Standaard reserveert ZFS onder Debian volgens mij de helft van het geheugen voor ARC. Ik heb deze omhoog geschroefd, omdat het OS + Dockercontainers in mijn geval meer dan genoeg hebben aan 8GB.

[ Voor 11% gewijzigd door GioStyle op 16-09-2023 21:33 ]


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
GioStyle schreef op dinsdag 15 augustus 2023 @ 14:11:
[...]

Standaard reseveert ZFS onder Debian volgens mij de helft van het geheugen voor ARC. Ik heb deze omhoog geschroefd, omdat het OS + Dockercontainers in mijn geval meer dan genoeg hebben aan 8GB.
Ja, exact, dat las ik op mijn eerste zoekactie ook. Maar fijn dat je hier een min-max kan toedienen. Ga ik daar even beginnen.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
CurlyMo schreef op dinsdag 15 augustus 2023 @ 14:06:
[...]

Daarbij komt ook nog dat het pas echt goed werkt met Enterprise SSD's met een hoge QD=1 prestatie. Consumenten SSD's vinden dit soort workflows helemaal niet leuk.
Je bedoeld zoals de intel optane's (die niet meer gemaakt worden)?

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!
Beninho schreef op dinsdag 15 augustus 2023 @ 14:28:
[...]

Je bedoeld zoals de intel optane's (die niet meer gemaakt worden)?
Bijv. de product: Intel DC S3710 2,5" of de product: Intel SSD DC S3510. Dan zie je ook direct de prijsverschillen t.o.v. consumenten SSD's :)

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
CurlyMo schreef op dinsdag 15 augustus 2023 @ 14:30:
[...]

Bijv. de product: Intel DC S3710 2,5" of de product: Intel SSD DC S3510. Dan zie je ook direct de prijsverschillen t.o.v. consumenten SSD's :)
Die S3510 zijn nog een beetje te betalen zie ik. Maar loopt idd wel lekker op t.o.v. consumentenspul.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!
Beninho schreef op dinsdag 15 augustus 2023 @ 14:34:
[...]


Die S3510 zijn nog een beetje te betalen zie ik. Maar loopt idd wel lekker op t.o.v. consumentenspul.
Ik heb als experiment een keer een paar 1.8" versies gekocht. Heeft geen enkel enig merkbaar verschil opgeleverd in mijn workflow. Boel uiteindelijk kunnen verkopen voor hetzelfde geld als dat ik ze gekocht had.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
CurlyMo schreef op dinsdag 15 augustus 2023 @ 14:37:
[...]

Ik heb als experiment een keer een paar 1.8" versies gekocht. Heeft geen enkel enig merkbaar verschil opgeleverd in mijn workflow. Boel uiteindelijk kunnen verkopen voor hetzelfde geld als dat ik ze gekocht had.
Ah helder. Ik ben blij dat ik even hier ingeheckt heb dan. Ik ga eerst even de RAM setting neerzetten, schoon OS installeren en de VM's activeren. Ik had het OS altijd nog draaien via een USB drive. Maar ik had zelfs daar geen echte issues met snelheid. Dat kwam vooral wanneer ik veel of grote bestanden moest benaderen of wat complexere software zoals nextcloud. Dan trok dat kleine cpu'tje het gewoon niet.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
CurlyMo schreef op dinsdag 15 augustus 2023 @ 14:30:
[...]

Bijv. de product: Intel DC S3710 2,5" of de product: Intel SSD DC S3510. Dan zie je ook direct de prijsverschillen t.o.v. consumenten SSD's :)
En dan ook nog MLC? En geen SLC. * RobertMe heeft toentertijd nog een van de eerste semi betaalbare SSDs gekocht, Intel, 120GB, SLC opslag. Vervolgens kwam MLC en was dat toch best wel tricky. Want toch wel wat trager door die 2 bits per cel en slijtage zou er ook hoger door worden (lees: sneller stuk). En toen kwam TLC en weer hetzelfde verhaal. En toen kwam QLC en weer hetzelfde verhaal.

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Beninho schreef op dinsdag 15 augustus 2023 @ 14:47:
[...]


Ah helder. Ik ben blij dat ik even hier ingeheckt heb dan. Ik ga eerst even de RAM setting neerzetten, schoon OS installeren en de VM's activeren. Ik had het OS altijd nog draaien via een USB drive. Maar ik had zelfs daar geen echte issues met snelheid. Dat kwam vooral wanneer ik veel of grote bestanden moest benaderen of wat complexere software zoals nextcloud. Dan trok dat kleine cpu'tje het gewoon niet.
Als je vanaf USB draaide zal dat hopelijk met een ram-disk zijn. De belabberde performance van USB merk je dan (hopelijk) niet veel van. Doordat dus alle files in RAM worden geplaatst i.p.v. elke keer van de stick lezen.

Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
RobertMe schreef op dinsdag 15 augustus 2023 @ 14:51:
[...]

Als je vanaf USB draaide zal dat hopelijk met een ram-disk zijn. De belabberde performance van USB merk je dan (hopelijk) niet veel van. Doordat dus alle files in RAM worden geplaatst i.p.v. elke keer van de stick lezen.
Nee, het was met een sata-naar usb adaptertje, eerst vanaf een hdd, later een ssd'tje.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!

  • savale
  • Registratie: Oktober 2000
  • Laatst online: 09:43
Ben een beetje aan het puzzelen met de componenten die ik heb liggen:
ryzen 5700g / 128gb ram / 10gbe
2x 16tb 7200 rpm
1x 8tb sata 870 qvo ssd
1x 2tb sata 860 pro 2tb ssd
2x 2tb 980 pro nvme
2x 2tb 970 evo plus nvme

Ik heb in totaal ongeveer 4tb nodig voor vm's / containers. Sommige vragen redelijk wat aan disk IO.
verder heb ik op dit moment ongeveer 8tb aan data welke ik wel vlot wil kunnen benaderen, maar vooral redundantie daarvan is belangrijk.

Mijn idee:
De 2x16tb in raid1 met lz4 in een eigen pool voor de data.
de 2 snelste (980 pro's) inzetten voor VM's. (zonder ZFS?)

Dan houd ik nog een hele bups aan ssd storage over: Een idee: L2ARC?
Een ander idee is om alle 2TB nvme schijven in bijvoorbeeld raidz1 te zetten. Het voordeel is dat ik dan 1 groter volume krijg met een klein beetje redundantie. Het nadeel is denk ik wel een flinke performance hit voor vm's?
Iemand ideeën?

[ Voor 86% gewijzigd door savale op 19-08-2023 01:00 ]


Acties:
  • +1 Henk 'm!

  • ph0t0nix
  • Registratie: December 2006
  • Laatst online: 25-08 09:23
Ik zou inderdaad gaan voor een mirror van de 2× 16 TB schijven. Mirrors zijn de makkelijkst te gebruiken vdevs in ZFS. Je kunt een pool met mirrors makkelijk uitbreiden door nog een mirror bij te koppelen. Je kunt (zie hieronder) bij mirrors ook makkelijk een special device toevoegen en (!) verwijderen.

Aangezien het aantal IOPS schaalt met het aantal vdevs heb je voor je VMs ook meer aan een mirror van de SSDs dan aan een RAIDZ1. (De SSDs voor VMs dus in hun eigen zpool, los van de 16TB mirror)

Waar gebruik je de 10 Gb ethernet kaart voor? Iets met schrijven via Samba of NFS? Zo ja, dan zou je op een paar SSDs een aparte partitie van een paar GB aan kunnen maken voor een SLOG. Daarmee versnel je schrijftoegang tot je spinning disk pool, aangezien NFS sync write gebruikt.

Ik zou ook zeker overwegen om een tweetal SSDs als gemirrord special device in te schakelen bij je 16TB pool. Op zo'n special device worden de metadata opgeslagen van je pool. Dus zaken als het listen van ZFS snapshots of het doen van een `find` of `ls` worden erdoor versneld. Eventueel kun je er zelfs voor kiezen (zeker omdat je 2TB SSDs hebt) om kleine blocks op zo'n special device op te slaan. Afhankelijk van de gekozen recordsize (standaard 128 kB) kun je bijvoorbeeld alle bestanden van <= 32 kB op SSDs opslaan (dit is een dataset property). Dat scheelt weer in de toegangstijd voor dit soort kleine bestanden (bijvoorbeeld bij het laden van thumbnails bij een dataset met foto's). Het is wel handig om vantevoren te kijken hoeveel kleine bestanden van een bepaalde grootte (4kB, 8kB, 16kB, 32kB, 64kB) je in je dataset hebt. Voor meer info zie bijvoorbeeld https://forum.level1techs...a-special-device-z/159954.

Noot: een special device kan, als het niet bevalt, alleen bij een mirror pool verwijderd worden, niet bij een RAIDZ pool.

Over L2ARC: dat is voor huis-, tuin- en keukenservertjes bijna nooit de moeite. Je kunt het natuurlijk altijd proberen en kijken wat je hit % is, want een L2ARC kan altijd weer uit een zpool verwijderd worden.

Acties:
  • +1 Henk 'm!

  • ph0t0nix
  • Registratie: December 2006
  • Laatst online: 25-08 09:23
@savale dit (korte) draadje op het Practical ZFS forum gaat over een vergelijkbare use case: https://discourse.practic...l-vdev-for-containers/662

Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
Hallo ZFSsertjes,

Eens even een vraag over dit bord:
uitvoering: ASUS Pro B550M-C/CSM
Dat twee M2 slots heeft: M.2 (PCI-e 3.0 x4 + SATA), M.2 (PCI-e 4.0 x4 + SATA)

Nou is die PCIe 4.0 een keer zo snel als het 3.0 slot.
Hoe werk zicht dit uit op de snelheid als ik hier met 2 repen een ZFS mirror op zou draaien?

Wie du mir, so ich dir.


Acties:
  • +1 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
eheijnen schreef op zaterdag 26 augustus 2023 @ 10:42:
Hallo ZFSsertjes,

Eens even een vraag over dit bord:
uitvoering: ASUS Pro B550M-C/CSM
Dat twee M2 slots heeft: M.2 (PCI-e 3.0 x4 + SATA), M.2 (PCI-e 4.0 x4 + SATA)

Nou is die PCIe 4.0 een keer zo snel als het 3.0 slot.
Hoe werk zicht dit uit op de snelheid als ik hier met 2 repen een ZFS mirror op zou draaien?
Schrijven wordt sowieso altijd naar beide gedaan en is pas "akkoord" als dat naar beide gedaan is. Dus schrijven kan nooit sneller dan de langzaamste disk.
Hoe het met lezen zit durf ik niet te zeggen. Idealiter leest die van beiden en retourneert de eerste response, echter wil je waarschijnlijk wel dat die dan van beiden de data valideert (om silent bitrot te voorkomen op de "trage" disk die dan nooit gevalideerd zou worden). Daarnaast kan het zijn dat ZFS afwisselend van een van beide leest (en IO load dus verdeeld en sneller kan lezen dan de snelste disk). Maar ook daarbij, hoe zit het dan met checksumming? Mogelijk dus dat die altijd van beide disks leest, van beiden het antwoord valideert (checksumming en onderling) en vervolgens pas het antwoord geeft? Waarmee de leessnelheid dus zo snel als de traagste disk is.

Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
@RobertMe
Ja, wat ik er nu nog van gelezen heb is het gestaafd op een raid1 mirror implementate.
Waarbij van twee schijven word gelezen. Dat zou uitsluiten dat ZFS een schijf boven de andere zal prefereren op basis van snelheid.

Zou dus bij een gelijke verdeling van de leesopdrachten een gedeeltelijke snelheids winst opleveren.

Wie du mir, so ich dir.


Acties:
  • +1 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 13-09 18:54
RobertMe schreef op zaterdag 26 augustus 2023 @ 11:00:
[...]

echter wil je waarschijnlijk wel dat die dan van beiden de data valideert (om silent bitrot te voorkomen op de "trage" disk die dan nooit gevalideerd zou worden).
Daarvoor heb je toch je scrubs?

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • +1 Henk 'm!
RobertMe schreef op zaterdag 26 augustus 2023 @ 11:00:
[...]
Mogelijk dus dat die altijd van beide disks leest, van beiden het antwoord valideert (checksumming en onderling) en vervolgens pas het antwoord geeft? Waarmee de leessnelheid dus zo snel als de traagste disk is.
Nee, de leessnelheid wordt bij ZFS ook verhoogd bij RAID1 net als bij andere RAID1 implementaties. Zie o.a. https://serverfault.com/a/676980 die weer doorlinkt naar de ZFS documentatie.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
CurlyMo schreef op zaterdag 26 augustus 2023 @ 12:19:
[...]

Nee, de leessnelheid wordt bij ZFS ook verhoogd bij RAID1 net als bij andere RAID1 implementaties. Zie o.a. https://serverfault.com/a/676980 die weer doorlinkt naar de ZFS documentatie.
Klopt,
Als de checksum klopt is de read valide anders wordt ie nog eens van de andere disk getrokken...

Wie du mir, so ich dir.


Acties:
  • +1 Henk 'm!

  • player-x
  • Registratie: Mei 2002
  • Laatst online: 03:38

player-x

Disruptive by design

eheijnen schreef op zaterdag 26 augustus 2023 @ 10:42:
Nou is die PCIe 4.0 een keer zo snel als het 3.0 slot.
Hoe werk zicht dit uit op de snelheid als ik hier met 2 repen een ZFS mirror op zou draaien?
Afhankelijk of het een server of een werk/gamePC is.

Is het een server, maakt de snelheid dan wat uit?, want dan zit je met de 1 of 10Gbit netwerk snelheid als belemmering, de toegangstijd blijft gelijk onder zowel PCIe 3.0 als 4.0.

Is het een PC dan haal je max de snelheid van PCIe 3.0, tenzij je een bord neemt met twee gedeelde PCIe x16 sloten, die 1x PCIe x16 of 2x PCIe x8 kunnen doen.

Dan zou een Dual NVMe PCIe Adapter een optie kunnen zijn, mits dat bord wel 'PCIe Bifurcation' ondersteund.

Bordje werkt perfect in mijn PC, heb op dat bordje 2x NVMe voor mijn werk, program en game files in raid 0, om als een grotere schijf te hebben, met als bonus hogere doorvoer.

[dislectie] hoeveel forum deelnemers heb je nodig om een peertje te vervangen ?


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
@player-x
Gigabit krijg je met HDDs wel ongeveer verzadigd.
Gaat hier niet voor de netwerkdoorvoer, maar met het oog op zware interne doorvoer.
Met 4.0 kom je (grofweg) op 10 x SDD snelheid en 2 x tov. 3.0

Een 4.0 mirror lijkt me een goede zet.

Denk niet dat je een dual 4.0 NVME adapter nodig hebt maar al een enkele genoeg is. Dat weer gecombineerd met de onboard 4.0. Dan sla je bifurcation/multiplexing tussen twee drives binnen dezelfde mirror over.

Dan zou je aan deze rakker al eens genoeg kunnen hebben:
uitvoering: Savio AK-41 - PCI-E to M2 NVME Adapter M-KEY

Wie du mir, so ich dir.


Acties:
  • 0 Henk 'm!
Het verschil tussen PCIe 3.0 en 4.0 (beide x4) is vrijwel niet merkbaar. Kan je prima doen.
De snelheden die je met ZFS op NVMe haalt zijn toch vaak niet 'wire-speed', dus boeit het weinig.

Even niets...


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
@FireDrunk
Maar als ik dan kijk naar deze twee waarvan een 4.0 kan en de andere 3.0.
Op welke hardware komt een 980 dan wel tot zijn recht?

Wie du mir, so ich dir.


Acties:
  • +1 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

eheijnen schreef op maandag 28 augustus 2023 @ 10:12:
Denk niet dat je een dual 4.0 NVME adapter nodig hebt maar al een enkele genoeg is. Dat weer gecombineerd met de onboard 4.0. Dan sla je bifurcation/multiplexing tussen twee drives binnen dezelfde mirror over.
Bifurcation 'overslaan' is geen ding: het is letterlijk opdelen van een PCIe-aansluiting over meerdere apparaten.

Acties:
  • 0 Henk 'm!
eheijnen schreef op maandag 28 augustus 2023 @ 10:27:
@FireDrunk
Maar als ik dan kijk naar deze twee waarvan een 4.0 kan en de andere 3.0.
Op welke hardware komt een 980 dan wel tot zijn recht?
ZFS is niet echt geoptimaliseerd voor NVMe drives. Als je echt volle bak performance wil, is het beter om geen ZFS te gebruiken. ZFS is geen snelheidsmonster, maar een enterprise stabiel filesystem bedoeld voor proffesioneel gebruik.

Dat wil niet zeggen dat het niet kan op NVMe (ik draai zelf ook een mirror op NVMe drives icm ZFS), maar je moet er geen miljoenen IOPS van verwachten.

Ik haal tijdens een scrub ~1GB/s

199G scanned at 6.42G/s, 28.2G issued at 933M/s, 199G total

CPU belasting is dan ongeveer 1.5 core vol belast.
Of dat genoeg is, moet je voor jezelf bepalen.

Even niets...


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
dcm360 schreef op maandag 28 augustus 2023 @ 10:33:
[...]

Bifurcation 'overslaan' is geen ding: het is letterlijk opdelen van een PCIe-aansluiting over meerdere apparaten.
Dan kun je met bifurcation van twee individuele disks simultaan de maximum snelheid halen?
Of is dit nog afhankelijk van de adapter zelf?

Wie du mir, so ich dir.


Acties:
  • +1 Henk 'm!
Bifurcation zorgt er voor dat je meer apparaten op 1 PCIe slot aan kan sluiten.
Zie het als een USB Hub, maar dan voor PCIe.

Als je een x16 slot dmv bifuration opdeelt, kan je bijvoorbeeld (maar niet altijd), 1 poort van x8 en 2 poorten van x4 maken.

Dan kan je over die poorten de maximale snelheid halen.

Even niets...


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
FireDrunk schreef op maandag 28 augustus 2023 @ 10:54:
[...]

ZFS is niet echt geoptimaliseerd voor NVMe drives. Als je echt volle bak performance wil, is het beter om geen ZFS te gebruiken. ZFS is geen snelheidsmonster, maar een enterprise stabiel filesystem bedoeld voor proffesioneel gebruik.

Dat wil niet zeggen dat het niet kan op NVMe (ik draai zelf ook een mirror op NVMe drives icm ZFS), maar je moet er geen miljoenen IOPS van verwachten.

Ik haal tijdens een scrub ~1GB/s

199G scanned at 6.42G/s, 28.2G issued at 933M/s, 199G total

CPU belasting is dan ongeveer 1.5 core vol belast.
Of dat genoeg is, moet je voor jezelf bepalen.
Daar heb ik idd nog wat over gelezen gisteren. Dat er nog aan gewerkt wordt om ZFS ook beter op NVME disks tot zijn recht te laten komen.

Wie du mir, so ich dir.


Acties:
  • +2 Henk 'm!

  • Paul
  • Registratie: September 2000
  • Laatst online: 15:32
FireDrunk schreef op maandag 28 augustus 2023 @ 10:57:
Bifurcation zorgt er voor dat je meer apparaten op 1 PCIe slot aan kan sluiten.
Zie het als een USB Hub, maar dan voor PCIe.
Met dien verstande dat het alleen lanes split, terwijl je op een hub meer apparaten aan kan sluiten. Op één US-bus kun je (ff uit mijn hoofd) 127 apparaten aansluiten, maar op één PCIe-lane kun je maar één apparaat aansluiten. Je 16-lane slot kun je dus opknippen naar 16 x 1, 8 x 2, 4 x 4, 2 8 of een combinatie, zolang het totaal niet boven de 16 uitkomt.

Iedere lane behoudt de snelheid, ook bij simultaan gebruik (want 1:1 koppeling), alleen heb je per apparaat uiteraard minder lanes beschikbaar. Aangezien een SSD maximaal 4 lanes kan gebruiken kun je een 16x slot dus bifurcaten naar 4x4 en alle vier de SSD's met maximale snelheid en maximale aantal lanes bedienen.

In principe staat dit los van de adapter, maar je adapter moet dan wel daadwerkelijk 4 lanes naar het M2-slot sturen; een adapter met 8 sloten zal naar ieder slot maar 2 lanes sturen.

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Acties:
  • 0 Henk 'm!
Klopt helemaal, de analogie met USB Hubs gaat een beetje mank.
Ook ondersteund niet elk bord alle vormen van Bifurcation.

De veelgebruikte Fujitsu D3644 doet dacht ik alleen x8/x4/x4.

Even niets...


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
Paul schreef op maandag 28 augustus 2023 @ 11:56:
[...]
In principe staat dit los van de adapter, maar je adapter moet dan wel daadwerkelijk 4 lanes naar het M2-slot sturen; een adapter met 8 sloten zal naar ieder slot maar 2 lanes sturen.
Is 16 dan de max voor een 16x slot of zijn er nog technieken om daar overheen te gaan.
(snelheid even buiten beschouwing gelaten)

Wie du mir, so ich dir.


Acties:
  • 0 Henk 'm!
Ja, maar niet met Bifurcation, dan heb je een PCIe Switch nodig.

Soms ook wel een PLX Chip genoemd.

Die krengen zijn duur en vreten vaak energie helaas :/

[ Voor 22% gewijzigd door FireDrunk op 28-08-2023 12:46 ]

Even niets...


Acties:
  • +1 Henk 'm!

  • GioStyle
  • Registratie: Januari 2010
  • Laatst online: 15:56
Kaspers schreef op zaterdag 5 augustus 2023 @ 18:31:
[...]


Jep, het is idd prachtig.
Hier mijn script, wat dagelijks via een systemd timer wordt afgetrapt.
Via wake-on-lan wordt de target eerst gewekt. Na de backup wordt de target weer in suspend gezet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/sh

set -e
# Any subsequent(*) commands which fail will cause the shell script to exit immediately

echo "Waking up backup.lan via WoL"
wakeonlan <mac:ad:res>
echo "Wait 10 seconds"
sleep 10

#target:
USER=koos
HOST=backup.lan

# alleen datasets opnemen waarvan ook daadwerkelijk backups worden gemaakt. dus skip bijvoorbeeld zfspool/koos!
echo "Sending snapshots of koos/configuration"
syncoid --no-sync-snap  zfspool/koos/configuration $USER@$HOST:zfspool2/koos/configuration  --no-privilege-elevation
echo "Sending snapshots of koos/documents"
syncoid --no-sync-snap  zfspool/koos/documents     $USER@$HOST:zfspool2/koos/documents  --no-privilege-elevation
echo "Sending snapshots of koos/home"
syncoid --no-sync-snap  zfspool/koos/home          $USER@$HOST:zfspool2/koos/home  --no-privilege-elevation
echo "Sending snapshots of koos/kubernetes"
syncoid --no-sync-snap  zfspool/koos/kubernetes    $USER@$HOST:zfspool2/koos/kubernetes  --no-privilege-elevation
echo "Sending snapshots of koos/macbook"
syncoid --no-sync-snap  zfspool/koos/macbook       $USER@$HOST:zfspool2/koos/macbook  --no-privilege-elevation
echo "Sending snapshots of koos/photos"
syncoid --no-sync-snap  zfspool/koos/photos        $USER@$HOST:zfspool2/koos/photos  --no-privilege-elevation
echo "Sending snapshots of koos/videos"
syncoid --no-sync-snap  zfspool/koos/videos        $USER@$HOST:zfspool2/koos/videos  --no-privilege-elevation
echo "Sending snapshots of koos/books"
syncoid --no-sync-snap  zfspool/koos/books         $USER@$HOST:zfspool2/koos/books  --no-privilege-elevation
echo "Sending snapshots of koos/zfsmngmnt"
syncoid --no-sync-snap  zfspool/koos/zfsmngmnt     $USER@$HOST:zfspool2/koos/zfsmngmnt  --no-privilege-elevation
echo "Finished sending snapshots to $HOST"
echo "Suspending $HOST"
#now suspend the backup target:
ssh koos@backup.lan -t 'sudo systemctl suspend'
echo "Done."


Systemd service:
code:
1
2
3
4
5
6
7
[Unit]
Description=Run syncoid
OnFailure=email-notification@%i.service

[Service]
Type=simple
ExecStart=/zfspool/koos/configuration/storage-server/syncoid/backup.sh


Zoals je ziet: bij een failure word ik via een email hierop geattendeerd:

code:
1
2
3
4
5
6
[Unit]
Description=%i failure email notification 

[Service]
Type=oneshot
ExecStart=/bin/bash -c ' ( echo "Subject: [%i] failure notification" & /bin/systemctl status %i ) | ssmtp -vvv koos@kaspe.rs -f root@storage '
Zonder al teveel details weg te geven wil ik even vermelden dat ik bovenstaande script heb aangepast naar mijn smaak en wensen en het werkt hier ook prima. _/-\o_

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
RobertMe schreef op zondag 13 augustus 2023 @ 12:53:
Ik kreeg net een mailtje waar ik minder blij van werd, namelijk Zed.

Scrub waarbij er op de rpool (Samsung 980, non Pro) errors waren opgetreden. zpool status -v rpool melde 17 errors, waarvan 16x alleen maar hex codes en 1x verwijzing naar een snapshot. Vervolgens weer een scrub gedaan en bleef alleen het snapshot over. Nog een scrub en wederom alleen het snapshot. Oftewel:
code:
1
2
3
errors: Permanent errors have been detected in the following files:

        rpool/user/<knip>@pyznap_2023-08-12_00:00:02_daily:<0x0>

Gevoelsmatig is dit een "stale" error die ik zou moeten kunnen clearen (zpool clear) en klaar? Alleen beetje gek dan dat die andere errors (die ik dus niet meer bij de hand heb) ineens weg zijn.

Scrub heeft (blijkbaar) ook overdag gedraaid terwijl er wat CPU intensieve zaken liepen. Dus ik gok dat er daardoor "kortsluiting" is ontstaan. Systeempje is ook maar een no-name Chinese mini PC met N5105. Dus kwaliteit wellicht net wat minder.
Ik zit intussen nog steeds met dit issue :X Op een gegeven moment wel uitgesloten dat het niet ligt aan de backup kant, want ook mijn on-side backup naar "de grote bak" triggert dit issue. Nu wel eens de "hack" gedaan met snapshot => snapshot => send --raw -i @1@2 > /tmp/... => rollback -r @1 => zfs receive -F -v ... < /tmp/... (bron). En "leuk" genoeg: de lijst aan snapshots van "mijn" dataset heeft van vandaag allemaal snapshots met "Used: 0B". Behalve die "restored" snapshot (dus de tweede), die is 8K. Dus het lijkt wel alsof daar iets in zit terwijl de daadwerkelijke data dus niet veranderd is (vantevoren is het ook 0B, en na rollback => receive dus 8K).
Hopelijk dus dat "het werkt". Moet ik alleen weer wat actiever gaan monitoren. Had nu wel een lijstje met errors maar allemaal met de hex verwijzingen, van intussen dus verwijderde snapshots. Dus dan weet ik niet of de error in "mijn" dataset zat of in een van de andere. Dus weer beetje opletten of "mijn" dataset geen errors (meer) geeft (heb ik wel gezien, dat ook "mijn" dataset de error gaf).

Edit:
Na het destroyen van het snapshot (/beide snapshots) is die 8K used als sneeuw voor de zon verdwenen (uiteraard had ik verwacht dat die in het latere (frequently) snapshot zou belanden).

[ Voor 4% gewijzigd door RobertMe op 05-09-2023 22:43 ]


Acties:
  • 0 Henk 'm!

  • glaswerk
  • Registratie: Oktober 2004
  • Laatst online: 13-09 23:47
Vraag: ik draai een homeservertje (Home Assistant, DNS, e-mail, web, mediaserver, cloudserver), met een 1TB nvme SSD werkschijf waarop ik tot nu toe alles kwijt kan (OS, progs, audio, foto's, video's).

Servertje (Pentium Gold 6405, 16GB) draait Ubuntu server headless 22.04. Voor backup heb ik o.a. Nextcloud versioning, Duplicity naar een offsite NAS, en een local RAID1 2x1TB USB HDD, die ik af en toe handmatig aanzwengel en rsync.

Maar backups, zeker van eigen foto's en video's, heb je nooit genoeg. Dus heb ik met de huidige bodemprijzen een 2TB SATA SSD bijgekocht, die ik in de server bij wil pluggen als online backup, liefst met gemakkelijke versioning die ik (vanuit een bash-shell?) kan beheren en restoren, indien nodig.

Stap 1 is kijken welk filesystem, en daarom ben ik hier. Is ZFS een filesystem dat zich leent voor mijn doeleinden en mijn setup, en waar ik eens goed naar moet kijken? Of zeggen jullie hier "Hou maar op, verkeerde tool, dat wordt pas interessant bij (bijvoorbeeld) multiple disks"?

Dank!

Acties:
  • +2 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
glaswerk schreef op zaterdag 9 september 2023 @ 18:26:
Vraag: ik draai een homeservertje (Home Assistant, DNS, e-mail, web, mediaserver, cloudserver), met een 1TB nvme SSD werkschijf waarop ik tot nu toe alles kwijt kan (OS, progs, audio, foto's, video's).

Servertje (Pentium Gold 6405, 16GB) draait Ubuntu server headless 22.04. Voor backup heb ik o.a. Nextcloud versioning, Duplicity naar een offsite NAS, en een local RAID1 2x1TB USB HDD, die ik af en toe handmatig aanzwengel en rsync.

Maar backups, zeker van eigen foto's en video's, heb je nooit genoeg. Dus heb ik met de huidige bodemprijzen een 2TB SATA SSD bijgekocht, die ik in de server bij wil pluggen als online backup, liefst met gemakkelijke versioning die ik (vanuit een bash-shell?) kan beheren en restoren, indien nodig.

Stap 1 is kijken welk filesystem, en daarom ben ik hier. Is ZFS een filesystem dat zich leent voor mijn doeleinden en mijn setup, en waar ik eens goed naar moet kijken? Of zeggen jullie hier "Hou maar op, verkeerde tool, dat wordt pas interessant bij (bijvoorbeeld) multiple disks"?

Dank!
Alleen het feit dat ZFS alles doet checksummen maakt het al interessant voor opslag van zaken die je niet wilt verliezen. Dat garandeert in ieder geval dat bitrot gedetecteerd wordt (maar met single disk niet hersteld kan worden natuurlijk*). Maar uiteraard moet je daarvoor periodiek alle bestaande lezen (wat een " zpool scrub" voor je kan doen).

Daarnaast zou je jezelf met snapshots kunnen beschermen tegen "per ongeluk verwijderen", waarbij je uit het snapshot de bestanden terug kunt halen.

Wil je meerdere backups hebben zou je dat weer kunnen inregelen met een zfs send & receive. Dan kun je het hele "filesystem" over zetten middels de snapshots. Waarbij die ook redelijk efficiënt is doordat ZFS weet wat veranderd is op filesystem niveau tussen de snapshots. Andere kant hoeft daarbij ook geen ZFS filesystem te zijn, doordat "zfs send" een stream oplevert die je ook als een bestand kunt opslaan. Later kun je vanaf het bestand dan weer een "zfs receive" doen.

Owja, en met ZFS native encryption kun je er voor zorgen dat de data encrypted at rest is. Dus mocht de HDD gestolen worden kan de data niet gelezen worden (tenzij de key op de disk staat in een onversleuteld bestand).

* tenzij je ergens een propterty instelt dat elk bestand 2, 3, ... keer opgeslagen moet worden

Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
Ben benieuwd naar de ervaringen van mensen hier die een upgrade van Debian 11 naar 12 hebben gedaan en daarin hun ZFS pools 1-op-1 hebben meegenomen.

Zijn daar eigenaardigheden bij naarvoren gekomen vwb ZFS?
Of verliep alles gladjes?

Wie du mir, so ich dir.


Acties:
  • +1 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 15:39
eheijnen schreef op zondag 10 september 2023 @ 09:46:
Ben benieuwd naar de ervaringen van mensen hier die een upgrade van Debian 11 naar 12 hebben gedaan en daarin hun ZFS pools 1-op-1 hebben meegenomen.

Zijn daar eigenaardigheden bij naarvoren gekomen vwb ZFS?
Of verliep alles gladjes?
Ik geloof dat het redelijk gladjes verliep. M'n geheugen laat wel wat te wensen over, want ik had wel een paar keer rond die tijd dat ik bij een reboot problemen had - wat veroorzaakt werd, vermoed ik, door een kernel-upgrade terwijl ik package linux-headers-amd64 niet (meer?) geinstalleerd had. Da's dacht ik nodig om de ZFS modules te kunnen gebruiken. Dus misschien even voor de upgrade (en wellicht vlak voor de reboot) kijken of je die nog hebt.

Acties:
  • +1 Henk 'm!
eheijnen schreef op zondag 10 september 2023 @ 09:46:
Ben benieuwd naar de ervaringen van mensen hier die een upgrade van Debian 11 naar 12 hebben gedaan en daarin hun ZFS pools 1-op-1 hebben meegenomen.

Zijn daar eigenaardigheden bij naarvoren gekomen vwb ZFS?
Of verliep alles gladjes?
Ging vlekkeloos hier.

Even niets...


Acties:
  • 0 Henk 'm!

  • bertp1
  • Registratie: Maart 2011
  • Niet online
Ik draai al jaren stabiel een FreeNas/TrueNas server zonder problemen. Een tijdje terug liep deze echter vol, waarna ik de HDD's ben beginnen vervangen door nieuwe (4x4TB -> 4x10TB, met 1 redundante schijf).

Ik heb de disks 1 voor offline gehaald en vervangen, elke keer met een resilver getriggered door de "replace disk" actie in Truenas. Alle disks zijn gechecked voor SMART errors en ok bevonden.

Bij het resilveren van de derde disk liep het echter fout; plots was m'n pool status "degraded". Eerst enkel die disk, dan een 2de en ondertussen alle disks (heb ook de 4de vervangen nadat de vorige resilver voltooid was).

Ik heb wat gegoogled, maar ik vind meer over SMART errors dan echte "degraded" disks. Van wat ik begrijp, zou een resilver moeten helpen. Kan me ook moeilijk voorstellen dat al die disks ineens slecht zijn (zijn NAS geschikte disks, nieuw).
Iemand een idee?

Afbeeldingslocatie: https://tweakers.net/i/gESiDLDg4ySR3iLh1F48f0VaPEI=/800x/filters:strip_exif()/f/image/roTjPZoMhbsfF5chedVMfyl6.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/YwvNbwsjlaNJwJs5JDfRZ9Da4xg=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/WHEFEG2vlG5rvhEsmfjtJMHS.png?f=user_large

Acties:
  • 0 Henk 'm!
Als je een goede disk er uit haalt en daarna pas een replace doet, klopt het dat de pool degraded is. Je mist immers een disk...
Na de resilver gaat dat weer weg.

Even niets...


Acties:
  • +1 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
FireDrunk schreef op dinsdag 12 september 2023 @ 18:50:
Als je een goede disk er uit haalt en daarna pas een replace doet, klopt het dat de pool degraded is. Je mist immers een disk...
Na de resilver gaat dat weer weg.
Maar als je eerst A, B, C en D hebt, vervolgens A vervangt door A' en een resilver laat doen, vervolgens als je dus A', B, C, D hebt B vervangt door B' etc dan kan het toch niet dat die bij C vervangen door C' ineens ook A' & B' op degraded zet? Terwijl dat is wat er gebeurt bij @bertp1 als ik het goed lees.

Of heeft @bertp1 niet netjes gewacht tot elke resilver klaar is? Maar dan had die al er uit moeten vliegen bij het vervangen van B. Immers is het een RAIDZ1 pool die dus maar beschermd tegen uitval van 1 disk.

@bertp1, het doen van een replace van een disk met zowel de "oude" als de nieuwe/lege in het systeem is IMO sowieso aan te bevelen. Als je de oude uit het systeem haalt moet ZFS de data echt gaan herberekenen wat een nogal zware operatie is. Of in ieder geval veel zwaarder dan kinda één op één de data van de oude disk kopiëren naar de nieuwe dat gedaan zal worden als beide nog in het systeem zitten. Daarnaast stel je je in de situatie met oude verwijderen en nieuwe plaatsen bloot aan een risico van een daadwerkelijk corrupte pool als tijdens de resilver een andere disk faalt. Immers heb je maar single redundancy en maak je daar gebruik van vanaf het moment dat je de oude schijf verwijderd, nog een falende disk en daarvoor heb je geen redundancy. Terwijl je het makkelijk kunt voorkomen door tijdelijk beide disks aangesloten te hebben. (Uiteraard onder voorwaarde dat je zoveel SATA aansluitingen hebt, maar desnoods kun je tijdelijk met een goede externe HDD behuizing / dock werken)

Acties:
  • 0 Henk 'm!
Hij zei 1 voor 1 offline gehaald. Dat interpreteer ik als, eerst disk er uit, daarna nieuwe disk er in. Verder heb je gelijk.

Even niets...


Acties:
  • 0 Henk 'm!

  • bertp1
  • Registratie: Maart 2011
  • Niet online
Ik heb inderdaad altijd een goede disk eruit gehaald, nieuwe erin, replace, resilver. Daarna pas aan de volgende disk begonnen. Dus als er tijdens het resilveren data corruptie optreedt, heb ik geen redundantie meer.
Dat ik een schijf kon vervangen zonder die eruit te halen, wist ik niet. Zal het volgende keer zo doen dan.

Hoe dan ook is mn pool nu "degraded". Wat kan ik doen om die situatie op te lossen? Ik heb de oude schijven nog.

[ Voor 3% gewijzigd door bertp1 op 12-09-2023 19:23 ]


Acties:
  • 0 Henk 'm!
Hij is nog aan het resilveren. Daarna zou hij weer healthy moeten worden.

Even niets...


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
bertp1 schreef op dinsdag 12 september 2023 @ 19:21:
Hoe dan ook is mn pool nu "degraded". Wat kan ik doen om die situatie op te lossen? Ik heb de oude schijven nog.
Ik vermoed dat je met die oude disks niks meer kunt. Die zijn immers uit de pool gehaald (en de data zal (mogelijk) veranderd zijn). Wil je deze disks weer gebruiken zul je ze effectief weer met een replace moeten toevoegen en daarbij zal niet gezien worden dat ze (voorheen) onderdeel van de pool waren (disk identifier in de metadata zal niet matchen met (een van de) disks die in de metadata van de pool staan als zijnde "deze disks zitten in de pool". Dus de pool zegt nu dat die uit A', B', C' en D bestaat. Dus als je disk A aansluit wordt die niet meer herkent).
FireDrunk schreef op dinsdag 12 september 2023 @ 19:26:
Hij is nog aan het resilveren. Daarna zou hij weer healthy moeten worden.
Maar horen dan 3/4 disks op degraded te staan? In combinatie met (uniek aantal) checksums op elke disk? Dat vind ikzelf wel raar staan zo.
De hoeveelheid checksum errors heb ik idd overheen gekeken. Dat klinkt niet goed.

Even niets...


  • bertp1
  • Registratie: Maart 2011
  • Niet online
Straf is ook dat ik voorlopig geen kapotte files ed kan vinden...
Is er een manier om gewoon de checksums te herberekenen adhv de data die er nu is? Dat gewoon alle errors gereset zijn en ik achteraf wel uitvindt waar ik iets kwijt ben... Dan weet ik tenminste of het erger word of niet.

Acties:
  • +2 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
bertp1 schreef op woensdag 13 september 2023 @ 23:03:
Straf is ook dat ik voorlopig geen kapotte files ed kan vinden...
Is er een manier om gewoon de checksums te herberekenen adhv de data die er nu is? Dat gewoon alle errors gereset zijn en ik achteraf wel uitvindt waar ik iets kwijt ben... Dan weet ik tenminste of het erger word of niet.
scrub, status en clear zijn dan je vrienden.
Ik zou eerst een scrub doen zodat alles gelezen (en herberekend) wordt. Met status vervolgens controleren of er fouten zijn ontdekt (met -v kun je evt ook zien welke files corrupt zijn). En als er geen fouten zijn met clear de error counters (van de disks) op 0 zetten. Eventueel daarna nog eens scrubben om nogmaals te verifiëren dat er geen fouten zijn, en de counters van de schijven ook op 0 blijven staan.

  • bertp1
  • Registratie: Maart 2011
  • Niet online
Merci, maar het wordt alleen maar erger...

Afbeeldingslocatie: https://tweakers.net/i/3y3clyDPUWG7xFE0QpwjDCRagEs=/800x/filters:strip_exif()/f/image/wo2mEHm1yf3dCirvRwJnYSIH.png?f=fotoalbum_large

Kabels eens opnieuw inpluggen?
Oei, das wel onhandig inderdaad. Kabels nalopen kan geen kwaad nee.

Even niets...


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
Ik heb vandaag 6 verse 14TB (WD-ultrastrar) schijven in mijn nieuwe servertje gestoken. Het is de bedoeling om weer een RAIDZ2 pool te maken.

In mijn vorige setup had ik eerst alligment toegepast op basis van de input van @FireDrunk's blog (+2M en -200M) voor 2TB. Nu heb ik inmiddels gelezen dat dit niet (meer) nodig is. Alleen wil ik eigenlijk wel /dev/disk/by-partlabel toepassen zodat ik gemakkelijk op basis van serienummer een schijf kan vervangen indien nodig.

Ik ben een beetje lost wat hiermee nu best practice is. Hoe pakken jullie dit tegenwoordig op?

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • +1 Henk 'm!
Ik gebruik nog steeds zelfgemaakte GPT labels met serienummers er in.

Even niets...


Acties:
  • +2 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Bij de, geshuckte, WDs die ik heb zit het serienummer ook in het id, van /dev/disk/by-id. Dat vind ik prima werken.

Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
FireDrunk schreef op zaterdag 28 oktober 2023 @ 21:06:
Ik gebruik nog steeds zelfgemaakte GPT labels met serienummers er in.
Helder, en de uitlijning doe je dan ook nog gewoon?
RobertMe schreef op zaterdag 28 oktober 2023 @ 22:02:
Bij de, geshuckte, WDs die ik heb zit het serienummer ook in het id, van /dev/disk/by-id. Dat vind ik prima werken.
Ja, zo had ik mijn eerste pool ook gemaakt, volgens mij stonden vroeger in de WD-Green en Red's ook gewoon de serienummers erin.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!
Beninho schreef op zondag 29 oktober 2023 @ 08:30:
[...]


Helder, en de uitlijning doe je dan ook nog gewoon?
Zou ik even moeten checken, maar volgens mij heb ik wel de offset, maar niet de ruimte aan het einde. Die is niet meer nodig omdat er inmiddels een standaard is tussen fabrikanten over de grootte van disks.

Even niets...


Acties:
  • +1 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
@Beninho
Die serienummers staan er al:
Voorbeeld van een zfs miror.
Waarbij 21FYKZKAS het serienummer van een van de schijven is.

Bash:
1
2
3
4
5
6
7
8
ls /dev/disk/by-id/*T*

/dev/disk/by-id/ata-TOSHIBA_HDWD120_21FYKZKAS -> ../../sda
/dev/disk/by-id/ata-TOSHIBA_HDWD120_21FYKZKAS-part1 -> ../../sda1
/dev/disk/by-id/ata-TOSHIBA_HDWD120_21FYKZKAS-part9 -> ../../sda9
/dev/disk/by-id/ata-TOSHIBA_HDWD120_21FYLJNAS -> ../../sdc
/dev/disk/by-id/ata-TOSHIBA_HDWD120_21FYLJNAS-part1 -> ../../sdc1
/dev/disk/by-id/ata-TOSHIBA_HDWD120_21FYLJNAS-part9 -> ../../sdc9


Met "zpool status" kun je die strings (ata-TOSHIBA_HDWD120_21FYKZKAS) ook zien.

Ook bij VMs kun je zelf een serienummer invullen of een soort van unieke string waarmee je de disk kunt identifceren op deze manier.

Wie du mir, so ich dir.


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
@eheijnen check, ik zie het, bij deze ultrastars ook in beeld bij ls /dev/disk/by-id/*T* @FireDrunk is de +2M voldoende voor het begin. Ik vind het wel overzichtelijk om die partlabels te gebruiken. Dan moet ik toch gewoon handmatig met gdisk even een partitie per disk aanmaken?

[ Voor 3% gewijzigd door Beninho op 29-10-2023 14:44 ]

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
@Beninho
Als er iets met je zfs volume aan de hand is dan heeft dat misschien iets met een partitie te maken maar niet per sé. Het serienummer is hard en daarmee is ook de schijf op zich te vinden als die vervangen moet worden. Ga je labels gebruiken zul je een aparte "administratie" moeten bijhouden....

Wie du mir, so ich dir.


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
@eheijnen Das waar. Misschien denk ik er te moelijk over.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • +1 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
@Beninho
Dat is de voor de hand liggende manier.
Maar als jjij dat graag wil doen op jouw manier dan doe je dat.

Wie du mir, so ich dir.


Acties:
  • +2 Henk 'm!
Ik heb het even opgezocht, ik heb zelfs niet eens meer manueel partities gemaakt bij mijn laatste pool.

root@nas:~# zpool status
  pool: abzu
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
	The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
	the pool may no longer be accessible by software that does not support
	the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 00:05:26 with 0 errors on Sun Oct  8 00:29:27 2023
config:

	NAME                                                STATE     READ WRITE CKSUM
	abzu                                                ONLINE       0     0     0
	  mirror-0                                          ONLINE       0     0     0
	    nvme-Samsung_SSD_980_1TB_S649NF1R815995R-part1  ONLINE       0     0     0
	    nvme-Samsung_SSD_980_1TB_S649NF1R816771L-part1  ONLINE       0     0     0

errors: No known data errors

  pool: shenron
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
	The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
	the pool may no longer be accessible by software that does not support
	the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 09:59:40 with 0 errors on Sun Oct  8 10:23:52 2023
config:

	NAME                                              STATE     READ WRITE CKSUM
	shenron                                           ONLINE       0     0     0
	  raidz2-0                                        ONLINE       0     0     0
	    ata-WDC_WD140EDFZ-11A0VA0_9LGD8UAG            ONLINE       0     0     0
	    ata-WDC_WD140EDFZ-11A0VA0_9LGPSXZH            ONLINE       0     0     0
	    ata-WDC_WD140EDFZ-11A0VA0_9MGJ8EXU            ONLINE       0     0     0
	    ata-WDC_WD140EDGZ-11B1PA0_9MGGA4HK            ONLINE       0     0     0
	    ata-WDC_WD140EDGZ-11B1PA0_Y5HYH1AC            ONLINE       0     0     0
	    ata-WDC_WD140EDGZ-11B1PA0_Y5HYP8XC            ONLINE       0     0     0
	cache
	  nvme-Samsung_SSD_980_1TB_S649NF1R815995R-part2  ONLINE       0     0     0
	  nvme-Samsung_SSD_980_1TB_S649NF1R816771L-part2  ONLINE       0     0     0

errors: No known data errors
root@nas:~# gdisk /dev/disk/by-id/ata-WDC_WD140EDGZ-11B1PA0_Y5HYP8XC
GPT fdisk (gdisk) version 1.0.9

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/disk/by-id/ata-WDC_WD140EDGZ-11B1PA0_Y5HYP8XC: 27344764928 sectors, 12.7 TiB
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 20DF6AC8-ACCE-CF4D-A246-6101CFB8A78E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 27344764894
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048     27344746495   12.7 TiB    BF01  zfs-dd9167317143a014
   9     27344746496     27344762879   8.0 MiB     BF07 


ZFS heeft zelf alle partitionering gedaan.

Alignment is dus offset van 2048 sectoren en 8MB aan het einde overlaten.

Even niets...


Acties:
  • +1 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
@FireDrunk check. Easy does it tegenwoordig. Ik heb mijn zpool inmiddels ook draaien. Thanks.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
Ik probeer data over te sturen van mijn oude machine naar mijn nieuwe machine. Gewoon lokaal. Misschien zie ik iets geks over het hoofd hoor, maar het lukt me niet.
sudo zfs send pool/data@snapshot_name | ssh username@IP 'sudo zfs receive -F pool/data'
Dan volgt een foutmelding.
Enter passphrase for key '/home/beninho/.ssh/id_edx'
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required
Wanneer ik -S invoeg, dan krijg ik wel een interactief invoerveld, maar dat reageert dus niet op mijn input en verteld me na 5 sec dat ik drie keer verkeerd een password heb ingevoerd.

Vervolgens heb ik dit geprobeerd
code:
1
sudo visudo -f /etc/sudoers.d/username
te maken met:
mijn_username ALL=(othermachne_username) NOPASSWD: /usr/sbin/zfs receive -F pool/data
ik heb ook nog dit geprobeerd: sudo visudo met dezeflde input. Ik mis iets triviaals waarschijnlijk, maar wat?

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • +1 Henk 'm!
Je moet de sudo passwordless permissies op de ontvangende kant zetten.
Als je user lid is van de groep wheel of admins (in ubuntu is dat de default dacht ik).

Kan je prima:
code:
1
%wheel         ALL = (ALL) NOPASSWD:  /usr/sbin/zfs receive -F pool/data

gebruiken.

Let op dat je in het commando het volle pad moet gebruiken, anders werkt de sudo regel niet.
Je moet dus doen:

sudo zfs send pool/data@snapshot_name | ssh username@IP 'sudo /usr/sbin/zfs receive -F pool/data'

[ Voor 38% gewijzigd door FireDrunk op 01-11-2023 21:06 ]

Even niets...


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
code:
1
2
3
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%beninho ALL = (ALL) NOPASSWD: ALL


of moet ik user beninho toevoegen aan group admin?

Ik had inderdaad ook niet het volledige pad in het commondo staan. Maar ik houd een het zelfe resultaat.
Cannot unmount, no persmission.

[ Voor 31% gewijzigd door Beninho op 01-11-2023 21:19 ]

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!
Het % teken is de groep, als je een groep beninho hebt is dat prima.
Die melding zegt mij niet zoveel, ik kan niet zo goed inschatten of die lokaal of remote gebeurt.

Even niets...


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
Ja, mijn user is lid van de groep %admin

Dus zo staat het nu:
code:
1
%admin ALL=(ALL) NOPASSWD:  /usr/sbin/zfs receive -F pool/data


Wanneer ik nu op de andere machine invoer:
code:
1
sudo zfs send pool/data@snapshot_name | ssh beninho@IP /usr/sbin/zfs receive -F pool/data


Krijg ik dit terug:
/etc/sudoers:48:20: syntax error
%beninho ALl=(All) All
^~~
Enter passphrase for key '/home/beninho/.ssh/id_ed25519':
cannot unmount '/pool/data': permission denied
terwijl ik dit typ, zie ik dat ik een typo lijk te hebben gemaakt. Maar in het bestand, /etc/sudoers/beninho of met visudo vind ik die typfout niet..

--edit--
Oke, die typo stond op de verzendende machine. Na die gecorrigeeerd te hebben, blijft dezelfde melding komen.
code:
1
cannot unmount '/pool/data': permission denied


--edit--
Op de ontvangende machine heb staat de verse dataset ook in pool/data | is dat dan het issue?

[ Voor 27% gewijzigd door Beninho op 01-11-2023 21:52 ]

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!
Je moet wel `sudo` voor je commando zetten bij de ontvangende kant.

Even niets...


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
FireDrunk schreef op woensdag 1 november 2023 @ 21:53:
Je moet wel `sudo` voor je commando zetten bij de ontvangende kant.
Ja. Maar dan krijg ik dus weer dit:
code:
1
sudo zfs send pool/data@snapshot_name | ssh beninho@IP sudo -S /usr/sbin/zfs receive -F pool/data


Dan krijg ik drie keer 2 sec om het password in te voeren, maar die invoer komt niet over. En dan heb ik mijn drie kansen weer gehad.

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • 0 Henk 'm!
Ligt het aan mij of is het sowieso wel erg stil op het ZFS front. Ik lees hier in ieder geval weinig over nieuwe features.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
CurlyMo schreef op woensdag 1 november 2023 @ 22:01:
Ligt het aan mij of is het sowieso wel erg stil op het ZFS front. Ik lees hier in ieder geval weinig over nieuwe features.
2.2 is intussen een tijdje uit, met o.a. ondersteuning voor "corrective receive". Waarbij je een oud snapshot opnieuw kunt ontvangen, als er bv bitrot zou zijn opgetreden en je de boel wilt corrigeren. Anderzijds moet je je afvragen of je dat moet willen, want die bitrot komt natuurlijk uit een defecte/"defecte" disk, wil je die dan nog blijven gebruiken?

Acties:
  • 0 Henk 'm!
RobertMe schreef op woensdag 1 november 2023 @ 22:09:
[...]

2.2 is intussen een tijdje uit, met o.a. ondersteuning voor "corrective receive". Waarbij je een oud snapshot opnieuw kunt ontvangen, als er bv bitrot zou zijn opgetreden en je de boel wilt corrigeren. Anderzijds moet je je afvragen of je dat moet willen, want die bitrot komt natuurlijk uit een defecte/"defecte" disk, wil je die dan nog blijven gebruiken?
Die nieuwe mogelijkheid kende ik inderdaad.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!
Beninho schreef op woensdag 1 november 2023 @ 21:58:
[...]


Ja. Maar dan krijg ik dus weer dit:
code:
1
sudo zfs send pool/data@snapshot_name | ssh beninho@IP sudo -S /usr/sbin/zfs receive -F pool/data


Dan krijg ik drie keer 2 sec om het password in te voeren, maar die invoer komt niet over. En dan heb ik mijn drie kansen weer gehad.
Ik zit te denken of het uberhaupt niet verplicht was om dit passwordless te doen.
Ik twijfel of een pipe icm een interactive sudo terminal over een ssh sessie goed ging, maar dat kan mijn donderdagmorgen-zonder-koffie brein zijn.

Even niets...


Acties:
  • 0 Henk 'm!

  • Beninho
  • Registratie: April 2011
  • Laatst online: 04-09 23:02
FireDrunk schreef op donderdag 2 november 2023 @ 08:00:
[...]

Ik zit te denken of het uberhaupt niet verplicht was om dit passwordless te doen.
Ik twijfel of een pipe icm een interactive sudo terminal over een ssh sessie goed ging, maar dat kan mijn donderdagmorgen-zonder-koffie brein zijn.
Juist. Je had die koffie niet nodig voor de logische gedachtenlijn ;-) ..Ik heb nu gewoon ingesteld dat ik passwordless via ssh heen en weer kan zenden. Daar ontbrak nog een stukje linux kennis bij mij. Dat kan ik nu, en morgen probeer ik die dataset nog een keer over te zetten.
Ik heb op de verzendende machine een rsa.pub key gemaakt voor root. Een root password ingesteld op de ontvangende en verzendende machine. Vervolgens heb ik de pub key van de verzendende machine naar de root user van ontvangende machine gekopieerd in --> .ssh/authorized_keys en nu kan ik zonder password inloggen en bestanden versturen.

[ Voor 9% gewijzigd door Beninho op 15-11-2023 09:06 ]

panasonic 5KW L-serie | 300L SWW | 3700+3200 Wp oost-west


Acties:
  • +2 Henk 'm!

  • ph0t0nix
  • Registratie: December 2006
  • Laatst online: 25-08 09:23
Voor het synchroniseren van ZFS snapshots kan ik syncoid uit Jim Salters sanoid project bijzonder aanraden.

Sanoid is een tool voor het automatisch maken van snapshots, terwijl syncoid gemaakt is om de snapshots op simpele wijze te 'zfs send/recv'-en, bijvoorbeeld naar een ander systeem. Dat kan naar wens in een pull of push configuratie. En, na het geven van de juiste zfs permissies, zelfs zonder root/sudo.

Zodra je je SSH keys in orde hebt voor een login zonder wachtwoord, zorgt syncoid ervoor dat alleen de benodigde snapshots worden overgestuurd. Zo hoef je zelf niet bij te houden wat de start en stop snapshots zijn.

Acties:
  • +3 Henk 'm!
Uit de ZFS mailing list:
I'm happy to announce that the long-awaited RAIDZ Expansion feature has officially landed in the OpenZFS master branch. This feature will need some soak time, but will be available in the OpenZFS 2.3 release, which is probably about a year out.

Even niets...


Acties:
  • +6 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 15:39
TLDR: hieronder een veel te lange post die waarschijnlijk voor niemand interessant is en eigenlijk maar zijdelings iets met ZFS te maken heeft - maar voor het geval er hier toch iemand is die er wat aan heeft (en omdat ik stiekenm wel een beetje trots ben dat ik het werkend gekregen heb) doe ik het toch hier plaatsen. Al zou het beter in een TweakBlog passen...

Naar aanleiding van @RobertMe in:
RobertMe in "Het grote ZFS topic"
...en
RobertMe in "Het grote ZFS topic"
...wilde ik iets vergelijkbaars doen. Ik heb hier een Debian 'stable' Linux server met ZFS & native encryption er op. Enkel heb ik in tegenstelling tot @RobertMe de hele disk (minus de /boot spullen) encrypted, dus zijn oplossing kon ik niet gebruiken.

Ik had destijds al de initrd/initramfs uitgebreid met een dropbear oplossing - iets wat je overal op het internet wel kan terugvinden - zodat ik na een reboot via SSH kon inloggen om het systeem te unlocken. Werkt leuk, maar vereist interactie. Zo had ik onlangs 's-nachts een stroomstoring in de wijk; het systeem gaat automatisch uit en automatisch aan wanneer de spanning weer terugkomt - en staat vervolgens de rest van de nacht te wachten tot ik de boel unlock. Niet gewenst.

Dus, wat was mijn doel: unlock-mogelijkheid via keyboard (standaard), via ssh/dropbear (niet standaard maar ook niet ongebruikelijk) en met een externe key die automagisch via ssh opgehaald wordt. En dat alles in een initramfs ingebouwd.

De externe key heb ik op een Raspberry Pi Zero 2 W en een bijpassende PoE/ETH/USB hat. Verbruikt 2W en hoeft verder niets te doen behalve een wachtwoord te antwoorden. Enkel een ethernet-kabeltje (power-over-ethernet) er aan, verder helemaal niets.

Config van de pi:
  • standaard raspberry pi OS er op, want met een Debian install kreeg ik de ethernet poort niet goed werkend.
  • Behalve een eigen login-user heb ik ook een user "key_owner" aangemaakt. In de home-dir van die user heb ik een file "unlock_key.txt" met daarin het ZFS unlock password.
  • Vervolgens een SSH public/private keypair aangemaakt (ssh-keygen) en de public key gebruikt om een .ssh/authorized_keys te maken:
    code:
    1
    
    command="cat unlock_key.txt" ssh-rsa AAAAB4NzaC1Yc2EA...bdydCC9TOQE0= key_owner@rpi3-20230612
  • Let op het eerste stukje van die regel: het command zorgt er voor dat iemand die met ssh als key_owner inlogt (en daarvoor de private key gebruikt) dus geen command prompt krijgt, maar direct het unlock-password ontvangt.
  • Vervolgens overlay filesystem aangezet zodat er geen writes naar de SD-kaart meer plaats vinden. Handig, want als er dan een stroomstoring optreedt vind er geen corruptie plaats. :)
Dan het lastigere stuk: de initramfs aanpassing. Dat heb ik grotendeels gebaseerd op wat dropbear ook doet - ik heb dus flink wat copy/paste toegepast. Je kan veel leren en afkijken van wat er in /usr/share/initramfs-tools staat - en vervolgens je eigen aanpassingen doen in /etc/initramfs-tools. Ook de man-page bekijken helpt wel wat. Wat ik dus heb gedaan:
  • file toegevoegd: /etc/initramfs-tools/key_owner.id_rsa. Niet heel spannend, de private key behorende bij de key_owner user van de Raspberry Pi. File protections op 400.
  • file toegevoegd: /etc/initramfs-tools/conf.d/fetch_remote.conf. Inhoud:
    code:
    1
    2
    3
    
    SERVER=192.168.1.6
    USER=key_owner
    KEY=/etc/key_owner.id_rsa

    ...spreekt denk ik voor zich. IP adres van de Raspberry, de ssh username om mee in te loggen en de locatie van de private key. Let op: dat is de locatie binnen de initramfs, dus NIET de locatie op het systeem zelf (die staat al bij de vorige bullet).
  • file toegevoegd: /etc/initramfs-tools/hooks/fetch_remote_key. Deze file (of eigenlijk al die hook scripts) wordt uitgevoerd bij het aanmaken/updaten van initramfs, dus dit beinvloed wat er in de initramfs komt. Inhoud:
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    #!/bin/sh
    
    PREREQ=""
    
    prereqs() {
        echo "$PREREQ"
    }
    
    case "$1" in
        prereqs)
            prereqs
            exit 0
        ;;
    esac
    
    . /usr/share/initramfs-tools/hook-functions
    
    copy_file private_key /etc/initramfs-tools/key_owner.id_rsa /etc/key_owner.id_rsa
    chown 400 $DESTDIR/etc/key_owner.id_rsa
    copy_exec /etc/initramfs-tools/scripts/fetch_remote_loop.sh /bin
    
    copy_exec /bin/nohup /bin
    copy_exec /bin/ssh /bin
    copy_file ssh_config /etc/ssh/ssh_config /etc/ssh/ssh_config
    Het grootste deel is de standaard template; het meest interessante stuk is het kopieeren van spullen: De eerder genoemde private key (en voor de zekerheid de protections weer op 400), een 'fetch_remote_loop.sh' script die verderop nodig is en wat executables/configs die niet standaard in de initramfs zitten.
  • file toegevoegd: /etc/initramfs-tools/scripts/init-premount/fetch_remote.sh. Dit script wordt uitgevoerd tijdens het opstarten, voordat het filesysteem unlocked nodig is. Ongeveer gelijk met dropbear. Inhoud:
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    #!/bin/sh
    
    PREREQ="udev"
    
    prereqs() {
        echo "$PREREQ"
    }
    
    case "$1" in
        prereqs)
            prereqs
            exit 0
        ;;
    esac
    
    if [ -e /conf/conf.d/fetch_remote.conf ]; then
        . /conf/conf.d/fetch_remote.conf
    fi
    . /scripts/functions
    
    echo "Attempting to fetch remote key from ${USER}/${SERVER}"
    nohup /bin/fetch_remote_loop.sh &
    echo $! > /run/fetch_remote.pid
    echo "PID = $(cat /run/fetch_remote.pid)"
    Ook hier, het eerste stuk is wat standaard template. Daarna bovengenoemde config uitvoeren zodat wat variabelen gedefinieerd zijn en middels een 'nohup' het feitelijke key-ophaal-script starten. De PID van dat script wordt vervolgens opgeslagen in /run/fetch_remote.pid. Ik twijfel nu even of de nohup wel echt nodig is - maar kwaad zal het niet kunnen. Wellicht dat dit script ook in nfs-premount zou kunnen, volgens de documentatie wordt 'ie dan pas uitgevoerd wanneer het netwerk klaar is - maar maakt niet echt uit doordat het systeem hier blijft proberen de key op te halen tot het gelukt is.
  • file toegevoegd: /etc/initramfs-tools/scripts/fetch_remote_loop.sh. Was wellicht een meer elegante plek voor te bedenken. Inhoud:
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    #!/bin/sh
    
    if [ -e /conf/conf.d/fetch_remote.conf ]; then
        . /conf/conf.d/fetch_remote.conf
    fi
    . /scripts/functions
    
    while [ ! -e /run/zfs_unlock_complete ]; do
      echo "Attempting key fetch"
      unlock_key=$(/bin/ssh ${USER}@${SERVER} -i ${KEY} -o LogLevel=QUIET -o StrictHostKeyChecking=no)
      if [[ $? -eq 0 ]]; then
        echo "key=${unlock_key}"
        zfs_fs_name=$(cat /run/zfs_fs_name)
        zfs_console_askpwd_cmd=$(cat /run/zfs_console_askpwd_cmd)
        echo ${unlock_key} | /sbin/zfs load-key "$zfs_fs_name"
        if [ "$(/sbin/zfs get -H -ovalue keystatus "$zfs_fs_name" 2> /dev/null)" = "available" ]; then
          zfs_console_askpwd_pid=$(ps | awk '!'"/awk/ && /$zfs_console_askpwd_cmd/ { print \$1; exit }")
          if [ -n "$zfs_console_askpwd_pid" ]; then
            kill "$zfs_console_askpwd_pid"
          fi
          # Wait for another filesystem to unlock.
          while [ "$(cat /run/zfs_fs_name)" = "$zfs_fs_name" ] && [ ! -e /run/zfs_unlock_complete ]; do
            sleep 1
          done
        else
          echo "Fetched wrong password.  Try again."
        fi
      else
        sleep 5
      fi
    done
    Ook hier weer wat copy/paste van de dropbear scripts, dus niet alles snap ik helemaal, maar goed: om de vijf secondes via ssh proberen de sleutel op te halen en als dat lukt het filesystem unlocken. Meeste werk zat nog in het ssh commando zelf: de 'QUIET' optie zorgt er voor dat je echt enkel het wachtwoord ontvangt en geen meldingen over afgesloten verbindingen enzo. En ook: StrictHostKeyChecking=no, want anders wil het systeem aan je vragen of de onbekende raspberry pi wel OK is om mee te verbinden (en kan dat niet, want geen tty of zo). Zie dit topic voor de achtergrond.
  • file toegevoegd: /etc/initramfs-tools/scripts/init-bottom/fetch_remote.sh. Deze wordt uitgevoerd als het filesystem unlocked is en zorgt er voor dat het fetch_remote_loop.sh process hierboven wordt afgeschoten en niet eeuwig door blijft lopen. Inhoud:
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    
    [/li]#!/bin/sh
    
    PREREQ=""
    
    prereqs() {
        echo "$PREREQ"
    }
    
    case "$1" in
        prereqs)
            prereqs
            exit 0
        ;;
    esac
    
    . /scripts/functions
    
    EXE="$(readlink -f /usr/bin/sh)" && [ -f "$EXE" ] || exit 1
    PIDFILE="/run/fetch_remote.pid"
    
    IFDOWN="*"
    FETCH_REMOTE_SHUTDOWN_TIMEOUT=60
    if [ -e /conf/conf.d/fetch_remote.conf ]; then
        . /conf/conf.d/fetch_remote.conf
    fi
    
    wait_for_fetch_remote() {
        local pid exe timer="$FETCH_REMOTE_SHUTDOWN_TIMEOUT"
        pid="$(cat "$PIDFILE" 2>/dev/null)" || return 1
        # when configure_networking() is run asynchronously fetch_remote might
        # not have started yet; ipconfig doesn't react to SIGTERM so we wait
        # for the network stack to be configured (and fetch_remote to start)
        # rather than terminating the shell and its children
        while [ $timer -gt 0 ] && exe="$(readlink -f "/proc/$pid/exe" 2>/dev/null)"; do
            if [ "$exe" = "$EXE" ]; then
                echo "$pid"
                return 0
            fi
            sleep 1
            timer=$(( timer - 1 ))
        done
        return 1
    }
    
    if PID="$(wait_for_fetch_remote)"; then
        log_begin_msg "Stopping fetch_remote"
    
        # Kill all process groups the leader of which is a child of the
        # fetch_remote process, i.e., SSH sessions and their sub processes
        # (busybox's kill doesn't accept multiple -PGID so we use a while loop)
        sed -nr "s/^([0-9]+) \\(.*\\) \\S $PID \\1 .*/\\1/p" \
            /proc/[0-9]*/stat 2>/dev/null | \
            while read pgid; do kill -TERM -"$pgid"; done
        # Kill remaining children (there shouldn't be any)
        sed -nr "s/^([0-9]+) \\(.*\\) \\S $PID [0-9]+ .*/\\1/p" \
            /proc/[0-9]*/stat 2>/dev/null | \
            while read pid; do kill -TERM "$pid"; done
    
        kill -TERM "$PID"
        log_end_msg
    fi
    
    
    if [ "$BOOT" != nfs ] && [ "$IFDOWN" != none ]; then
        for IFACE in /sys/class/net/$IFDOWN; do
            [ -e "$IFACE" ] || continue
            IFACE="${IFACE#/sys/class/net/}"
            log_begin_msg "Bringing down $IFACE"
            ip link    set   dev "$IFACE" down
            ip address flush dev "$IFACE"
            ip route   flush dev "$IFACE"
            log_end_msg
        done
    fi
    Ook hier weer heel veel copy/paste van het dropbear script. Waarbij ik niet echt een goed idee heb hoe dit alles werkt - behalve de PID ophalen van het loop-script hierboven en daar een kill op doen.
  • En dat is het wel zo'n beetje. Vervolgens 'update-initramfs -u' en dan is het klaar. :)
En: dat werkt. En ook via dropbear/ssh inloggen werkt nog. :) Was leuk om uit te zoeken en nog leuker om het werkend te krijgen. Debuggen is wel een uitdaging, vooral veel met echo en sleep statements gewerkt. Kan ook zinnig zijn om zo'n initrd file uit te pakken en te inspecteren (unmkinitramfs).

Er zal vast wel het nodige aan te merken zijn op wat ik gemaakt heb, maar wellicht heeft iemand er wat aan.

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
vanaalten schreef op zaterdag 18 november 2023 @ 11:51:
TLDR: hieronder een veel te lange post die waarschijnlijk voor niemand interessant is en eigenlijk maar zijdelings iets met ZFS te maken heeft - maar voor het geval er hier toch iemand is die er wat aan heeft (en omdat ik stiekenm wel een beetje trots ben dat ik het werkend gekregen heb) doe ik het toch hier plaatsen. Al zou het beter in een TweakBlog passen...

Naar aanleiding van @RobertMe in:
RobertMe in "Het grote ZFS topic"
...en
RobertMe in "Het grote ZFS topic"
...wilde ik iets vergelijkbaars doen. Ik heb hier een Debian 'stable' Linux server met ZFS & native encryption er op. Enkel heb ik in tegenstelling tot @RobertMe de hele disk (minus de /boot spullen) encrypted, dus zijn oplossing kon ik niet gebruiken.

Ik had destijds al de initrd/initramfs uitgebreid met een dropbear oplossing - iets wat je overal op het internet wel kan terugvinden - zodat ik na een reboot via SSH kon inloggen om het systeem te unlocken. Werkt leuk, maar vereist interactie. Zo had ik onlangs 's-nachts een stroomstoring in de wijk; het systeem gaat automatisch uit en automatisch aan wanneer de spanning weer terugkomt - en staat vervolgens de rest van de nacht te wachten tot ik de boel unlock. Niet gewenst.

Dus, wat was mijn doel: unlock-mogelijkheid via keyboard (standaard), via ssh/dropbear (niet standaard maar ook niet ongebruikelijk) en met een externe key die automagisch via ssh opgehaald wordt. En dat alles in een initramfs ingebouwd.

De externe key heb ik op een Raspberry Pi Zero 2 W en een bijpassende PoE/ETH/USB hat. Verbruikt 2W en hoeft verder niets te doen behalve een wachtwoord te antwoorden. Enkel een ethernet-kabeltje (power-over-ethernet) er aan, verder helemaal niets.

Config van de pi:
  • standaard raspberry pi OS er op, want met een Debian install kreeg ik de ethernet poort niet goed werkend.
  • Behalve een eigen login-user heb ik ook een user "key_owner" aangemaakt. In de home-dir van die user heb ik een file "unlock_key.txt" met daarin het ZFS unlock password.
  • Vervolgens een SSH public/private keypair aangemaakt (ssh-keygen) en de public key gebruikt om een .ssh/authorized_keys te maken:
    code:
    1
    
    command="cat unlock_key.txt" ssh-rsa AAAAB4NzaC1Yc2EA...bdydCC9TOQE0= key_owner@rpi3-20230612
  • Let op het eerste stukje van die regel: het command zorgt er voor dat iemand die met ssh als key_owner inlogt (en daarvoor de private key gebruikt) dus geen command prompt krijgt, maar direct het unlock-password ontvangt.
  • Vervolgens overlay filesystem aangezet zodat er geen writes naar de SD-kaart meer plaats vinden. Handig, want als er dan een stroomstoring optreedt vind er geen corruptie plaats. :)
Dan het lastigere stuk: de initramfs aanpassing. Dat heb ik grotendeels gebaseerd op wat dropbear ook doet - ik heb dus flink wat copy/paste toegepast. Je kan veel leren en afkijken van wat er in /usr/share/initramfs-tools staat - en vervolgens je eigen aanpassingen doen in /etc/initramfs-tools. Ook de man-page bekijken helpt wel wat. Wat ik dus heb gedaan:
  • file toegevoegd: /etc/initramfs-tools/key_owner.id_rsa. Niet heel spannend, de private key behorende bij de key_owner user van de Raspberry Pi. File protections op 400.
  • file toegevoegd: /etc/initramfs-tools/conf.d/fetch_remote.conf. Inhoud:
    code:
    1
    2
    3
    
    SERVER=192.168.1.6
    USER=key_owner
    KEY=/etc/key_owner.id_rsa

    ...spreekt denk ik voor zich. IP adres van de Raspberry, de ssh username om mee in te loggen en de locatie van de private key. Let op: dat is de locatie binnen de initramfs, dus NIET de locatie op het systeem zelf (die staat al bij de vorige bullet).
  • file toegevoegd: /etc/initramfs-tools/hooks/fetch_remote_key. Deze file (of eigenlijk al die hook scripts) wordt uitgevoerd bij het aanmaken/updaten van initramfs, dus dit beinvloed wat er in de initramfs komt. Inhoud:

    [...]

    Het grootste deel is de standaard template; het meest interessante stuk is het kopieeren van spullen: De eerder genoemde private key (en voor de zekerheid de protections weer op 400), een 'fetch_remote_loop.sh' script die verderop nodig is en wat executables/configs die niet standaard in de initramfs zitten.
  • file toegevoegd: /etc/initramfs-tools/scripts/init-premount/fetch_remote.sh. Dit script wordt uitgevoerd tijdens het opstarten, voordat het filesysteem unlocked nodig is. Ongeveer gelijk met dropbear. Inhoud:

    [...]

    Ook hier, het eerste stuk is wat standaard template. Daarna bovengenoemde config uitvoeren zodat wat variabelen gedefinieerd zijn en middels een 'nohup' het feitelijke key-ophaal-script starten. De PID van dat script wordt vervolgens opgeslagen in /run/fetch_remote.pid. Ik twijfel nu even of de nohup wel echt nodig is - maar kwaad zal het niet kunnen. Wellicht dat dit script ook in nfs-premount zou kunnen, volgens de documentatie wordt 'ie dan pas uitgevoerd wanneer het netwerk klaar is - maar maakt niet echt uit doordat het systeem hier blijft proberen de key op te halen tot het gelukt is.
  • file toegevoegd: /etc/initramfs-tools/scripts/fetch_remote_loop.sh. Was wellicht een meer elegante plek voor te bedenken. Inhoud:

    [...]

    Ook hier weer wat copy/paste van de dropbear scripts, dus niet alles snap ik helemaal, maar goed: om de vijf secondes via ssh proberen de sleutel op te halen en als dat lukt het filesystem unlocken. Meeste werk zat nog in het ssh commando zelf: de 'QUIET' optie zorgt er voor dat je echt enkel het wachtwoord ontvangt en geen meldingen over afgesloten verbindingen enzo. En ook: StrictHostKeyChecking=no, want anders wil het systeem aan je vragen of de onbekende raspberry pi wel OK is om mee te verbinden (en kan dat niet, want geen tty of zo). Zie dit topic voor de achtergrond.
  • file toegevoegd: /etc/initramfs-tools/scripts/init-bottom/fetch_remote.sh. Deze wordt uitgevoerd als het filesystem unlocked is en zorgt er voor dat het fetch_remote_loop.sh process hierboven wordt afgeschoten en niet eeuwig door blijft lopen. Inhoud:

    [...]

    Ook hier weer heel veel copy/paste van het dropbear script. Waarbij ik niet echt een goed idee heb hoe dit alles werkt - behalve de PID ophalen van het loop-script hierboven en daar een kill op doen.
  • En dat is het wel zo'n beetje. Vervolgens 'update-initramfs -u' en dan is het klaar. :)
En: dat werkt. En ook via dropbear/ssh inloggen werkt nog. :) Was leuk om uit te zoeken en nog leuker om het werkend te krijgen. Debuggen is wel een uitdaging, vooral veel met echo en sleep statements gewerkt. Kan ook zinnig zijn om zo'n initrd file uit te pakken en te inspecteren (unmkinitramfs).

Er zal vast wel het nodige aan te merken zijn op wat ik gemaakt heb, maar wellicht heeft iemand er wat aan.
Knap staaltje werk!

Heb je ook nog overwogen om de ZFS key encrypted op de Pi te zetten, met het unlock password op de server? Persoonlijk heb ik daarvoor gekozen omdat in mijn geval de "ZFS key host" (router) ook weer gebackupd wordt en het systeem altijd aan staat en kinda leesbaar is. Als for whatever reason de key files uitlekken heeft de "ontvanger" er nog steeds niks aan doordat die de encrypted key file niet kan lezen.
En het password voor de file te decrypten staat dan op de /boot partitie die (uiteraard) niet gebackupd wordt.

Bij diefstal van de server ontbreekt dus toegang tot de encrypted key (file) die op de router staat. En bij diefstal van de backup ontbreekt het password om de encrypted file te openen.

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 15:39
Dank! :)
Heb je ook nog overwogen om de ZFS key encrypted op de Pi te zetten, met het unlock password op de server? Persoonlijk heb ik daarvoor gekozen omdat in mijn geval de "ZFS key host" (router) ook weer gebackupd wordt en het systeem altijd aan staat en kinda leesbaar is. Als for whatever reason de key files uitlekken heeft de "ontvanger" er nog steeds niks aan doordat die de encrypted key file niet kan lezen.
En het password voor de file te decrypten staat dan op de /boot partitie die (uiteraard) niet gebackupd wordt.

Bij diefstal van de server ontbreekt dus toegang tot de encrypted key (file) die op de router staat. En bij diefstal van de backup ontbreekt het password om de encrypted file te openen.
Ik heb er wel kort over nagedacht (en sluit niet uit zo iets nog te gaan doen), maar kon voor mijzelf nog geen goede reden verzinnen waarom het nodig zou zijn.
Het unlock password staat plain-text op de Pi en dat voelde wel wat ongemakkelijk - maar als bij diefstal de Pi gestolen wordt heb je er niets aan zonder de server (en andersom), je hebt ze beide nodig. De server wordt gebackupped, maar enkel wat user-data gaat (encrypted) naar een externe backup. Het systeem zelf wordt 100% gebackupped maar enkel naar een lokale machine, dus de toegangsinformatie om bij de Pi te komen is enkel lokaal aanwezig.

Dus, wat is dan de mogelijkheid voor een inbreker om aan het unlock-password te komen: de Pi stelen, of op een of andere manier inbreken op m'n netwerk (en dan root-toegang op de Pi te krijgen). Allemaal behoorlijk onwaarschijnlijke scenario's, dus zag ik geen reden om het password encrypted op de Pi te zetten.

Maar goed, het is denk ik niet ingewikkeld om erbij te doen. De basis ligt er en werkt. :)

Acties:
  • 0 Henk 'm!

  • WeaZuL
  • Registratie: Oktober 2001
  • Laatst online: 12-09 20:18

WeaZuL

Try embedded, choose ARM!

Ik heb een probleem met mijn ZFS setup. Mijn pool reageerde traag, ik met smartctl gekeken welke schijf issues gaf. Die schijf heb ik vervangen door een nieuwe en vervolgens een replace uitgevoerd. Tijdens het resilver proces stopte de andere schijf uit de mirror er ook mee (too many errors). Ik heb de nieuwe schijf eruit gehaald en de oude terug gestoken. Vervolgens het replace proces gestopt. Wat kan ik nu het beste doen om mirror-2 weer in een fatsoenlijke staat te krigen ? Mss schijf bijsteken en dan?
Ik dacht mss een scrub maar dan krijg ik een response "resilvering proces busy" ..

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
root@pve:~# zpool status tank1 
  pool: tank1
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
    continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Fri Nov 24 15:37:51 2023
    1.21T / 9.53T scanned at 523M/s, 11.5G / 8.77T issued at 4.84M/s
    12K resilvered, 0.13% done, no estimated completion time
config:

    NAME                                           STATE     READ WRITE CKSUM
    tank1                                          DEGRADED     0     0     0
      mirror-0                                     ONLINE       0     0     0
        ata-WDC_WD50NPZZ-00A9JT0_WD-WX52D701RADN   ONLINE       0     0     0
        ata-ST5000LM000-2U8170_WCJ4SL4E            ONLINE       0     0     0
      mirror-1                                     ONLINE       0     0     0
        ata-ST2000LM003_HN-M201RAD_S34RJ9FF717085  ONLINE       0     0     0
        ata-ST2000LM003_HN-M201RAD_S32WJ9FF462626  ONLINE       0     0     0
      mirror-2                                     DEGRADED     0     0     0
        ata-ST5000LM000-2AN170_WCJ3HBTV            DEGRADED     0     0   475  too many errors
        ata-ST5000LM000-2AN170_WCJ01M2P            ONLINE       0     0    20  (awaiting resilver)
    logs    
      pve/slog                                     ONLINE       0     0     0

errors: 1014 data errors, use '-v' for a list


edit, het resilvering proces is gestopt. Heb vervolgens een zpool clear tank1 gedaan gevolgt door een scrub:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@pve:~# zpool status tank1 
  pool: tank1
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
    attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
    using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: scrub in progress since Fri Nov 24 17:18:06 2023
    1.06T / 9.53T scanned at 4.77G/s, 4.34M / 9.53T issued at 19.6K/s
    0B repaired, 0.00% done, no estimated completion time
config:

    NAME                                           STATE     READ WRITE CKSUM
    tank1                                          ONLINE       0     0     0
      mirror-0                                     ONLINE       0     0     0
        ata-WDC_WD50NPZZ-00A9JT0_WD-WX52D701RADN   ONLINE       0     0     0
        ata-ST5000LM000-2U8170_WCJ4SL4E            ONLINE       0     0     0
      mirror-1                                     ONLINE       0     0     0
        ata-ST2000LM003_HN-M201RAD_S34RJ9FF717085  ONLINE       0     0     0
        ata-ST2000LM003_HN-M201RAD_S32WJ9FF462626  ONLINE       0     0     0
      mirror-2                                     ONLINE       0     0     0
        ata-ST5000LM000-2AN170_WCJ3HBTV            ONLINE       0     0     1
        ata-ST5000LM000-2AN170_WCJ01M2P            ONLINE       0     0     0
    logs    
      pve/slog                                     ONLINE       0     0     0

errors: No known data errors


Nogmaals, wat kan ik het beste doen derde schijf bijprikken bij mirror-2, vervolgens resilveren om daarna ata-ST5000LM000-2AN170_WCJ3HBTV te removen en daarna ata-ST5000LM000-2AN170_WCJ01M2P te replacen?

[ Voor 33% gewijzigd door WeaZuL op 24-11-2023 17:25 ]

NSLU2, SheevaPlug, Pogoplug, Espressobin and Odroid H2 addict


Acties:
  • 0 Henk 'm!

  • Waking_The_Dead
  • Registratie: Januari 2010
  • Laatst online: 04-07-2024
Ik heb een Freenas installatie waar ik een aantal pools op heb. Onlangs is een pool degraded geraakt (mirror, twee schijven van 4TB). Ik heb beslist om de kapotte schijf niet te vervangen maar een nieuwe pool aan te maken in zfs raid met 3 schijven.
De nieuwe pool is in gebruik en de data is gekopieerd maar het lukt me niet om de degraded pool te exporten; ik krijg telkens de melding 'device is busy'. Ook het unmounten van de resterende schijf lukt niet en zelfs een zpool destroy lukt niet (ook niet met de -f optie). Er zijn ook geen shares of symlinks meer actief op die pool.
Herstarten van het systeem leverde niets op.
Vervolgens heb ik gewoon de schijf fysiek uit mijn NAS gehaald omdat ik het zo wel een beetje gehad had en de schijf toch buiten gebruik gesteld wordt. Zonder die schijf start mijn NAS gewoon op en kan ik pingen naar het ip adres maar de web UI is niet bereikbaar. Vervolgens de schijf teruggeplaatst, herstart en de UI is weer bereikbaar. Is het mogelijk dat er ergens config van de UI op die oude pool is opgeslagen? En hoe vind ik zoiets terug?

Acties:
  • +1 Henk 'm!

  • orvintax
  • Registratie: Maart 2018
  • Laatst online: 11:18

orvintax

www.fab1an.dev

Waking_The_Dead schreef op zondag 26 november 2023 @ 16:30:
Ik heb een Freenas installatie waar ik een aantal pools op heb. Onlangs is een pool degraded geraakt (mirror, twee schijven van 4TB). Ik heb beslist om de kapotte schijf niet te vervangen maar een nieuwe pool aan te maken in zfs raid met 3 schijven.
De nieuwe pool is in gebruik en de data is gekopieerd maar het lukt me niet om de degraded pool te exporten; ik krijg telkens de melding 'device is busy'. Ook het unmounten van de resterende schijf lukt niet en zelfs een zpool destroy lukt niet (ook niet met de -f optie). Er zijn ook geen shares of symlinks meer actief op die pool.
Herstarten van het systeem leverde niets op.
Vervolgens heb ik gewoon de schijf fysiek uit mijn NAS gehaald omdat ik het zo wel een beetje gehad had en de schijf toch buiten gebruik gesteld wordt. Zonder die schijf start mijn NAS gewoon op en kan ik pingen naar het ip adres maar de web UI is niet bereikbaar. Vervolgens de schijf teruggeplaatst, herstart en de UI is weer bereikbaar. Is het mogelijk dat er ergens config van de UI op die oude pool is opgeslagen? En hoe vind ik zoiets terug?
Ja, TrueNAS gebruikt een pool om data van zichzelf op te slaan en het kan zijn dat dat die is. Je kunt dat veranderen/bekijken hier. Link

https://dontasktoask.com/


Acties:
  • +1 Henk 'm!

  • Waking_The_Dead
  • Registratie: Januari 2010
  • Laatst online: 04-07-2024
orvintax schreef op zondag 26 november 2023 @ 17:43:
[...]

Ja, TrueNAS gebruikt een pool om data van zichzelf op te slaan en het kan zijn dat dat die is. Je kunt dat veranderen/bekijken hier. Link
Bedankt voor de tip, maar dat is het dus niet :/ Daar stond al een andere pool ingevuld.
Pagina: 1 ... 211 ... 214 Laatste

Let op:
Voor het bouwen van een ZFS NAS en andere hardwarevragen kun je beter terecht in Het grote DIY RAID NAS topic deel 3, zodat we dit topic reserveren voor ZFS-specifieke vragen en discussies.