Короткий ответ

Не нажимайте Destroy и не создавайте новую VM с тем же VMID 101, пока не прочитаете ошибку задачи, qm status 101, qm config 101 и pvesm status. Чаще всего старт блокирует lock после оборванного backup/migrate, offline local-lvm, заполненный thin pool или отсутствующий том. Unlock без понимания, кто держит lock, портит диск.

Сначала докажите, что том vm-101-disk-0 существует и storage online. Конфиг в /etc/pve/qemu-server/101.conf дешевле диска.

Симптомы и как отличить

Типичная картина:

  • задача Start падает за секунды с TASK ERROR;
  • в GUI статус stopped, lock-иконка;
  • после ребута pve1 часть VM поднялась, 101 нет;
  • в журнале qemu: cannot open disk / permission / lock.

Отличия:

Что видноСкорее не «не стартует»Куда смотреть
Гость «работает», но недоступензависание qemuVM зависла и не выключается
Старт есть, внутри 100% дискгостевая ФСДиск VM заполнен
Все VM на одном storage красныеstorageХранилище недоступно
Start висит минутами на snapshotцепочка снимковSnapshot не удаляется

Возможные причины

  1. Lock: /var/lock/qemu-server/lock-101.conf после убитого vzdump, migrate, snapshot.
  2. Storage local-lvm inactive, NFS/iSCSI offline, ZFS не импортирован.
  3. Thin pool 100%: qemu не открывает том.
  4. В конфиге путь к диску, которого нет (ручное редактирование, неудачный move disk).
  5. Нехватка RAM/CPU на узле, numa, hostpci без устройства, ISO в ide2 с недоступного storage.
  6. Вложенная виртуализация/cpu: host на железе без нужных флагов после миграции.

Диагностика

Плейсхолдеры: узел pve1, VMID 101, local-lvm, мост vmbr0, пул rpool.

pveversion
qm status 101
qm config 101
pvesm status
ls -l /etc/pve/qemu-server/101.conf
ls -l /var/lock/qemu-server/lock-101.conf

qm status покажет stopped или running и lock. qm config — реальные scsi0: local-lvm:vm-101-disk-0, net0 на vmbr0, smbios, cpu.

Storage и том

pvesm status
lvs -a | grep -E '101|data'
zfs list -r rpool | grep 101
pvesm list local-lvm | grep 101

Если pvesm status для local-lvm не active, старт любой VM на нём бесполезен — сначала storage.

Журнал задачи и qemu

В GUI: Datacenter → Task history. На узле:

journalctl -u qemu-server@101 -b --no-pager
grep -R "101" /var/log/syslog | tail

Ищите can't lock file, Failed to get shared lock, No such file or directory для qcow/raw, KVM: module not loaded.

Ресурсы узла

free -h
lscpu | grep -E 'Virtualisation|vmx|svm'
cat /sys/module/kvm_intel/parameters/nested 2>/dev/null

Старт падает сразу с OOM в dmesg — не lock.

Решение

Сценарий A. Lock после оборванной задачи

Убедитесь, что нет живого kvm/vzdump для 101:

ps aux | grep -E 'kvm|vzdump' | grep -v grep
qm status 101

Если процесса гостя нет и backup не идёт:

qm unlock 101
qm start 101
qm status 101

Unlock при живом qemu — риск порчи диска. Тогда сначала остановка зависшего гостя.

Сценарий B. Storage offline или thin 100%

Верните хранилище или освободите LVM-thin. После pvesm status = active:

qm start 101

Сценарий C. Том не найден, конфиг ссылается на старый volume

Сверьте pvesm list с строкой scsi0. Если диск на rpool/data/vm-101-disk-0, а в конфиге local-lvm — поправьте storage в GUI (Hardware → Disk) или одной правкой конфига после backup строки. Не создавайте пустой диск поверх.

Сценарий D. ISO/cloudinit storage недоступен

Временно отвяжите CD-ROM (ide2/sata1) если он с мёртвого NFS, затем start. Cloud-init диск тоже лежит на storage: он должен быть online.

Сценарий E. PCI passthrough / CPU

Уберите hostpci0 для теста или верните устройство в IOMMU. Для CPU смените host на x86-64-v2-AES (дефолт PVE 8), если узел без нужных флагов.

Как проверить, что проблема устранена

qm status 101
qm agent 101 ping
pvesm status

Статус running, в Task log Start — OK. Гость отвечает агенту либо по сети. Lock-файла нет. Повторный Stop/Start на pve1 проходит. Если VM должна сидеть на vmbr0, ping с гостя — отдельная проверка, не замена успешного qemu.

Если не помогло

  • Start ок, сразу paused: thin/ZFS/ENOSPC — смотрите IO, не CPU.
  • KVM not available: включите VT-x/AMD-V, выгрузите чужой гипервизор.
  • Ошибка только после migrate: CPU type и диск на shared storage — миграция.
  • Конфиг пустой, диск есть: не invent VMID; ищите 101.conf на другом узле кластера в /etc/pve/nodes/.
  • Подозрение на битый qcow: qemu-img check только на остановленной VM и с копией.

Профилактика

  • Не убивать vzdump через kill -9.
  • Алерт на lock в GUI и на Data% thin pool.
  • Перед правкой 101.conf — копия содержимого в заявку.
  • ISO на локальный local, не на самый хрупкий NFS.
  • После сбоя питания — qm list и сверка неожиданных stopped.

FAQ

Чем qm unlock отличается от удаления lock-файла руками?

qm unlock штатный путь. rm lock-файла обходит проверки. Не надо, если qm unlock работает.

Можно ли сменить VMID, чтобы «обойти» ошибку?

Нет. Новый ID без дисков создаст пустышку. Старый том останется сиротой.

Почему GUI пишет storage not online, а lvs видит том?

PVE смотрит pvesm status (доступность storage.cfg + backend). Сырой LVM жив, но storage отключён в datacenter — старт через qm всё равно упрётся в API.

Нужно ли включать HA, чтобы VM стартовала после ребута?

HA не лечит lock и отсутствующий диск. Автостарт — onboot: 1 в конфиге плюс живой storage.

qm start пишет timeout — это lock?

Не обязательно. Медленный lock на NFS qcow, fsck внутри гостя не виден на хосте. Смотрите ps и iostat, не только Task ERROR.