Однажды на моём компьютере сгорел блок питания. С дымом, шумом, и прочими спецэффектами. Жёсткий диск тоже не выжил.

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

Поэтому лучше, если копия данных будет находиться на другом компьютере. И хорошо, если она будет максимально свежей, чтобы в случае аварии продолжить работу с прерванного места.

Такие решения есть для Linux и FreeBSD — DRBD и HAST. Они позволяют реплицировать блочные устройства хранения по сети. То есть, создать что-то вроде RAID-1, где «половинки» дискового массива находятся на разных компьютерах. Теперь такое решение есть и для Windows.



И это не что-то новое, а тот же DRBD, портированный самими разработчиками из компании Linbit.

WinDRBD работает на 64 битных версиях Windows 10 или Server 2016. А на втором узле может быть как WinDRBD, так и DRBD под Linux. Причём узлы могут быть и виртуальными машинами.

На Хабре уже есть несколько статей по настройке DRBD, поэтому здесь я опишу только WinDRBD. Точнее — настройку репликации между двумя узлами (всего в кластере WinDRBD может быть 32 узла).

▍ Настройка


Скачиваем инсталлятор отсюда, а дальше – как обычно: «Далее», «Далее», «Далее». Установленные в инсталляторе «птички» не трогаем.

Для работы WinDRBD нужен свободный раздел диска. Если свободных разделов нет – можно немного «откусить» от существующего раздела. Или добавить ещё один жёсткий диск. Главное, чтобы размеры выделенных разделов были одинаковы на обоих компьютерах. Если просто хотите попробовать, как оно работает — можете не трогать диски компьютера, а использовать USB-флешки.

Заходим в оснастку «Управление дисками», и на свободном месте создаём простой том нужного размера. Форматировать и назначать букву не нужно.

Стоит учесть, что в этом же разделе будет храниться и служебная информация WinDRBD, поэтому места для пользовательских данных останется меньше. Хотя и существует возможность вынести служебные данные на отдельный раздел, сами разработчики рекомендуют не заморачиваться и хранить всё вместе.

Следующее, что нужно настроить – открыть в брандмауэре TCP порт 7500 на вход и выход, чтобы WinDRBD с двух компьютеров могли между собой общаться. Разумеется, номер порта можно изменить в настройках.

Файл с примером настроек находится в каталоге C:\windrbd\etc\drbd.d
Копируем windrbd-sample.res и даём ему понятное название, например raid1.res

Открываем его в текстовом редакторе и исправляем настройки:

resource “raid1” {
	…
	on windrbd1 {
		address 192.168.0.1:7500;
		node-id 1;
		…
	}

	on windrbd2 {
		address 192.168.0.2:7500;
		node-id 2;
		…
	}
}

Здесь raid1 – название создаваемого ресурса, windrbd1 и windrbd2 – имена хостов.

Секция c настройками томов выглядит примерно так:

volume 1 {
	disk “3e56b893-10bf-11e8-aedd-0800274289ab”;
	device minor 1;
	meta-disk internal;
}

Здесь раздел, выделенный для WinDRBD, указывается с помощью GUID (который можно посмотреть командой mountvol).

Не рекомендуемый, но допускаемый вариант – указать букву диска:

volume 1 {
	disk “E:”;
	…
}

Разделу, который появится в системе, тоже можно выдать букву:

device “F:” minor 1;

Но «для уменьшения количества проблем» разработчики рекомендуют делать как в первом варианте, без буквы. В этом случае после старта WinDRBD в системе появится не раздел, а отдельный жёсткий диск, который нужно будет инициализировать (создать таблицу разделов) и отформатировать через «Управление дисками».

Если оба хоста работают под Windows, файлы конфигурации у них будут одинаковыми – можно просто скопировать файл настроек на другой компьютер.

▍ Запуск


Для выполнения приведенных ниже команд используйте командную строку с правами администратора.

Сначала проверим, что в файле настроек нет ошибок (raid1 – название файла):

drbdadm dump raid1

Затем инициализируем служебные метаданные на разделах (отвечайте «yes» на предупреждение об удалении данных):

drbdadm create-md raid1

Инициализировать их нужно на обеих машинах. И на обеих запустить сервис:

drbdadm up raid1

