Пока эксперимент не носит практического характера и не известно, что за зверюга выйдет в итоге и как она будет работать. Но попробовать интересно. Начнем.
Что мы имеем: кучу серверов с установленным гипервизором esxi, где мы будем размещать наши виртуальные машины для эксперимента. Все сервера соединены между собой гигабитным соединением. Сервера имеют по 4 сетевых карты. В качестве iSCSI Target будет использоваться NAS4Free (использовал 10 и 11 версию).
Каждая часть системы будет располагаться на разных серверах т.е. на одном сервере не будет две виртуальной машины и все взаимодействие будут проходить через гигабитный коммутатор.
При развёртывании виртуальных машин многое будет опущено без описания как это было сделано т.к. у вас может быть иная виртуализация, иные версии VMware vSphere, иные настройки сети и подключения и т.д.
В эксперименте будут рассматриваться два варианта подключения.
По данному варианту нам необходимо развернуть 4 виртуальные машины с NAS4Free. И одну машину с Windows Server 2016. При использованием VMware vSphere это не займет много времени.
Качаем NAS4Free версии 11. Я использовал 10 и 11 версию по внешнему виду меню есть отличия. По работе глюкавое ....
Создаем новую виртуальную машину, выбираем тип ОС FreeBSD, памяти выделяем 2 гига, процессор 1, жесткий диск 8г. Выделяем отдельную физическую сетевую карту для виртуальной машины. Подключаем скаченный ISO, начинается загрузка как LiveCD.
Жмем 9, выбираем все по умолчанию, начинается установка на диск.
Жмем Enter, потом Exit. Далее Жмем 7, ждем перезагрузки.
Теперь настраиваем сеть. Мы не будем использовать DHCP и настроем статические IP.
Жмем 2
Жмем NO
Вводим IP. Я буду использовать 192.168.44.102.
Маску оставляем 24
Вводим шлюз если вы в разных сетях к примеру 192.168.44.1 (соответственно необходимо настроить маршрутизацию)
Вводим или оставляем пустым адрес DNS сервера и следующим шагом IPv6 нажимаем NO.
Идет настройка сети. Потом Жмем Enter.
Жмем 10 и выбираем YES – разрешили доступ к WEB интерфейсу.
Подключаемся веб-браузером на установленный IP 192.168.44.102
Интерфейс на английском хорошо, но на русском лучше
Заходим в System > General
– находим пункт Language и выставляем Русский – Жмем Save.
В среде управления виртуальной машиной подключаем/добавляем еще один диск. Я в тестовом варианте использовал 15г диски.
Примерно так
В меню NAS4Free переходим Диски > Управление
и Жмем +
Выбираем наш добавленный диск и Жмем Добавить
Обязательно потом необходимо нажать Применить изменения
Теперь нам необходимо настроить iSCSI Target чтоб мы могли подключить этот диск к внешней системе. Настраиваем без заморочек используя все по минимуму.
В меню выбираем Службы > iSCSI
Сначала настроим инициатор
Переходим на вкладку инициатор и Жмем +
В полях Инициаторы и Авторизованные сети пишем ALL и Жмем Добавить. Не забываем нажать Применить изменения.
Переходим во вкладку Порталы, Жмем +
Тут мы указываем IP на котором будут откликаться сервис. Т.к. у нас одна сетевая карта, то просто жмем Добавить и Применить изменения
Переходим на вкладку Цели
Жмем на + в Экстент
Жмем Добавить, а потом применить
Кстати система нам предлагает использовать различные Типы, но будем использовать именно устройство и отдельный диск. Я пробовал пробрасывать Тип как файл нужного размера и все как бы хорошо с файлами малого размера, а вот 100Г уже работать не будет, даже отформатировать не выйдет. Почему и как глубоко лезть не стал.
Добавляем Цель
Жмем на + Цель.
Оставляем все по умолчанию. Жмем Добавить, а потом Применить
Переходим на вкладку Параметры
В заголовке iSCSI ставим крыжик Включить и меняем базовое имя на iqn.2000.jp.ne.peach.istgt
Жмем Сохранить и перегрузить.
Убеждаемся, что служба запустилась Состояние > Службы
Если в Состояние не стоит галка, то что-то вы настроили не верно и служба не стартанула.
Настройка одного из 4 дисков закончена.
Дальше все тоже самое надо повторить 2 раза. При использовании виртуализации просто делаем клоны на разные сервера. В клонах необходимо сменить IP адрес и в параметрах iSCSI базовое имя. IP даем 103 и 104. Базовое имя 3000 и 4000. В общем-то тут на вкус и цвет …. В итоге у нас должно получиться три машины на трех разных серверах.
Первый диск и он же RAID5 необходимо настроить чуточку иначе.
Службы > iSCSI > Цель удаляем
Цель нажав на Х и применив изменения.Диски > Управление > iSCSI-инициатор
Жмем +Жмем Добавить и Применить
Если все удачно то в консоле будет следующее сообщение
Переходим в Диски > Управление > Управление HDD
Жмем + и добавляем наше устройство
Так же подключаем все диски. Если у вас появляются ошибки при применении то просто игнорим.
Результат добавления дисков
Добавление второй сетевой карты
В среде виртуализации прокидываем новую сетевую карту. Добавляем именно отдельную сетевую карту, вынесенную в отдельный свитч в среде виртуализации. Ее мы будем использовать для связи с Windows Server 2016.
После как добавили сетевую карту, перегружаемся.
Подключаемся к вебке и идем Сеть > Управление интерфейсами
Жмем + и сохранить.
Идем Сеть > Optional 1 (OPT1)
Жмем Сохранить и перегружаемся
Теперь нам надо произвести форматирование наших дисков в Программный RAID
Заходим в вебку меню Диски > Управление > Форматирование HDD
Выбираем Файловая система > Программный RAID
ставим галочки на всех дисках и Жмем далее
Проходим мастер Далее Далее
У нас есть возможность создать RAID GEOM и Vinum. Будем создавать GEOM. Я создавал RAID обоих типов и проводил некое тестирование результатов: производительности, поведения при отключения дисков, при восстановление соединения, подсовывал чистые диски. Vinum – имеет очень низкую производительность раза в 4 хуже GEOM, а так же более глючное и непонятное поведение. При этом GEOM является родным для FreeBSD на чем базируется NAS4Free.
Оба типа RAID некорректно обрабатывают отвал диска, сама система вроде как работает, но вебка виснет, сам RAID становится недоступным. Лечится перезагрузкой. Vinum при подключение нового диска в замен отключённого никак не реагирует, GEOM – автоматом начинает ребилд. Работа с Vinum требует только ручного управления, очень геморройный …
Заходим в Диски > Программный RAID > GEOM
Жмем +
Началась процедура создания RAID. О ходе выполнения мы можем видеть нажав на (!)
Создание идет очень долго ….
Теперь созданный нами массив так же надо раздать по iSCSI. Все делается так же как в предыдущих пунктах.
Данные диск можно подключить куда угодно. Но у нас это 0 этап эксперимента, где нам в будущем потребует Windows Server 2016.
Создаем новую виртуальную машину на отдельном сервере. У нас не должно получится чтоб на одном физическом сервере оказалось какая-либо из предыдущих машин.
Выделяем две сетевые карты, одна для связи с пользователями, другая для связи с нашим iscsi диском.
Устанавливаем ОС Windows Server 2016 ( у меня datacenter).
Установили. Заходим в систему под администраторам.
Устанавливаем IP для сетевых карт для карты для связи с диском 192.168.55.10 и нужный IP для связи с пользователями.
В меню быстрого доступа жмем Панель управления.
Далее переходим Система и безопасность > Администрирование
. Жамкаем Инициатор iSCSI
Так же можем найти этот пункт используя поиск, жмем лупу и пишем iSCSI
Выскочит сообщение о необходимость запуска службы, жмем ДА.
Во вкладке Конечные объекты в поле Объект вводим IP 192.168.55.101 (ип нашего iSCSI) и жамкаем Быстрое подключение
В списке появиться наш iSCSI Target. Жмем Готово
Переходим в Управление дисками – правой кнопкой на меню Пуск > Управление дисками
Далее работаем как с обычным диском. Инициализируем диск, создаем том, форматируем.
При записи на диск общая скорость на сетевой карте держится в районе 500МБит при отдачи на iSCSI диск. При этом Windows при копировании использует кеш, что первоначально приводит к скоростям записи близкую к 1G. Отдача на каждый из дисков массива держится в районе 160Мбит. Заставить работать быстрее у меня не получилось. Выделение отдельных сетевых и прочих манипуляций никак не повлияло на производительность. Тестировалась на копировании больших файлов с разных источников.
Если мы оборвем связь с одним из дисков из массива RAID, то iSCSI диск отвалиться от Windows, а агрегатор NAS4Free будет писать ошибку об отсутствие доступа к отключённому диску и как бы все. При этом веб интерфейс при переходе в управление дисками виснет наглухо. Чтоб iSCSI диск RAID вновь начал работать необходимо перегрузить агрегатор NAS4Free. При восстановлении связи с отключенным диском от агрегатор NAS4Free начинается автоматическое восстановление массива. При добавление чистого диска в массив в замен отключенного необходимо в ручном режиме добавить его в массив.
В общем данное решение с такими глюками нам не подойдет. Более рабочий оказался вариант 2.
Отличие от варианта 1 мы RAID 5 будем делать силами Windows Server 2016 и исключим агрегатор NAS4Free. Подробно расписывать не буду т.к. новых действий нам делать не придется, все как в предыдущем варианте.
Удаляем виртуальную машину агрегатор NAS4Free.
В Windows Server добавляем новый жесткий диск (пробрасываем через систему виртуализации) в моем случае 15г.
На трех оставшихся iSCSI Target меняем IP на 192.168.55.*
Сеть > Настройки LAN
и
Службы > iSCSI > Группа порталов
– меняем IP тоже на новый.
Перегружаемся.
В Windows Server через iSCSI подключаем наши три диска.
Идем в управления дисками
Инициализируем диски в GPT
Жмем правой кнопкой на любом из новых дисков и выбираем пункт Создать том RAID-5.
Открывается мастер создания массива. Жмем Далее, переносим из доступных дисков в поле Выбраны, жмем Далее Далее.
Отвечаем ДА на преобразование дисков в динамические.
Начался этап создание массива RAID-5
Скорость работы с подключенными дисками в районе 200Мбит. Общая производительность чуток выше предыдущего варианта. При отключении одно из дисков массива в течении секунд 30 Windows восстанавливает возможности работы с диском, потом переходит в работу без одного диска, т.е. корректно обрабатывает отвал одного из дисков и работа с массивом не прерывается на долго время. При возврате диска в массив автоматического возврата диска не происходит, необходимо вручную инициализировать ребилд массива.
Конечно при эксперименте я не лез в дебри и тесты проводил поверхностно. Использовал функционал из коробки с параметрами по умолчанию.
Так же iSCSI диски можно подключить посредством VMware ... , но этот вариант я не рассматривал.
В общем-то данное решение можно использовать для организации файловой помойки при недостатке места на сервере задействовав дисковое пространство с разных источников, в том числе и с рабочих станций.
Следующий этап создание Windows Server 2016 Failover Clustering. Получиться или нет покажет время.
Интересная статья. Скажите а пробывали вы другие варианты для iSCSI target? Например Esos (https://www.esos-project.com/), Openfiler (https://www.openfiler.com/), iSCSI target на Ubuntu/Debian server? Просто интересно есть ли разница по скорости при использовании различных систем для targer.
P.s. У себя, к сожалению, провести такое тестирование не имею возможности, т.к. нет свободных мощностей для тестирования.
К сожалению не пробовал. Да и в этом эксперименте чую что-то не ладное вышло. На все надо уйму времени, а пока с этим туго.
Понял, спасибо. А эксперимент все равно интересный получился, т.к. на таком варианте действительно можно сделать сетевое хранилище которое не боится отключения накопителей, например для профилактики.
По моему Вы просто упражнялись в настройках. Все это больше похоже на лабораторную работу. Все это можно значительно упростить, что несомненно отразится на надежности. Например собрать zfs raid в виртуальной машине и по iscsi раздать клиентам. Короче что то вы мудрите.
Ну да, это был просто эксперимент, включающий в себя инструкцию по настройке NAS4Free. Все можно упростить и вообще сделать по-другому, вариаций масса. Здесь мы прошлись по одному из возможных вариантов и только.
XigmaNAS хорошая тема, тоже использую GEOM 5 рейд в файлопомойке, только немного в sysctl подправил конфиг параметров kern.geom.raid5.maxmem, kern.geom.raid5.maxwql, kern.geom.raid5.wdt, т.к. диски намного новее и быстрее, а код raid5 не менялся с 2014года.
Один интерфейс смотрит в мир по FTP, другой в локаль SMB. Proftpd - патчил, чтобы он мог создавать права 7(для корректного запускать\открытия файлов по SMB). Нормальная статья, в силу ограниченности бюджета фирмы и не такие костыли придумаешь))))