Skip to content

Подключение дисков

Глоссарий

iSCSI portal – сервер, который предоставляет доступ к системе хранения данных по протоколу iSCSI и определяется по имени или IP-адресу.

iSCSI target - логическая точка подключения портала. Определяется уникальным идентификатором в следующем формате:
iqn.<год (4 цифры) >-<месяц (2 цифры)>.<имя домена в обратном порядке>:< опциональный идентификатор>.

Note

Месяц и год в идентификаторе - дата регистрации домена.

Пример валидных идентификаторов

  • iqn.2003-01.com.ibm:00.fcd0ab21.shark128
  • iqn.2020-01.io.icdc.LOC:ceph-idc

На портале iSCSI может быть сконфигурировано несколько iSCSI target.

iSCSI client или iSCSI инициатор - клиентская машина, каждая из которых определяется уникальным клиентским идентификатором в таком же формате, как iSCSI target.
Многие ОС сами генерируют идентификаторы iSCSI при установке.
Например, CentOs и RedHat генерируют идентификатор в формате iqn.1994-05.com.redhat:fbb1b3344d99, где последние 12 цифр - MAC-адрес сетевого интерфейса. При конфигурировании клиента можно использовать сгенерированный идентификатор, можно придумать свой. Чтобы iSCSI-клиент мог подключиться к iSCSI target, он должен быть зарегистрирован на iSCSI target с указанием списка дисков, которые он может использовать.
Один и тот же клиент может быть одновременно подключен с одному или нескольким таргетам одного или разных порталов. Один и тот же iSCSI диск может быть подключен к нескольким клиентам. Ответственность за целостность данных при этом несет клиентское ПО.

Подключение iSCSI дисков для Windows 10

  1. Запустите программу iSCSI Initiator: Start-> Search -> iSCSI Initiator

  2. При первом добавлении диска появится следующее диалоговое окно:

    Нажмите Yes.

  3. Когда откроется окно программы, выберите вкладку Configuration, далее нажмите Change для настройки идентификатора клиента. В открывшемся окне диалога введите имя клиента, добавленного в iSCSI Storage UI.

    Либо же можно сначала открыть iSCSI Initiator, узнать стандартный идентификатор машины, а затем добавить в UI клиента с таким именем.

  4. Выберите вкладку Discovery:

  5. Нажмите на Discover Portal.

  6. В открывшемся диалоге необходимо ввести IP-адрес любого портала из списка, который отображается в iSCSI Storage UI над вкладками Disk и Clients рядом с квотами:

    Target IQN

    Для Storage V1: IP-адреса портала в пользовательском интерфейсе хранилища iSCSI над вкладками Disks и Clients рядом с квотами.
    Для Storage V2: IP-адреса портала отображаются в разделе Квоты.
    Если в пользовательском интерфейсе хранилища нет IP-адреса портала, используйте предопределенный целевой IQN (замените LOC на имя текущего местоположения):
    iqn.2020-01.io.icdc.LOC:iscsi-ssd

  7. Убедитесь, что портал успешно добавился:

  8. Затем перейдите во вкладку Targets, выберите единственный таргет из списка и нажмите Connect.

  9. В появившемся диалоговом окне выберите Advanced.

  10. В окне Advanced Settings выберите Enable CHAP on log on, введите имя пользователя и пароль, затем нажмите OK и затем OK в окне Connect to Target.

  11. Проверьте, что таргет перешел в состояние Connected:

  12. Просмотреть подключенные диски можно в списке Devices:

  13. Далее с диском можно работать как с любым другим жестким диском:
    Зайти в Control Panel -> Administrative tools -> Computer Management -> Storage -> Disk Management, проинициализировать диск, разбить на разделы, отформатировать и т.д.

Поддержка Multi-Path

Технология Multi-Path – это создание более одного соединения между клиентом и сервером для обеспечения бесперебойной работы сервиса при возникновении проблем с одним из соединений. Если в сервисе iSCSI Storage сконфигурирован более чем один iSCSI портал, то сервис может работать по технологии multi-path, устанавливая соединения со всеми порталами.

Технология multi-path может работать в нескольких режимах. Единственным поддерживаемым режимом в iSСSI Storage является режим Fail Over, при котором работает постоянно только одно соединение, а второе включается только при отключении первого.

Info

Подключение по технологии multi-path возможно на платформе Windows, начиная с версии Windows-2016 и на платформе Linux.

Подключение iSCSI дисков c поддержкой Multi-Path для Windows 2016

  1. Используя приложение Server Manager, установите компонент Multipath I/O2.

  2. Включите поддержку multi-path для устройств iSCSI:
    Далее откройте Control Panel -> MPIO, перейдите во вкладку Discover Multi-Paths, выберите Add support for iSCSI devices, нажмите Add и перезагрузите систему.

  3. После перезагрузки установите режим Fail Over для всех подключаемых устройств.
    Откройте окно командной строки и запустить команду mpclaim -l -m 1. Проверьте, что установился режим Fail Over, запустив команду mpclaim-s -m.

  4. Затем точно следуйте инструкции для подключения iSCSI-дисков для Windows 10, только в диалоговом окне Connect to Target перед нажатием OK необходимо указать Enable multi-path.

