Мы — долго запрягаем, быстро ездим, и сильно тормозим.



www.lissyara.su —> www.lissyara.su —> infiniband,fibre channel,iscsi,raid

'Системы хранения данных' или 'Ковыряния в Линуксе - 6'

Автор: Fomalhaut.


1. Fibre Channel

  • а) Общая информация по настройке FC-target
  • б) HBA Emulex
  • в) HBA QLogic
    2. Infiniband
  • а) Общая информация по настройке
  • б) HCA: QLogic
  • в) HCA: Mellanox
    3. iSCSI
    4. Программный RAID
    5. Работа с LVM
  • а) Отключение/подключение диска с LVM
  • б) Создание томов LVM
  • в) Восстановление удалённых томов LVM
  • г) Изменение размеров томов
  • д) Дополнительная информация
    6. Некоторые особенности настройки FreeNAS

    1. Fibre Channel

    Т.к. технология 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), но они отличаются, хотя и похожи)):
    # в "чистом" виде
    $ cat /sys/class/fc_host/host10/node_name
    # в виде, xx:xx:xx... (только без последней ':')
    $ cat /sys/class/fc_host/host10/node_name | awk -F'x' '{print $2}' | while read a ; do echo $a | sed 's/../&:/g'; done;
    # или через утилиту systool
    $ systool -av -c fc_host | grep -i node_name | awk '{print $NF}' | awk -F'x' '{print $2}' | sed 's/\"//g' | while read a ; do echo $a | sed 's/../&:/g'; done;
    

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

    Если необходимо узнать WWN адаптера, доступной по Fibre Channel, то информацию можно найти в каталоге:
    $ ls /sys/class/fc_remote_ports/
    rport-6:0-2
    

    , где rport-6:0-2 - один из доступных (в примере - только один) HBA.
    Непосредственно WWN адаптера:
    $ cat /sys/class/fc_remote_ports/rport-6\:0-2/port_name 
    0x210000e08b175d35
    

    ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
    Основы Fibre Channel
    Linux I/O: Fibre Channel - The Linux SCSI Target Wiki
    Настройка FC HBA и подключение SCSI-томов в Linux c внешнего SAN-хранилища
    Fibre Channel storage with HBA target mode
    SCST: Generic SCSI Target Subsystem for Linux
    Настройка Openfiler в качестве Fibre Channel таргета
    Создаем своими руками Fiber Channel Target (Linux)

    б) 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:
    # было
    $ rhel_major_version=`cat /etc/redhat-release | awk -F'.' '{print $1}' | awk '{print $NF}'`
    $ rhel_minor_version=`cat /etc/redhat-release | awk -F'.' '{print $2}' | cut -d' ' -f1`
    # стало
    rhel_minor_version=0
    rhel_major_version=7
    

    Запускаем исправленный 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 и запускам эту утилиту:
    # просмотр доступных обновлений, оценка необходимости обновлений
    $ ./elxflash /auto /log=elxflash.log /update /preview
    
    Sat Sep 20 22:39:28 2014
    HBA=LPe12000, Port Type=FC, WWN=10:00:00:90:FA:1A:D2:01,
    Update=Firmware, Image=ud201a12.all, New=201A12, Old=201A9, Status=Preview
    
    Sat Sep 20 22:39:28 2014
    HBA=LPe12000, Port Type=FC, WWN=10:00:00:90:FA:1A:D2:01,
    Update=Boot Code, Image=UU513a3.prg, New=513A3, Old=512A11, Status=Preview
    
    elxflash: All required updates succeeded - Return Code=0
    
    # прошивка FirmWare и Boot
    $ ./elxflash /auto /log=elxflash.log /update
    
    Sat Sep 20 22:40:26 2014
    HBA=LPe12000, Port Type=FC, WWN=10:00:00:90:FA:1A:D2:01,
    Update=Firmware, Image=ud201a12.all, New=201A12, Old=201A9, Status=Success
    
    Sat Sep 20 22:40:45 2014
    HBA=LPe12000, Port Type=FC, WWN=10:00:00:90:FA:1A:D2:01,
    Update=Boot Code, Image=UU513a3.prg, New=513A3, Old=512A11, Status=Success
    
    elxflash: All required updates succeeded - Return Code=0
    

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

    2 - УПРАВЛЕНИЕ HBA
    Для управления Emulex HBA используется утилита hbacmd, входящая в состав ранее установленного пакета Application Kit.
    Выбор топологии:
    # по умолчанию: 0 (0 - кольцо и точка-точка, 2 - точка-точка, 4 - кольцо, 6 - точка-точка и кольцо)
    $ echo "2" > /sys/class/scsi_host/host6/lpfc_topology
    

    где host6 - номер устройства, которое можно определить из:
    $ ls -ld /sys/bus/pci/drivers/lpfc/*/host*
    

    hbacmd - утилита управления HBA Emulex из пакета пакета OneCommand:
    # Просмотр списка установленных Emulex HBA
    $ hbacmd listhbas <WWN>
    # статистика работы
    $ hbacmd portstat <WWN>
    # атрибуты HBA
    $ hbacmd hbaattrib <WWN>
    # атрибуты порта
    $ hbacmd portattrib <WWN>
    # перезапуск карты
    $ hbacmd reset <WWN>
    

    Подробно все параметры утилиты hbacmd расписаны в документе "OneCommand™ Manager Command Line Interface".
    ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
    Emulex drivers for linux
    Emulex: Setting lpfc driver and SCSI mid-layer logging on Linux
    lpfc SCST Support

    в) HBA QLogic

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

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

    При использовании второго варианта надо помнить, что данного вида карты инициализируются на очень раннем этапе загрузки, когда ещё "работает" образ initrd, то просто перезагрузка ничего не даст - необходимо пересобрать initrd, чтобы инициализация прошла:
    # с Fedora 10 есть такой вариант
    $ /usr/libexec/plymouth/plymouth-update-initrd
    # более современный вариант
    $ dracut -f
    

    Проверка, что карта в нужном режиме:
    $ cat /sys/module/qla2xxx/parameters/qlini_mode
    disabled
    

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

    , где 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:
    $ yum install targetcli
    

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

    Теперь вся работа - утилитой targetcli:
    $ targetcli
    /> 
    

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

    Посмотрим исходное состояние:
    /> ls
    o- / ................................................................... [...]
      o- backstores ........................................................ [...]
      | o- block ............................................ [Storage Objects: 0]
      | o- fileio ........................................... [Storage Objects: 0]
      | o- pscsi ............................................ [Storage Objects: 0]
      | o- ramdisk .......................................... [Storage Objects: 0]
      o- iscsi ...................................................... [Targets: 0]
      o- loopback ................................................... [Targets: 0]
      o- qla2xxx .................................................... [Targets: 0]
      o- sbp ........................................................ [Targets: 0]
      o- vhost ...................................................... [Targets: 0]
    

    Ветка qla2xxx - это указание наличия FC карты QLogic и её поддержки в системе.
    Запросим информацию по этой ветке:
    /> cd qla2xxx/ info
    Fabric module name: qla2xxx
    ConfigFS path: /sys/kernel/config/target/qla2xxx
    Allowed WWN types: naa
    Allowed WWNs list: naa.2100001b32180465
    Fabric module features: acls
    Corresponding kernel module: tcm_qla2xxx
    

    Создадим объект хранилища для нашей будущей Цели (target):
    # сразу, с указанием полного пути (в дальнейшем)
    /> /backstores/block/ create disk1tb /dev/md125
    Created block storage object disk1tb using /dev/md125.
    

    В примере устройство /dev/md125 - программный RAID массив.
    Создаём саму Цель:
    /> /qla2xxx create naa.2100001b32180465
    Created target naa.2100001b32180465.
    

    где 2100001b32180465 - WWN карты Fibre Channel, установленной в системе, берётся из вывода info узла /qla2xxx (см.выше).
    Создаём лист доступа (ACL, access control list) с WWN карт, имеющих доступ к данной:
    /> /qla2xxx/naa.2100001b32180465/acls create 210000e08b175d35
    Created Node ACL for naa.210000e08b175d35
    

    Привязываем ранее созданное блочное устройство к Цели:
    /> /qla2xxx/naa.2100001b32180465/luns create /backstores/block/disk1tb
    Created LUN 0.
    Created LUN 0->0 mapping in node ACL naa.210000e08b175d35
    

    Смотрим результат наших операций:
    /> ls
    o- / ................................................................... [...]
      o- backstores ........................................................ [...]
      | o- block ............................................ [Storage Objects: 1]
      | | o- disk1tb ................ [/dev/md125 (931.4GiB) write-thru activated]
      | o- fileio ........................................... [Storage Objects: 0]
      | o- pscsi ............................................ [Storage Objects: 0]
      | o- ramdisk .......................................... [Storage Objects: 0]
      o- iscsi ...................................................... [Targets: 0]
      o- loopback ................................................... [Targets: 0]
      o- qla2xxx .................................................... [Targets: 1]
      | o- naa.2100001b32180465 ....................................... [gen-acls]
      |   o- acls ...................................................... [ACLs: 1]
      |   | o- naa.210000e08b175d35 ............................. [Mapped LUNs: 1]
      |   |   o- mapped_lun0 ........................... [lun0 block/disk1tb (rw)]
      |   o- luns ...................................................... [LUNs: 1]
      |     o- lun0 ................................. [block/disk1tb (/dev/md125)]
      o- sbp ........................................................ [Targets: 0]
      o- vhost ...................................................... [Targets: 0]
    

    Если всё устраивает, сохраняем конфигурацию (специально, если отключено автоматическое сохранение (по умолчанию)):
    /> saveconfig 
    Last 10 configs saved in /etc/target/backup.
    Configuration saved to /etc/target/saveconfig.json
    

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

    Теперь посмотрим, доступен ли наш LUN на целевой системе, Инициаторе, пересканировав доступные LUN:
    # через шину SCSI
    $ echo "- - -" > /sys/class/scsi_host/hostX/scan
    # через Fibre channel
    $ echo "1" > /sys/class/fc_host/hostX/issue_lip
    

    где X - номер нашего FC HBA.
    Смотрим, доступен ли соответствующий LUN в системе Инициатора:
    $ lsscsi | grep -iE lio
    [6:0:0:0]    disk    LIO-ORG  disk1tb          4.0   /dev/sdf
    

    Чтобы добавить одно заданное устройство, выполним:
    $ echo "scsi add-single-device <H> <B> <T> <L>" > /proc/scsi/scsi
    

    Чтобы удалить заданное устройство, выполним:
    $ echo "scsi remove-single-device <H> <B> <T> <L>" > /proc/scsi/scsi
    

    где <H> <B> <T> <L> — это хост, шина, целевой номер устройства и логический номер (host, bus, target, LUN) соответственно. Соответствующие устройству номера можно найти в каталоге /sys (только для ядер версии 2.6), файле /proc/scsi/scsi или выводе команды dmesg.
    Удалить (отключить) LUN:
    # через устройство /dev/sdX
    $ echo 1 > /sys/block/sdf/device/delete
    $ lsscsi | grep -iE lio
    

    У нас было одно устройство, которые в системе виделось, как /dev/sdf, мы его отключили и теперь подключенных устройств нет.
    ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
    How To Create A Fiber Channel SAN Using SCST With QLogic HBA On Linux Debian 6
    How to Configure the FC QLogic Target Driver for 22xx/23xx/24xx/25xx/26xx Adapters
    qla2x00t QLogic git integration into the SCST build tree
    Сборка под Ubuntu драйвера qla2xxx с поддержкой failover
    QLogic Fibre Channel Driver for Kernel 2.6.x - есть описание работы с IP-over-FC.

    2. Infiniband

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

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

    Getting Started with InfiniBand

    б) HCA: QLogic

    Адаптер (HCA) InfiniBand - QLogic QLE7240

    в) HCA: Mellanox

    Mellanox OFED for Linux
    IPoIB: How To Configure IPoIB with Mellanox HCAs – Ubuntu 12.04.1 LTS

    Установка iSCSI Target SCST с Infiniband на Debian 7
    How to Set up an Infiniband SRP Target on Ubuntu 12.04
    HOWTO: Infiniband SRP Target on CentOS 6 incl RPM SPEC
    Howto install SCST over Infiniband with SRP on Debian Sqeeze
    Infiniband HOWTO
    Bog BOS: hardware: InfiniBand
    RedHat: Infiniband and RDMA networking
    Практика Infiniband
    Tsuru Network
    Infiniband: аппаратные средства и поддержка в Linux
    0MQ, в Fedora есть соотв.пакет: "zeromq.i686 : Software library for fast, message-based applications".
    два esxi соединить IB InfiniHost III Ex Dual-Port
    ДОП.ИНФОРМАЦИЯ
    >>> QSFP — это другое, это QIB (40 Gbps) в физическом формате SPF/SPF+. Вот пример: http://www.google.com/shopping/product/2229109579985845642
    >> CX4 - это, по мелланоксовски, MicroGigaCN (у некоторых кабелей в названии так и написано MicroGigaCN/СX4)
    >> Осталось понять, CX4 и SFF-8470 - это одно и то же?
    > Точнее, CX4 - это среда передачи, 4*copper, а SFF-8470 — один из видов разъёмов.

    3. iSCSI

    iSCSI хранилище для небогатых
    Подключаем внешнее хранилище к XenServer по iSCSI
    Настройка iSCSI target и initiator в RHEL/Fedora
    Установка большого Linux-кластера: Часть 4. Установка узлов и настройка GPFS-кластера
    High performance SCST iSCSI Target on Linux software Raid
    Создание надёжного iSCSI-хранилища на Linux, часть 1
    СХД Gladius Storage L и настройка MPIO для iSCSI в Windows Server 2012
    Установка и базовая настройка iSCSI LIO Target на CentOS 7
    Настройка Linux iSCSI посредством targetcli
    Настройка iSCSI target и initiator в RHEL/Fedora
    iSCSI Target Box
    Настройка ISCSI initiator в linux
    DRBD
    RDMA, iSCSI, TOE, iWARP, iSER
    Настройка iSCSI Target на FreeBSD 8.2
    Как подключать Windows Server 2008 и Windows Vista к iSCSI Server
    Fedora - Storage Administration Guide
    iSCSI (википедия)
    iSCSI и другие
    Использование iSCSI в FreeBSD

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

    а) Создание RAID-массива
    Для работы с программным RAID в Linux используется утилита mdadm. Создание с её помощью массива RAID1:
    $ mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
    

    Сканирование системы на наличие массивов и вывода информации по ним (в форме для добавления в файл конфигураций /etc/mdadm/mdadm.conf):
    $ mdadm --detail --scan --verbose
    ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=fmhstar.homed.local:0 UUID=3d274916:ce690922:3d669a74:7500515c
       devices=/dev/sdb,/dev/sdc
    

    б) Мониторинг состояния массива
    Состояние RAID-массива отслеживается через файл /proc/mdstat:
    # единичный просмотр
    $ cat /proc/mdstat
    # просмотр изменяющегося состояния, например, при пересборке массива
    $ watch cat /proc/mdstat
    

    Информация о конкретном дисковом разделе:
    $ mdadm -E /dev/sdb2
    

    Мониторинг состояния массива - разовая проверка:
    $ mdadm --monitor --scan -1 --mail=postmaster@mydomain.ru
    

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

    Проверки работы системы оповещения:
    $ mdadm --monitor --scan -1 --mail=postmaster@domain.name.ru --test
    

    в) Работа с разделами на RAID-массиве
    Удаление LVM и RAID, где он размещён:
    # вывод всех доступных групп томов (volume group)
    $ vgdisplay
    # удаление группы томов fedora-server
    $ vgremove fedora-server
    # вывод всех доступных физических томов (physical volume)
    $ pvdisplay
    # удаление физического тома /dev/md127
    $ pvremove /dev/md127
    

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

    г) Поддержка bitmap
    Включение поддержки bitmap с хранением:
    $ mkdir /RAID/
    # на внешней ФС
    $ mdadm --grow --bitmap=/RAID/md0_3tb /dev/md0
    # внутри этого же массива
    $ mdadm --grow --bitmap=internal /dev/md0
    

    Просмотр включенных bitmap:
    $ mdadm --examine /dev/sda2|grep Bitmap
    

    Отключение на RAID-массиве использование bitmap:
    $ mdadm --grow --bitmap=none /dev/md1
    

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

    д) Замена сбойных дисков
    Выяснить, какой диск сбойный:
      # cat /proc/mdstat
    Подробная информация:
      # mdadm -D /dev/mdX
    где X - номер массива
    Восстановление функционирования (rebuild) разделов диска по одному после однократного "несмертельного" сбоя:
      # mdadm -a /dev/md<0-6> /dev/sd<a-b><1-10>
    например:
      # mdadm -a /dev/md0 /dev/sdb1
    Нужно быть аккуратным с номерами разделов
    В случае ошибки, удалить компонент из RAID командой:
      # mdadm -r /dev/md0 /dev/sdb1
    получается не всегда - устройство может быть занято.
    Замена диска:
    1) выключить компьютер и заменить диск;
    2) включить компьютер  и определить имеющиеся на обоих дисках разделы:
      # fdisk /dev/sd<a-b> -l
    3) с помощью fdisk создать на новом диске разделы, идентичные оригиналу Необходимо пометить нужный раздел нового диска (sda1 или sdb1) как загрузочный до включения в зеркало.
    Swap-разделы не подлежат зеркалированию в программном RAID.

    е) Очистка дисков от метаданных RAID
    Отмонтируем все разделы, размещённые на удаляемом RAID и остановим этот массив:
    $ umount /dev/md0
    $ mdadm --stop /dev/md0
    

    Стираем суперблок, хранящий информацию о массиве, на всех дисках, входящих в удаляемый массив:
    $ mdadm --zero-superblock /dev/sde1
    $ mdadm --zero-superblock /dev/sdf1
    

    Если не получилось, то делаем прямым затиранием:
    $ dd if=/dev/zero of=/dev/sde1 bs=512 count=1
    $ dd if=/dev/zero of=/dev/sdf1 bs=512 count=1
    

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

    ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
    RAID — избыточный массив независимых жестких дисков
    Работы с программным RAID-массивом
    Утилита обслуживания RAID-массивов mdadm
    Увеличение скорости программного RAID
    Linux: Ускоряем софтрейд и RAID6 в домашнем сервере
    Увеличение скорости перестроения программного RAID в Linux
    IBM: Создание программного RAID-массива на Linux-платформе
    Программный RAID в Linux. Тестирование и мониторинг
    MD (multi disk)
    Мониторинг RAID
    mdadm - мониторинг и восстановление программного RAID
    mdadm: mdmonitor.service fails to start
    Настройка msmtp для отправки уведомлений администратору по E-Mail.
    Мониторинг mdadm

    5. Работа с LVM

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

    Это требуется, например, после подключения диска с LVM к системе через, например, USB конвертер. Если отключать диск без некоторых дополнительных действий, то в системе останутся "зависшими" подключения, что может вызвать некоторые проблемы.
    Для отключения надо:
    1) отмонтировать все разделы на этом диске;
    2) выполнить команду:
    $ lvchange -an <имя_LVM_группы>
    

    3) удаляем блочное устройство (в современных системах происходит автоматически, но вдруг понадобится) /dev/sdf:
    $ echo 1 > /sys/block/sdf/device/delete
    

    Всё, можно отключать питание.
    Если LVM не подключается автоматически, то вручную это делается так (для устройства hostX, где X - номер в системе):
    $ echo "- - -" > /sys/class/scsi_host/hostX/scan
    $ lvchange -ay <имя_LVM_группы>
    

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

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

    Посредством утилиты fdisk создаём (описано в предыдущем пункте) на новом диске таблицу разделов и раздел на нём.
    Создание новых томов (физического, группы и логического) на дополнительном диске /dev/sdb:
    # Создание физического тома
    $ pvcreate /dev/sdb1
    # Создание и инициализация группы томов
    $ vgcreate new-vg /dev/sdb1
    $ vgchange -a y new-vg
    # создаём и форматируем под XFS логический том
    $ lvcreate -l +100%FREE -n new-lv new-vg
    $ mkfs.xfs /dev/new-vg/new-lv
    

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

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

    Если случайно был удален том LVM (или специально, но потом понадобилось восстановление) - механизм резервного копирования метаданных volume group может спасти ситуацию.
    Настройка архивирования находится в файле /etc/lvm/lvm.conf в секции backup.
    По умолчанию архивирование включено, папка для архивов - /etc/lvm/archive и содержит архивы изменения vg за 30 дней.
    Посмотреть чего менялось можно командой
    $ vgcfgrestore -l VG
    ..... skipped .....
      File:         /etc/lvm/archive/VG_00393.vg
      VG name:      VG
      Description:  Created *before* executing 'lvremove /dev/VG/lv_name_4'
      Backup Time:  Mon Oct 15 16:23:20 2012
    
      File:         /etc/lvm/archive/VG_00394.vg
      VG name:      VG
      Description:  Created *before* executing 'lvcreate -L20g -nsome_new_lv VG'
      Backup Time:  Tue Oct 16 00:32:40 2012
    

    Здесь видно имя файла архива и команда, перед (или иногда после) которой архивирование метаданных VG было выполнено.
    В данном случае были удалены некоторые LV и после них создан новый.
    Чтобы узнать, попал новый LV поверх старых (тогда естественно данные будут перезаписаны, зависит от количества записей в новый LV) надо посмотреть в архиве до удаления параметры extent_count и stripes нужного LV. stripes это номер начала блока на PV, extent_count - количество.
    LV может состоять из нескольких сегментов, в каждом будет свой набор extent_count и stripes.
    Потом посмотреть эти же параметры нового LV, но в архиве поcле создания нового LV.
    Если эти регионы не пересеклись - значит новый LV создался в другом месте, чем удаленные LV.
    Восстановление метаданных:
    $ vgcfgrestore -f /etc/lvm/archive/VG_00390.vg VG
    

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

    Взято отсюда.

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

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

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

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

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

    Смотрим, на какой группе томов расположен корневой раздел /dev/sda2:
    $ pvdisplay | grep -A 1 "/dev/sda2"
      PV Name               /dev/sda2
      VG Name               lvmpart
    

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

    Смотрим путь, по которому доступен целевой логический том:
    $ lvdisplay | grep -A 1 -B 1 " root"
      LV Path                /dev/lvmpart/root
      LV Name                root
      VG Name                lvmpart
    

    Выделяем целевому тому необходимое место:
    # всё свободное
    $ lvextend -l +100%FREE /dev/lvmpart/root
    # Дополнительно 5 ГиБ
    $ lvextend -L +5G /dev/lvmpart/root
    

    В качестве альтернативного пути может быть использован любой:
    1) через mapper: /dev/mapper/lvmpart-root;
    2) через любой путь в каталоге /dev/disk/.
    Теперь остаётся изменить размер файловой системы, размещённой на целевом логическом томе. Это производится для каждой файловой системы по своему:
    # для XFS - по точке монтирования
    $ xfs_growfs /
    # для EXT2/EXT3/ETX4 - по устройству
    $ resize2fs -z old_LVM.e2undo /dev/lvmpart/root
    # для RaiserFS - по устройству
    $ resize_reiserfs /dev/lvmpart/root
    

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

    Для увеличения размера целевой файловой системы всё сделано.
    При необходимости уменьшить размер всё производится в обратном порядке, но действия производятся только на размонтированных файловых системах. Т.е., в случае с корневым разделом надо предварительно загрузиться с LiveCD с поддержкой LVM2. ВАЖНО!: операция уменьшения невозможна для XFS.
    #=-- EXTx
    # 1) размонтируем
    $ umount /home
    # 2) проверим на ошибки
    $ e2fsck -f /dev/lvmpart/home
    # 3а) изменние командой e2fsadm
    # уменьшить на 1 ГБ
    $ e2fsadm -L -1G /dev/lvmpart/home
    # установить размер 5 ГБ
    $ e2fsadm -L 5G /dev/lvmpart/home
    # 3б) изменние вручную
    $ resize2fs -p /dev/lvmpart/home 5G
    $ lvreduce -L 5G /dev/lvmpart/home
    # 4) снова проверим на ошибки
    $ e2fsck -f /dev/lvmpart/home
    # 5) монтируем обратно
    $ mount /home
    #=-- ReiserFS
    $ umount /home
    $ resize_reiserfs -s-1G /dev/lvmpart/home
    $ lvreduce -L-1G /dev/lvmpart/home
    $ mount -t reiserfs /dev/lvmpart/home /home
    

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

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

    LVM (xgu.ru)
    Logical Volume Manager (LVM)

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

    Смена пароля root через CLI:
    unix::> account user root
    unix::/account/user/root> set password=<новый_пароль_пользователя_root>
    

    Так же надо назначить IP адрес:
    # смотрим все доступные интерфейсы
    unix::> network interface show
    # выбираем требуемый интерфейс
    unix::> network interface re0
    # настраиваем и "поднимает" его
    unix::/network/interface/re0> set ipv6_disable=yes
    unix::/network/interface/re0> set dhcp=yes
    unix::/network/interface/re0> set enabled=yes
    

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

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



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

    оценить статью:

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

    СПАСИБО !!!!!!


    Оставьте свой комментарий:
    Ваше имя:   *
    e-mail:  
    жирный
    наклонный
    подчёркнутый
    ссылка
    цвет
    Нынешний год:   *
     


  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 9 чел.
    За последние 30 мин было: 29 человек
    За сегодня было
    8849 показов,
    1070 уникальных IP
     

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

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.0483 секунд
    Из них PHP: 67%; SQL: 33%; Число SQL-запросов: 28 шт.
    Исходный размер: 133667; Сжатая: 27371