XCP-ng: tapdisk experienced an error
Потребовалось запустить выключенную машину. Не запускается — получаю ошибку tapdisk experienced an error.
Вводные
Перезагрузил хост. Запустилось ровно столько виртуальных машин, сколько было запущено до перезагрузки. Дополнительные не запускаются. Ладно, временно выключил одну, сделал свои дела, включил обратно.
Через несколько дней обновилась ОС на нескольких виртуальных машинах. Выключение они не пережили. Всё та же ошибка. Перезагрузил хост — больше ни одна не запустилась.
/var/log/xensource.log:
xapi: [error|localhost|2127 |VDI.activate D:005e4c46b3f7|backtrace] sm_exec D:e2f4977f9a92 failed with exception Storage_interface.Backend_error(_)
xapi: [error|localhost|2127 |VDI.activate D:005e4c46b3f7|backtrace] Raised Storage_interface.Backend_error(_)
xapi: [error|localhost|2127 ||backtrace] VDI.activate D:005e4c46b3f7 failed with exception Storage_interface.Backend_error(_)
xapi: [error|localhost|2127 ||backtrace] Raised Storage_interface.Backend_error(_)
xapi: [error|localhost|2126 ||storage_impl] Storage_impl: dp:vbd/6/xvda sr:148b4f48-3d4d-7cd1-ddbc-a7ee7972f313 vdi:ce625be0-2b48-4495-b304-94dde8df74e8 op:activate error:Storage_interface.Backend_error(_) backtrace:Raised at file "storage/storage_interface.ml", line 18, characters 0-26#012Called from file "ocaml/xapi/storage_impl.ml", line 312, characters 14-57
xenopsd-xc: [error|localhost|27 |Parallel:task=107.atoms=1.(VBD.plug RW vm=4f51ce83-0b21-829d-9c8d-1ae0aea82732)|xenops] Re-raising exception SR_BACKEND_FAILURE_453: ; tapdisk experienced an error [opterr=Operation not permitted];
xenopsd-xc: [error|localhost|27 |Parallel:task=107.atoms=1.(VBD.plug RW vm=4f51ce83-0b21-829d-9c8d-1ae0aea82732)|task_server] Task 116 failed; Xenops_interface.Storage_backend_error(_)
xenopsd-xc: [debug|localhost|27 ||xenops_server] TASK.signal 116 = ["Failed",["Storage_backend_error",["SR_BACKEND_FAILURE_453",["","tapdisk experienced an error [opterr=Operation not permitted]",""]]]]
/var/log/SMlog:
SM: [14873] ***** ['/usr/sbin/tap-ctl', 'spawn'] failed: status=1, pid=15019, errmsg=Operation not permitted: EXCEPTION , ['/usr/sbin/tap-ctl', 'spawn'] failed: status=1, pid=15019, errmsg=Operation not permitted
SM: [14873] ***** BLKTAP2:: EXCEPTION , Tapdisk(vhd:/dev/VG_XenStorage-148b4f48-3d4d-7cd1-ddbc-a7ee7972f313/VHD-ce625be0-2b48-4495-b304-94dde8df74e8): ['/usr/sbin/tap-ctl', 'spawn'] failed: status=1, pid=15019, errmsg=Operation not permitted
SM: [14873] ***** tapdisk failed exception: Tapdisk(vhd:/dev/VG_XenStorage-148b4f48-3d4d-7cd1-ddbc-a7ee7972f313/VHD-ce625be0-2b48-4495-b304-94dde8df74e8): ['/usr/sbin/tap-ctl', 'spawn'] failed: status=1, pid=15019, errmsg=Operation not permitted: EXCEPTION , Tapdisk(vhd:/dev/VG_XenStorage-148b4f48-3d4d-7cd1-ddbc-a7ee7972f313/VHD-ce625be0-2b48-4495-b304-94dde8df74e8): ['/usr/sbin/tap-ctl', 'spawn'] failed: status=1, pid=15019, errmsg=Operation not permitted
SM: [14873] Raising exception [453, tapdisk experienced an error [opterr=Operation not permitted]]
SM: [14873] ***** Local VHD on LVM: EXCEPTION , tapdisk experienced an error [opterr=Operation not permitted]
Решение
Гуглим.
# xe vm-cd-eject --multiple
Не помогает.
Возможно, забился раздел с логами?
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 3.9G 1.3G 2.5G 34% /var/log
Опять нет.
Может, в ФС закончились inode?
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda5 262144 262144 0 100% /var/log
Бинго!
В моём случае было 100500 файлов ovsdb-server.log. Может, ещё каких. Удалил прошлые логи из /var/log, без подкаталогов. Так как файлов много, удалял командой:
# cd /var/log
# ls -1 | grep ovsdb-server.log. | xargs rm -f
Виртуалки запускаются, inode освободились:
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda5 262144 4439 257705 2% /var/log