Общие ресурсы Block (iSCSI) в FreeNAS 11

Поделись записью

iSCSI является стандартом протокола для консолидации данных хранилища. iSCSI позволяет FreeNAS действовать как сеть хранения данных (SAN) по существующей сети Ethernet.

В частности, он экспортирует дисковые устройства через сеть Ethernet, к которым могут подключаться и монтировать клиенты iSCSI (называемые инициаторами).

Традиционные сети SAN работают по сетям волоконно-оптических каналов, для которых требуется инфраструктура волоконно-оптических каналов, таких как HBA волоконного канала, коммутаторы волоконных каналов и дискретные кабели.

iSCSI может использоваться по существующей сети Ethernet, хотя выделенные сети могут быть созданы для трафика iSCSI в целях повышения производительности. iSCSI также обеспечивает преимущество в среде, которая использует программы оболочки Windows; эти программы имеют тенденцию фильтровать Network Location (Сетевое расположение), но iSCSI mounts не фильтруются.

Терминология iSCSI

CHAP

Это метод аутентификации, который использует общую секретную и трехстороннюю аутентификацию для определения того, имеет ли система право доступа к запоминающему устройству и периодически подтверждает, что сеанс не был захвачен другой системой. В iSCSI инициатор (клиент) выполняет аутентификацию CHAP.

Взаимный CHAP — Mutual CHAP

надставка CHAP в том, что оба конца обмена данными аутентифицируются друг с другом.

Инициатор — Initiator

Это клиент, которому разрешен доступ к данным хранилища в системе FreeNAS. Клиент требует, чтобы инициатор программного обеспечения инициировал подключение к общему ресурсу iSCSI.

Цель — Target

Таргет — это ресурс хранения в системе FreeNAS. Каждая цель имеет уникальное имя, известное как iSCSI Qualified Name (IQN).

Служба имен имен в Интернете (iSNS) — Internet Storage Name Service (iSNS)

протокол для автоматического обнаружения устройств iSCSI в сети TCP / IP.

Степень — Extent

Единица хранения, которая будет использоваться совместно. Это может быть файл или устройство.

Портал — Portal

Он указывает, какие IP-адреса и порты прослушивать для запросов на соединение.

ЛУН — LUN

Это номер логического блока (Logical Unit Number), представляющий логическое устройство SCSI. Инициатор ведет переговоры с целью установить связь с LUN. Результатом является соединение iSCSI, которое эмулирует соединение с жестким диском SCSI. Инициаторы рассматривают iSCSI LUN, как если бы они были жестким диском SCSI или SATA. Вместо того, чтобы устанавливать удаленные каталоги, инициаторы форматируют и напрямую управляют файловыми системами на LUN iSCSI. При настройке нескольких iSCSI LUN создайте новую цель для каждого LUN. Поскольку iSCSI мультиплексирует цель с несколькими LUN по одному и тому же TCP-соединению, может существовать конфликт TCP, когда более одного целевого доступа обращается к одному и тому же LUN. FreeNAS поддерживает до 1024 LUN.

В FreeNAS iSCSI встроено в ядро. Эта версия iSCSI поддерживает Microsoft Offloaded Data Transfer (ODX), что означает, что копии файлов происходят локально, а не по сети. Он также поддерживает примитивы VAAI (vStorage APIs for Array Integration) для эффективной работы задач хранения непосредственно на NAS. Чтобы воспользоваться преимуществами примитивов VAAI, создайте zvol, используя инструкции в Create zvol, и используйте его для создания объема устройства, как описано в Extents.

Как настроить iSCSI в FreeNAS?

  • Просмотрите целевые параметры глобальной конфигурации.
  • Создайте хотя бы один портал.
  • Определите, какие хосты могут подключаться с помощью iSCSI и создайте инициатор.
  • Решите, будет ли использоваться аутентификация, и если да, будет ли это CHAP или взаимным CHAP. При использовании аутентификации создайте авторизованный доступ.
  • Создайте цель (таргет).
  • Создайте либо устройство, либо размер файла, который будет использоваться в качестве хранилища.
  • Свяжите цель с определенной степенью.
  • Запустите службу iSCSI в Services ‣ Control Services (Службах ‣ Службы контроля).

