Synology iscsi настройка windows

Обновлено: 04.07.2024

Протокол iSCSI разработан для работы в сетях хранения данных и представляет собой способ доступа к блочным устройствам по протоколу SCSI поверх TCP/IP. Это дает возможность организации недорогих сетей хранения данных (SAN) при помощи обычных Ethernet-сетей. Эта возможность широко используется при построении систем высокой доступности и мы будем рассматривать в рамках этого цикла именно решения на основе iSCSI-хранилищ. Сегодня мы рассмотрим создание такого хранилища на платформе Windows Server 2008 R2.

Сначала пару слов о принципиальных отличиях iSCSI от иных сетевых систем хранения данных. Cети хранения данных - SAN ( Storage Area Network ) предусматривают передачу данных в сети в "сыром" виде по протоколу SCSI, также, как если бы они передавались между системой и локальным диском на низком уровне. iSCSI устройства воспринимаются системой практически также, как локальные диски - перед использованием на них нужно создать разделы и отформатировать.

В тоже время привычные всем сетевые хранилища - NAS ( Network Area Storage) обеспечивают доступ на уровне файловой системы, используя протоколы передачи файлов, такие как SMB или NFS.

Проще говоря: NAS - это привычные всем общие сетевые папки, SAN - подключаемые по сети диски. Из этого следует второе важное отличие. Сетевая папка может обслуживать множество клиентов. Устройство SAN может быть подключено к единственному клиенту, точно также как обычный HDD может быть подключен только к одному ПК. Исключение - кластеры, когда к одному SAN-устройству имеют доступ сразу несколько нод, в этом случае используется дополнительный уровень абстракции - кластерная файловая система, например Microsoft Cluster Shared Volumes (CSV) или VMware VMFS.

Перед тем, как приступать к практическому освоению данной технологии, следует познакомиться с принятой терминологией:

  • Инициатор iSCSI (iSCSI Initiator) - клиентская часть, направляет запросы цели iSCSI, может быть выполнена программно, в виде драйвера или аппаратно, в виде iSCSI-адаптера;
  • Цель iSCSI (iSCSI Target, таргет) - серверная часть, принимает подключения от инициатора и предоставляет ему доступ к связанным с ним блочными устройствами - виртуальными дисками, LUN. Может быть реализован как программно, так и в виде аппаратной СХД.

Одна цель iSCSI может быть связана с несколькими блочными устройствами, которые будут доступны подключившемуся к цели инициатору. Один инициатор может быть подключен к нескольким целям и использовать все связанные с ними устройства. Одна цель также может принимать подключения от нескольких инициаторов, но каждое отдельное устройство может быть доступно только одному из инициаторов.

Еще один момент, теперь уже связанный с практической реализацией iSCSI-хранилищ. Для SAN крайне желательно выделить отдельную сеть, изолированную от сети предприятия.

iscsi-targer-server2008r2-001.jpg

Это необходимо для обеспечения достаточной пропускной способности в сети хранения данных и избежать перегрузки обычной сети iSCSI-трафиком. Также нет смысла организовывать iSCSI в сетях с пропускной способностью ниже чем 1 Гбит/сек.

В состав Windows Server 2008 R2 роль цели iSCSI не входит и для ее развертывания необходимо скачать Microsoft iSCSI Software Target. Распаковываем его и устанавливаем пакет iscsitarget_public.msi из папки x64. Установка предельно проста и мы не будем заострять на ней внимание.

После установки перейдем к консоли управления iSCSI: Пуск - Администрирование - Программная цель iSCSI. Прежде всего создадим новую цель (таргет). Для этого щелкнем правой кнопкой на Цели iSCSI - Создать цель iSCSI.

iscsi-targer-server2008r2-002.jpg

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

iscsi-targer-server2008r2-003.jpg

Следующим шагом нам надо указать идентификаторы инициаторов iSCSI которым будет разрешен доступ к цели. Идентификатор IQN - это специальное имя формата iqn.<year-mo>.<reversed_domain_name>:<unique_name>, которое является уникальным для каждого iSCSI-устройства в сети хранения данных. Где:

  • year-mo - год регистрации доменного имени;
  • reversed_domain_name -доменное имя, записанное наоборот;
  • unique_name - уникальное имя устройства, например таргет здесь будет содержать указанное вами имя, а инициатор имя хоста.

