Vraag


Acties:
  • 0 Henk 'm!

  • Ostheer
  • Registratie: April 2012
  • Laatst online: 07-09 09:56
Probleem
Het volgende commando stuurt middels zfs-send een (incrementele) snapshot van m'n hoofdserver naar een tweede server over ssh. De overdracht lijkt goed te gaan, maar bij het instellen van de canmount=noauto-parameter (middels de -o optie van zfs-recv) krijg ik een toegangsfout.
code:
1
2
3
4
(zfs send --large-block --embed --raw --verbose --parsable --props \
 -i @previous_snap localpool/mydataset@newest_snap) | \
(ssh remotehost 'zfs recv -u -o canmount=noauto -v -s \
remotepool/myserver/localpool/mydataset')


De commando's draaien op beide systemen als reguliere gebruiker, maar wel met de m.i. vereiste gedelegeerde zfs-permissions (zie onderaan).

Gegenereerde uitvoer:
code:
1
2
3
4
5
incremental localpool/mydataset@previous_snap   localpool/mydataset@newest_snap 624
size    624
receiving incremental stream of localpool/mydataset@newest_snap into     remotepool/myserver/localpool/mydataset@newest_snap
received 1.31K stream in 1 seconds (1.31K/sec)
cannot set property for 'remotepool/myserver/localpool/mydataset': permission denied
Mijn vraag
  • Hoe kan ik zfs expliciet laten tonen welke zfs-property het niet ingesteld krijgt?
  • Hoe kan ik deze property wél instellen middels de zfs-recv opdracht? Is er wellicht een andere vereiste zfs-permission die ik nog niet heb gedelegeerd?
Relevante software en hardware die ik gebruik
Hoofdserver: Arch Linux (6.3.8) met zfs-linux 2.1.12_6.3.8.arch1.1-1
Server op afstand: Debian Bookworm (6.1.0) met zfs-dkms 2.1.11-1
Iets minder belangrijke context
Ik probeer ZFS autobackup te gebruiken om reservekopieën van mijn bestanden op van m'n thuisserver te maken en deze op te slaan op een tweede server op een andere locatie.

Dit programma voert verschillende stappen uit (snapshot maken, naamgeven, kopiëren, oude kopietjes weggooien, parameters instellen, etc.) bij het maken van een reserviekopie. Alles verloopt goed tot na het verzenden van de kopiedata: Wanneer de kopie is ontvangen op de server op afstand, probeert het de canmount=noauto parameter in te stellen op de ontvangen dataset, maar hierbij doet zich een fout voor.
Wat ik al gevonden of geprobeerd heb
ZFS geeft niet expliciet aan welke property niet ingesteld kan worden, maar het enige wat ik aanvraag is canmount=noauto. Op de doelmachine (op afstand) heb ik de volgende zfs-machtigingen gegeven aan de relevante gebruiker:
code:
1
sudo zfs allow myuser snapshot,receive,create,mountpoint,mount,userprop remotepool/myserver


Wanneer ik zelf (handmatig) probeer de canmount-eigenschap in te stellen (als reguliere gebruiker), dan lukt dit:
code:
1
zfs set canmount=noauto remotepool/myserver/localpool/mydataset

[ Voor 2% gewijzigd door Ostheer op 15-08-2023 20:28 . Reden: opmaak ]

Beste antwoord (via Ostheer op 14-12-2023 23:40)


  • d1ng
  • Registratie: Augustus 2009
  • Laatst online: 06-05-2024
Kun je dit eens proberen op een (unencrypted?) dataset zonder de --raw optie.
Het kan misschien zijn dat je een permission denied krijgt omdat je een property wil aanpassen op de target, terwijl de raw optie de filesystem op de target wil wegschrijven op exact dezelfde manier als die bestaat op de disk van de sender host. (zomaar even een braindump)

Of is het probleem inmiddels al opgelost?

[ Voor 5% gewijzigd door d1ng op 02-12-2023 17:20 ]

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • d1ng
  • Registratie: Augustus 2009
  • Laatst online: 06-05-2024
Kun je dit eens proberen op een (unencrypted?) dataset zonder de --raw optie.
Het kan misschien zijn dat je een permission denied krijgt omdat je een property wil aanpassen op de target, terwijl de raw optie de filesystem op de target wil wegschrijven op exact dezelfde manier als die bestaat op de disk van de sender host. (zomaar even een braindump)

Of is het probleem inmiddels al opgelost?

[ Voor 5% gewijzigd door d1ng op 02-12-2023 17:20 ]


Acties:
  • +1 Henk 'm!

  • Ostheer
  • Registratie: April 2012
  • Laatst online: 07-09 09:56
Hoi,

Bedankt voor je reactie. je hebt me in elk geval de goede richting in geduwd: Volgens mij heb ik het zojuist opgelost. :)

Neveneffect van de --raw-optie is dat ZFS bij ontvangst de keylocation-property wil veranderen naar prompt. De delegation daarvoor ontbrak echter.
Het lag dus niet aan de canmount-optie, die werkte prima.

Het was nog steeds handig geweest als ZFS specifieker zou zijn, en zou aangeven welke property het probleem veroorzaakt.

Tevens, maar dat is een ZFS-autobackup-specifiek ding, had ik ook nog de hold en release delegations nodig.

[ Voor 17% gewijzigd door Ostheer op 14-12-2023 23:40 ]