Остальная часть этого раздела описывает эти шаги более подробно.

Сколько LUNs (ЛУНов) поддерживает FreeNAS?

FreeNAS поддерживает до 1024 LUN.

Глобальная настройка цели (таргета)

Sharing ‣ Block (iSCSI) ‣ Target Global Configuration (Общий доступ ‣ Блок (iSCSI) ‣ Целевая глобальная конфигурация), показанная на рисунке, содержит параметры, которые применяются ко всем общим ресурсам iSCSI.

Глобальные конфигурационные переменные iSCSI цели (таргета) в FreeNAS
Глобальные конфигурационные переменные iSCSI цели (таргета) в FreeNAS

Некоторые встроенные значения влияют на использование iSNS. Извлечение разрешенных инициаторов из iSNS не выполняется, поэтому целевые списки управления доступом должны быть настроены вручную. Чтобы сделать регистрацию iSNS полезной, цели iSCSI должны иметь явно настроенные IP-адреса порта. Это позволяет избежать инициаторов, пытающихся обнаружить неконфигурированные адреса целевого портала, такие как 0.0.0.0.

Период регистрации iSNS составляет 900 секунд. Зарегистрированные сетевые объекты, не обновляемые в течение этого периода, не зарегистрированы. Таймаут для запросов iSNS составляет 5 секунд.

Список настраиваемых параметров на экране Target Global Configuration

Base Name

Тип string. Смотри Constructing iSCSI names using the iqn. format «Построение имен iSCSI с помощью iqn. формат» в RFC 3721, если они не знакомы с этим форматом.

ISNS Servers

Тип string. Список имен хостов или IP-адресов серверов ISNS с пространственным разделением должен быть зарегистрирован в целях iSCSI и порталах системы.

Pool Available Space Threshold

