Настройка fibre channel linux
Т.к. технология FiberChannel применяется в вычислительных системах, не применяемых обычно 🙂 дома (сетях хранения данных (SAN), системах виртуализации (для подключения систем хранения данных) и пр. весьма не дешёвых «железках»), то информации по данному вопросу достаточно мало. Очень со многим приходится разбираться самому: искать программы и прошивки на сайтах производителей HBA, адаптировать их для работы в своём Линуксе и т.д.). Поэтому как бы не хотелось обратного, но возможны ошибки и несогласованности и данную информацию надо проверять в каждом конкретном случае.
Для работы с HBA используется спциальное ПО, обычно называемое Таргетами (targets), хотя это не совсем верное название. Список известных и доступных: LIO, istgt, STGT, IET, SCST. Список взят из весьма полезной статьи на Хабре.
Эти же Инициаторы могут использоваться (и используются) и для работы по iSCSI.
Очень подробно о протоколе Fiber Channel.
В процессе изучения Fibre Channel и попыток его настроить выяснилось много интересного, непонятного и проблематичного. Опишу проблемы:
По поводу 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 массив.
Создаём саму Цель:
где 2100001b32180465 — WWN карты 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
|
Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.