Чтобы узнать IQN перейдем на инициатор iSCSI, в нашем случае это сервер под управлением Windows Server 2012, но алгоритм действий будет одинаков для любых иных версий Windows. Переходим в Панель управления - Инициатор iSCSI, на предложение задать ее автоматический запуск отвечаем утвердительно:

iscsi-targer-server2008r2-004.jpg

Затем в открывшемся окне переходим на закладку Конфигурация, где находится искомый идентификатор:

iscsi-targer-server2008r2-005.jpg

Можно скопировать его и указать при настройке цели, но есть другой способ. Для этого перейдите на закладку Конечные объекты, в поле Объект введите имя сервера с установленной Программной целью iSCSI и нажмите Быстрое подключение.

iscsi-targer-server2008r2-006.jpg

Понятно, что пока мы ни к чему не подключимся, но сейчас у нас иная задача. Возвращаемся обратно на сервер цели и жмем на странице указанием идентификатора инициатора кнопку Обзор.

iscsi-targer-server2008r2-007.jpg

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

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

iscsi-targer-server2008r2-009.jpg

Затем укажем желаемый размер в МБ

iscsi-targer-server2008r2-010.jpg

И цель iSCSI (таргет) к которой будет привязан данный виртуальный диск.

iscsi-targer-server2008r2-011.jpg

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

Поэтому переходим на закладку Обнаружение и нажимаем Обнаружить портал, затем вводим имя сервера с ролью цели iSCSI.

iscsi-targer-server2008r2-012.jpg

После чего возвращаемся на закладку Конечные объекты, выбираем обнаруженную цель, которая находится в состоянии Неактивно, и нажимаем Свойства.

iscsi-targer-server2008r2-013.jpg

В открывшемся окне в поле IP-адрес конечного портала выбираем адрес принадлежащий вашей сети хранения данных:

iscsi-targer-server2008r2-014.jpg

Возвращаемся обратно и нажимаем Подключить. Присоединенные устройства можно обнаружить в оснастке Управление дисками.

iscsi-targer-server2008r2-015.jpg

Дальнейший алгоритм работы с ними ничем не отличается от работы с обычным диском: подключаем, размечаем, форматируем.

iscsi-targer-server2008r2-016.jpg

В данном материале мы рассмотрели самый простой вариант настройки хранилища. В наших последующих материалах мы будем возвращаться к отдельным настройкам, не затрагивая общей темы создания хранилища.

date

27.05.2020

directory

PowerShell, Windows Server 2016, Windows Server 2019

comments

Один комментарий

Протокол iSCSI (Internet Small Computer System) представляет собой протокол SCSI, работающий с системами хранения данных поверх протокола IP. С помощью iSCSI вы сможете подключать ваши сервера к сетевым хранилищам по обычной TCP/IP сеть без использования FC. В этой статье мы рассмотрим, как настроить iSCSI-хранилище на одном Windows Server 2019 и использовать его на других серверах(в Windows Server 2016 и 2012 R2 все настраивается аналогично). Первый пример использования iSCSI: файловому серверу необходимо дополнительное место, и мы по сети подключаем к нему виртуальный диск с другого сервера-хранилища по iSCSI. Другой пример – построение отказоустойчивого кластера, когда для нескольких серверов необходимо общее хранилище.

Для использования ISCSI-диска нужно на сервере-хранилище настроить виртуальный диск (это обычный vhd/vhdx файл) и опубликовать его в виде iSCSI таргета, к которому подключаются iSCSI инициаторы (другие сервера и устройства).

Настройка iSCSI target в Windows Server

Сначала нужно включить iSCSI target (активировать роль iSCSI Target Server), зайдя в File and Storage Services -> File and iSCSI Services.

установка роли iSCSI Target Server

Install-WindowsFeature -Name FS-iSCSITarget-Server

Теперь на iSCSI сервере нужно создать виртуальный диск. Для этого необходимо зайти в Server Manager -> File and Storage Services -> iSCSI, нажать To create an iSCSI virtual disk, start the New iSCSI Virtual Disk Wizard.

создать iSCSI virtual disk

В мастере создания виртуального iSCSI диска нужно выбрать физический раздел, на котором его нужно разместить. Далее нужно присвоить имя iSCSI диска, указать размер диска и его тип (Fixed Size, Dynamically expanding или Differencing), имя iSCSI таргета.

