none
Миграция в кластер Hyper-V RRS feed

  • Вопрос

  • Есть Windows Hyper-V server 2012 R2 и 10 виртуальных машин с разными ОС. Образы VHD хранятся на общем ресурсе (Linux сервер), подключённый по iSCSI.
    Планируется купить два новых сервера (у каждого будет всего по две LAN, как и у имеющегося), установить на них Windows Hyper-V server 2016, настроить кластер и перенести туда все виртуальные машины. Как это правильно сделать?
    Я пока вижу вариант - добавление узла 2012 R2 в кластер 2016 и перемещение VM на узлы 2016. Но можно ли добавить в кластер узел с общим файловым хранилищем?

    Спасибо!


    19 марта 2018 г. 16:19
    Модератор

Ответы

  • Если стоит задача имеющийся единственный том сконвертировать в CSV, то без промежуточного диска возможной с последующей LSM не обойтись. 

    Какие видятся варианты по миграции:
    1. Обновление хоста Windows Server 2012 R2 до Windows Server 2016,
    2. Перенос ВМ на промежуточные диски,
    3. Создание кластера из Windows Server 2016 с общим диском,
    4. Импорт/миграция и кластеризация ВМ.

    • Помечено в качестве ответа AnahaymModerator 6 апреля 2018 г. 10:06
    23 марта 2018 г. 10:52
    Модератор
  • Дополню M.V.V. _ , что не все программы для Linux умеют создавать таргеты, которые будут работать с Windows Failover Cluster (причину он указал выше). Я как-то давно делал тестовую среду и остановился на scsi-target-utils (tgtd). Вот нашел у себя в заметках базовый пример:

    tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2015-08.project:project-01.project.local
    tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /dev/mapper/project-lun01 
    tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address=10.10.10.0/24
    tgtadm --lld iscsi --op show --mode target

    Но точно не помню, был ли этот вариант последним :). Поэтому надо проверять.

    • Помечено в качестве ответа AnahaymModerator 6 апреля 2018 г. 10:07
    23 марта 2018 г. 13:44
  • Более того, я не могу в кластере создать новую виртуальную машину, т.к. диск С не является общим у нод... Мне нужен промежуточный диск и в этом случае? Сначала перемещаю на него VM, а потом перемещаю в Кластер с общим диском?

    разобрался. нужно было выбрать "перемещать объекты виртуальной машины в разные расположения", и там указать C:\ClusterStorage\volume2\hyper-v и C:\ClusterStorage\volume2\hyper-v\virtual hard disks

    • Помечено в качестве ответа AnahaymModerator 6 апреля 2018 г. 14:15
    6 апреля 2018 г. 14:15
    Модератор

