MCP

четверг, 12 июля 2012 г.

Ненависти к Hyper-V псто

Утро не предвещало ничего плохого. Приехал маленький сервер и на него нужно было взгромоздить Hyper-V (если быть точнее, то версии 2008 R2). Никаких проблем не ожидалось, всё-таки не первый раз ставлю Hyper-V, а уж винду тем более, но у сервера была маленькая особенность (что для серверов совсем не особенность). В нём радостно урча сидели 4 винчестера по 2Тб каждый.

Итак, немного покопаться в биосе, поднять RAID10, получив 4Тб радости, воткнуть флешку и пойти покурить, пока это всё ставится (а ставится Hyper-V около 10 минут, так что ещё на кофе остаётся время).

И тут возникла первая проблема. После копирования файлов и установки перед самой перезагрузкой, винда вдруг заявила: нехорошие диски у тебя, не буду я с них грузиться. Давай, до свидания! Я всё откатываю. Тут я слегка офигел, но быстро понял, ибо это достаточно известный факт: Windows не умеет грузиться с винчестеров более 2Тб. Или умеет, но при лётной погоде.

Эти грабли удалось побороть достаточно просто: хвала Ктулху, что RAID-контроллер позволил сделать 2 виртуальных массива. Что я и сделал. 50Гб для системы, 3950Гб для данных. Винда бодро установилась, я пошёл её настраивать, включать в SCVMM, ставить апдейты и прочую мишуру, которую обязательно делать с виндой. Когда всё уже было готово, я решил перенести пару тестовых виртуалок и тут меня ожидали вторые грабли: виртуальные диски отказывались создаваться под всякими разными надуманными предлогами. Не буду расписывать как я танцевал с бубном (нижний брейк в сочетании с пасодоблем), но выяснил, что Hyper-V очень не любит винчестеры с размером сектора в 4k. Моя проблема оказалось в том, что RAID решил для такого большого винчестера установить сектор в 1 килобайт (вместо стандартных 512 байт), что было явно не 4Кб, и решению по мнению операционки не поддавалось.

Тут меня посетила гениальная идея: разбить диски на 2 рейда по 2Тб и молиться Ктулху, чтобы в таком конфиге сектор получился в 512 байт (в дальнейшем эта идея оказалась верной). Но тут винда решила устроить маленькую подлость, и обозвать диск 1 диском 2, а диск 2 диском 1, или что более корректно: диск 0 диском 2, а диск 1 диском 1. Вы чего-нибудь поняли? Я тоже не очень разобрался, но в результате система поставилась на первый из двух виртуальных дисков, а очень нужный Recovery-раздел на 100 мегабайт на второй.

Тут была пауза, во время которой я матерился как сантехник у которого рука застряла в унитазе, при этом на самом унитазе уже восседал хозяин и делал своё грязное дело. Впрочем, отвлёкся, пойду цветок полью, а то он завял.

В общем, переставил ещё раз, сделал диски dynamic и создал spanned-том (аналог JBOD) на 3950Гб из двух псевдовиртуальных. Было очень радостно на душе от того, что такую хитропопую проблему так оригинально решил. Новые виртуалки создавались без проблем и ничего не предвещало беды... Но тут опять появился SCVMM, который начал утверждать, что он не может мигрировать виртуалки, потому что на сервере нет места *удар моей головы ап стену*. Расследование показало, что System Center не понимает dynamic-диски (ха! их ещё 2000 винда понимала), и из-за этого отказывается мигрировать виртуалки. Но что самое интересное, если перевести dynamic диск в basic, обновить информацию в SCVMM, перевести назад в dynamic, то всё замечательно работает. До первого рефреша о системе. Блин.
Каким местом это нужно было писать, я не знаю. Явно не руками, но и насчёт ног я тоже сомневаюсь. Во всяком случае, голова тут не использовалась.

Пришлось, в результате сделать 2 диска и при создании виртуалок помнить о том, что надо как-то следить за местом. Но ситуация выглядит абсолютно глупо.

Пойти что-ли прочитать про Hyper-V 2012, может там всё поправили и не надо так извращаться ради простейшей очевидной задачи.

Комментариев нет:

Отправить комментарий