Это не мурашки. Это реальность. Есть четыре сервера. Железных. Занимают два юнита. К ним идут провода.
А есть 50+ виртуальных машин. Среди которых затесалась 51ая, которой нет в реестре. И которую нельзя сделать xe vm-shutdown/xe vm-destroy. Но которая вполне себе живая…
Примерно так же бывает на файловой системе: inode есть, а имени у него нет… Но с этим научились бороться; да и занятый inode не умеет отсылать трафик по сети…
>Эта виртуальная машина когда-то имела диск, но диск был удалён (и осталась только его кешированная копия в памяти), что, в принципе, не мешало на этот диск писать/читать.
Это понятно.
>Эта виртуальная машина когда-то имела виртуальный сетевой адаптер, но он был удалён, что в принципе, не мешало отправлять и получать ip-пакеты.
Это тоже понятно.
>Эта виртуальная машина была — и её не стало.
Это не понятно. Машина была удалена? Если удалена, то как?
xe vbd-list vm-uuid=(our VM-uuid)
xe vif-list vm-uuid=(our VM-uuid)
xe vm-destroy uuid=(our VM-uuid)
xe vdi-destory uuid=(VDI-uuid, который мы посмотрели в п.1)
xe vif-destroy uuid=(vif-uuid, который мы посмотрели в п.2)
Именно. Более того, в нормальном режиме vm-destroy отказывается выполнять операцию над running, требуя статус halted.
А у меня в результате манипуляций с мастер-нодой (перезагрузка не вовремя) получился статус halted для запущенной VM. Всё последующее — результат именно этого.
Ну, дальше мы применяем принцип Оккама и считаем, что явление, существования которого мы не можем доказать, не существует. [если бы он себя хоть как-то проявлял, мы бы могли это использовать как доказательство существования бога]. Так как он себя никак не проявляет, то мы можем смело считать, что его нет.
ну можно поковырять таблицы виртуальных свичей и локализовать левый mac, после чего 2.…
3 PROFIT!
остановить/убить контекст виртуалки на более низком уровне. Должны быть инструменты.
Проблема в том, что более низкий уровень (пересоздание ovs бриджа) связано с прерыванием связи VDS'ов. А в таком режиме, что бридж переделать, что ребутнуть хост — не выход.
Алсо, если виртуальная машина переодически делает сама себе eth0 down, то даже это не поможет (она раз в сутки подключается, сливает данные/получает команды, и снова в автономку).
Это очень похоже на недокументированную функцию, которая позволяет запускать виртуальные машины в полностью невидимом режиме :-) Очень актуально во время визита масок-шоу.
Чаще всего на ночь планируется запуск процедур, котореы долго отрабатывают. Следовательно ребутить сервак очень рискованно. А днем все будут против — работают площадки.
ВДС держу у питерского хостера, и заметил, что с 1 ночи до 5 утра они иногда ребятут сервер, предварительно остановив мою вдс на минут 10-20.
Планирую теперь все высоконагрузочные процедуры в течение рабочего дня =)
Облако тем и отличается от обычных VDS, что для обслуживания хоста стопить гвестов (VDS) не нужно — их просто мигрируют на соседний хост. Лаг при этом исчисляется секундами.
Название топика порадовало.
В общем прогресс компьютерных призраков на лицо. Раньше они только мусорили в системе, а теперь с ними пообщаться уже можно.
Будь я ИИ, наделал бы себе таким образом запасных «копий». )
главная разница в том, что «удалённая инода» (и даже удалённый интерфейс) не является активной сущностью. С точки зрения old plain unix всё делится на процессы и файлы. Файлы могут быть «призраками» и никого это не волнует. В данном же случае у нас _процесс_ призрак.
Попробуйте найти аналогию именно «невидимому процессу».
Я видел зомби DomU в Xen. Симптомы уже смутно помню. По-моему по xm list у него был странный state и потребление ресурсов было по нулям. при этом машина не реагировала на xm shutdown. Непомню помог destroy или тоже нет. Ну в общем-то тоже забавная фишка.
(когда я этот пост писал, я ещё не знал про xen.lowlevel, сейчас я думаю, я этот домен нашёл бы).
Суть произошедшего: был перезагружен мастер, он посчитал, что все машины оффлайн и позволил стереть запись о виртуальной машине из базы XCP без отправки команды на слейв. Таким образом, любые высокоуровневые записи отсутствовали, и машины не существовало (а домен всё ещё оставался). Насколько я знаю зен сейчас, он физически не может иметь PV-домен, которому выделяются тики процессора, не «зная» о его существовании.
Ghost in the Xen