Тип integer. Укажите процент свободного места, оставшегося в пуле. Когда этот процент достигнут, система выдает предупреждение, но только если используются zvols. Для получения дополнительной информации см. Предупреждение о пороге VAAI. (http://doc.freenas.org/11/vaai.html#vaai)

Порталы — Portals

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

Добавление iSCSI-портала

Добавление iSCSI-портала в FreeNAS
Добавление iSCSI-портала в FreeNAS

Настраеваемые параметры при добавлении портала

Чтобы назначить дополнительные IP-адреса для портала, нажмите ссылку Добавить дополнительный портал IP.

Comment

Тип string. Необязательное описание. Порталам автоматически присваивается числовой идентификатор группы.

Discovery Auth Method

Тип drop-down menu. iSCSI поддерживает несколько методов аутентификации, которые используются целью для обнаружения действительных устройств. None позволяет анонимное обнаружение, в то время как CHAP и Mutual CHAP требуют аутентификации.

Discovery Auth Group

Тип drop-down menu. Выберите пользователя, созданного в Authorized Access, если для Discovery Auth Method обнаружен параметр CHAP или взаимный CHAP.

IP address

Тип drop-down menu. Выберите IP-адрес, связанный с интерфейсом или подстановочный адрес 0.0.0.0 (любой интерфейс).

Port

Тип integer. TCP-порт, используемый для доступа к цели iSCSI. По умолчанию 3260.

Какой TCP порт используется для получения доступа к таргету iSCSI в FreeNAS?

По умолчанию 3260.

Системы FreeNAS с несколькими IP-адресами или интерфейсами могут использовать портал для предоставления услуг на разных интерфейсах или подсетей. Это можно использовать для настройки многоканального ввода-вывода (MPIO). MPIO более эффективен, чем агрегация ссылок.

Если система FreeNAS имеет несколько сконфигурированных интерфейсов, порталы также могут использоваться для обеспечения контроля доступа к сети. Например, рассмотрим систему с четырьмя интерфейсами, сконфигурированными со следующими адресами:

192.168.1.1/24

192.168.2.1/24

192.168.3.1/24

192.168.4.1/24

Может быть создан портал, содержащий первые два IP-адреса (идентификатор группы 1) и портал, содержащий два оставшихся IP-адреса (идентификатор группы 2). Затем может быть создана цель с именем A с идентификатором группы портала 1 и второй целью с именем B с идентификатором группы портала 2. В этом случае служба iSCSI будет прослушивать все четыре интерфейса, но соединения с целевым A будут ограничены первыми двумя сетями, а соединения с целевым B будут ограничены двумя последними сетями.

Другим сценарием будет создание портала, который включает в себя каждый IP-адрес, за исключением того, который используется интерфейсом управления. Это предотвратит подключение iSCSI к интерфейсу управления.

Инициаторы — Initiators

Следующим шагом будет настройка авторизованных инициаторов или систем, которым разрешено подключаться к целям iSCSI в системе FreeNAS. Чтобы настроить, какие системы могут подключаться, используйте Sharing ‣ Block (iSCSI) ‣ Initiators ‣ Add Initiator

Добавление инициатора iSCSI в FreeNAS
Добавление инициатора iSCSI в FreeNAS

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

Initiators

Тип string. Используйте ключевое слово ALL или список имен хостов инициатора, разделенных пробелами.

Authorized network

Тип string. Используйте ключевое слово ALL или сетевой адрес с помощью маски CIDR, такой как 192.168.2.0/24.

Comment

Тип string. Введите необязательное описание.

В примере, показанном на рисунке 10.5.4, создаются две группы. Группа 1 позволяет подключать любой инициатор к любой сети. Группа 2 допускает соединения от любого инициатора в сети 10.10.1.0/24. Щелкните запись инициатора, чтобы отобразить ее кнопки «Редактировать» и «Удалить».

Пример конфигурации инициатора iSCSI в FreeNAS
Пример конфигурации инициатора iSCSI в FreeNAS

Примечание 1

Попытка удалить инициатор вызывает предупреждение, указывающее, зависят ли какие-либо цели или сопоставления цели / степени от инициатора. Подтверждение удаления также приводит к их удалению.

Авторизованный доступ — Authorized Accesses

При использовании CHAP или взаимного CHAP для обеспечения аутентификации создание разрешенного доступа рекомендуется в разделе Sharing ‣ Block (iSCSI) ‣ Authorized Accesses ‣ Add Authorized Access.

На этом экране устанавливается аутентификация входа. Это отличается от проверки подлинности, установленной в Target Global Configuration.

Добавление авторизированного доступа iSCSI в FreeNAS
Добавление авторизированного доступа iSCSI в FreeNAS

Настраиваемые параметры при добавлении авторизованного доступа

Group ID

Тип integer. Позволяет настраивать разные группы с разными профилями проверки подлинности. Пример: все пользователи с идентификатором группы 1 наследуют профиль аутентификации, связанный с группой 1.

User

Тип string. Введите имя учетной записи пользователя для создания для CHAP-аутентификации с пользователем в удаленной системе. Многие инициаторы по умолчанию используют имя инициатора в качестве пользователя.

Secret

Тип string. Введите пароль, который будет связан с пользователем. Стандарт iSCSI требует от 12 до 16 символов.

Peer User

Тип string. Только ввод при настройке взаимного CHAP. В большинстве случаев это должно быть то же значение, что и Пользователь.

Peer Secret

Тип string. Введите взаимный секретный пароль, который должен отличаться от секретного. Требуется, если установлен пользователь Peer.

 

CHAP не работает с инициаторами GlobalSAN на macOS.

По мере добавления разрешенных прав они будут перечислены в разделе View Authorized Accesses (Просмотр авторизированных доступов). В примере, показанном на рисунке 10.5.6, создаются три пользователя (test1, test2 и test3) и две группы (1 и 2), причем группа 1 состоит из одного пользователя CHAP и группы 2, состоящего из одного пользователя mutual CHAP и одного пользователя CHAP. Нажмите авторизованную запись доступа, чтобы отобразить ее кнопки «Редактировать» и «Удалить».

Просмотр авторизированных доступов iSCSI в FreeNAS
Просмотр авторизированных доступов iSCSI в FreeNAS

Цели — Targets

Затем создайте цель с использованием Sharing ‣ Block (iSCSI) ‣ Targets ‣ Add Target

Цель объединяет идентификатор портала, разрешенный идентификатор инициатора и метод аутентификации.

Добавление цели iSCSI в FreeNAS
Добавление цели iSCSI в FreeNAS

Параметры настройки Target

Target Name

Тип string.

Target Alias

Тип string.

Portal Group ID

Тип drop-down menu. Оставьте пустым или выберите номер существующего портала для использования.

Initiator Group ID

Тип drop-down menu. Выберите, какая из существующих групп инициаторов имеет доступ к цели.

Auth Method

Тип drop-down menu. Возможные значения: None, Auto, CHAP или Mutual CHAP.

Authentication Group number

Тип drop-down menu. Выберите None или «Целое число», представляющее номер существующего авторизованного доступа.

Экстенты — Extents

Цели iSCSI обеспечивают виртуальный доступ к ресурсам в системе FreeNAS. Экстенты используются для определения ресурсов для совместного использования с клиентами. Существует два типа экстентов: устройство и файл.

Экстенты устройств (Device extents)обеспечивают виртуальный доступ к хранилищу для zvols, снимков zvol или физических устройств, таких как диск, SSD, аппаратный том RAID или устройство HAST. (https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/disks-hast.html)

Экстенты файлов (File extents) обеспечивают доступ к виртуальному хранилищу для отдельного файла.

Совет

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

 

Виртуализированные zvols поддерживают все примитивы FreeNAS VAAI и рекомендуются для использования с программным обеспечением для виртуализации в качестве инициатора iSCSI.

Атрибуты ATS, WRITE SAME, XCOPY и STUN поддерживаются как размерами файлов, так и устройств. Первоначальный примитив UNMAP поддерживается zvols и необработанными SSD. Порог предупреждений примитивов полностью поддерживается zvols и частично поддерживается файловыми экстентами.

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

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

Внимание!

По соображениям производительности и во избежание чрезмерной фрагментации держите используемое пространство пула ниже 50% при использовании iSCSI. Емкость существующего эстента может быть увеличена, как показано в разделе «Расширение LUN». (http://doc.freenas.org/11/sharing.html#growing-luns)

Чтобы добавить дополнительную информацию, перейдите в раздел Sharing ‣ Block (iSCSI) ‣ Extents ‣ Add Extent. В примере, показанном на рисунке 10.5.8, размер устройства использует экспорт zvol, который был ранее создан из тома /mnt/volume1.

Добавление экстента iSCSI в FreeNAS
Добавление экстента iSCSI в FreeNAS

Параметры создания экстента в FreeNAS

Обратите внимание, что создание файла экстента не удается, когда имя файла будет создано для имени тома / набора данных. Не прилагается.

Extent Name

Тип string. Введите имя экстента. Если размер экстента не равен 0, он не может быть существующим файлом в томе или наборе данных.

Extent Type

Тип drop-down menu. Выберите «Файл» или «Устройство».

Device

Тип drop-down menu. Отображается только при выборе устройства. Выберите неформатированный диск, контроллер, zvol, zvol snapshot или HAST.

Serial

Тип string. Уникальный идентификатор LUN. По умолчанию генерируется MAC-адрес системы.

Path to the extent

Тип browse button. Отображается только в том случае, если выбран файл. Перейдите к существующему файлу и используйте «0» в качестве размера экстента или перейдите к тому или набору данных, нажмите «Закрыть», добавьте имя «Расширение» в путь и укажите значение в «Размер экстента». Экстенты не могут быть созданы внутри корневого каталога джейла.

Extent size

Тип integer. Отображается только в том случае, если выбран файл. Если размер указан как «0», файл уже должен существовать и будет использоваться фактический размер файла. В противном случае укажите размер создаваемого файла.

Logical Block Size

Тип drop-down menu. Только переопределять значение по умолчанию, если инициатору требуется другой размер блока.

Disable Physical Block Size Reporting

Тип checkbox. Установите, если инициатор не поддерживает значения размера физического блока более 4K (MS SQL).

Available Space Threshold

Тип string. Отображается только в том случае, если выбран файл или zvol. Когда заданный процент свободного места будет достигнут, система выдает предупреждение. Для получения дополнительной информации см. Предупреждение о пороге VAAI. (http://doc.freenas.org/11/vaai.html#vaai)

Comment

Тип string. Введите необязательный комментарий.

Enable TPC

Тип checkbox. Если включено, инициатор может обходить обычное управление доступом и доступ к любой подлежащей сканированию цели; это позволяет другим операциям xcopy блокировать управление доступом.

Xen initiator compat mode

Тип checkbox. Установите этот параметр при использовании Xen в качестве инициатора iSCSI.

LUN RPM

Тип drop-down menu. НЕ изменяйте этот параметр при использовании Windows в качестве инициатора. Необходимо изменить только в больших средах, где для точной статистики отчетов требуется количество систем, использующих определенный RPM.

Read-only

Тип checkbox. Установите, чтобы инициатор не инициализировал этот LUN.

Таргеты и Экстенты

Последним шагом является привязка экстента к цели в разделе Sharing ‣ Block (iSCSI) ‣ Associated Targets ‣ Add Target/Extent.

Связывание Таргета с Экстентом в FreeNAS
Связывание Таргета с Экстентом в FreeNAS

Используйте раскрывающиеся меню, чтобы выбрать существующую цель и степень. Нажмите «ОК», чтобы добавить запись для LUN.

Настраиваемые параметры сопоставления целей и экстентов iSCSI в FreeNAS

Target

Тип drop-down menu. Выберите существующую цель.

LUN ID

Тип drop-down menu. Выберите значение для использования или введите значение от 1 до 1023. Обратите внимание, что некоторые инициаторы ожидают значения ниже 256.

Extent

Тип drop-down menu. Выберите существующий экстент.

Рекомендуется всегда связывать экстенты с целями индивидуально, даже если графический интерфейс позволит связать несколько экстентов с одной и той же целью.

Примечание

Каждая запись LUN имеет кнопки редактирования и удаления для изменения настроек или полного удаления LUN. Всплывающее окно подтверждения появляется при нажатии кнопки «Удалить». Если инициатор имеет активное соединение с LUN, он отображается красным текстом. Рекомендуется очищать соединения инициатора с LUN перед их удалением.

После того, как iSCSI настроен, не забудьте запустить его в Services ‣ Control Services. Нажмите красную кнопку OFF рядом с iSCSI. Через секунду или около того он изменится на синий, указывая, что служба запущена.

Подключение к iSCSI

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

Клиент Инициатора iSCSI предварительно установлен с Windows 7. Подробное руководство для этого клиента можно найти здесь. (http://techgenix.com/Connecting-Windows-7-iSCSI-SAN/)

Клиент для Windows 2000, XP и 2003 можно найти здесь. (http://www.microsoft.com/en-us/download/details.aspx?id=18986)

В этом руководстве показано, как создать цель iSCSI для системы Windows 7. (https://www.pluralsight.com/blog/software-development/freenas-8-iscsi-target-windows-7)

Mac OS X не содержит инициатора. globalSAN — коммерческий, простой в использовании инициатор Mac. (http://www.studionetworksolutions.com/globalsan-iscsi-initiator/)

BSD-системы предоставляют инициаторы командной строки: iscontrol (8) поставляется с версиями FreeBSD 9.x и ниже, iscsictl (8) поставляется с версиями FreeBSD 10.0 и выше, iscsi-инициатор (8) поставляется с NetBSD, а iscsid (8) поставляется с OpenBSD.

Некоторые дистрибутивы Linux предоставляют утилиту командной строки iscsiadm из Open-iSCSI. (http://www.open-iscsi.com/) Используйте веб-поиск, чтобы узнать, существует ли пакет для распространения, если команда не существует в системе Linux.

Если добавлен LUN, а iscsiadm уже подключен, он не увидит новый LUN до повторного сканирования с помощью «iscsiadm -m node -R». В качестве альтернативы, используйте «iscsiadm -m discovery -t st -p portal_IP», чтобы найти новый LUN и «iscsiadm -m node -T LUN_Name -l» для входа в LUN.

Инструкции по подключению с сервера VMware ESXi можно найти в разделе Как настроить FreeNAS 8 для iSCSI и подключиться к ESX (i). (https://www.vladan.fr/how-to-configure-freenas-8-for-iscsi-and-connect-to-esxi/)

Обратите внимание, что требования по загрузке vSphere 4.x из iSCSI различаются между ESX и ESXi. ESX требует аппаратного адаптера iSCSI, в то время как ESXi требует специальной поддержки прошивки iSCSI. Магия находится на стороне хоста загрузки, что означает, что нет никакой разницы в конфигурации FreeNAS. Подробнее см. Руководство по конфигурации SAN iSCSI. (https://www.vmware.com/pdf/vsphere4/r41/vsp_41_iscsi_san_cfg.pdf)

Брандмауэр VMware разрешает только подключения iSCSI по порту 3260. Если выбран другой порт, исходящие соединения с этим портом должны быть добавлены вручную в брандмауэр до того, как эти соединения будут работать.

Если цель можно увидеть, но не подключиться, проверьте Discovery Auth (параметры обнаружения) в Target Global Configuration (глобальной целевой конфигурации).

Если LUN не обнаружен ESXi, убедитесь, что в режиме promiscuous установлен Accept в vSwitch.

Растущие LUNы

Метод, используемый для увеличения размера существующего iSCSI LUN, зависит от того, поддерживается ли LUN размером файла или zvol. Оба метода описаны в этом разделе.

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

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

Например, рассмотрите виртуальную машину Windows с последним разделом на диске с файловой системой NTFS. LUN расширен и таблица разделов отредактирована, чтобы добавить новое пространство в последний раздел. Дисковый менеджер Windows все равно должен использоваться для изменения размера файловой системы NTFS на этом последнем разделе, чтобы использовать новое пространство.

Zvol основанный на LUN

Чтобы увеличить LUN на основе zvol, перейдите в раздел Storage ‣ Volumes ‣ View Volumes, выделите zvol для выращивания и нажмите «Редактировать zvol». В примере, показанном на рисунке ниже, текущий размер zvol с именем zvol1 равен 4 ГБ.

Редактирование существующего zvol в FreeNAS
Редактирование существующего zvol в FreeNAS

Введите новый размер для zvol в поле Size (Размер) и нажмите Edit ZFS Volume (Редактировать объем ZFS). Это меню закрывается, и новый размер для zvol сразу отображается в столбце «Использовать» экрана View Volumes (Просмотр томов).

Примечание

Графический интерфейс не позволяет уменьшить (shrinking) размер zvol, так как это может привести к потере данных. Это также не позволяет увеличить размер zvol за 80% от объема.

Экстент файла, основанный на LUN

Чтобы увеличить размер LUN, основанный на экстенте файле (file extent), перейдите в раздел Services ‣ iSCSI ‣ File Extents ‣ View File Extents, чтобы определить путь увеличения объема файла. Откройте Shell, чтобы вырастить экстент.

Этот пример увеличит /mnt/volume1/data на 2 G:

truncate -s +2g /mnt/volume1/data

Вернитесь в Services ‣ iSCSI ‣ File Extents ‣ View File Extents и нажмите кнопку «Изменить» для размера файла. Установите размер «0», так как это означает, что цель iSCSI использует новый размер файла.