На шаге Access Servers нужно указать серверы (iSCSI инициаторы), которые смогут подключаться к данному iSCSI таргет, выбрав один из вариантов подключения:

    IQN (придется сначала включить iSCSI initiator на сервере и скопировать IQN);

Пусть используется вариант с IP-адресом.

НАстройка access серверов для iscsi target

Следующий шаг в этом мастере – это настройка протокола аутентификации CHAP. Его следует использовать, если необходимо проверять подлинность подключения от инициатора. Далее он включается, вписывается имя пользователя и 12-значный пароль (или длиннее), затем Next -> Next -> Finish. Проверьте, что виртуальный диск iscsiDisk2.vhdx создался в каталоге D:\iSCSIVirtualDisks.

Можно создать iSCSI диск с помощью PowerShell. Создадим виртуальный диск размером 200 Гб:

New-IscsiVirtualDisk -Path С:\iSCSIVirtualDisks\iscsiDisk2.vhdx -Size 200GB.

По умолчанию создается динамический диск размером 4,096 Кб, независимо от того, сколько было указано параметром Size. Динамический диск будет расширяться по мере необходимости.

vhdx - виртуальные iscsi диски

Если нужно использовать диск фиксированного размера (такие диске резервируют место на физическом носителе при создании), то его создать той же командой с дополнительным параметром UseFixed:

New-IscsiVirtualDisk -Path С:\iSCSIVirtualDisks\iscsiDisk2.vhdx -Size 200GB –UseFixed

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

Далее таргету присваивается имя, здесь же можно разрешить к нему доступ с IP-адреса сервера-инициатора:

New-IscsiServerTarget -TargetName "iscsiTarget33" -InitiatorId @("IPAddress:172.17.244.8")

При желании вместо IP-адреса можно использовать IQN имя (iSCSI Qualified Name – уникальный идентификатор iSCSI устройства в сети):

New-IscsiServerTarget

Затем желательно проверить результат:

Get-IscsiServerTarget | fl TargetName, LunMappings

Get-IscsiServerTarget

Получить полное имя таргета можно с помощью командлета Get-IscsiTarget , а затем подключить таргет:

powershell подключить iscsi диск Connect-IscsiTarget

Настройка iSCSI Initiator в Windows Server 2019

Следующий шаг – подключение к созданному iSCSI диску со второго сервера-инициатора. Перейдите в панель управления Control Panel, запустите iSCSI initiator (или выполните команду iscsicpl.exe ).

запустить iscsi сервер

В консоли управления службами services.msc поставьте автоматический тип запуска для службы Microsoft iSCSI Initiator Service, Или используйте команду:

Set-Service -Name MSiSCSI -StartupType Automatic

Перейдите на вкладку Discovery, нажмите на кнопку Discover Portal и введите ввести IP-адрес первого сервера (iSCSI-таргет). Чтобы трафик ходил только через определённый сетевой интерфейс, нужно нажать кнопку Advanced, и изменить значения по умолчанию в выпадающих списках: Local Adapter –> Microsoft iSCSI Initiator, Initiator IP –> 172.17.244.8.

подключение iscsi диска через графический интерфейс

Для подключения к iSCSI хранилищу необходимо открыть порты 860 и 3260 в Windows Firewall.

Теперь переключитесь на первую вкладку Targets, на ней появится новое подключение. Чтобы включить его, нажмите Connect -> Advanced, выберите значения из выпадающих полей, включите галочку Enable CHAP log on, укажите имя пользователя и 12-значный пароль.

iscsi настройка аутентификации chap

Осталось инициализировать сам iSCSI-диск, который сначала находится в состоянии Offline. Для этого на сервере-инициаторе необходимо в консоли Disk Management в контекстном меню нового диска выбрать пункт Online, а затем – Initialize Disk. Создайте на новом диске один или несколько разделов, присвойте метку и букву диска. Отформатируйте в файловой системе NTFS.

Для быстрой инициализации и форматирования нового диска можно использовать следующий однострочный PowerShell (см. пример в статье об управления дисками и разделами из PowerShell):

Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PartitionStyle MBR -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false

Примечание: iSCSI-диски не поддерживают файловую систему ReFS.

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

инициализация диска

Такие виртуальные iSCSI диски можно использовать в Windows Server для создания виртуального RAM диска в оперативной памяти.