Текущее состояние можно посмотреть командой:

drbdadm status

Если связи со второй стороной нет – в нижней строке статуса будет написано «Connecting».

Когда связь установится — появится сообщение «peer-disk:Inconsistent»

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

drbdadm primary raid1 --force

Обратите внимание – параметр force используется только при первом запуске, иначе потеряются данные.

С помощью команды drbdadm status можно отслеживать прогресс синхронизации. Когда она завершится, надпись в нижней строке сменится на «peer-disk:UpToDate»

Разумеется, синхронизация займёт некоторое время, зависящее от размера раздела и скорости сети.

▍ Проверка работоспособности


На первичном хосте во вновь появившемся разделе создаём файл test1.

Отключаем на первичном хосте WinDRBD:

drbdadm down raid1

Заходим на второй узел и переключаем его в режим первичного:

drbdadm primary raid1

При этом в системе появится новый раздел, на котором будет присутствовать файл test1.

Стоит отметить, что синхронизируемый раздел виден только на первичном узле. На вторичных узлах он скрыт.

Создадим на втором хосте ещё один файл – test2 и переключим хост обратно в режим вторичного:

drbdadm secondary raid1

Раздел скроется.

Вновь запускаем WinDRBD на первичном хосте:

drbdadm up raid1

drbdadm primary raid1

На появившемся разделе видим два файла – test1 и test2. То есть, синхронизация в обратную сторону также сработала.

▍ Итого


У Linstor получилось сделать простое в настройке средство, увеличивающее надёжность хранения данных. Пока что оно не имеет всех возможностей Linux версии (географически распределённые системы, работа в кластерах и т.п.), но это обещают добавить в следующих релизах.

Кроме WinDRBD есть ещё один порт DRBD на Windows — WDRBD от компании ManTech. Возможности там примерно такие-же, как у WinDRBD, но для получения инсталлятора нужно писать запрос разработчикам, или компилировать из исходников самостоятельно.

