Qemu-KVM VM EIO при использовании внутреннего хранилища nfsLinux

Anonymous
Qemu-KVM VM EIO при использовании внутреннего хранилища nfs

Сообщение Anonymous »

Я столкнулся с проблемой. Моя хост-машина, как клиент nfs, смонтировала каталог на сервере nfs через nfs. В этом каталоге находится диск qcow2. Я использую этот диск qcow2 в качестве диска хранения виртуальной машины.

Код: Выделить всё

(rw,relatime,sync,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,local_lock=none)
Я использую nfsv4. Я знаю, что nfsv4 имеет механизм блокировки с отслеживанием состояния. После того, как моя хост-сеть отключена на время, превышающее время аренды nfsv4, моя виртуальная машина снова пытается выполнить ввод-вывод, и происходит EIO. Точно так.
[img]https:// i.sstatic.net/LBJfYBdr.png[/img]

Что меня сейчас смущает, так это то, что когда я пытаюсь выполнить ввод-вывод в том же файле в каталоге nfs на хосте, ввод-вывод хоста может быть успешным. Я не совсем понимаю, почему ввод-вывод хоста может вернуться в нормальное состояние после периода аренды nfsv4, а ввод-вывод виртуальной машины будет иметь EIO? Какое состояние файла сохраняет qemu, чтобы вызвать это?
Сначала я думал, что это может быть открытое (fd), потому что виртуальная машина откроет файл только один раз, а затем использует тот же fd для чтения и записи ввода-вывода. Однако я написал тестовый сценарий на хосте, используя тот же fd для выполнения writeIO в цикле while true, и ввод-вывод хоста все еще может вернуться в нормальное состояние после периода аренды.
Итак, что хранится в qemu, что вызывает эту разницу? Способ восстановления ввода-вывода виртуальной машины заключался в том, чтобы выключить виртуальную машину и перезапустить ее (аналогично повторному открытию файла на диске? Я не знаю)

Подробнее здесь: https://stackoverflow.com/questions/792 ... nd-storage

Вернуться в «Linux»