Также вы можете подключить iSCSI диск на инициаторе из PowerShell. Чтобы получить IQN таргета, используйте командлет Get-iSCSITarget .

Чтобы подключится к iSCSI таргет выполните команду:

Connect-IscsiTarget –IsPersistent $False и введите IQN.

Connect-IscsiTarget IsPersistent

Если использовалась дополнительная проверка аутентификации CHAP, то необходимо будет это указать, используя следующую конструкцию:

Get-iScsiTarget | Connect-iScsitarget –AuthenticationType ONEWAYCHAP –ChapUserName <username> -ChapSecret <secret>

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


Несколько лет назад, при выборе первого хранилища для дома, я смотрел в сторону «коробочных решений» по причине не особой осведомлённости в построении системы хранения на базе открытого ПО и обычного ПК. В тот раз выбор пал на 2-дисковую NAS — Shuttle KD20. Хранилище было компактным и тихим. RAID1 обеспечивал необходимую надёжность, а потребности в высокой производительности и расширенном функционале на тот момент не было. Этот NAS проработал почти 4 года, пока в один прекрасный момент не накрылась линия питания вентилятора. Диски раскалились до 60 градусов и чудом выжили. Я запаял вентилятор напрямую к материнке, но стал подбирать вариант на замену. В качестве второй NAS я выбрал 4-дисковую Synology. Задачи оставались те же, поэтому в функционал DiskStation Manager (DSM) я особо не вникал. Это продолжалось до тех пор, пока я не решил установить домашнее видеонаблюдение на несколько каналов. Не смотря на то, что Synology имеет собственный сервис видеонаблюдения, я остановился на Macroscop — была потребность в расширенном функционале и серьёзной аналитике. На своё счастье, я обнаружил в DSM новый пакет Virtual Machine Manager — гипервизор, с помощью которого я создал виртуальную машину и установил на неё Windows и Macroscop. На запись система работала нормально, встроенный Pentium 1,6 ГГц с трудом, но успевал отрабатывать задачи СХД и виртуальной машины. Но как только активировалась какая-либо аналитика — сервис отваливался по перегрузке процессора. В результате, я был вынужден начать поиски отдельного бюджетного Windows-девайcа с адекватной производительностью для реализации сервера видеонаблюдения, так как Synology необходимого уровня стоит недёшево. В тот самый момент я в очередной раз наткнулся в сети на статьи, посвящённые установке DSM на обычное железо и мой проект XPenology начался…

Стоимость необходимых комплектующих для новой хранилки была соизмерима со стоимостью Intel NUC, который я присматривал для сервера видеонаблюдения. Поэтому я решил отказаться от существующей Synology в пользу брата (и использовать её как удалённый бэкап), а себе собрать систему «всё в одном» на базе DSM.

Сборка платформы


1,5А-вентилятор снизил температуру дисков до 36-40 градусов. После доработки вытяжки из шкафа, уверен, что температура еще существенно упадёт.

Один SSD 2,5" под кэш я установил на стандартное крепление с одной стороны дисковой корзины. Его температура не превышала 30-32 градуса, и это при том, что он никак активно не охлаждается.


В качестве диска под пакеты DSM и быстрого раздела я установил M.2 SATA SSD в слот на материнской плате. Накопитель нагревался до 50 градусов, не смотря на прямой обдув. Я решил проблему установкой на него нескольких радиаторов — температура снизилась на 10 градусов.


У меня 2 постоянно активных USB-устройства: загрузчик XPenology и ключ Guardant от Macroscop. Чтобы не занимать внешние разъёмы я пристроил эти устройства внутри корпуса.


Готовое хранилище с высокой производительностью процессора и максимально компактными размерами со скрипом, но вписалось в свободные 6 юнитов.


Подготовка загрузчика

Для того, чтобы установить DSM нужен загрузчик, который представит железо в качестве СХД Synology.

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

После установки валидной пары серийник/MAC и прочих параметров, образ для DS3615 заливается на любое устройство с которого можно грузиться. Можно использовать SATA DOM, но так как у меня SATA-порты на перечёт — я остановился на классическом варианте — USB флешке.
В BIOS необходимо удалить все загрузочные устройства кроме USB, а в параметрах SATA включить функцию HotPlug, чтобы новые диски определялись «на горячую», не дожидаясь перезагрузки.

Запуск

