Меню Рубрики

Настройка fibre channel linux

Настройка fibre channel linux

Т.к. технология FiberChannel применяется в вычислительных системах, не применяемых обычно 🙂 дома (сетях хранения данных (SAN), системах виртуализации (для подключения систем хранения данных) и пр. весьма не дешёвых «железках»), то информации по данному вопросу достаточно мало. Очень со многим приходится разбираться самому: искать программы и прошивки на сайтах производителей HBA, адаптировать их для работы в своём Линуксе и т.д.). Поэтому как бы не хотелось обратного, но возможны ошибки и несогласованности и данную информацию надо проверять в каждом конкретном случае.
Для работы с HBA используется спциальное ПО, обычно называемое Таргетами (targets), хотя это не совсем верное название. Список известных и доступных: LIO, istgt, STGT, IET, SCST. Список взят из весьма полезной статьи на Хабре.
Эти же Инициаторы могут использоваться (и используются) и для работы по iSCSI.
Очень подробно о протоколе Fiber Channel.
В процессе изучения Fibre Channel и попыток его настроить выяснилось много интересного, непонятного и проблематичного. Опишу проблемы:

  • 1) много времени потратил на попытку «завести» FC карту QLA2340 с интерфейсом PCI-X: не создавался таргет. Оказалось, что есть проблемы с поддержкой шины PCI-X, т.к. как только заменил карты на другие, с интерфейсом PCI-e — всё в момент заработало. Написал багрепорт Красной Шапке и там это подтвердили;
  • 2) не мало потрачено времени на попытки понять, почему в targetcli в CentOS/Scientific Linux не доступен таргет qla2xxx. Выяснилось, что RHEL и, соответственно, все дистрибутивы, основанные на нём, не поддерживают Fibre Channel. Поддержка из РХеловских дистрибутивов есть только в Fedora. Где выпилено — не ясно: возможно в драйвере qla2xxx, а может и в самом targetcli. Если в qla2xxx, то есть возможность пересобрать его в полнофункциональном виде.
    По поводу Emulex: если верить обсуждению по этой ссылке, то драйвер lpfc не поддерживает работу HBA Emulex в target mode. Хотя для Solaris/OpenSolaris/Illumos и дистрибутивах на их основе такая реализация возможна.

    а) Общая информация по настройке FC-target

    FC использует свою адресацию, поэтому для указания, с таким устройством работать, используется WWN (World Wide Name, параметр node_name (есть ещё port_name (WWP), но они отличаются, хотя и похожи)):

    где host10 — наше целевое устройство. Можно посмотреть в каталоге /sys/class/fc_host/, либо через утилиту systool:

    Если необходимо узнать WWN адаптера, доступной по Fibre Channel, то информацию можно найти в каталоге:

    , где rport-6:0-2 — один из доступных (в примере — только один) HBA.
    Непосредственно WWN адаптера:

    б) HBA Emulex

    1 — ПРОГРАММЫ УПРАВЛЕНИЯ, ПРОШИВКИ
    Первоначально скачиваем с сайта Emulex необходимые пакеты:
    1) Application Kit 10.2.370.16 (GUI / CLI) — я скачивал GUI, поставил его и с ним работал, но не понял, как запустить саму GUI — работал через CLI;
    2) Linux Elxflash Online Utility 10.2.370.19;
    3) прошивки для своих карт: у меня LPE12000, поэтому скачивал:
    3.1) Firmware 2.01a12;
    3.2) Universal Boot.
    Вначале устанавливаем Application Kit. Для этого понадобится немного подправить install.sh, т.к. установка на Fedora Linux не предусмотрена.
    В моём случае пришлось строки 514-515 исправить, указав, что у меня RHEL7:

    Запускаем исправленный install.sh и ставим утилиту.
    После этого лучше сразу обновить карту последними прошивками: для это и нужны Linux Elxflash Offline, Firmware и Universal Boot.
    Распаковываем Linux Elxflash Online ( ../x86_64/rhel-7/elxflashOnline-10.2.370.19 ), во вложеные каталоги ./boot и ./firmware распаковываем содержимое Universal Boot и Firmware и запускам эту утилиту:

    Более подробное описание параметров доступны в «хелпе», а примеры — в файле ./lcreflsh.sh.

    2 — УПРАВЛЕНИЕ HBA
    Для управления Emulex HBA используется утилита hbacmd, входящая в состав ранее установленного пакета Application Kit.
    Выбор топологии:

    где host6 — номер устройства, которое можно определить из:

    hbacmd — утилита управления HBA Emulex из пакета пакета OneCommand:

    в) HBA QLogic

    По умолчанию FC HBA стартует в режиме инициатора (initiator mode), поэтому надо карту при инициализации перевести в режим цели (target mode).
    Для этого есть два варианта:
    1) дописать в параметры ядра ещё один (и перегрузиться, конечно):

    2) создать файл /etc/modprobe.d/qla2xxx.conf с такой строкой:

    При использовании второго варианта надо помнить, что данного вида карты инициализируются на очень раннем этапе загрузки, когда ещё «работает» образ initrd, то просто перезагрузка ничего не даст — необходимо пересобрать initrd, чтобы инициализация прошла:

    Проверка, что карта в нужном режиме:

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

    , где ql2xfailover — поддержку fallover-режима (активное резервирование при установке не менее 2-х плат HBA); ConfigRequired — указывает, как осуществлять привязку (bind) устройств: 0 — всех обнаруженных ОС, 1 — только устройств, определённых в файле /etc/qla2xxx.conf (по умолчанию: 0).
    Более подробно о параметрах драйвера qla2xxx.ko.
    К сожалению, параметр ql2xfailover можно использовать не всегда: во многих дистрибутивах в сборках qla2xxx этот функционал исключают (как и FC-target). Почему — могу только догадываться: возможно, чтобы не создавать конкуренцию дорогим решениям. Надо, при случае, попробовать собрать драйвер самому по данной инструкции: How to Configure the FC QLogic Target Driver for 22xx/23xx/24xx/25xx/26xx Adapters.
    Управлять FC будем с помощью Linux SCSI Target (LIO), используя программу управления targetcli:

    И запустим службу восстановления конфигурации (Restore LIO kernel target configuration):

    Теперь вся работа — утилитой targetcli:

    Если после запуска мы будет находиться не в корне (например, /qla2xxx), то выйдем на него:

    Посмотрим исходное состояние:

    Ветка qla2xxx — это указание наличия FC карты QLogic и её поддержки в системе.
    Запросим информацию по этой ветке:

    Создадим объект хранилища для нашей будущей Цели (target):

    В примере устройство /dev/md125 — программный RAID массив.
    Создаём саму Цель:

    где 2100001b32180465WWN карты Fibre Channel, установленной в системе, берётся из вывода info узла /qla2xxx (см.выше).
    Создаём лист доступа (ACL, access control list) с WWN карт, имеющих доступ к данной:

    Привязываем ранее созданное блочное устройство к Цели:

    Смотрим результат наших операций:

    Если всё устраивает, сохраняем конфигурацию (специально, если отключено автоматическое сохранение (по умолчанию)):

    Указывается, что текущая конфигурация сохранена в /etc/target/saveconfig.json, а в /etc/target/backup находятся 10 предыдущих вариантов.
    Если возникает желание/необходимость что-то удалить, переходим в нужную ветку дерева и удаляем, например, LUN:

    Теперь посмотрим, доступен ли наш LUN на целевой системе, Инициаторе, пересканировав доступные LUN:

    где X — номер нашего FC HBA.
    Смотрим, доступен ли соответствующий LUN в системе Инициатора:

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

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

    где — это хост, шина, целевой номер устройства и логический номер (host, bus, target, LUN) соответственно. Соответствующие устройству номера можно найти в каталоге /sys (только для ядер версии 2.6), файле /proc/scsi/scsi или выводе команды dmesg.
    Удалить (отключить) LUN:

    2. Infiniband

    Infiniband — сравнительно молодой интерфейс, идея создания которого была в замене современной сетевой инфраструктуры Ethernet и Fibre Channel.

    а) Общая информация по настройке


    б) HCA: QLogic


    в) HCA: Mellanox


    3. iSCSI


    4. Программный RAID

    а) Создание RAID-массива
    Для работы с программным RAID в Linux используется утилита mdadm. Создание с её помощью массива RAID1:

    Сканирование системы на наличие массивов и вывода информации по ним (в форме для добавления в файл конфигураций /etc/mdadm/mdadm.conf):

    б) Мониторинг состояния массива
    Состояние RAID-массива отслеживается через файл /proc/mdstat:

    Информация о конкретном дисковом разделе:

    Мониторинг состояния массива — разовая проверка:

    Для постоянной периодической проверки эту команду надо внести в файл, например, mdRAIDmon, размещённый в папке /etc/cron.haurly/.
    Или, для пятиминутной проверки внести в файл /etc/crontab следующую строку:

    Проверки работы системы оповещения:

    в) Работа с разделами на RAID-массиве
    Удаление LVM и RAID, где он размещён:

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

    г) Поддержка bitmap
    Включение поддержки bitmap с хранением:

    Просмотр включенных bitmap:

    Отключение на RAID-массиве использование bitmap:

    Параметр bitmap в свойствах массива означает добавление дополнительной информации для восстановления RAID в случае сбоев. Сборка массива при замене жёсткого диска будет происходить быстрее, но общая производительность массива снизится примерно на 5% в случае размещения bitmap на том же диске, что и RAID или в самом RAID-массиве (по умолчанию).

    е) Очистка дисков от метаданных RAID
    Отмонтируем все разделы, размещённые на удаляемом RAID и остановим этот массив:

    Стираем суперблок, хранящий информацию о массиве, на всех дисках, входящих в удаляемый массив:

    Если не получилось, то делаем прямым затиранием:

    Выключаем систему, отключаем девственно чистые диски. :\

    5. Работа с LVM


    а) Отключение/подключение диска с LVM

    Это требуется, например, после подключения диска с LVM к системе через, например, USB конвертер. Если отключать диск без некоторых дополнительных действий, то в системе останутся «зависшими» подключения, что может вызвать некоторые проблемы.
    Для отключения надо:
    1) отмонтировать все разделы на этом диске;
    2) выполнить команду:

    3) удаляем блочное устройство (в современных системах происходит автоматически, но вдруг понадобится) /dev/sdf:

    Всё, можно отключать питание.
    Если LVM не подключается автоматически, то вручную это делается так (для устройства hostX, где X — номер в системе):

    Теперь можно монтировать.

    б) Создание томов LVM

    Посредством утилиты fdisk создаём (описано в предыдущем пункте) на новом диске таблицу разделов и раздел на нём.
    Создание новых томов (физического, группы и логического) на дополнительном диске /dev/sdb:

    Добавляем новую запись к файл /etc/fstab и на этом заканчивается настройка.

    в) Восстановление удалённых томов

    Если случайно был удален том LVM (или специально, но потом понадобилось восстановление) — механизм резервного копирования метаданных volume group может спасти ситуацию.
    Настройка архивирования находится в файле /etc/lvm/lvm.conf в секции backup.
    По умолчанию архивирование включено, папка для архивов — /etc/lvm/archive и содержит архивы изменения vg за 30 дней.
    Посмотреть чего менялось можно командой

    Здесь видно имя файла архива и команда, перед (или иногда после) которой архивирование метаданных VG было выполнено.
    В данном случае были удалены некоторые LV и после них создан новый.
    Чтобы узнать, попал новый LV поверх старых (тогда естественно данные будут перезаписаны, зависит от количества записей в новый LV) надо посмотреть в архиве до удаления параметры extent_count и stripes нужного LV. stripes это номер начала блока на PV, extent_count — количество.
    LV может состоять из нескольких сегментов, в каждом будет свой набор extent_count и stripes.
    Потом посмотреть эти же параметры нового LV, но в архиве поcле создания нового LV.
    Если эти регионы не пересеклись — значит новый LV создался в другом месте, чем удаленные LV.
    Восстановление метаданных:

    это откатит все изменения с текущего момента до нужного архива, предшествующего указанной в vgcfgrestore -l команде.
    Дальше остается только активировать восстановленные LV командой

    г) Изменение размеров томов

    Изменение размеров физического тома — задача весьма сложная и обычно не применяется. Безопаснее либо удалить физический том, изменить размер раздела и создать том заново, либо (как в данном примере) создать на доступном свободном пространстве дополнительный физический том и объединить его в группу томов, для которых требуется расширение.
    При необходимости увеличить доступный объём дискового пространства на, например, корневом разделе, необходимо воспользоваться имеющимся функционалом LVM:
    1) смотрим (например, утилитой fdisk) (пакет util-linux), где у нас есть свободное место на подключённых накопителях:

    Предположим, что у нас есть /dev/sda1 — загрузчик (т.е. /boot) и /dev/sda2 — собственно корень системы (т.е. /) и имеет формат Linux LVM. И на том же диске есть ещё свободное неразделённое место.
    2) формируем новый раздел на свободном месте накопителя (в данном случае /dev/sda) новый раздел в интерактивном режиме:

    На запрос «Команда (m для справки)» жмём n (создание нового раздела), p (первичный раздел), 3 (номер нового раздела: 1 и 2 уже есть, новый будет /dev/sda 3 ), начальный и конечный блок оставляем как есть (или указываем необходимый объём, если будем использовать не всё доступное пространство).
    После создания раздела необходимо указать его тип «Linux LVM»: наживаем t, затем выбираем созданный раздел (наш — 3) и указываем его тип — 8e.
    Затем p (просмотреть созданные изменения): если всё устраивает — w (записать изменения и выйти), если не устраивает перенастраиваем или жмём q (выйти без изменений) и всё заново.
    Внесённые изменения ещё не известны ядру, поэтому сообщаем ядру, чтобы оно приняло изменения, командой:

    Создаём новый физический том на созданном разделе:

    Смотрим, на какой группе томов расположен корневой раздел /dev/sda2:

    Добавляем к этой группе созданный нами раздел /dev/sda3:

    Смотрим путь, по которому доступен целевой логический том:

    Выделяем целевому тому необходимое место:

    В качестве альтернативного пути может быть использован любой:
    1) через mapper: /dev/mapper/lvmpart-root;
    2) через любой путь в каталоге /dev/disk/.
    Теперь остаётся изменить размер файловой системы, размещённой на целевом логическом томе. Это производится для каждой файловой системы по своему:

    Кроме этого изменение размера: XFS — в примонтированном состоянии, EXT x — не имеет значения (но отмонтированно представляется более безопасным для данных вариантом),
    Для EXT x есть возможность (и она использована в примере) создания файла отката вносимых изменений: в представленном варианте — old_LVM.e2undo. В случае необходимости изменения отменяются утилитой e2undo (пакет e2fsprogs):

    Для увеличения размера целевой файловой системы всё сделано.
    При необходимости уменьшить размер всё производится в обратном порядке, но действия производятся только на размонтированных файловых системах. Т.е., в случае с корневым разделом надо предварительно загрузиться с LiveCD с поддержкой LVM2. ВАЖНО!: операция уменьшения невозможна для XFS.

    Теперь вносим изменения в группы томов и физические тома.

    д) Дополнительная информация


    6. Некоторые особенности настройки FreeNAS 10

    Смена пароля root через CLI:

    Так же надо назначить IP адрес:

    В 10 версии полностью переработаны интерфейсы: и графический (GUI) и консольный (CLI).
    Если используется Fibre Channel карта для работы с СХД на базе FreeNAS, то для создания и презентации соответствующего LUN надо использовать ctladm. По сути: в интерфейсе WebGUI настраивается iSCSI, а для работы активировать FC интерфейс:

    Хорошо поддерживаются FC-карты QLogix (устройство isp X ).

    размещено: 2012-08-03,
    последнее обновление: 2019-09-03,
    автор: Fomalhaut

    Alex, 2018-11-12 в 16:01:24


    2014-07-27, lissyara
    gmirror
    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов. 2013-08-20, zentarim
    Scan+Print server FreeBSD 9
    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    вверх

    Статистика сайта
    Сейчас на сайте находится: 20 чел.
    За последние 30 мин было: 63 человек
    За сегодня было
    6180 показов,
    375 уникальных IP

    Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
    Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    Источник

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Настройка dns linux сервера
  • Настройка compiz в linux mint 18 xfce
  • Настройка compiz в linux mint 18 mate
  • Настройка astra linux directory
  • Настройка apache linux php