Друзья и коллеги!

У одного из наших клиентов, который приобретал сервера и лезвия HP, а сейчас прикупил HP MSA 2040, недавно возник вопрос:

Почему сервер видит презентованный ему лун, как 4 отдельных диска одинакового объема (ОС Linux)?



Ответ прост:

Подключение к серверу в данном случае происходит по 4 независимым каналам и каждый из этих дисков представляет собой отдельный канал.

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

Multipath LUN СХД к VMware ESXi



















Multipath LUN СХД к Debian GNU/Linux

Немного сложнее:

На начальном этапе установки Debian GNU/Linux, мы можем столкнуться с проблемой невозможности обнаружить системой firmware ql2400_fw.bin. Решается это просто:
На рабочей Linux системе скачиваем пакет firmware-qlogic, распаковываем, записываем в образ и монтируем через ILO (действия производятся на сервере HP Proliant). Выглядит это примерно так:

#apt-get --download-only install firmware-qlogic
#cp /var/cache/apt/archives/firmware-qlogic_* .
#ar x firmware-qlogic*
#tar cJpfv data.tar.xz
#dd if=/dev/zero of=qlfw.raw bs=1M count=50
#mkdir fw
#mount -o loop qlfw.raw fw
#cp -r lib/firmware/* fw
#umount fw

Подключаем qlfw.raw через меню Virtual Device->Image File Removable Media. Если инсталятор по-прежнему не может найти firmware, это можно сделать вручную, смонтировав образ в каталог /lib/firmware и перезагрузив модуль qla2xxx. Переключаемся на текстовую консоль ( нижеследующие действия производятся в ILO. Меню Keyboard->CTRL-ALT-Fn->CTRL-ALT-F2):

#fdisk -l| grep 50
Disk /dev/sdr: 50 MiB, 52428800 bytes, 102400 sectors
#mkdir /lib/firmware
#mount /dev/sdr /lib/firmware
#rmmod qla2xxx
#modprobe qla2xxx

После чего, возвращаемся к инсталятору (меню Keyboard->CTRL-ALT-Fn->CTRL-ALT-F5), и доустанавливаем систему в штатном режиме.

На рабочей системе, нам потребуется установить пакет multipath-tools со всеми зависимостями:

#apt-get install multipath-tools
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Предлагаемые пакеты:
  multipath-tools-boot
НОВЫЕ пакеты, которые будут установлены:
  multipath-tools
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 0 B/185 kB архивов.
После данной операции, объём занятого дискового пространства возрастёт на 632 kB.
Выбор ранее не выбранного пакета multipath-tools.
(Чтение базы данных … на данный момент установлено 30895 файлов и каталогов.)
Подготовка к распаковке …/multipath-tools_0.5.0-6+deb8u2_amd64.deb …
Распаковывается multipath-tools (0.5.0-6+deb8u2) …
Обрабатываются триггеры для systemd (215-17+deb8u5) …
Обрабатываются триггеры для man-db (2.7.0.2-5) …
Настраивается пакет multipath-tools (0.5.0-6+deb8u2) …
Обрабатываются триггеры для libc-bin (2.19-18+deb8u6) …

Определяем автозапуск сервиса:

#systemctl enable multipath-tools
Synchronizing state for multipath-tools.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d multipath-tools defaults
Executing /usr/sbin/update-rc.d multipath-tools enable

Посмотрим, как сгруппировались устройства:

# multipath -l
36001438005dea4600001a000000f0000 dm-0 HP,HSV450
size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| |- 0:0:2:1 sdd 8:48  active undef running
| |- 0:0:3:1 sde 8:64  active undef running
| |- 2:0:0:1 sdj 8:144 active undef running
| `- 2:0:1:1 sdk 8:160 active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  |- 0:0:0:1 sdb 8:16  active undef running
  |- 0:0:1:1 sdc 8:32  active undef running
  |- 2:0:2:1 sdl 8:176 active undef running
  `- 2:0:3:1 sdm 8:192 active undef running
3600143801259c5630000d00000a40000 dm-1 HP,HSV360
size=200G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| |- 0:0:4:1 sdf 8:80  active undef running
| |- 0:0:5:1 sdg 8:96  active undef running
| |- 2:0:4:1 sdn 8:208 active undef running
| `- 2:0:5:1 sdo 8:224 active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  |- 0:0:6:1 sdh 8:112 active undef running
  |- 0:0:7:1 sdi 8:128 active undef running
  |- 2:0:6:1 sdp 8:240 active undef running
  `- 2:0:7:1 sdq 65:0  active undef running

Создадим файловую систему на нужном нам LUN'e:

# mkfs.ext4 /dev/dm-0
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 26214400 4k blocks and 6553600 inodes
Filesystem UUID: ae98a176-55d4-484a-b637-6a57a9212d3c
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Смонтируем, и посмотрим, что получилось:

# mount /dev/dm-0 /mnt/
# df -h /mnt
Файловая система                              Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/36001438005dea4600001a000000f0000    99G          60M   94G            1% /mnt

LUN смонтирован и готов к использованию. Осталось дописать строчку в fstab:

#echo '/dev/dm-0 /mnt/ext4 defaults 0 0'>>/etc/fstab

В данном случае мы рассмотрели пример подключения к VMware ESXi и Debian GNU/Linux.

Систему выделения LUNов к серверам мы также используем у себя на хостинге
В данном случае мы используем:

1. Блейд шасси HP C7000 в максимальной комплектации, с двумя административными модулями.

2. FC коммутаторы в шасси С7000 для подключения внешних СХД — HP Brocade 8Gb 8/24c SAN Switch. Внешние FC коммутаторы — HP StorageWorks 8/40 Base 24, (24) порта Full Fabric SAN Switch.