Прежде чем реализовать всё дома, я долго тренировался на различных платформах. Система без проблем мигрировала с компа на базе Celeron J1900 на сервер с 2 х E5-2680V4, а после на древний экспонат на базе 2 х E5645. Если есть виртуалки, то разумеется необходимо перед установкой ОС на виртуальную машину включать режим совместимости процессора. Вероятно это снижает производительность, т.к. процессор в виртуалке становится не реальный, а универсальный. Но зато, миграция проходит без трудностей и BSOD.

Настройка

Работа через загрузчик Xpenology почти не имеет ограничений по сравнению с оригинальным устройством. Из отличий можно отметить отсутствие функции QuickConnect — нет удалённого доступа к хранилищу через учётную запись Synology. Но у меня внешний IP — это ограничение для моего случая не актуально.

Также некорректно отображается модель процессора и кол-во ядер — информация зашита в загрузчике и всегда будет выглядеть как для DS3615xs: INTEL Core i3-4130 / 2 ядра. Но зато, частота определяется актуальная. Эта особенность не мешает определять и использовать гипервизору реальное кол-во ядер. Но и тут есть ограничения — Virtual Machine Manager увидит не более 8 ядер в системе. Поэтому ставить DSM на многоядерные конфигурации бессмысленно.
С объёмом ОЗУ всё в порядке — определялся и использовался весь объем (на практике до 48ГБ).
Интегрированные сетевые контроллеры определяются без проблем, а вот WiFi у меня не нашёлся. Предполагаю, что эта проблема может решиться добавлением драйверов, но, к сожалению, мои познания в Linux не позволяют мне этого реализовать. Если из читателей этой статьи найдётся человек, который сможет описать инструкцию по добавлению в сборку драйверов на беспроводной контроллер — я буду признателен.

Перед началом использования системы хранения необходимо создать RAID-группы. После перехода на первую Synology я оставил «зеркало», а 2 дополнительных диска пустил на Hot Spare. При переходе на Xpenology выбрал RAID5+HS, но потом добавил 4-ый диск в RAID6. Всё равно крутится и греется — пусть хоть с пользой.

Так как DSM обеспечивает как файловый, так и блочный доступ — перед созданием RAID-массива необходимо определиться с требованиями к типу будущего хранилища.




Я сразу создал несколько LUN для использования на домашнем мини-ПК и ноуте. Файловая шара — это хорошо, а диск с блочным доступом для установки программ — ещё лучше.


Далее создаётся необходимое кол-во LUN и разделов на RAID-группах, папки общего доступа и прочее. Описывать всем известный функционал Synology нет смысла. Все доступные пакеты расширения с описанием функционала доступны на официальном сайте.

Под мои задачи актуальными были следующие пакеты:

Virtual Machine Manager — собственно из-за него вся затея с Xpenology.


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

Но, вскоре был разочарован. Для кластера необходимо 3 ноды: активная, пассивная и хранилище. Автоматическая миграция виртуальных машин при выходе из строя активной ноды поддерживается только на виртуальных машинах Synology Virtual DSM — с виндой и прочими ОС не прокатит. Какой смысл на DSM поднимать кластер с виртуальными DSM я так и не понял…
В общем, более чем банальный гипервизор, я этот модуль не раскрыл для себя.

VPN Server — поддерживает PPTP, OpenVPN и L2TP/IPSec
PPTP, как у меня получилось выяснить, поддерживает только одно подключение бесплатно — его я использую для связи с удалённой Synology для бэкапа.

OpenVPN использую для подключения с iPhone и рабочего компьютера, а также для удалённого подключения LUN по iSCSI.

Hyper Backup — удобный, функциональный и, в то же время, лаконичный сервис резервирования.

Можно резервировать как папки так и LUN. Файловый бэкап можно сливать на другую Synology, на другой NAS и в облака. LUN резервируется только локально или удалённо на устройство Synology. Поэтому, если требуется бэкап луна в облако, как я понял, можно вначале его забэкапить в локальную папку, а уже её в облако.
Я использую 3 типа резервирования:


  1. Резерв на удалённую Synology — туда копируется всё, кроме папки бэкапа (в ней полный бэкап удалённой Synology).
  2. Бэкап только самого важного на Yandex-диск (через WebDAV)
  3. Дубль на Google-диск (есть в списке доступных облачных сервисов)


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

Далее настраивается расписание и параметры бэкапа.


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

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

