Короткий ответ
Не нажимайте 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.
Отличия:
| Что видно | Скорее не «не стартует» | Куда смотреть |
|---|---|---|
| Гость «работает», но недоступен | зависание qemu | VM зависла и не выключается |
| Старт есть, внутри 100% диск | гостевая ФС | Диск VM заполнен |
| Все VM на одном storage красные | storage | Хранилище недоступно |
| Start висит минутами на snapshot | цепочка снимков | Snapshot не удаляется |
Возможные причины
- Lock:
/var/lock/qemu-server/lock-101.confпосле убитогоvzdump, migrate, snapshot. - Storage
local-lvminactive, NFS/iSCSI offline, ZFS не импортирован. - Thin pool 100%: qemu не открывает том.
- В конфиге путь к диску, которого нет (ручное редактирование, неудачный move disk).
- Нехватка RAM/CPU на узле,
numa,hostpciбез устройства, ISO вide2с недоступного storage. - Вложенная виртуализация/
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.confqm 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 101Unlock при живом 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.