3. СХД HPE 3PAR StorServ 7400 (4-node), HPE 3PAR StorServ 7450c (4-node), HPE 3PAR StorServ 7400c (2-node) и СХД HPE EVA P6550.

Где мы выделяем луны:
ALLFlash — only SSD
AO — смешанный SSD+SAS
NL — only SAS

В следующей статье мы рассмотрим Подключение Multipath LUN СХД к Windows Server 2008 и Windows Server 2012.

Комментарии (18)


  1. cagami
    29.10.2018 10:29

    Ответ прост:
    Подключение к серверу в данном случае происходит по 4 независимым каналам и каждый из этих дисков представляет собой отдельный канал.

    — как-то не очевидно (=
    я понимаю вы бы хоть объяснили, что там используются virtual switch san
    и отказоустойчивость там 2+n или что-то еще
    почему мы видим 4 диска вместо одного
    потому что 4 разных пути.


    1. good_day_4all Автор
      29.10.2018 10:33

      Ну да, очевидно, но увы не всем)


  1. Tortortor
    29.10.2018 10:57

    к чему эти десять нечитаемых скриншотов?


    1. good_day_4all Автор
      29.10.2018 11:09

      Подкорректировал. Теперь всё видно.


  1. KorP
    29.10.2018 13:20
    +1

    Почему сервер видит презентованный ему лун, как 4 отдельных диска одинакового объема

    По тому, что надо знать хоте немного теории о том, в чём ты в данной момент ковыряешься?

    Подключение к серверу в данном случае происходит по 4 независимым каналам и каждый из этих дисков представляет собой отдельный канал.

    Если уж вы пишите для чайников — пишите подробно — каждый контроллер подключён к двум независимым SAN коммутаторам, 2х2 = 4 пути. А то — какой канал, откуда 4 и тд. Не логично так писать для начинающих.


    1. icCE
      29.10.2018 13:27

      Я бы еще посоветовал в документацию глазами залезть. Такие вещи делались мной еще в 2006-2008 году и как-то все очевидно более чем. еще лучше использовать кластерные ФС.


      1. good_day_4all Автор
        29.10.2018 14:12

        Залезть в документацию — это да, всегда полезно. Но, увы, не мало тех, кому проще сначала написать или позвонить, чем загуглить.


        1. icCE
          29.10.2018 14:56

          В любом из вариантов я не вижу проблем в Multipath.
          Если оно есть в понимании, то просто идем и хотя бы читаем wiki.

          Тренироватся сейчас можно на любой вирт машине. iscsci и подключаем к нему клиентов с Multipath. Это помогает понять логику работы, если она вдруг не понятна.

          У вас же сильно частный случай, который описан в документации во всех его красках и для win server в том числе.


    1. good_day_4all Автор
      29.10.2018 14:11

      Если уж вы пишите для чайников — пишите подробно — каждый контроллер подключён к двум независимым SAN коммутаторам


      В общем-то, присутствие в схеме san-свитча не обязательно. При подключении к тому же двухпортовому qlogic'у будет, соответственно, 2 линка.


      1. KorP
        29.10.2018 14:28

        Но вы же пишите

        Внешние FC коммутаторы — HP StorageWorks 8/40 Base 24

        Да и в случае с блейдами — нет у вас двухпортовой карты как таковой. Ваше утверждение верно в случае классических серверов и если их не больше 2.


        1. good_day_4all Автор
          29.10.2018 14:50

          Ну, в случае с лезвием будет какой-нибудь двухпортовый лоджик 2562. Хотя его, конечно, без свитча к хранилке не прицепить.

          А по серверам — все так. В общем-то, конфиг распространенный: 2 ноды, одна хранилка. Подключение крест-накрест от каждого контроллера хранилки к каждому серваку.


          1. icCE
            29.10.2018 14:57

            А по серверам — все так. В общем-то, конфиг распространенный: 2 ноды, одна хранилка.
            и 4 подключения, если уж писать полностью то писать.


          1. KorP
            29.10.2018 15:06

            конфиг распространенный: 2 ноды, одна хранилка

            простите, но не знаю где это является распространённым конфигом, по этому согласиться не могу. единственно место, где такую конфигурацию я видел — у себя дома :) но и то, через коммутатор всё-равно


            1. good_day_4all Автор
              29.10.2018 15:14

              Ну, для дома — это очень солидно (: А так, в малом бизнесе таких решений сейчас хватает. Парочка 360х 6-7 поколения с proxmox'ом или esxi и какая-нибудь p2000g3.


              1. KorP
                29.10.2018 15:15

                Видимо опыт с малым бизнесом у нас то же крайне разный :)


  1. SandroSmith
    29.10.2018 14:31

    У одного из наших клиентов недавно возник вопрос, который приобрел раннее сервера и HP Blade, а сейчас прикупил HP MSA 2040:

    Я бы перефразировал. А то получается, что блейды приобрёл вопрос.


    1. good_day_4all Автор
      29.10.2018 14:45

      Спасибо, поправил. Действительно, кривенько было.


  1. Naves
    29.10.2018 18:55

    1) Нарисовали бы хотя бы схему сети. Новичкам из вашей статьи ничего не понятно, откуда 4 диска, зачем 4 пути. А те, кто подключал СХД через Multipath, задаются вопросом, о чем вообще статья.
    2) Для linux multipath настроили бы алиасы, а то названия 36001438005dea4600001a000000f0000 очень много дадут понять последующему админу, где там ALLFlash или HDD
    3) В следующей статье про Multipath LUN СХД к Windows Server 2008 и Windows Server 2012 хотелось бы увидеть сравнение работы MPIO против MCS, а не просто инструкцию как подключить X к Y.
    Клиенту еще повезло, что он увидел всего 4 диска, а не, например, все 16.