Далее включается/настраивается ротация резервных копий.

Я использую режим Smart Recycle, но можно установить график ротации копий инкрементного резервирования на свой лад.

Модуль Hyper Backup работает только в паре с обратной частью — модулем Hyper Backup Vault

Этот сервис принимает удалённые копии и отвечает за их хранение.


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

На данный момент, это пока весь функционал, который мне удалось освоить и использовать.
Домашняя Xpenology продолжает работать без проблем — периодически обновляется DSM и пакеты, вычислительных мощностей с запасом, а по деньгам она обошлась мне в 1,5 раза дешевле Synology DS916+.

Synology High Availability Cluster

У меня вызывал интерес сервис High Availability Manager, который оказался не совместим с сервисом Virtual Machine Manager, так как тоже делает кластер, но уже по другому.


Для тестирования я поднял Xpenology на двух серверах на базе 2 x Xeon E5645. Сервера для этого кластера должны быть идентичными, IP-адреса статическими, второй порт каждого сервера соединён друг с другом напрямую (можно и через коммутатор, но эффективней так).


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


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


После того как вторая нода будет полной копией первой, активируется режим высокой доступности.

Для проверки работы отказоустойчивости я создал LUN, подключил его по iSCSI и запустил объёмную задачу чтения и записи со своего ПК, совместно с проигрыванием видеоролика.

В момент активности я обесточил главный сервер. LUN не отвалился, процесс копирования не прервался, но приостановился секунд на 10-15 — это время потребовалось пассивному серверу взять роль активного и запустить упавшие службы. Воспроизведение также приостановилось на несколько секунд. После кратковременного простоя копирование данных и проигрывание видео продолжилось в штатном режиме без необходимости перезапускать процесс. Такой «провал» в большинстве случаев будет не заметен пользователям, если только не ведется воспроизведение видео без буферизации или запущены какие-либо другие процессы, требующие непрерывного доступа к хранилищу.


После включения первой ноды, она переходит в режим пассивного сервера. Запускается фоновый процесс синхронизации, после завершения которого режим высокой доступности снова восстанавливается.

Для замены ноды, в случае полного выхода из строя, необходимо освободить пассивный сервер.


Процедура привязки пассивного сервера аналогична процедуре создания кластера, вначале синхронизация — затем High Availability. Только при одном исключении — добавление происходит уже из интерфейса кластера, а не активного сервера.

Из минусов такого решения — высокая избыточность, ну а плюс — честная отказоустойчивость.
Основные затраты выпадают на диски, но для любителей RAID10 самое оно! Зазеркалировать две ноды с RAID5 или RAID6 — по дискам будет почти одно и то же. А вот отказоустойчивости прибавится кратно.

Понятное дело, что это не уникальный функционал, но зато «из коробки» и не требует особого опыта и знаний — только веб-интерфейс. А, учитывая, что Xpenology работает на любом железе, получается весьма интересное, производительное и отказоустойчивое решение для личного использования.

При использовании iSCSI данные между сервером и системой хранения передаются блоками, в необработанном виде. Это позволяет использовать SAN практически так же, как если бы они были подключены к серверу напрямую, а не по сети. Хост-система может создавать на SAN логические разделы, форматировать их и использовать как обычные локальные жесткие диски. В этом заключается основное отличие SAN от сетевых хранилищ (Network Area Storage, NAS), которые работают на уровне файловой системы и используют протоколы передачи файлов, такие как SMB или CIFS.

Технология iSCSI была разработана как более дешевая альтернатива Fibre Channel (FC). Системы на базе iSCSI поддерживают стандартные протоколы и могут быть построены на базе любой существующей сетевой инфраструктуры, поддерживающей протокол IP. Для работы iSCSI может использовать самые обычные сетевые устройства (коммутаторы, маршрутизаторы, сетевые адаптеры и т.п), тогда как для FC требуются специальные HBA-адаптеры, оптические кабеля и прочее дорогостоящее оборудование.

Архитектура iSCSI является клиент-серверной и включает в себя следующие компоненты:

А теперь остановимся и уточним некоторые моменты:

• На каждом iSCSI сервере может быть один или несколько iSCSI Target;
• Каждый iSCSI Target может быть подключен к одному или нескольким виртуальным дискам;
• Каждый iSCSI Target может обслуживать одно или несколько подключений от iSCSI Initiator;
• В свою очередь, каждый iSCSI Initiator может подключаться к одному или нескольким iSCSI Target и, следовательно, к одному или нескольким виртуальным дискам.