Комментарии (54)


  1. ACO-Andrew
    25.08.2021 16:11
    +4

    Все уже придумано до нас! DFSN/DFSR, Storage spaces, etc.


    1. sukhe Автор
      25.08.2021 16:28

      Поправьте, если я ошибаюсь, но мне казалось, что DFSR работает только на серверных версиях Windows. То есть, запустить репликацию на двух домашних компьютерах с Windows 10 не получится.


      1. ACO-Andrew
        25.08.2021 17:44
        +1

        Это правда. Но для домашних компьютеров тоже давно придуманы средства, начиная от регулярных бэкапов и заканчивая синхронизаторами типа Resilio или, как верно упомянуто ниже, Bittorent Sync и 100500 ещё. Тащить туда DRBD ну можно, конечно, но зачем?


        1. Am0ralist
          26.08.2021 16:43
          +1

          Кстати, а в домашнее версии винды как проще сделать рейд не на весь раздел (дано два диска, откусить по половине, сделать на них зеркало, а остальное в обычном режиме)?
          В прошке вроде как да, а на хомяке только зеркало на весь раздел…


    1. SerjV
      25.08.2021 18:20

      Скорее storage spaces, т.к. тут речь о репликации блочного устройства, а не файлов. И скорее того их варианта, который в состава WS datacenter, а не standard. Так что если там есть синхронная репликация (эээ… в смысле, что операция записи на диск не считается завершенной, пока не завершится запись на обоих — первичном и вторичном — хранилище), то может какой-то финт ушами и получится…


    1. The_Kf
      01.09.2021 14:00
      +1

      плюс Hyper-V Replica и Storage Replica


  1. gedd
    25.08.2021 17:17
    +2

    bittorent sync - и нет проблем, зачем столько трудов не понял


    1. krote
      25.08.2021 23:08
      +1

      Кстати если файлов мелких >200k то bittorent sync ОЧЕНЬ тормозил (правда давно использовал, как сейчас не знаю), этим же страдают (наверное) все файловые синхронизаторы. Syncthing, Google backup и т.п. А еще они часто передают данные максимум на 20-30% от доступной скорости сети, особенно если через интернет.

      Вот хотелось бы знать как со всем этим у WinDRBD


      1. SerjV
        26.08.2021 01:41

        DRBD (вряд ли виндовый отличается от него в этом плане) вообще не в курсе про существование файлов. Он работает на уровне блочного устройства (т.е. винда видит еще один «типа физический» диск). Прошла операция записи на диск — копия этой операции пошла на «вторичную» его копию.

        Плюс у линуксового есть «синхронный» режим, когда операция записи считается успешно завершенной только после окончания записи на другой копии диска (тормознее, но целостнее данные при сбое). И даже режим active-active, когда писать можно одновременно на обе копии (но в винде так нельзя из-за отсутствия кластерной файловой системы, точнее, диск-то может и можно сделать доступным на запись, но NTFS/ReFS такого издевательства не переживёт — поэтому в виндовый CSV (cluster shared volume) данные-то могут писать все узлы на диск сразу, а вот «контроллер» метаданных — для каждого CVS только один и является кластерной ролью).


      1. vervolk
        26.08.2021 14:54
        -2

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


  1. iluvar
    25.08.2021 20:00
    +4

    Если вы хотите сохранить ваши файлы - не используйте репликацию, делайте бэкапы. Репликация не спасет вас от случайного удаления, вируса-шифровальщика и еще кучи возможностей потерять ваши данные. Например, duplicati, rsnapshot или любой другой инструмент.


    1. sukhe Автор
      25.08.2021 20:33

      Данные на жёстком диске должны ещё дожить до вечернего бэкапа. Репликация эту вероятность повышает. Хотя и незначительно, т.к. диски редко выходят из строя. Гораздо чаще пользователи сами случайно удаляют файлы.


      1. SerjV
        25.08.2021 21:54
        +1

        Вероятность дожить до бэкапа повышается теми же самыми raid, хотя бы банальным зеркалом. «Сетевое зеркало» тут имеет небольшой плюс в том случае, если какой-нибудь блок питания вздумает задурить и диск накроется из-за него… То накрыться могут и оба винта в рейде (ага, статью начали именно с примера с отказом БП). Вот и предложили аналог storage spaces direct для винды, отличной от Server Datacenter…


      1. SerjV
        26.08.2021 01:32

        но если честно, то для компа с клиентской виндой это уже для решения для настоящих параноиков. А вот забубенить на паре сервер стандартов (не датацентров) кластер с файлшарой без СХД, на локальных дисках — это было бы интересно, наверное.


        1. Am0ralist
          26.08.2021 16:50

          Стоп, вроде с 19 года на старндарте можно было делать? Хотя нет, наверное уже путаю…

          Меня на хабре отговорили пробовать даже тем, что железо надо брать с гарантиями и опытом от поставщика, что эта вещь будет работать. Как раз думал насчёт отказоустойчивого кластера на основе 10G сетки, а не как сейчас с полкой медленной на нескольких гигабитных линках.


          1. SerjV
            26.08.2021 17:29

            без слова direct точно есть, еще с 2012-го… но вот не помню, чтобы direct в «стандарт» спускали, хотя могу ошибиться.

            под Linux с DRBD из двух компов можно собрать программную СХД с репликацией данных (и даже в режиме active-active её использовать, чтобы iSCSI максимально прозрачно отказ одного узла хранения обработал).

            Вопрос в цене исправления последствий тотального сбоя ;) Знаю случаи, когда развалившийся storage space лечили сами Microsoft в рамках контракта. Но знаю случаи, когда и DIY сойдёт за глаза.


            1. Am0ralist
              26.08.2021 17:43

              Не, я поискал, это у меня в голове уже запуталось.

              Вопрос в цене исправления последствий тотального сбоя ;) Знаю случаи, когда развалившийся storage space лечили сами Microsoft в рамках контракта. Но знаю случаи, когда и DIY сойдёт за глаза.
              вот и получается, что пока для мелкого и среднего бизнеса это смысла мало несёт их директ.
              Лучше пнуть программистов и базу наконец-то с репликацией запилить на независимых нодах)


              1. SerjV
                26.08.2021 17:52

                Почему не несёт? Несёт. Но денег стоит (за редакцию сервера и за контракт). На линуксе бесплатно и эквивалентно «датацентру без контракта» ;)

                А если всё равно контракта нет, то можно и на стандарте наколхозить попробовать, если стандарт по какой-то причине нужен…


                1. Am0ralist
                  26.08.2021 17:59

                  Ну, если б не крупный бизнес не IT мог себе позволить всегда такие траты) Да чтоб ещё с резервами на случай пока МС в рамках контракта чинит…

                  Вот и остаётся решать как-то так... Главное, чтоб простои были минимальные. В сторону решения из статьи теперь тоже посмотрим)


                  1. SerjV
                    26.08.2021 18:06
                    +1

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

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


                    1. Am0ralist
                      27.08.2021 10:14

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

                      PS. А с этим вопросом не подскажете?


                      1. SerjV
                        27.08.2021 11:27

                        В этом плане важнее БД, которая должна работать считай непрерывно, тут спасёт репликация (которая не отменяет бекапы, естественно).

                        MS SQL Enterprise умеет делать кластер active-active из двух «непересекающихся» по железу инсталляций… Но и денег стоит ;)

                        Можно сделать HA для стандартного… Многим этого «за глаза», но нужно общее хранилище, либо железка, либо спейсес директ, либо еще как-то софтверное хранилище делать (может drbd поможет как-то, например, ну или за деньги точно есть SDS)…

                        PS. А с этим вопросом не подскажете?

                        а там вопрос не понял… меньше чем на раздел даже сервер не даёт, хорошо, что хоть не на весь диск…


                      1. Am0ralist
                        27.08.2021 11:45

                        MS SQL Enterprise
                        в FB тоже завезли в текущей версии много чего полезного)
                        Можно сделать HA для стандартного…
                        Уже. Полка была выбрана слабая, упирается в неё производительность. Проще несколько баз на обычных железках поднять, запихать ссд, 10G а вот виртуалку сервера для работы с БД крутить на кластере, там упора в дисковую подсистему не будет, заодно часть задач по статистике можно решать на реплике, как понимаю.
                        а там вопрос не понял… меньше чем на раздел даже сервер не даёт, хорошо, что хоть не на весь диск…
                        Тьфу. То бишь не на весь диск, а только на раздел один. В хомяке мсовским средством только зеркало на весь диск можно, в прошке доступно превращение части разделов в зеркало, а часть в нулевой…
                        Недавно встал вопрос, с наскоку не решил.


                      1. SerjV
                        27.08.2021 13:20

                        в FB тоже завезли в текущей версии много чего полезного)

                        Так можно и postgresql завести, и много чего… Смотря с чем работает то, что вам надо. Есть некоторое количество софта, у которого либо нет выбора, либо рекомендуется MSSQL.

                        Уже. Полка была выбрана слабая, упирается в неё производительность.

                        Под MSSQL? (по контексту был он).
                        Если у него, то две бошки одновременно работают только в энтерпрайз едишене. В стандарте работает только одна, вторая ждёт, пока отключится первая, т.к. работают обе с одной и той же базой (у энтерпрайза — две базы с собственной репликацией между ними, за счёт чего active-active и получается, и могут работать без общей СХД — стандарту она нужна, чтобы базу от бошки к бошке перекинуть).
                        … Ну или заменить СХД на программное решение, это, как его щас модным словом называют, «гиперконвергентное» кажеццо? )

                        Тьфу. То бишь не на весь диск, а только на раздел один.

                        Стораж спейс, насколько я помню, кушает весь диск.

                        «Легаси» зеркалирование и объединение — работает с разделами.

                        Ну а уж что порезали в «хомяке» — на память не скажу, но раз не даёт сзеркалировать разделы — Кэп подсказывает, что значит нельзя :)


                      1. Am0ralist
                        27.08.2021 20:38

                        Смотря с чем работает то, что вам надо.
                        У нас старый FB. Вот новый хотим переделать в другую систему, но это всё только через программиста ИС.
                        Стораж спейс, насколько я помню, кушает весь диск.
                        Да, но на прошке можно несколько разделов собрать по разному.
                        «Легаси» зеркалирование и объединение — работает с разделами.
                        Расширение раздела есть, а вот зеркала…
                        Ну а уж что порезали в «хомяке» — на память не скажу, но раз не даёт сзеркалировать разделы — Кэп подсказывает, что значит нельзя :)
                        а вдруг есть решение а-ля из статьи.


                      1. SerjV
                        28.08.2021 03:57

                        Да, но на прошке можно несколько разделов собрать по разному.

                        В стораж спейс, а не в «легаси»?

                        Расширение раздела есть, а вот зеркала…
                        В сервере есть точно, и вот как раз вот тут ;)

                        а вдруг есть решение а-ля из статьи.
                        DRBD создаст зеркало раздела. На другой комп точно, в т.ч. на диск, к какому-будь Пи подключенному. А вот можно ли на том же компе — на знаю, это уже что-то из разряда «как в РПГ сделать белую тунику красной? прицепить на неё табличку „красная туника“!»


                      1. Am0ralist
                        28.08.2021 12:19

                        В стораж спейс, а не в «легаси»?
                        Вроде бы да, я тогда пытался с оглядкой на инструкции делать и вот у них там дальше возможности были, а на хомяке — фиг.
                        В сервере есть точно, и вот как раз вот тут ;)
                        Да оно и на прошке вроде есть, в чём фигня.
                        Единственный вариант не пробовал — создать под прошкой и пихнуть в хомяка


                      1. DaemonGloom
                        27.08.2021 22:00

                        … Ну или заменить СХД на программное решение, это, как его щас модным словом называют, «гиперконвергентное» кажеццо? )
                        Программная СХД — тоже вариант, да. Тот же StarWind Virtual SAN, например.
                        Гиперконвергентная среда — это ситуация, когда хранятся ВМ на тех же узлах, на которых они и исполняются, но считаются единым кластером, с отказоустойчивостью, синхронизацией и прочими атрибутами.


                      1. SerjV
                        28.08.2021 04:02

                        ну вот я и задался вопросом — можно ли загнать windrbd в режим active-active и собрать на нём CSV?.. если как-то можно — то будет то самое гиперконвергентное software defined storage.

                        Скажем, раздел DRBD расшарить по iSCSI (если виндовый iSCSI target умеет отдавать разделы в LUN'ы) с двух компов, дальше (если можно подключить target к initiator на том же компе) с multipath уже по идее получится сделать CSV…


      1. nixtonixto
        26.08.2021 08:42
        +2

        Потерять суточную работу менее обидно, чем потерять всЁ, если шифровальщик начнёт шифровать файлы и DRBD автоматически обновит на остальных дисках файлы на зашифрованные. А инкрементальный бэкап современное ПО умеет стартовать сразу после записи в отслеживаемую папку, и с таким типом бэкапа шифровальщики не страшны, если конечно бэкап хранится не на этом же компьютере.


        1. SerjV
          26.08.2021 13:31

          Вот только в случае сбоя (а не прорыва шифровальщика) это всё придётся потом ждать, пока оно обратно из бэкапа восстановится.

          «Для дома, для семьи» это более чем приемлемо. Всё было бы целесообразнее, если бы нам рассказали, как с помощью DRBD сделать CSV для «сервер стандарта» на локальных дисках, без СХД и стораж спейсес директа от «датацентра».


          1. DaemonGloom
            27.08.2021 08:33

            Если нужно для рабочих целей — берите какой-нибудь Veeam B&R, там можно бэкап виртуальной машины сразу запустить, без ожидания восстановления.


            1. SerjV
              27.08.2021 09:46

              можно… (кстати, он один такой, или акронисы тоже прикрутили подобную фичу?)

              а сколько это денег стоит? ;) (т.к. эта фича в самой дорогой его редакции, насколько я помню)

              плюс потеря данных между точкой последнего бэкапа и моментом отказа (ну и какой-то перерыв сервиса тоже).

              Так что в общем случае бэкап не заменяет, а дополняет средства обеспечения высокой доступности и/или отказоустойчивости. А дальше надо считать стоимости проблем и их решений…


              1. DaemonGloom
                27.08.2021 12:23

                Не нашёл каких либо ограничений для этой функции по их правилам лицензирования.
                Мне в community версии Instant recovery доступен.
                Увы, потеря части данных тут всё же неизбежна при использовании обычного резервного копирования. Либо мы сохраняем вообще каждую операцию записи и ведём всю их историю для идеального отката до момента получения шифровальщика, либо мы уменьшаем расходы, но сохраняем с определённым интервалом.


                Ну, так это везде так. Стоимость решений и стоимость потенциальных проблем должна быть сбалансирована.


                1. SerjV
                  27.08.2021 13:09

                  Не нашёл каких либо ограничений для этой функции по их правилам лицензирования.
                  Мне в community версии Instant recovery доступен.

                  Так у комьюнити редакции ограничение другое — по числу виртуальных машин, насколько я помню (и/или по числу хостов в дополнение к этому), при том, что функции доступны все.

                  А вот у платных редакций это доступно в самой дорогой.

                  Может, конечно, в 11-й версии чего-то поменяли, я настолько за ними не слежу…


        1. Am0ralist
          26.08.2021 16:51

          Ну, таким образом просто нужно и то, и другое, если можешь позволить.
          Всего-то


  1. DrMoro
    26.08.2021 07:43
    +1

    FreeFileSync, rsync - отличные альтернативы


  1. AlexanderS
    26.08.2021 22:37

    Мне тут недавно задавали вопрос как сделать надежное «горячее» хранение данных. Есть ИП у которого на обычном ПК крутится софт с помощью которого выдаются и закрываются задания для рабочих. Подробностей сам не знаю, но не суть. Есть резервный ПК такой же конфигурации. Предполагалось, что если сломается какой-то компонент основного ПК, то диск пертыкивается в резервный ПК и работаем дальше. Проблема в том, что если выходит из строя сам диск основного ПК, то от резерва толку особо нет даже при наличии ежедневной резервной копии, так как устаревание данных на сутки стало уже критичным — об изначальном масштабировании бизнеса у нас как-то мало кто заботится. Ни рейдов, ни бэкапов изначально не предусмотрено — делали как понимали и умели)

    Знакомый, конечно, обратился немного не по адресу, так как я себя не считаю спецом в IT, а постольку-поскольку. Сходу было предожено «простое» решение — поставить третий комп, поднять там сервер Nextcloud и настроить синхронизацию данных через Nextcloud. И бэкап будет, и версионность в случае чего. Вот вопрос — а WinDRBD для этих целей подойдёт? Только у меня по Nextcloud в личных целях статистика-то хорошая накоплена, а сетевую репликацию DRBD я ни разу не щупал. Непонято будет, что будет если, например, второй ПК вдруг отключат — сетевой «рейд» типа развалится? И чем это чревато?


    1. sukhe Автор
      26.08.2021 23:54

      У них в документации расписан сценарий, который теоретически может подойти. Вкратце - бездисковая машина, которая через iPXE загружает по сети ядро Windows, а ядро уже грузит всю остальную систему с диска C:, расположенного на WinDRBD устройстве. Но, как по мне - это излишняя сложность.

      Проще поставить на две машины VirtualBox и разместить его диск на WinDRBD. Windows с нужной софтиной установить внутри VirtualBox-а. Тогда при аварии достаточно будет на втором компьютере назначить устройство WinDRBD первичным и запустить виртуалку. Только для надёжности лучше использовать протокол С (при котором запись на диск считается завершённой, когда записалось на оба диска). Вариант с виртуалбоксом хорош ещё тем, что оба компьютера не обязаны быть одинаковой конфигурации.

      Если второй компьютер отключают - "рейд" не разваливается. Просто перестаёт синхронизироваться. Когда включите компьютер - синхронизация снова запустится.


      1. AlexanderS
        27.08.2021 00:09

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


        1. Am0ralist
          27.08.2021 10:26

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

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


          1. AlexanderS
            27.08.2021 22:11

            Это понятно, что бекапы никто не отменял. И вообще их отсутствие — это есть полное бескультурье) Но с бекапами-то изначально понятно что, как и чем делать.


      1. The_Kf
        01.09.2021 13:55

        Для виртуалок давно есть Hyper-V реплика


    1. MaxLK
      30.08.2021 18:54

      S2D посмотрите - может быть получится вообще без виртуалок обойтись подняв кластер на Винде. Идея плодить сущности лично мне вообще не нравится. ГиперВ ничуть не хуже виртуалбокса, но поднимается проще и ресурсов потребляет меньше. И обязательно бекап не только всего ПК но и приложения. Даже виртуальные сервера имеют свойство со временем помирать :(


      1. Am0ralist
        31.08.2021 15:29

        Он на датацентровской лицензии, по отзывам не всё оборудование с ним будет работать без проблем.


        1. MaxLK
          31.08.2021 19:43

          он даже на 10 поднимается с ограниченным функционалом. по оборудованию вроде есть ограничение - только на SAS работает. но точной информации не имею, надо пробовать. коллега его на виртуальных серверах успешно поднял. кстати где-то тут есть пара не плохих статей про него.


          1. Am0ralist
            01.09.2021 12:58

            Инфа по S2D

            Storage Spaces Direct is included in Windows Server 2019 Datacenter, Windows Server 2016 Datacenter, and Windows Server Insider Preview Builds. It also provides the software-defined storage layer for Azure Stack HCI.
            На 10-ках просто Storage Spaces


  1. SerjV
    28.08.2021 17:02

    Автор, а вот на самом ведь деле — не рассматривали вариант сделать на windrbd CSV для кластера Windows Server Standard?..


    1. sukhe Автор
      28.08.2021 20:21

      У меня нет кластеров, так что не рассматривал. Но ваша мысль сделать CSV через multipath iSCSI довольно интересна. Вот только active-active на WinDRBD пока невозможно. Так что в любой момент времени один из target-ов будет без подключенных дисков. Будет-ли такое работать?

      Хотя, возможно, я неправильно понял, как именно вы хотите сделать.


      1. SerjV
        28.08.2021 22:09

        Конкретно на WinDRBD невозможно?.. DRBD сам по себе вроде ж умеет такое…

        p.s.1: «Starting with 0.10.1, we distinguish between data devices and disk devices.». Нужны «disk devices», грубо говоря — raw disks, чтобы никаких там попыток со стороны drbd монтирования файловой системы хоть на букву, хоть в директорию.

        p.s.2: для проверки, по идее, хватит двух виртуалок с windows server standard, даже физика не нужна…


        1. sukhe Автор
          28.08.2021 22:59

          Вот из документации:
          Note that in contrast to Linux DRBD, WinDRBD devices exist only on nodes that are Primary. The reason is that if we should create Windows devices when the node is Secondary, the Windows Kernel (most notably the NTFS driver) will start to cache data above the WinDRBD driver, thereby causing data corruption (since WinDRBD doesn’t know about the modified data).

          В будущем обещают добавить
          LINSTOR support (for managing WinDRBD in a set of cluster nodes) and cluster manager support (for creating high availability clusters using WinDRBD).

          Означает-ли это, что на Windows будет active-active? Не уверен. Скорее, будет автоматическое переключение одной из вторичных нод в режим первичной.


          1. SerjV
            29.08.2021 00:17

            О каком типе устройства речь?

            Т.к. у них же написано:
            «Data devices are regular block devices with a mount point. They can be formatted with NTFS, other file systems like FAT family and ReFS are not yet supported.

            Disk devices present themselves as a regular PnP disk (like a physical hard disk) and appear as disk in the Windows partition manager (and also in device manager).»

            Собственно, с шареным SCSI LUN у винды ровно те же фигня, что описана у DRDBD — потому его не монтируют напрямую, только через CSV. То ли в windrbd переборщили с защитой пользователя от него ж самого, то ли для Disk devices всё-же как-то можно…

            И опять же, какой secondary в режиме master-master? (или как там нынче политкорректно он называется, Dual primary?)


          1. SerjV
            29.08.2021 18:19

            т.е. в линуксовом случае пишут:

            4.8.1. Permanent dual-primary mode

            To enable dual-primary mode, set the allow-two-primaries option to yes in the net section of your resource configuration:

            resource [resource]
            net {
            protocol C;
            allow-two-primaries yes;
            fencing resource-and-stonith;
            }
            handlers {
            fence-peer "...";
            unfence-peer "...";
            }
            ...
            }


  1. AntonVirtual
    04.09.2021 15:29

    Нет времени объяснять, давайте делать колхоз из веток и известной субстанции. DataCore, Strawind и еще с десяток решений нервно курят в сторонке. Некоторые продаются дестяками лет, а DataCore и вовсе занимает верхние позиции в SPC1