Все ответы

  • Во-первых, есть альтернативный путь - Shared-nothing live migration. Переносите VM на узел кластера (размещая её на CSV), а затем добавляйте её в кластер как роль. Всё это делается без остановки VM

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


    Слава России!


    • Изменено M.V.V. _ 19 марта 2018 г. 18:40
    19 марта 2018 г. 18:39
  • тут вот какое дело, общий ресрус в дальнейшем будет так же использоваться как хранилище VHD. Т.е. кластер делается только для отказоустойчивости роли Hyper-V и нод. Никакой репликации не будет. Т.е. один хост с общим хранилищем меняется на двунодный кластер с тем же самым хранилищем. Так же ведь можно?
    19 марта 2018 г. 18:44
    Модератор
  • Можно, в принципе. Сначала делается одноузловой кластер на Win2012R2, потом - добавление узла под Win2016 и rolling upgrade - кажется так.

    Есть детали, правда - типа как мастер проверки кластера запустить, т.е. что делать в это время с VM. А без мастера проверки кластер лучше не делать: iSCSI target на Linux может быть настроен весьма разнообразно, в т.ч. - и в конфигурации, не поддерживающей кластеризацию Windows.


    Слава России!

    19 марта 2018 г. 18:59
  • Так как кластера сейчас нет, то я бы не рекомендовал рисковать на проде. Просто сделайте еще один ISCSI target, если есть место на СХД, и создайте новый кластер на Windows Server 2016, затем выполните миграцию ВМ. Тут надо только понимать, что при живой миграции их придется перезагрузить два раза (включить и затем выключить режим совместимости CPU). Так же можно рассматривать варианты с оффлайн миграцией и с помощью Hyper-V replica (тоже надо будет включать режим совместимости CPU). Когда будет готов второй кластер, вы спокойно можете их все протестировать чтобы понять, какой вариант лучше подходит именно вам. 
    • Изменено Tema_BYMVP 20 марта 2018 г. 8:21
    20 марта 2018 г. 8:19
  • Тут надо только понимать, что при живой миграции их придется перезагрузить два раза (включить и затем выключить режим совместимости CPU). Так же можно рассматривать варианты с оффлайн миграцией и с помощью Hyper-V replica (тоже надо будет включать режим совместимости CPU).
    сейчас используется E5-2630v2, будет E5-2630v4. Это критично включать\выключать режим совместимости CPU ?
    20 марта 2018 г. 8:40
    Модератор
  • Процессор отличается, поэтому без вариантов. Hyper-V просто откажется выполнять Live миграцию или добавлять реплику.
    • Изменено Tema_BYMVP 20 марта 2018 г. 8:45
    20 марта 2018 г. 8:45
  • есть у меня для теста три железки с тремя разными процессорами:
    i3-6100U
    i5-6260U
    i5-7260U

    Я вот думаю, на i5-7ххх установить Hyper-V Server 2012 R2, а на i3-6xxx и i5-6xxx - Hyper-V Server 2016 и всё протестировать. Это будет нормально использовать два разных процессора для кластера для тестов? Общее хранилище или на виртуальном Debian настрою или на своей рабочей станции (WS 2012 R2).

    20 марта 2018 г. 9:50
    Модератор
  • Да, такой вариант вполне допустим для тестовой среды, так как все CPU от одного производителя. Всё будет работать (понятно, что режим совместимости CPU должен быть включен, если надо чтобы работала Live миграция). 
    20 марта 2018 г. 9:57
  • Так как кластера сейчас нет, то я бы не рекомендовал рисковать на проде. Просто сделайте еще один ISCSI target, если есть место на СХД, и создайте новый кластер на Windows Server 2016, затем выполните миграцию ВМ
    правильно ли я понял, что второе общее хранилище (LUN) обязательно? что нельзя просто взять имееющеся хранилище и перенести в кластер?
    23 марта 2018 г. 8:51
    Модератор
  • Почему, можно. Технически. Но это риск (ведь, получается, без предварительного тестирования делаем, черт знает, как будет работать таргет) + гарантированный простой всей инфраструктуры. Так же изменятся пути к ВМ, о чем тоже надо помнить (теперь будут вести на C:\ClusterStorage\CSVName). 

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

    23 марта 2018 г. 8:59
  • (ведь, получается, без предварительного тестирования делаем, черт знает, как будет работать таргет) 

    да я как раз сейчас тест и делаю. почти полностью смоделировал рабочую среду и тестирую и тестирую.

    Почему, можно. Технически.

    А как? вот есть у меня подключённый iSCSI диск. Его я могу подключить к любой ноде кластера, но не могу подключить (сделать его онлайн). А может и не надо так делать?

    23 марта 2018 г. 9:53
    Модератор
  • Уточните, этот диск уже подключен к какому-либо серверу, а вы дополнительно пытаетесь его подключить к кластеру? 

    Валидация кластера показывает ошибки? Как вижу, это тест. Поэтому запускать надо так же проверку стоража. 

    23 марта 2018 г. 9:59
  • Уточните, этот диск уже подключен к какому-либо серверу, а вы дополнительно пытаетесь его подключить к кластеру? 

    да, это диск подключён к тестовому Hyper-V, где есть одна VM. Я думал, может просто взять этот диск и переподлючить в кластере....

    Валидация кластера показывает ошибки? Как вижу, это тест. Поэтому запускать надо так же проверку стоража.
    Проверка кластера показала предупреждение, что используется только одна сетевая карта и ошибку, что Disk 0 не поддерживает команды SCSI-3, но disk 0 - это системный диск, на котором установлен Windows Server 2016.
    Сейчас повторю проверку с уже подключённым iSCSI диском.
    23 марта 2018 г. 10:20
    Модератор
  • Сейчас повторю проверку с уже подключённым iSCSI диском.

    ничего не изменилось. теже ошибки:

    23 марта 2018 г. 10:37
    Модератор
  • Если стоит задача имеющийся единственный том сконвертировать в CSV, то без промежуточного диска возможной с последующей LSM не обойтись. 

    Какие видятся варианты по миграции:
    1. Обновление хоста Windows Server 2012 R2 до Windows Server 2016,
    2. Перенос ВМ на промежуточные диски,
    3. Создание кластера из Windows Server 2016 с общим диском,
    4. Импорт/миграция и кластеризация ВМ.

    • Помечено в качестве ответа AnahaymModerator 6 апреля 2018 г. 10:06
    23 марта 2018 г. 10:52
    Модератор
  • Если стоит задача имеющийся единственный том сконвертировать в CSV, то без промежуточного диска возможной с последующей LSM не обойтись. 

    Какие видятся варианты по миграции:
    1. Обновление хоста Windows Server 2012 R2 до Windows Server 2016,
    2. Перенос ВМ на промежуточные диски,
    3. Создание кластера из Windows Server 2016 с общим диском,
    4. Импорт/миграция и кластеризация ВМ.

    я думаю, что второй варинат подойдёт. Сам сервер hyper-v имеет ещё 1TB свободного места. Можно перенести туда виртуальные диски, а потом общий ресурс добавить в кластер и мигрировать виртуальные машины с виртуальными дисками в новое хранилище. Правильно?
    23 марта 2018 г. 11:11
    Модератор
  • Правильно. Но надо понимать, что при переносе ВМ на локальные диски обновляемого до Windows Server 2016 узла будет простой, равный времени in-place upgrade.
    23 марта 2018 г. 11:25
    Модератор
  • не получается добавить iSCSI (цель на Linux настроена) диск в кластер. Что делаю:
    - в iSCSI инициаторе подключаю диск
    - делаю диск онлайн
    - инициализирую диск
    - создаю NTFS раздел
    - добавляю в кластер - ошибка:

    логи:

    Cluster physical disk resource online failed.

    Physical Disk resource name: Cluster Disk 1
    Device Number: 2
    Device Guid: {77209cd6-b070-9a7d-506f-ff9fe20c7db2}
    Error Code: 21
    Additional reason: ArbitrateFailure
    --------------------------------------------------
    Cluster resource 'Cluster Disk 1' of type 'Physical Disk' in clustered role 'Available Storage' failed. The error code was '0x15' ('The device is not ready.').
    Based on the failure policies for the resource and role, the cluster service may try to bring the resource online on this node or move the group to another node of the cluster and then restart it. Check the resource and group state using Failover Cluster Manager or the Get-ClusterResource Windows PowerShell cmdlet.
    --------------------------------------------------
    he Cluster service failed to bring clustered role 'Available Storage' completely online or offline. One or more resources may be in a failed state. This may impact the availability of the clustered role.
    --------------------------------------------------
    Clustered role 'Available Storage' has exceeded its failover threshold. It has exhausted the configured number of failover attempts within the failover period of time allotted to it and will be left in a failed state. No additional attempts will be made to bring the role online or fail it over to another node in the cluster. Please check the events associated with the failure. After the issues causing the failure are resolved the role can be brought online manually or the cluster may attempt to bring it online again after the restart delay period.

    Сейчас ещё iSCSI-цель на Windows Server попробую подключить.
    23 марта 2018 г. 13:10
    Модератор
  • Это как раз тот случай, о котором я писал в своём предыдущем ответе: у вас iSCSI Target на Linux не настроен на поддержку нужных для работы кластеризации Windows команд SCSI (SCSI-3 persistent reservation). Об этом вам сообщил мастер проверки кластера. Такой диск сделать кластерным невозможно, по крайней мере - если не поменять настройку iSCSI target, чтобы эти команды поддерживались. Но этот диск можно использовать на узле кластера как обычный локальный - чтобы перенести с него данные.


    Слава России!

    23 марта 2018 г. 13:31
  • так точно. цель на Windows Server сразу установилась. Буду просить помощи нашего Линуксоида. Может он знает, как вправить тамошний iSCSI

    только одного не могу понять: проверка показывает что Disk 0 не поддерживает команды iSCSI-3, но Disk 0 - это локальный диск. Ни Disk 1 (Windows iSCSI), Disk 2 (Linux iSCSI) не проверяются. по крайней мере, в логах они почти не фигирируют:

    23 марта 2018 г. 13:37
    Модератор
  • Дополню M.V.V. _ , что не все программы для Linux умеют создавать таргеты, которые будут работать с Windows Failover Cluster (причину он указал выше). Я как-то давно делал тестовую среду и остановился на scsi-target-utils (tgtd). Вот нашел у себя в заметках базовый пример:

    tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2015-08.project:project-01.project.local
    tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /dev/mapper/project-lun01 
    tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address=10.10.10.0/24
    tgtadm --lld iscsi --op show --mode target

    Но точно не помню, был ли этот вариант последним :). Поэтому надо проверять.

    • Помечено в качестве ответа AnahaymModerator 6 апреля 2018 г. 10:07
    23 марта 2018 г. 13:44
  • Дополню M.V.V. _ , что не все программы для Linux умеют создавать таргеты, которые будут работать с Windows Failover Cluster (причину он указал выше). Я как-то давно делал тестовую среду и остановился на scsi-target-utils (tgtd). Вот нашел у себя в заметках базовый пример:

    tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2015-08.project:project-01.project.local
    tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /dev/mapper/project-lun01 
    tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address=10.10.10.0/24
    tgtadm --lld iscsi --op show --mode target

    Но точно не помню, был ли этот вариант последним :). Поэтому надо проверять.

    но он рабочий?
    23 марта 2018 г. 13:47
    Модератор
  • Чтобы это проверить, достаточно 1 Linux VM + 1 Windows Server VM и немного времени :) Я с этой задачей сталкивался в 2015 году. Помню, что была аналогичная проблема. Но больше - увы. 
    23 марта 2018 г. 13:58
  • Чтобы это проверить, достаточно 1 Linux VM + 1 Windows Server VM и немного времени :) Я с этой задачей сталкивался в 2015 году. Помню, что была аналогичная проблема. Но больше - увы. 

    мы же не ищем лёгкий путей... я вначале две недели поигрался с целями различных пакетов, а сегодня за 10 минут настроил цель на tgt tgt-glusterfs. И тесты прошли успешно!

    6 апреля 2018 г. 10:05
    Модератор
  • Правильно. Но надо понимать, что при переносе ВМ на локальные диски обновляемого до Windows Server 2016 узла будет простой, равный времени in-place upgrade.

    и так. Я только что переместил работающий тестовый сервер с Windows Server 2012 R2 на Windows Server 2016. С процессора i5-7260U на процессор i5-6260U без простоя и включения CPU-совмесимости. При этом Virtual Machine Connection сам переключился на другой сервер. После перезагрузки процессор поменялся на нужный (i5-6260U)

    Вот только я теперь порядок не пойму.
    Вначале в кластер нужно подключить CSV диск, и потом уже перемешать VM в кластер? Если да, то я не могу сделать этого:

    А если выбрать одну из нод, то там нет диска - он занят кластером. Как быть? Видимо надо починить Hyper-V в кластере...

    Более того, я не могу в кластере создать новую виртуальную машину, т.к. диск С не является общим у нод... Мне нужен промежуточный диск и в этом случае? Сначала перемещаю на него VM, а потом перемещаю в Кластер с общим диском?

    6 апреля 2018 г. 12:44
    Модератор
  • Более того, я не могу в кластере создать новую виртуальную машину, т.к. диск С не является общим у нод... Мне нужен промежуточный диск и в этом случае? Сначала перемещаю на него VM, а потом перемещаю в Кластер с общим диском?

    разобрался. нужно было выбрать "перемещать объекты виртуальной машины в разные расположения", и там указать C:\ClusterStorage\volume2\hyper-v и C:\ClusterStorage\volume2\hyper-v\virtual hard disks

    • Помечено в качестве ответа AnahaymModerator 6 апреля 2018 г. 14:15
    6 апреля 2018 г. 14:15
    Модератор
  • написал пошаговую статью по миграции в кластер 2016. если кому интересно.
    19 апреля 2018 г. 14:50
    Модератор
  • написал пошаговую статью по миграции в кластер 2016. если кому интересно.

    Добрый День.

    Как вариант опубликуйте ее в TechNet WiKI


    Я не волшебник, я только учусь MCP CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Пометить как ответ" или проголосовать "полезное сообщение". Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub.

    19 апреля 2018 г. 17:52
    Модератор
  • написал пошаговую статью по миграции в кластер 2016. если кому интересно.

     Не критика ( т.к. нестандартный подход как раз и интересен),

    но есть пара-другая вопросов в стиле "почему так?" :

    Не совсем понятно: MPIO на узлах Hyper-V кластера установлен?

    -FileSystem NTFS  т.е. не ReFS ?

    `

     (   я бы переставил местами разделы

    iSCSI Target on Debian 9.4 x64 (не для кластера)

     и

    iSCSI Target on Debian 9.4 x64 для MS Failover Cluster

    т.к. достаточно случайно "долистал" до нужного раздела

    )

    P.S. При переходе на SC VMM такую структуру:

    Set-VMHost -VirtualHardDiskPath "C:\ClusterStorage\Volume1\Hyper-V\Virtual Hard Disks\" -VirtualMachinePath "C:\ClusterStorage\Volume1\Hyper-V\"

    будет несколько тяжеловато поддерживать . . .

    P.P.S.

     И при "VMM каталогах" удобней работать:

    ================= C:\ClusterStorage\Volume1 ==

    s           Name      | Size |  Date

    ..                    |  Up  |

    VM 6 Ge_14            |  26 G|

    VM 6 Ge_9             |  24 G|

    VM 6 10               |  20 G|

    VM 10_7nd             |  14 G|

    VM 8 R212_YYY         |  14 G|

    VM 8 R21 _7           |  13 G|

    VM 6 Ge_10            |  11 G|

    VM 6 Ge_11            |  11 G|

    ( Far Commander , F3 для подсчёта размера каталогов, Ctrl-F6 сортировка по размеру)


    20 апреля 2018 г. 7:36
  • Не совсем понятно: MPIO на узлах Hyper-V кластера установлен?

    конечно же нет ))) потому, что:

    3) Создание кластера. Для данного тестового кластера будет использоваться только одна сеть:
    но я добавлю комментарий, спасибо.
    P.S. При переходе на SC VMM такую структуру:
    Set-VMHost -VirtualHardDiskPath "C:\ClusterStorage\Volume1\Hyper-V\Virtual Hard Disks\" -VirtualMachinePath "C:\ClusterStorage\Volume1\Hyper-V\" будет несколько тяжеловато поддерживать . . .
    я не знаю, как там с SC VMM, но без VHDX именно в этой дериктории C:\ClusterStorage\Volume1\ виртуальную машину нельзя было добавить в кластер.
    я бы переставил местами разделы
    iSCSI Target on Debian 9.4 x64 (не для кластера) и iSCSI Target on Debian 9.4 x64 для MS Failover Cluster т.к. достаточно случайно "долистал" до нужного раздела
    не нужно листать, вся настройка на описана ниже по тексту. Подправлю.
    20 апреля 2018 г. 7:49
    Модератор
  • >> Не совсем понятно: MPIO на узлах Hyper-V кластера установлен?

    > конечно же нет ))) потому, что:

    >> 3) Создание кластера. Для данного тестового кластера будет использоваться только одна сеть:

    > но я добавлю комментарий, спасибо.

     Пожалуйста!

     `

    Рекомендую поставить Ж-) потом пути ( "сети") добавяться,

    а что MPIO не установлен может "не вспомнится" . . .

    `

    >> iSCSI Target on Debian

    > Подправлю.

     Спасибо!

    >> P.S. При переходе на SC VMM такую структуру:
    Set-VMHost -VirtualHardDiskPath "C:\ClusterStorage\Volume1\Hyper-V\Virtual Hard Disks\" -VirtualMachinePath "C:\ClusterStorage\Volume1\Hyper-V\" будет несколько тяжеловато поддерживать . . .

    > я не знаю, как там с SC VMM, но без VHDX именно в этой директории C:\ClusterStorage\Volume1\
    > виртуальную машину нельзя было добавить в кластер.

    `

    Так и у меня .vmcx , .VMRS ,  .vhdx на CSV томе Ж-)

    `

     При использовании SC VMM для миграции VM образуется примерно такая структура:

    `

    C:\ClusterStorage\Volume1
    C:\ClusterStorage\Volume1\ESX on HV
    C:\ClusterStorage\Volume1\ESX on HV\ESX on HV IDE-00 HDD-00 Based {{ ESXi 6.0.0.update01-3073146.x86_64.iso + net-tulip-1.1.15-1 }}.vhdx
    C:\ClusterStorage\Volume1\ESX on HV\Snapshots
    C:\ClusterStorage\Volume1\ESX on HV\Virtual Machines
    C:\ClusterStorage\Volume1\ESX on HV\Virtual Machines\ZZZZZZZZZZZZZZZZZ.vmcx
    C:\ClusterStorage\Volume1\ESX on HV\Virtual Machines\ZZZZZZZZZZZZZZZZZ.VMRS
    C:\ClusterStorage\Volume1\VM Win 2019 and VM in VM
    C:\ClusterStorage\Volume1\VM Win 2019 and VM in VM\VM IDE-00 HDD-00.vhdx
    C:\ClusterStorage\Volume1\VM Win 2019 and VM in VM\VM SCSI-00 ID-00.vhdx
    C:\ClusterStorage\Volume1\VM Win 2019 and VM in VM\VM SCSI-00 ID-01.vhdx
    C:\ClusterStorage\Volume1\VM Win 2019 and VM in VM\Virtual Machines
    C:\ClusterStorage\Volume1\VM Win 2019 and VM in VM\Virtual Machines\YYYYYYYYYYYYY.vmcx
    C:\ClusterStorage\Volume1\VM Win 2019 and VM in VM\Virtual Machines\YYYYYYYYYYYYY.VMRS
    C:\ClusterStorage\Volume1\VM Win 2019 and VM in VM\Snapshots

    `

    `

    >> Так и у меня .vmcx , .VMRS , .vhdx на CSV томе Ж-)

    так, C:\ClusterStorage\Volume1\ и есть CSV "том". не вижу проблемы.

    Таки да Ж-)

    20 апреля 2018 г. 8:33
  • Так и у меня .vmcx , .VMRS , .vhdx на CSV томе Ж-)
    так, C:\ClusterStorage\Volume1\ и есть CSV "том". не вижу проблемы.
    20 апреля 2018 г. 8:39
    Модератор