Кроме того, в Windows Server 2012 поддерживается loopback-конфигурация, в которой и Target и Initiator могут находиться на одном и том же сервере.

В операционных системах Microsoft поддержка iSCSI появилась довольно давно. Первая версия Microsoft iSCSI Initiator устанавливалась в качестве отдельного компонента в Windows 2000, Windows XP SP2 и Windows Server 2003 SP1, а начиная с Windows Server 2008 и Vista iSCSI Initiator был встроен в операционную систему.

Что касается iSCSI Target, то изначально он входил в специальную версию серверной ОС Windows Data Storage Server 2003, которая была предназначена для построения систем хранения и поставлялась только в предустановленом виде. Однако с 2011 года компонент Microsoft iSCSI Software Target 3.3 стал доступен для загрузки и установки на Windows Server 2008R2, а в Windows Server 2012 он полностью интегрирован в систему и устанавливается в качестве роли сервера.

На этом закончим теоретическую часть и приступим к практике. Для настройки возьмем самый простой вариант, в качестве подопытных используем два сервера с установленной Windows Server 2012 R2: SRV2 для роли iSCSI Target и SRV3 для iSCSI Initiator.

Запуск службы iSCSI Initiator

Для начала проверим состояние службы инициатора на SRV3. Для этого открываем Server Manager и в меню «Tools» выбираем пункт «iSCSI Initiator».

Запуск iSCSI Initiator

Как видите, по умолчанию служба не запущена. Нажав на «Yes» в диалоговом окне, мы стартуем службу iSCSI Initiator и поставим ее в режим автоматического запуска.

подтверждение на запуск сервиса iSCSI Initiator

Затем в окне свойств переходим на вкладку «Configuration» и запоминаем значение IQN, оно пригодится нам при настройке сервера.

свойства iSCSI Initiator

Стартовать сервис iSCSI Initiator и установить режим его запуска можно и из консоли PowerShell, следующими командами:

Start-Service msiscsi
Set-Service msiscsi -StartupType automatic

Установка роли iSCSI Target Server

Server Manager

И выбираем роль «iSCSI Target Server», которая находится в разделе File and Storage Services\File and iSCSI Services.

установка роли iSCSI Target

Либо воспользуемся командой PowerShell:

Install-WindowsFeature -Name FS-iSCSITarget-Server

Подготовка диска

Теперь подготовим физический диск, который будет использоваться для хранения виртуальных iSCSI дисков. Специально для этой цели к серверу подключен новый жесткий диск размером 120Гб. На данный момент диск неактивен (Offline). Для его активации в Server Manager переходим в раздел File and Storage Services -> Disks, кликаем на диске и переводим его в Online.

подключение нового диска

Теперь на этом диске надо создать новый раздел (или том), для чего в контекстном меню выбираем пункт New Volume.

создание нового тома на диске

Выбираем физический диск, на котором будет создаваться том

выбор диска

указываем размер тома

выбор размера тома

и выбираем букву диска.

выбор буквы диска

Затем выбираем для диска файловую систему, размер сектора и указываем метку тома. Здесь напомню, что виртуальные диски iSCSI можно создавать только на томах NTFS, новая файловая система ReFS (Resilient File System) не поддерживается.

настройки файловой системы

Смотрим суммарную информацию, и если все правильно, то жмем «Create», запуская создание тома.

подтверждение на создание нового тома

Те же действия можно проделать с помощью PowerShell. Находим нужный диск:

Переводим его в online:

Set-Disk -Number 1 -IsOffline $false

Initialize-Disk -Number 1

New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D

И форматируем его в NTFS:

Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel ″iSCSI Storage″

Создание виртуальных дисков iSCSI

Следующим пунктом нашей программы идет создание виртуальных iSCSI дисков. Для этого переходим в раздел iSCSI и кликаем по ссылке, запуская очередной мастер.

создание виртуального iSCSI диска

Выбираем том, на котором будет храниться виртуальный диск.

выбор тома для размещения виртуального диска

Даем диску имя и описание.

задаем имя виртуальному диску

Указываем размер виртуального диска и его тип. Выбирать можно из трех вариантов:

задаем тип и размер виртуального диска

