Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
Настройка iSCSI-хранилища в Windows Server 2012 R2
Продолжая тему создания систем высокой доступности, в данном материале мы рассмотрим настройку iSCSI-хранилищ в современной версии серверных ОС от Microsoft. Мы не будем повторяться и снова обсуждать общие вопросы, поэтому, если вы только начинаете работать с iSCSI, то настоятельно рекомендуем ознакомиться с вступительной частью к нашему предыдущему материалу.
Широкое распространение виртуализации и потребности в создании отказоустойчивых систем даже при небольших внедрениях заставили компанию Microsoft пересмотреть свое отношение к доступным из коробки ролям Windows Server и политике лицензирования. Если раньше iSCSI Target предлагался только в редакции Windows Storage Server, то начиная с Server 2008 R2 он стал доступен в виде отдельно устанавливаемого компонента, а с выходом Windows Server 2012 закономерно стал частью ОС.
Для установки роли Cервера цели iSCSI запустите Мастер добавления ролей и компонентов, затем последовательно разверните пункты Файловые службы и службы хранилища — Файловый службы и службы iSCSI и укажите одноименную роль.
Перезагрузки сервера не требуется и по завершении работы мастера можно сразу переходить к настройке сервера целей. Для этого в левом меню Диспетчера серверов выберите Файловые службы и службы хранилища и перейдите в раздел iSCSI.
Для создания нового виртуального диска щелкните соответствующую ссылку или выберите соответствующий пункт из меню Задачи, откроется Мастер создания виртуальных дисков iSCSI, который в первую очередь попросит вас указать расположение хранилища.
Помните, что производительность дисковой подсистемы хранилища должна соответствовать предполагаемым нагрузкам, также вы должны обеспечить серверу цели достаточную пропускную способность сетевых интерфейсов. Мы рекомендуем выделять для сети хранения данных (SAN) отдельную сеть, не связанную с сетью предприятия.
Следующим шагом укажите имя и размер создаваемого диска. Windows Server 2012 поддерживает новый формат виртуальных дисков — VHDX, а также динамически расширяемые диски. Если доступные ранее диски фиксированного размера резервировали дисковое пространство хранилища сразу при создании, то динамически расширяемые диски увеличивают размер согласно реально записанным в них данным. Это позволяет существенно экономить дисковое пространство хранилища, нарезая виртуальные диски с запасом.
Не рекомендуется данный тип дисков для систем с высокой дисковой активностью, так как за счет возможной фрагментации и операций по приращению размера диска производительность будет ниже, чем у дисков фиксированного размера. В тоже время динамически расширяемые диски неплохо подходят для файловых хранилищ, резервного копирования и т.п. задачам, где в первую очередь требуется хранение данных, а не скорость доступа к ним.
Еще один поддерживаемый тип дисков — разностный, когда все изменения пишутся не на исходный виртуальный диск, а на вновь созданный, к использованию в производственных средах не рекомендуется ввиду существенно более низкой производительности, но может оказаться полезным при отладке и разного рода экспериментах, когда надо иметь возможность быстро откатиться к исходному состоянию.
Созданный виртуальный диск можно назначить как уже существующей цели (таргету), так и создать новый, в этом случае просто укажите имя цели, IQN будет сформирован автоматически.
Затем потребуется указать инициаторы, которым будет разрешен доступ к этой цели. IQN инициатора можно посмотреть на клиенте, для этого откройте Панель управления — Администрирование — Инициатор iSCSI, на вопрос об автоматическом запуске службы ответьте утвердительно.
IQN ткущего инициатора можно посмотреть на закладке Конфигурация:
Но можно поступить проще, перейдите на закладку Конечные объекты и выполните Быстрое подключение к Cерверу цели, подключиться по понятным причинам не получится, но IQN инициализатора останется в кэше сервера.
Вернемся на сервер и нажав кнопку Добавить выберем IQN инициатора из кэша, для современных систем вы также можете получить IQN инициатора выполнив подключение к нему по IP-адресу или имени хоста:
На остальных шагах оставляем значения по умолчанию, после чего работа мастера будет завершена, виртуальный диск создан и назначен соответствующей цели. Теперь следует подключить созданный диск к целевой системе. Можно воспользоваться функцией быстрого подключения, тогда все диски цели будут подключены с параметрами по умолчанию, что не всегда правильно. Поэтому перейдите на закладку Обнаружение и нажмите кнопку Обнаружить портал:
Возвращаемся на закладку Конечные объекты и выполняем ручное подключение найденных дисков, при этом, нажав на кнопку Дополнительно, можно самостоятельно настроить параметры подключения, например, выбрать сетевой адаптер, обслуживающий сеть SAN.
Если вам потребуется изменить параметры подключения уже подключенного объекта, то его следует отключить и подключить заново. После выполнения всех этих действий подключенное устройство будет обнаружено системой как еще один локальный диск и последующая работа с ним ничем не отличается от работы с обычным жестким диском.
Настройка iSCSI хранилища в Windows Server 2012
Internet Small Computer System Interface (iSCSI) — это протокол передачи данных, предназначенный для обмена данными между серверами и системами хранения данных (Storage Area Network, SAN). iSCSI представляет из себя комбинацию протокола SCSI и стека протоколов TCP/IP и предназначен для передачи блоков данных через сети Ethernet. Управляющие команды SCSI передаются внутри IP-пакетов, а протокол TCP обеспечивает управление потоком и надежность передачи данных.
При использовании iSCSI данные между сервером и системой хранения передаются блоками, в необработанном виде. Это позволяет использовать SAN практически так же, как если бы они были подключены к серверу напрямую, а не по сети. Хост-система может создавать на SAN логические разделы, форматировать их и использовать как обычные локальные жесткие диски. В этом заключается основное отличие SAN от сетевых хранилищ (Network Area Storage, NAS), которые работают на уровне файловой системы и используют протоколы передачи файлов, такие как SMB или CIFS.
Технология iSCSI была разработана как более дешевая альтернатива Fibre Channel (FC). Системы на базе iSCSI поддерживают стандартные протоколы и могут быть построены на базе любой существующей сетевой инфраструктуры, поддерживающей протокол IP. Для работы iSCSI может использовать самые обычные сетевые устройства (коммутаторы, маршрутизаторы, сетевые адаптеры и т.п), тогда как для FC требуются специальные HBA-адаптеры, оптические кабеля и прочее дорогостоящее оборудование.
Архитектура iSCSI является клиент-серверной и включает в себя следующие компоненты:
iSCSI Initiator — клиентский компонент, который отправляет запросы на подключение компоненту iSCSI Target, находящемуся на стороне сервера. Инициатор может быть реализован программно, в виде драйвера, либо аппаратно, в виде специального iSCSI адаптера.
iSCSI Target — серверный компонент, слушающий клиентские запросы и обеспечивающий установку соединения между клиентом и сервером iSCSI. Кроме того, таргет связан с виртуальными дисками iSCSI, и после установки соединения все виртуальные диски, связанные с этим таргетом, становятся доступны через инициатор. В качестве iSCSI Target может выступать как специализированная СХД, так и обычный Windows сервер с установленной ролью iSCSI Target.
Виртуальные диски iSCSI — используются для разбиения дискового пространства на логические разделы (Logical Unit Number, LUN). В Windows Server 2012 iSCSI LUN представляют из себя обычные виртуальные диски формата VHD\VHDX. Кстати, в Windows Server 2012 для iSCSI поддерживался только формат VHD, что ставило ограничение в 2ТБ на максимальный размер LUN. В Windows Server 2012 R2 используется формат VHDX, что позволяет создавать LUN-ы размером до 64ТБ.
А теперь остановимся и уточним некоторые моменты:
• На каждом 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».
Как видите, по умолчанию служба не запущена. Нажав на «Yes» в диалоговом окне, мы стартуем службу iSCSI Initiator и поставим ее в режим автоматического запуска.
Затем в окне свойств переходим на вкладку «Configuration» и запоминаем значение IQN, оно пригодится нам при настройке сервера.
IQN (iSCSI qualified name) — это уникальный идентификатор, назначаемый для каждого iSCSI Target и Initiator. IQN формируется из даты (месяц и год) регистрации домена, официального имени домена, написанного в обратном порядке и любого произвольного имени, например имени сервера. Получается примерно так: iqn:1991-05.com.microsoft:srv3.contoso.com
Стартовать сервис iSCSI Initiator и установить режим его запуска можно и из консоли PowerShell, следующими командами:
Start-Service msiscsi
Set-Service msiscsi -StartupType automatic
Установка роли iSCSI Target Server
Теперь перейдем на SRV2 и приступим к настройке серверной части. Первое, что нам надо сделать — это установить на сервер роль iSCSI Target. Открываем Server Manager, переходим по ссылке «Add roles and features»
И выбираем роль «iSCSI Target Server», которая находится в разделе File and Storage Services\File and iSCSI Services.
Либо воспользуемся командой 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 и кликаем по ссылке, запуская очередной мастер.
Выбираем том, на котором будет храниться виртуальный диск.
Даем диску имя и описание.
Указываем размер виртуального диска и его тип. Выбирать можно из трех вариантов:
• Fixed size (фиксированного размера) — создаваемый диск сразу занимает весь выделенный объем. Это наиболее производительный, но наименее экономичный вариант;
• Dynamically expanding (динамически расширяемый) — изначально создается диск минимального размера, который затем динамически изменяется в зависимости от количества записанных на него данных. Наилучший вариант в плане использования дискового пространства;
• Differencing (разностный) — в этом варианте нужно указать расположение родительского диска, с которым будет связан создаваемый диск. Разностный диск может быть как фиксированным, так и динамическим, в зависимости от типа родителя. У этого типа дисков есть свои преимущества, но использовать их для iSCSI лично я особого смысла не вижу.
Теперь нужно указать iSCSI Target, к которому будет подключен данный диск. Поскольку на сервере не создано ни одного таргета, выбираем «New iSCSI target».
Даем таргету имя и описание.
И указываем сервера, которые могут получить к нему доступ.
При выборе серверов можно воспользоваться двумя способами. Если инициатор находится на Windows Server 2012 или Windows 8, то можно просто нажать «Browse» и выбрать нужный сервер из списка. Для более старых систем надо вручную ввести идентификатор сервера. В качестве идентификатора можно указать IQN инициатора, DNS имя или IP-адрес сервера, либо MAC-адрес сетевого адаптера.
Идем дальше. На следующей странице можно настроить аутентификацию по протоколу CHAP между серверами. CHAP (Challenge Handshake Authentication Protocol) — это протокол для проверки подлинности партнера по подключению, основанный на использовании общего пароля или секрета. Для iSCSI можно задействовать как одностороннюю, так и двухстороннюю (reverse) проверку подлинности CHAP.
Проверяем правильность настроек и запускаем создание диска.
Попробуем сделать все то же с помощью PowerShell. Создадим еще один виртуальный iSCSI диск на 20ГБ командой:
New-IscsiVirtualDisk -Path D:\iSCSIVirtualDisks\iSCSI2.vhdx
Обратите внимание, что по умолчанию создается динамический диск, для создания VHD фиксированного размера надо воспользоваться ключом -UseFixed.
Теперь создаем второй iSCSI Target c именем iscsi-target-2 и в качестве сервера доступа укажем IQN SRV3:
New-IscsiServerTarget -TargetName iscsi-target-2 -InitiatorIds ″IQN:iqn.1991-05.com.microsoft:srv3.contoso.com″
И проверим результат командой:
Get-IscsiServerTarget | fl TargetName, LunMappings
Подключение
Возвращаемся на SRV2, открываем окно свойств инициатора, переходим на вкладку Discovery и жмем кнопку Discover Portal.
Вводим имя или IP-адрес портала и жмем ОК.
По умолчанию iSCSI использует все доступные IP-адреса, и если вы хотите, чтобы трафик iSCSI шел только через определенный сетевой интерфейс, то надо перейти в расширенные настройки и в поле «Connect using» указать нужный IP.
Теперь переходим на вкладку Targets, где должны отобразиться все доступные для подключения iSCSI Target. Выбираем нужный таргет и жмем «Connect».
Не забудьте отметить чекбокс «Add this connection to the list of Favorite Targets», который обеспечивает автоматическое подключение к таргету при выключении или перезагрузке машины.
Подключение состоялось, и если открыть оснастку управления дисками, то там появится новый диск. Дальше с этим диском поступаем так же, как с обычным жестким диском, подключенным локально — переводим в Online, инициализируем, создаем на нем разделы и форматируем.
То же самое можно выполнить с помощью PowerShell. Выводим список доступных таргетов:
И подключаемся к нужному:
Connect-IscsiTarget -NodeAddress ″iqn.1995-05.com.microsoft:srv2-iscsi-target-2-target″ -IsPersistent $true
Ключ -IsPersistent $true обеспечивает автоматическое подключение при выключении или перезагрузке.
Ну и для отключения можно воспользоваться командой Disconnect-IscsiTarge, вот так:
Disconnect-IscsiTarget -NodeAddress ″iqn.1995-05.com.microsoft:srv2-iscsi-target-2-target″ -Confirm:$false
Заключение
На этом настройка завершена. Как я говорил, это самый простой, базовый вариант настройки хранилища. В 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).