Solaris ZFS+NFSv3 Server und Debian Etch 4.0 als NFS-Client

Wenn ein Solaris ZFS-Filesystem per NFSv3 auf einen Debian Etch Client exportiert wird, gibt es Probleme beim Kopieren von Dateien und Verzeichnissen mit „cp -p“. Eine Kopie wird zwar erzeugt, aber mit der Fehlermeldung „cp: preserving permissions … Operation not supported“ quittiert. Beispiel:


keller@nfs-client:/projekte/ake$ cp -p alex2 alex7
cp: preserving permissions for alex7: Die Operation wird nicht unterstutzt
cp: preserving ACL for alex7: Die Operation wird nicht unterstutzt

Ein ziemlicher Show-Stopper, wenn man zahlreiche Debian-Clients hat und darauf angewiesen ist, dass „cp -p“ in automatischen Workflows einwandfrei funktioniert und nicht mit Fehler 1 aussteigt 😉

Ursache

Die Diagnose ist nach etwas Suchen gefunden: NFSv3 unterstützt die ACLs von ZFS nicht. Das ist eigentlich alles…

Lösung

Es gibt mehrere Möglichkeiten mit dem Problem umzugehen:

  • von NFSv3 auf NFSv4 umsteigen, denn NFSv4 unterstuetzt die ZFS ACLs.
  • Debian 4.0 durch Ubuntu 8.04 ersetzen und die Mountoption „noacl“ mit NFSv3 benutzen. Keine Ahnung woher die Option bei Ubuntu genau kommt, aber bei Debian Etch gibts diese nicht (evtl. ältere mount utilities…)
  • theoretisch lassen sich ZFS-ACLs ausschalten (zfs set aclinherit=discard und
    zfs set aclmode=discard). Praktisch war das Ergebnis aber unverändert.
  • ZFS durch UFS ersetzen. Ja klar – sonst noch was 😉
  • cp, mv usw. patchen 😉

Links