Теперь нужно указать iSCSI Target, к которому будет подключен данный диск. Поскольку на сервере не создано ни одного таргета, выбираем «New iSCSI target».

указываем iSCSI Target

Даем таргету имя и описание.

задаем имя для iSCSI Target

И указываем сервера, которые могут получить к нему доступ.

указываем сервера доступа

При выборе серверов можно воспользоваться двумя способами. Если инициатор находится на Windows Server 2012 или Windows 8, то можно просто нажать «Browse» и выбрать нужный сервер из списка. Для более старых систем надо вручную ввести идентификатор сервера. В качестве идентификатора можно указать IQN инициатора, DNS имя или IP-адрес сервера, либо MAC-адрес сетевого адаптера.

окно выбора серверов доступа

настройки аутентификации

Проверяем правильность настроек и запускаем создание диска.

подтверждаем создание виртуального диска

Попробуем сделать все то же с помощью PowerShell. Создадим еще один виртуальный iSCSI диск на 20ГБ командой:

New-IscsiVirtualDisk -Path D:\iSCSIVirtualDisks\iSCSI2.vhdx

Обратите внимание, что по умолчанию создается динамический диск, для создания VHD фиксированного размера надо воспользоваться ключом -UseFixed.

создание виртуального диска из PowerShell

Теперь создаем второй iSCSI Target c именем iscsi-target-2 и в качестве сервера доступа укажем IQN SRV3:

создание iSCSI Target и подключение диска

И проверим результат командой:

Get-IscsiServerTarget | fl TargetName, LunMappings

вывод информации о iSCSI Target

Подключение

Возвращаемся на SRV3, открываем окно свойств инициатора, переходим на вкладку Discovery и жмем кнопку Discover Portal.

окно Discover свойств iSCSI Initiator

Вводим имя или IP-адрес портала и жмем ОК.

настройка подключения к iSCSI Target

По умолчанию iSCSI использует все доступные IP-адреса, и если вы хотите, чтобы трафик iSCSI шел только через определенный сетевой интерфейс, то надо перейти в расширенные настройки и в поле «Connect using» указать нужный IP.

расширенная настройка подключения к iSCSI Target

Теперь переходим на вкладку Targets, где должны отобразиться все доступные для подключения iSCSI Target. Выбираем нужный таргет и жмем «Connect».

выбор iSCSI Target

Не забудьте отметить чекбокс «Add this connection to the list of Favorite Targets», который обеспечивает автоматическое подключение к таргету при выключении или перезагрузке машины.

подключение к iSCSI Target

оснастка Disk Management

То же самое можно выполнить с помощью PowerShell. Выводим список доступных таргетов:

И подключаемся к нужному:

Ключ -IsPersistent $true обеспечивает автоматическое подключение при выключении или перезагрузке.

подключение к iSCSI Target из PowerShell

Ну и для отключения можно воспользоваться командой Disconnect-IscsiTarge, вот так:

отключение к iSCSI Target из PowerShell

Заключение

На этом настройка завершена. Как я говорил, это самый простой, базовый вариант настройки хранилища. В iSCSI имеется еще много интересных возможностей. Например, можно использовать службу имен iSCSI (iSNS) для простоты управления, многопутевой ввод-вывод (MPIO) для обеспечения отказоустойчивости, а для безопасности настроить аутентификацию по протоколу CHAP и шифрование трафика с помощью IPSec. О некоторых из этих фич я планирую написать в следующих статьях.

И в заключение важные моменты, которые надо учесть при организации системы хранения iSCSI:

• Развертывать iSCSI желательно в быстрой сети, не ниже Gigabit Ethernet;
• Сетевой трафик iSCSI рекомендуется отделить от остального трафика и вынести в отдельную сеть, например с помощью VLAN или физического разделения на подсети;
• Для обеспечения высокой доступности на сетевом уровне необходимо использовать технологию MPIO, либо сеансы с несколькими подключениями (MCS). Объединение сетевых адаптеров (NIC Teaming) для подключения к устройствам хранения iSCSI не поддерживается;
• При использовании технологии Storage Spaces можно хранить виртуальные диски iSCSI на Storage Spaces, но нельзя использовать LUN-ы iSCSI для создания Storage Spaces;
• Для хранения виртуальных дисков iSCSI нельзя использовать общие кластерные тома CSV (Cluster Shared Volume).

Читайте также: