Hallo, ich habe ein Problem mit Umleitungen in Zusammenhang mit lvcreate. In einem skript lege ich einen snapshot für ein LV an: echo "lvcreate:" >> /var/log/update.log 2>&1 /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1 Bei diesem Befehl bleibt das System (ist ne VM) stehen. Ich krieg sie nur noch mit Magic SysRq neu gestartet. Das log wird genau bis hier geschrieben: ... lvcreate: Setting logging type to disk Setting chunksize to 8 sectors. Finding volume group "vg1" Archiving volume group "vg1" metadata (seqno 361). Creating logical volume lv_root_snapshot Creating volume group backup "/etc/lvm/backup/vg1" (seqno 362). Found volume group "vg1" activation/volume_list configuration setting not defined: Checking only host tags for vg1/lv_root_snapshot Creating vg1-lv_root_snapshot Loading vg1-lv_root_snapshot table (252:1) Resuming vg1-lv_root_snapshot (252:1) Clearing start of logical volume "lv_root_snapshot" Creating logical volume snapshot0 Found volume group "vg1" Found volume group "vg1" Creating vg1-lv_root-real Loading vg1-lv_root-real table (252:2) Loading vg1-lv_root table (252:0) Creating vg1-lv_root_snapshot-cow Loading vg1-lv_root_snapshot-cow table (252:3) Resuming vg1-lv_root_snapshot-cow (252:3) Loading vg1-lv_root_snapshot table (252:1) Suspending vg1-lv_root (252:0) with filesystem sync with device flush Das ganze ist reproduzierbar. Der Hammer ist: Lass ich die Umleitung von stderr weg, läuft das skript durch und macht was es soll und die Maschine bleibt nicht stehen. Das ist auch reproduzierbar. Sprich: "/sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log" funktioniert. Ich kann die Umleitung von stderr natürlich weglassen, aber mich interessiert vor allem wieso das nicht funktioniert. Host und Gast sind SLES 11 SP4 64bit, die VM läuft mit KVM. Bernd -- Bernd Lentes Systemadministration institute of developmental genetics Gebäude 35.34 - Raum 208 HelmholtzZentrum München bernd.lentes@helmholtz-muenchen.de phone: +49 (0)89 3187 1241 fax: +49 (0)89 3187 2294 Wer Visionen hat soll zum Hausarzt gehen Helmut Schmidt Helmholtz Zentrum München Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Dr. Alfons Enhsen, Renate Schlusen (komm.) Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Fri, 12 Feb 2016, Lentes, Bernd schrieb:
ich habe ein Problem mit Umleitungen in Zusammenhang mit lvcreate. In einem skript lege ich einen snapshot für ein LV an:
echo "lvcreate:" >> /var/log/update.log 2>&1 /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1
Bei diesem Befehl bleibt das System (ist ne VM) stehen. Ich krieg sie nur noch mit Magic SysRq neu gestartet.
Das log wird genau bis hier geschrieben:
... lvcreate: [..] Suspending vg1-lv_root (252:0) with filesystem sync with device flush
Das ganze ist reproduzierbar. Der Hammer ist: Lass ich die Umleitung von stderr weg, läuft das skript durch und macht was es soll und die Maschine bleibt nicht stehen. Das ist auch reproduzierbar. Sprich: "/sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log" funktioniert. Ich kann die Umleitung von stderr natürlich weglassen, aber mich interessiert vor allem wieso das nicht funktioniert.
Seehr seltsam. Kannst du mal Varianten testen?: lvcreate ... 2>&1 | tee /var/log/update.log unbuffer lvcreate ... >>/var/log/update.log 2>&1 Oder evtl. mal ein strace/ltrace drauf loslassen? LANG=C ltrace -f -S -s 128 -o lvcreate.ltrace \ lvcreate ... >>/var/log/update.log 2>&1 Das lvcreate.ltrace wird sicher sehr groß, schick das NICHT an die Liste, sondern komprimiert als .gz/.bz2/.xz per PM an mich. Ich guck dann mal drüber und ggfs. kannst du's immer noch bei paste.opensuse.org raufladen ;) Falls eine oder beide der obigen Varianten tun, wäre ein Vergleich interessant, also LANG=C ltrace -f -S -s 128 -o lvcreate_tee.ltrace \ lvcreate ... 2>&1 | tee /var/log/update.log bzw. LANG=C ltrace -f -S -s 128 -o lvcreate_unbuffer.ltrace \ unbuffer lvcreate ... >>/var/log/update.log 2>&1 BTW: strace/ltrace sind für mich unverzichbare Werkzeuge ;) Damit kann man scheinbar völlig unverständliches Verhalten eines Programmes aufklären ;) -dnh -- "Ich habe überhaupt keine Hoffnung mehr in die Zukunft unseres Landes, wenn einmal unsere Jugend die Männer von morgen stellt. Unsere Jugend ist unerträglich,unverantwortlich und entsetzlich anzusehen" -- Aristoteles -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
----- On Feb 13, 2016, at 9:54 AM, David Haller dnh@opensuse.org wrote:
Hallo,
Am Fri, 12 Feb 2016, Lentes, Bernd schrieb:
ich habe ein Problem mit Umleitungen in Zusammenhang mit lvcreate. In einem skript lege ich einen snapshot für ein LV an:
echo "lvcreate:" >> /var/log/update.log 2>&1 /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1
Bei diesem Befehl bleibt das System (ist ne VM) stehen. Ich krieg sie nur noch mit Magic SysRq neu gestartet.
Das log wird genau bis hier geschrieben:
... lvcreate: [..] Suspending vg1-lv_root (252:0) with filesystem sync with device flush
Das ganze ist reproduzierbar. Der Hammer ist: Lass ich die Umleitung von stderr weg, läuft das skript durch und macht was es soll und die Maschine bleibt nicht stehen. Das ist auch reproduzierbar. Sprich: "/sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log" funktioniert. Ich kann die Umleitung von stderr natürlich weglassen, aber mich interessiert vor allem wieso das nicht funktioniert.
Seehr seltsam. Kannst du mal Varianten testen?:
lvcreate ... 2>&1 | tee /var/log/update.log unbuffer lvcreate ... >>/var/log/update.log 2>&1
Oder evtl. mal ein strace/ltrace drauf loslassen?
LANG=C ltrace -f -S -s 128 -o lvcreate.ltrace \ lvcreate ... >>/var/log/update.log 2>&1
Das lvcreate.ltrace wird sicher sehr groß, schick das NICHT an die Liste, sondern komprimiert als .gz/.bz2/.xz per PM an mich. Ich guck dann mal drüber und ggfs. kannst du's immer noch bei paste.opensuse.org raufladen ;)
Falls eine oder beide der obigen Varianten tun, wäre ein Vergleich interessant, also
LANG=C ltrace -f -S -s 128 -o lvcreate_tee.ltrace \ lvcreate ... 2>&1 | tee /var/log/update.log bzw.
LANG=C ltrace -f -S -s 128 -o lvcreate_unbuffer.ltrace \ unbuffer lvcreate ... >>/var/log/update.log 2>&1
BTW: strace/ltrace sind für mich unverzichbare Werkzeuge ;) Damit kann man scheinbar völlig unverständliches Verhalten eines Programmes aufklären ;)
Hallo David, mit unbuffer klappt das, das skript läuft dann durch. Mein Kommando sieht dann wie folgt aus: unbuffer /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1 Das mit dem tee habe ich nicht versucht. Das mit dem ltrace mach ich noch und schicke Dir das. Vielen Dank schon mal. Bernd Helmholtz Zentrum München Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Dr. Alfons Enhsen, Renate Schlusen (komm.) Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
----- On Feb 15, 2016, at 9:52 PM, Bernd Lentes bernd.lentes@helmholtz-muenchen.de wrote:
Hallo David,
mit unbuffer klappt das, das skript läuft dann durch. Mein Kommando sieht dann wie folgt aus: unbuffer /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1 Das mit dem tee habe ich nicht versucht.
Das mit dem ltrace mach ich noch und schicke Dir das.
Vielen Dank schon mal.
Das mit ltrace klappt leider nicht: ""/usr/bin/unbuffer" is not an ELF file". Unbuffer ist ein skript, das klappt wohl nicht mit ltrace. Ich mach das mit dem strace und schick es Dir. Bernd Helmholtz Zentrum München Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Dr. Alfons Enhsen, Renate Schlusen (komm.) Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
----- On Feb 16, 2016, at 2:41 PM, Bernd Lentes bernd.lentes@helmholtz-muenchen.de wrote:
----- On Feb 15, 2016, at 9:52 PM, Bernd Lentes bernd.lentes@helmholtz-muenchen.de wrote:
Hallo David,
mit unbuffer klappt das, das skript läuft dann durch. Mein Kommando sieht dann wie folgt aus: unbuffer /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1 Das mit dem tee habe ich nicht versucht.
Das mit dem ltrace mach ich noch und schicke Dir das.
Vielen Dank schon mal.
Das mit dem strace klappt auch nicht so: vm58820-6:~ # strace -f -tt -o ./lvcreate_mit_unbuffer_ohne_umleitung.log unbuffer /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root erzeugt diesen Output: File descriptor 3 (/dev/pts/0) leaked on lvcreate invocation. Parent PID 4665: expect Setting logging type to disk Setting chunksize to 8 sectors. Finding volume group "vg1" Archiving volume group "vg1" metadata (seqno 427). Creating logical volume lv_root_snapshot Creating volume group backup "/etc/lvm/backup/vg1" (seqno 428). Found volume group "vg1" activation/volume_list configuration setting not defined: Checking only host tags for vg1/lv_root_snapshot Creating vg1-lv_root_snapshot Loading vg1-lv_root_snapshot table (252:1) Resuming vg1-lv_root_snapshot (252:1) Clearing start of logical volume "lv_root_snapshot" Creating logical volume snapshot0 Found volume group "vg1" Found volume group "vg1" Creating vg1-lv_root-real Loading vg1-lv_root-real table (252:2) Loading vg1-lv_root table (252:0) Creating vg1-lv_root_snapshot-cow Loading vg1-lv_root_snapshot-cow table (252:3) Resuming vg1-lv_root_snapshot-cow (252:3) Loading vg1-lv_root_snapshot table (252:1) Suspending vg1-lv_root (252:0) with filesystem sync with device flush und dann bleibt die Maschine stehen. Ohne jegliche Umleitung. lvcreate_mit_unbuffer_ohne_umleitung.log liegt hier: https://hmgubox.helmholtz-muenchen.de:8001/d/b4c7025bac/ Die letzte Zeile in dieser Datei lautet: 4666 19:37:41.352001 ioctl(4, DM_DEV_SUSPEND also anscheinend als das LV vg1-lv_root suspended wird. Frage: strace zeigt ja Systemaufrufe an. Wenn ich "man ioctl" mache, kriege ich dies hier: Linux Programmer's Manual NAME ioctl - control device SYNOPSIS #include <sys/ioctl.h> int ioctl(int d, int request, ...); Ist das das der Systemaufruf ? Immerhin scheint sich ja die manpage ja auf die Programmierung mit C zu beziehen. Bernd Helmholtz Zentrum München Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Dr. Alfons Enhsen, Renate Schlusen (komm.) Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
----- On Feb 16, 2016, at 7:59 PM, Bernd Lentes bernd.lentes@helmholtz-muenchen.de wrote:
----- On Feb 16, 2016, at 2:41 PM, Bernd Lentes bernd.lentes@helmholtz-muenchen.de wrote:
----- On Feb 15, 2016, at 9:52 PM, Bernd Lentes bernd.lentes@helmholtz-muenchen.de wrote:
Hallo David,
mit unbuffer klappt das, das skript läuft dann durch. Mein Kommando sieht dann wie folgt aus: unbuffer /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1 Das mit dem tee habe ich nicht versucht.
Das mit dem ltrace mach ich noch und schicke Dir das.
Vielen Dank schon mal.
Das mit dem strace klappt auch nicht so:
vm58820-6:~ # strace -f -tt -o ./lvcreate_mit_unbuffer_ohne_umleitung.log unbuffer /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root
erzeugt diesen Output:
File descriptor 3 (/dev/pts/0) leaked on lvcreate invocation. Parent PID 4665: expect Setting logging type to disk Setting chunksize to 8 sectors. Finding volume group "vg1" Archiving volume group "vg1" metadata (seqno 427). Creating logical volume lv_root_snapshot Creating volume group backup "/etc/lvm/backup/vg1" (seqno 428). Found volume group "vg1" activation/volume_list configuration setting not defined: Checking only host tags for vg1/lv_root_snapshot Creating vg1-lv_root_snapshot Loading vg1-lv_root_snapshot table (252:1) Resuming vg1-lv_root_snapshot (252:1) Clearing start of logical volume "lv_root_snapshot" Creating logical volume snapshot0 Found volume group "vg1" Found volume group "vg1" Creating vg1-lv_root-real Loading vg1-lv_root-real table (252:2) Loading vg1-lv_root table (252:0) Creating vg1-lv_root_snapshot-cow Loading vg1-lv_root_snapshot-cow table (252:3) Resuming vg1-lv_root_snapshot-cow (252:3) Loading vg1-lv_root_snapshot table (252:1) Suspending vg1-lv_root (252:0) with filesystem sync with device flush
und dann bleibt die Maschine stehen. Ohne jegliche Umleitung.
lvcreate_mit_unbuffer_ohne_umleitung.log liegt hier: https://hmgubox.helmholtz-muenchen.de:8001/d/b4c7025bac/ Die letzte Zeile in dieser Datei lautet: 4666 19:37:41.352001 ioctl(4, DM_DEV_SUSPEND
also anscheinend als das LV vg1-lv_root suspended wird. Frage: strace zeigt ja Systemaufrufe an. Wenn ich "man ioctl" mache, kriege ich dies hier:
Linux Programmer's Manual NAME ioctl - control device
SYNOPSIS #include <sys/ioctl.h>
int ioctl(int d, int request, ...);
Ist das das der Systemaufruf ? Immerhin scheint sich ja die manpage ja auf die Programmierung mit C zu beziehen.
Hi, die LVM Mailingliste hat geholfen. Es liegt an dem suspend, das während lvcreate gemacht wird. Weitere Infos: https://www.redhat.com/archives/linux-lvm/2016-February/msg00032.html Bernd Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Dr. Alfons Enhsen, Renate Schlusen (komm.) Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (2)
-
David Haller
-
Lentes, Bernd