Случилась маленькая неприятность, “умер“ тут один сервер Microsoft Lync. Ничего бы в этом страшного небыло, если бы их было два, а ведь он был один, и этот один, безвременно почил… Конечно, умирают современные системы не своей смертью, обычно, что-то является причиной и аппаратные сбои теперь случаются реже, чем вмешательство темных внешних сил. В нашем случае всему виной были неблагоприятно сложившиеся звезды обстоятельства, которым немного помогли администраторы.
Эпиграф: Нет повести печальнее на свете, чем повесть о заклинившем ресете.
А началось все с того, что на хостовом сервере (это такой компьютер, где одновременно установлено несколько виртуальных машин прим. ред.) закончилось место на диске. Вроде бы неплохой сервер и еще недавно было на нем свободных гигабайт эдак 5 (!) , что вполне достаточно для некоторого времени работы двух виртуальных машин, Lync Frond End и Lync Edge, особенно с учетом того, что рабочая база данных хранилась на отдельном на SQL сервере. И ничто не предвещало беды…
Ничто не предвещало беды, пока Windows не выделила несколько лишних гигабайт под виртуальную память для обслуживания какой-нибудь уж слишком большой конференции. (ох уж эта виртуальность, виртуальные машины, виртуальная память, виртуальная- не настоящая жизнь, которая зачастую противоречит реальной) Вот тут то и случилось страшное, на жестком диске места практически не осталось, разве что мегабайт 100, но этого было явно недостаточно для нормальной работы сервера. И к чему это привело? Правильно, все виртуальные машины перешли в состояния сна. Компьютеры – они же как люди, если им не обеспечили места для работы, так и норовят взять и завалиться поспать.
Администратор, получив сообщение, что Lync не работает, заглянул на сервер и увидел, что виртуальные машины в состоянии глубокого анабиоза, и нужно освобождать диск, чтобы вернуть их в рабочее состояние. О, замечательно, подумал администратор, а не удалить ли старые снэпшоты, на виртуалках? (снэпшот – копия виртуального диска виртуальной машины на определенный момент времени, делается для восстановления в случае сбоев прим.ред.) Зайдя в диспетчер Hyper-v для управления виртуальными машинами, он просто удалил старые снэпшоты. А мы знаем, что snapshot в Hyper-v – это не просто образ всего диска, а некая разница между тем, что было и тем, что стало, т.е. при удалении этого образа система сливает все изменения вместе в один файл. Но это происходит не сразу, а после корректного выключения виртуальной машины. Вот тут есть одна загвоздочка, чтобы слить изменения вместе на хосте должно быть дисковое пространство куда будет записан новый и совсем не маленький файл виртуального диска, а мы помним, что оно-то как раз и кончилось.
После деинсталляции нескольких приложений, хостовый сервер запросил перезагрузку, куда и был с чистой совестью отправлен, поскольку все виртуалки находятся в спящем состоянии, и ничем это им повредить не должно было.
А в это самое время второй администратор, слегка позднее чем первый заметил, что Lync не работает и заглянул на сервер, чтобы проверить что и как. Он увидел виртуальные машины в спящем состоянии и несколькими пинками кликами мышки попытался их разбудить. После чего последние осознали, что пора уже заняться слиянием удаленных снэшотов и тут же начали свое дело, опять же несколько хватило места. Администратор глядя в диспетчер Hyper-v ни одного снапшота не увидел (мы помним, что их уже удалил первый администратор), а также заметил то, что на диске валяются несколько файлов старых снэпшотов (которые система еще не успела слить в один файл) и здраво рассудил, что раз в консоли их нет, то и с диска их можно просто удалить. Недолго думая он просто стер их, пользуясь своими административными правами. В это самое время сервер, отправленный на перезагрузку первым администратором, завершил все необходимые приготовления к этому действию, затормозил все сервисы (мы знаем, что Windows крутая, многозадачная система), что кстати, позволило удалить некоторые файлы снэпшотов, после чего ушел в перезагрузку. К несчастью он не перезагружался довольно давно, последние эдак месяцев шесть и обновления также на него не ставились, работает и работает…
Нужно ли говорить, что после перезагрузки сервер нормально уже не стартовал. Где-то посередине старта просто завис и перестал отвечать на что-либо не только по сети, но даже из серверной консоли. После пары часов ожидания, при помощи страшной кнопки “reset” он был отправлен в жесткую перезагрузку, из которой вернулся к какой-никакой жизни только в режиме защиты от сбоев. Загрузка последней рабочей конфигурации, также ничего не дала. Сервер загрузился, но стартовать большинство сервисов, в том числе и Hyper-V, отказался. Осталось только списать файлы жестких дисков виртуальных машин на другой сервер и попытаться поднять их там, что и было сделано.
В итоге, операционная система на хостовой машине была полностью переустановлена (If you want to feel OK, install you Windows everyday), из двух виртуальных машин, запустилась на другом сервере только Lync Edge и то только после того, как было произведено слияние всех найденных для него снэпшотов вручную из диспетчера Hyper-V. Осталось восстановить Lync Front End. Создали новую виртуалку, подключили к ней образ диска чистой системы, задали старый IP адрес и старое имя. Ввели в домен, установили необходимые пререквизиты операционной системы согласно документации и запустили установку Lync Server со стандартного диска. Установка легко нашла уже имеющуюся топологию и подключилась к базе данных, подцепила ее и установила сервер Front End со всеми имеющимися на тот момент параметрами, после установки необходимых сертификатов и запуска служб Lync Server, Lync клиент сам подключился к серверу и заработал как ни в чем не бывало, теперь осталось проверить правильность работы всех служб и можно сказать, что легко отделались. Если бы это была версия Standard (где база данных хранится на том же сервере, где и Lync Front End), то ручных настроек было бы больше, ведь копию базы данных, конечно же, давно никто не делал. И мне даже интересно, а сделают ли ее сейчас или будут ждать, когда умрет своей или не своей смертью SQL сервер.
Баф
Очень поучительная история
Хорошо хоть восстановление сервиса прошло более-менее без проблем