Подключение iSCSI дисков для Linux (CentOS 7)

iSCSI клиент настраивается с поддержкой multi-path, для Fail Over в случае падения одного из iSCSI серверов.

  • Установка пакетов:

    yum install iscsi-initiator-utils device-mapper-multipath
    
  • Далее:

    mpathconf --enable --with_multipathd y
    
  • Указать в /etc/multipath.conf, что multipath будет использоваться для iSCSI устройств (добавить секцию devices):

    devices {
            device {
                    vendor                 "LIO-ORG"
                    hardware_handler       "1 alua"
                    path_grouping_policy   "failover"
                    path_selector          "queue-length 0"
                    failback               60
                    path_checker           tur
                    prio                   alua
                    prio_args              exclusive_pref_bit
                    fast_io_fail_tmo       25
                    no_path_retry          queue
            }
    }
    
    blacklist {
    }
    
    defaults {
    }
    
  • Далее:

    systemctl enable --now multipathd
    

    Установка клиентских iqn в файле /etc/iscsi/initiatorname.iscsi:

    InitiatorName=iqn.2020-01.io.icdc.LOC.ceph-test-qemu:client1
    
  • Установить в /etc/iscsi/iscsi.conf параметры node.session.auth.authmethod, node.session.auth.username, node.session.auth.password для CHAP-авторизации:

    # To enable CHAP authentication set node.session.auth.authmethod
    # to CHAP. The default is None.
    node.session.auth.authmethod = CHAP
    
    # To set a CHAP username and password for initiator
    # authentication by the target(s), uncomment the following lines:
    node.session.auth.username = asharapov
    node.session.auth.password = asharapov123
    
  • Запустить поиск таргетов, указывая адрес любого из настроеных iSCSI серверов:

    $ iscsiadm  -m discovery -t st -p 172.20.141.33
    
    172.20.141.33:3260,1 iqn.2020-01.io.icdc.LOC:iscsi-ssd
    
    1.2.20.141.36:3260,2 iqn.2020-01.io.icdc.LOC:iscsi-ssd
    
  • Подключиться:

    $ iscsiadm -m node -T iqn.2020-01.io.icdc.LOC:iscsi-ssd -l
    
    Logging in to [iface: default, target: iqn.2020-01.io.icdc.LOC:iscsi-ssd, portal: 172.20.141.33,3260] (multiple)
    Logging in to [iface: default, target: iqn.2020-01.io.icdc.LOC:iscsi-ssd, portal: 172.20.141.36,3260] (multiple)
    Login to [iface: default, target: iqn.2020-01.io.icdc.LOC:iscsi-ssd, portal: 172.20.141.33,3260] successful.
    Login to [iface: default, target: iqn.2020-01.io.icdc.LOC:iscsi-ssd, portal: 172.20.141.36,3260] successful.
    
  • Проверить multi-path:

    $ multipath -ll
    
    36001405c05ae6fc87834550abf4fb426 dm-6 LIO-ORG ,TCMU device
    size=1.0G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
    |-+- policy='queue-length 0' prio=50 status=active
    | `- 5:0:0:0 sda 8:0  active ready running
    `-+- policy='queue-length 0' prio=10 status=enabled
    `- 4:0:0:0 sdb 8:16 active ready running
    
  • Работать с /dev/mapper/36001405c05ae6fc87834550abf4fb426 как с обычным диском:

    Terminal
    $ fdisk -l /dev/mapper/36001405c05ae6fc87834550abf4fb426
    
    Disk /dev/mapper/36001405c05ae6fc87834550abf4fb426: 1073 MiB, 1073741824 bytes, 2097152 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 4194304 bytes
    
    $ mkfs -t ext4 /dev/mapper/36001405c05ae6fc87834550abf4fb426
    ...
    

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

Info

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

Подключение VPN и DirectConnect

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

Note

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

Если хост подключен через VPN-шлюз, то убедитесь, что настроен один из вариантов маршрутизации к iSCSI-шлюзу:

  • Прямая маршрутизация
  • Натирование VPN (NAT)

Прямая маршрутизация к iSCSI-шлюзу

  • Добавьте специальную подсеть VirtualService (по умолчанию 198.18.0.0/26) вашего VPC в конфигурацию клиента Wireguard на хосте в список разрешенных IP подсетей:

    AllowedIPs = ..., 198.18.0.0/26
    
  • Переподключите VPN-соединение на хосте и попробуйте получить доступ к iSCSI-шлюзу по прямому IP-адресу с хоста:

    $ nc -v 198.18.0.2 3260
    
    Connection to 198.18.0.2 3260 port [tcp/*] succeeded!
    

Натирование VPN к iSCSI-шлюзу

  1. В VPN-сервисе сконфигурироуйте NAT-подсеть, которая не существует на подключаемом хосте и в VPC-сетях аккаунта.
  2. Добавьте запись сопоставления NAT к IP-адресу iSCSI-шлюза (по умолчанию 198.18.0.2) в настройках VPN-шлюза.
  3. Используйте созданный NAT IP (например, 10.0.0.2), чтобы проверить подключение к iSСSI-шлюзу:

    $ nc -v 10.0.0.2 3260
    
    Connection to 10.0.0.2 3260 port [tcp/*] succeeded!