
Snapdrive Fehler: Status call to SDU daemon failed
NetApp SnapDrive Fehlermeldung unter Linux 64Bit:
Status call to SDU daemon failed
Nach der Installation und Konfiguration von SnapDrive war es möglich mittels
snapdrive config list
sowie
snapdrive config list -mgmtpath
die Konfiguration auszugeben.
Auch die Verifzierung der Rechte auf den Filern war kein Problem:
snapdrive config access list toaster
Jeder andere Befehl führte aber zu folgendem Fehler
Status call to SDU daemon failed
Fehlersuche
Bei der Suche in der NetApp Knowledge Base fanden wir den Artikel SnapDrive for UNIX error message: Status failed with error 127 in dem dieser Fehler beschrieben ist. Leider blieben die dort beschrieben Lösungen ohne Erfolg.
Lösungsvorschläge laut NetApp KB Artikel
1) Verifizieren, dass der von SnapDrive genutzte Port nicht belegt ist.
grep contact-http-port-sdu-daemon snapdrive.conf
contact-http-port-sdu-daemon=4094 # HTTP port on which sdu daemon will bind
lsof -i :4094 ## Port aus Snapdrive.conf
Gegebenen Falles den aufgelisteten Prozess killen oder einen andern Port wählen und den Snapdrive Deamon neu starten:
snapdrived restart
2) Unter (RedHat) Linux kann es folgende Fehlermeldungen im sd-trace.log geben
File descriptor 3 (/var/log/sd-daemon-trace.log) leaked on lvm invocation. Parent PID 24938: /opt/NetApp/snapdrive/bin/snapd
File descriptor 4 (/opt/NetApp/snapdrive/.snapdrived.pid) leaked on lvm invocation. Parent PID 24938: /opt/NetApp/snapdrive/bin/snapd
File descriptor 5 (/opt/NetApp/snapdrive/.snapdrived.pid) leaked on lvm invocation. Parent PID 24938: /opt/NetApp/snapdrive/bin/snapd
File descriptor 6 (/opt/NetApp/snapdrive/.snapdrived.pid) leaked on lvm invocation. Parent PID 24938: /opt/NetApp/snapdrive/bin/snapd
File descriptor 8 (/var/log/sd-trace.log) leaked on lvm invocation. Parent PID 24938: /opt/NetApp/snapdrive/bin/snapd
In diesem Fall muss man dafür sorgen, dass im Environment von root (zB: via /etc/profile) folgendes eingetragen wir:ü>
export LVM_SUPPRESS_FD_WARNINGS=1
Und den Snapdrive Deamon neu starten:
snapdrived restart
3) Bug in SnapDrive für Unix 4.2
Auch ein BUG im SnapDrive kann ein Grund für das Problem sein.
Der Workaround ist folgende Zeile im snapdrive.conf einzutragen:
autosupport-enabled=off
Und den Snapdrive Deamon neu starten:
snapdrived restart
Weitere Analyse
Wie gesagt führte keiner dieser Hinweise zu einer Lösung unseres Problems.
Im sd-trace.log habe ich folgendes gefunden:
15:41:13 10/04/11 [f68feb90]v,10,0,Job[Bzxl8vU6rY]::status: Entered
15:41:13 10/04/11 [f68feb90]v,10,0,Job[Bzxl8vU6rY]::status: soap_call__SDUCLI__SDUCommandStatus rcvd by child job Bzxl8vU6rY
Job[Bzxl8vU6rY]::status: statusCode: 1 errorCode: 10 message:
error message:
15:41:13 10/04/11 [f68feb90]v,10,0,Job[Bzxl8vU6rY]::status: Exit job
15:41:13 10/04/11 [f68feb90]v,10,0,snapdrived:_SDUCLI__SDUCommandStatus: exiterrorcode:0 ,statuscode: 1 ,output:
15:41:13 10/04/11 [f68feb90]v,10,0,Job[Bzxl8vU6rY]::child_process_soap_request exit
15:41:13 10/04/11 [f7ee8b90]v,10,0,Job[Bzxl8vU6rY::status: got user context
Job[Bzxl8vU6rY]::status: statusCode: 1 errorCode: 10 message:
15:41:13 10/04/11 [f7ee8b90]v,10,0,Job[Bzxl8vU6rY]::status: Exit job
...
15:41:14 10/04/11 [f7ee8b90]v,10,0,Job[Bzxl8vU6rY::status: got user context
15:41:14 10/04/11 [f7ee8b90]v,10,0,Job[Bzxl8vU6rY]::status: soap callsoap_call__SDUCLI__SDUCommandStatus failedwith error 24 111
15:41:14 10/04/11 [f7ee8b90]v,10,0,snapdrived:_SDUCLI__SDUCommandStatus: exiterrorcode:24 ,statuscode: 3 ,output:
15:41:14 10/04/11 [f7ee8b90]v,10,1,snapdrived:process_request(): exit
Leider ist dies nicht sehr aufschlussreich - der Fehler hinterläßt den snapdrived mit [defunct].
Die Lösung
Durch einen Tipp von einem Kollegen bei NetApp haben wir die Namensauflösung verifiziert. Dabei sind wir darauf gestossen, dass beim Einrichten des Filers der Hostnamen falsche geschrieben wurde (im /etc/hosts und DNS war er korrekt geschrieben). Kaum hatten wir den Fehler korrigiert funktioniert Snapdrive sofort korrekt.
Solange man mit Snapdrive nur die Konfiguration (inkl. User Einstellungen am Filer) prüft, wird der Hostname nicht zur Evaluierung verwendet. Alle anderen Befehle übermitteln den Filer Namen - und wenn dieser nicht korrekt ist, führt dies dazu, dass der Snapdrived einen Fehler bekommt.