Table of Contents

Підключення iSCSI диска в Linux

Приклад параметрів підключення хмарного диску

Параметр Значення
IP адреса iSCSI інтерфейсу 10.12.1.112
Маска мережі iSCSI 255.255.255.248 (/29)
iSCSI портал 10.12.1.111
iSCSI target iqn.2017-11.call.lio:iscsi
Порт iSCSI 3260 (стандартний)

Встановлення iSCSI утиліт

Debian / Ubuntu:

  1. Оновлюємо список пакетів та встановлюємо open-iscsi
    sudo apt update
    sudo apt install -y open-iscsi
  2. Вмикаємо та запускаємо сервіс iscsid
    sudo systemctl enable iscsid
    sudo systemctl start iscsid

RHEL / CentOS / AlmaLinux / Rocky Linux:

  1. Встановлюємо iscsi-initiator-utils
    # RHEL 7 / CentOS 7
    sudo yum install -y iscsi-initiator-utils
     
    # RHEL 8+ / AlmaLinux / Rocky / Fedora
    sudo dnf install -y iscsi-initiator-utils
  2. Вмикаємо та запускаємо сервіс iscsid
    sudo systemctl enable iscsid
    sudo systemctl start iscsid

SUSE / openSUSE:

  1. Встановлюємо open-iscsi
    sudo zypper install -y open-iscsi
  2. Вмикаємо та запускаємо сервіс iscsid
    sudo systemctl enable iscsid
    sudo systemctl start iscsid

Перевіряємо, що сервіс запущений: systemctl status iscsid. Статус повинен бути active (running).

Налаштування мережі

Налаштовуємо IP-адресу на мережевому інтерфейсі, який буде використовуватись для iSCSI-трафіку:

  1. Призначаємо IP-адресу, яку отримали в листі з параметрами, на інтерфейсі (замінюємо eth0 на потрібний інтерфейс)
    sudo ip addr add 10.12.1.112/29 dev eth0

    Маска /29 відповідає 255.255.255.248 (6 хостів у підмережі).

  2. Для збереження налаштувань після перезавантаження додаємо конфігурацію в Netplan (Ubuntu/Debian)
    /etc/netplan/99-iscsi.yaml
    network:
      version: 2
      ethernets:
        eth0:
          addresses:
            - 10.12.1.112/29

    Або для RHEL/CentOS через ifcfg

    /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=static
    IPADDR=10.12.1.112
    NETMASK=255.255.255.248
    DEVICE=eth0
    ONBOOT=yes
  3. Перевіряємо мережеву зв'язність з iSCSI порталом
    ping -c 3 10.12.1.111

Виявлення та підключення до таргету

Discovery — виявлення таргетів:

  1. Виконуємо команду для пошуку доступних iSCSI таргетів на порталі
    sudo iscsiadm --mode discoverydb --type sendtargets --portal 10.12.1.111 --discover

    Очікуваний результат:

    10.12.1.111:3260,1 iqn.2017-11.call.lio:iscsi

Login — підключення до таргету:

  1. Підключаємось до знайденого таргету
    sudo iscsiadm --mode node --targetname iqn.2017-11.call.lio:iscsi --portal 10.12.1.111:3260 --login

    Очікуваний результат:

    Logging in to [iface: default, target: iqn.2017-11.call.lio:iscsi, portal: 10.12.1.111,3260]
    Login to [iface: default, target: iqn.2017-11.call.lio:iscsi, portal: 10.12.1.111,3260] successful.

Перевірка підключення:

  1. Перевіряємо, що iSCSI сесія активна
    sudo iscsiadm --mode session

    Очікуваний результат:

    tcp: [1] 10.12.1.111:3260,1 iqn.2017-11.call.lio:iscsi (non-flash)
  2. Перевіряємо, що новий блоковий пристрій з'явився
    lsblk

    Новий iSCSI диск зазвичай з'являється як /dev/sdX (наприклад, /dev/sdb).

Монтування диска

Перевіряємо наявність файлової системи та монтуємо диск:

  1. Перевіряємо наявність файлової системи
    sudo blkid /dev/sdb
  2. Якщо файлова система відсутня — створюємо її (наприклад, ext4)
    sudo mkfs.ext4 /dev/sdb

    Увага! Ця команда знищить усі існуючі дані на диску. Виконуйте тільки на новому або порожньому диску.

  3. Створюємо точку монтування та монтуємо диск
    sudo mkdir -p /mnt/iscsi
    sudo mount /dev/sdb /mnt/iscsi
  4. Перевіряємо результат
    df -h /mnt/iscsi

Автоматичне підключення при завантаженні

Щоб iSCSI диск підключався автоматично після перезавантаження системи:

  1. Вмикаємо автоматичний логін для таргету
    sudo iscsiadm --mode node \
        --targetname iqn.2017-11.call.lio:iscsi \
        --portal 10.12.1.111:3260 \
        --op update -n node.startup -v automatic
  2. Додаємо запис у /etc/fstab
    /etc/fstab
    /dev/sdb  /mnt/iscsi  ext4  _netdev,defaults  0  0

    Параметр _netdev повідомляє системі, що цей пристрій залежить від мережі, і монтування відбудеться тільки після ініціалізації мережевих інтерфейсів.

Відключення iSCSI диска

Для безпечного відключення iSCSI диска виконуємо наступні кроки в зазначеному порядку:

  1. Розмонтовуємо файлову систему
    sudo umount /mnt/iscsi
  2. Виконуємо логаут із iSCSI сесії
    sudo iscsiadm --mode node \
        --targetname iqn.2017-11.call.lio:iscsi \
        --portal 10.12.1.111:3260 \
        --logout

    Важливо: Завжди розмонтовуйте файлову систему перед logout. Відключення iSCSI сесії при змонтованій ФС може призвести до втрати даних.

Усунення неполадок

Проблема Рішення
Портал не відповідає Перевірте зв'язність: ping 10.12.1.111. Перевірте порт: nc -zv 10.12.1.111 3260. Перевірте firewall: sudo iptables -L -n
Discovery не знаходить таргети Перевірте правильність IP порталу. Перевірте та перезапустіть сервіс: sudo systemctl restart iscsid
Login failed Перевірте правильність targetname.
Диск не з'являється після login Перевірте журнал: sudo dmesg | tail -20. Виконайте rescan: sudo iscsiadm -m session –rescan
Сесія відключається після таймауту Збільште таймаути: sudo iscsiadm -m node -T <target> -p <portal> -o update -n node.session.timeo.replacement_timeout -v 120

Корисні діагностичні команди:

  1. Детальна інформація про активні сесії
    sudo iscsiadm -m session -P 3
  2. Перегляд конфігурації initiator name
    cat /etc/iscsi/initiatorname.iscsi
  3. Перегляд логів iSCSI
    sudo journalctl -u iscsid -f

Посилання на документації інструментів: open-iscsi iscsiadm man page