Настройка подключения по протоколу iSCSI с авторизацией в Ubuntu 22.04 / Debian 12. Эта инструкция подойдет для большинства deb-подобных ОС. Разбирать будем на примере Ubuntu 22.04. Инструкция будет состоять из трех частей:
Для начала обновим информацию из репозиториев:
apt update
Затем обновим текущие пакеты в системе:
apt upgrade -y
Установим пакеты для работы с iSCSI:
apt install open-iscsi
На этом установка закончена.
Для настройки инициатора iSCSI будут нужны реквизиты для подключения (IP-адресация, логины и пароли инициаторов). Их вы получите при активации услуги.
На сервере необходимо будет настроить сетевое подключение и IP-адресацию. Выдаётся "серая" подсеть. В нашем примете будем использовать подсеть 10.10.20.0/24.
IP-адрес сервера iSCSI - 10.10.20.1.
IP-адрес инициатор iSCSI - 10.10.20.20.
Первым шагом откроем файл /etc/iscsi/iscsid.conf для редактирования глобальных настроек. Нам нужно включить автоматическое подключение всех нод при запуске системы:
nano /etc/iscsi/iscsid.conf
В этом файле нам нужно найти следующие строки и немного их поправить:
# node.startup = automatic - снять комментарий
node.startup = manual - закомментировать
После всех проделанных операций перезапускаем сервис iSCSI:
systemctl restart iscsi
Теперь попробуем подключиться к серверу и получить список доступных целей:
iscsiadm --mode discovery --portal 10.10.20.1 --type sendtargets
Вывод должен быть примерно таким:
10.10.20.1:3260,1 iscsi.001-1.ru.ekacod.:second
Мы подключаемся к серверу и получаем список всех доступных нод.
После успешного выполнения данной команды в /etc/iscsi появятся две директории: nodes - которая содержит вложенные каталоги для каждого IQN и send_targets - с вложенными каталогами для каждой цели. Перейдем в nodes и провалимся в каталог с IQN нашей цели, в нем откроем еще один каталог с адресом и портом, в котором обнаружим файл default. Откроем его на редактирование:
nano /etc/iscsi/nodes/iscsi.001-1.ru.ekacod.\:second/10.10.20.1\,3260\,1/default
Проверяем, что в строке node.startup = указано значение automatic. Если нет. то меняем на automatic.
Добавляем строки для авторизации:
node.session.auth.authmethod = CHAP
node.session.auth.username = test.ubuntu
node.session.auth.password = Secret123456
Теперь можно подключиться к ноде.
Команда, которая подключит все ноды в системе:
iscsiadm -m node --login
Если нужно подключить только одну конкретную ноду, то указываем её имя:
iscsiadm -m node --targetname "iscsi.001-1.ru.ekacod.:second" --login
Команда для отключения всех нод:
iscsiadm -m node --logout
Команда для отключения одной нужной нам ноды:
iscsiadm -m node --targetname "iscsi.001-1.ru.ekacod.:second" --logout
Для просмотра всех активных сессий:
iscsiadm -m session
Для удаления ненужных целей:
iscsiadm -m discovery -p 10.10.20.1 -o delete
Для проверки подключения выполним команду:
lsblk
Вывод будет примерно таким:
sda 8:0 0 32G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 30G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 15G 0 lvm /
sdb 8:16 0 36.5T 0 disk
Видим, что в системе появился диск sdb размером 36,5TiB.
Для дальнейшего использования диск нужно разметить и отформатировать.
Для начала разметим диск утилитой fdisk:
fdisk /dev/sdb
Попадаем в оболочку fdisk, управление в которой осуществляется при помощи коротких команд. Основные опции для работы в утилите:
Что получим при запуске утилиты:
root@file-test-ubuntu-22:/# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 36.45 TiB, 40077198852096 bytes, 78275779008 sectors
Disk model: iSCSI Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 32768 bytes
I/O size (minimum/optimal): 32768 bytes / 32768 bytes
Disklabel type: gpt
Disk identifier: 1D501400-64E0-43D5-9C46-6F8162BFF9FF
Command (m for help): n
Partition number (1-128, default 1):
First sector (34-78275778974, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-78275778974, default 78275778974):
Created a new partition 1 of type 'Linux filesystem' and of size 36.4 TiB.
Command (m for help): p
Disk /dev/sdb: 36.45 TiB, 40077198852096 bytes, 78275779008 sectors
Disk model: iSCSI Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 32768 bytes
I/O size (minimum/optimal): 32768 bytes / 32768 bytes
Disklabel type: gpt
Disk identifier: 1D501400-64E0-43D5-9C46-6F8162BFF9FF
Device Start End Sectors Size Type
/dev/sdb1 2048 78275778974 78275776927 36.4T Linux filesystem
Command (m for help): w
Пояснения к выводу:
После выхода будет сообщение об успешной операции с диском:
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Далее перейдем к форматированию диска.
Стоит учесть, если диск будет использоваться из ОС Linux и из ОС Windows, то стоит внимательно отнестись к выбору файловой системы. Если предусматривается гибридное хранилище, то лучше выбрать exFAT, если парк ОС ограничен Linux дистрибутивами, то стоит обратить внимание на ext4 или выбрать подходящую для своих нужд.
В инструкции мы рассмотрим форматирование для файловой системы exFAT. Для такого форматирования понадобится установить дополнительные пакеты. Если понадобится другая ФС, то стандартные инструменты довольно богаты.
Для начала установим пакеты для работы с exFAT:
apt install exfatprogs
Далее посмотрим какие разделы появились на нашем новом диске:
lsblk /dev/sdb
Вывод будет таким:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 36.5T 0 disk
└─sdb1 8:17 0 36.4T 0 part
Отформатируем раздел в нужной нам файловой системе:
mkfs.exfat /dev/sdb1
Вывод будет следующим:
exfatprogs version : 1.1.3
Creating exFAT filesystem(/dev/sdb1, cluster size=131072)
Writing volume boot record: done
Writing backup volume boot record: done
Fat table creation: done
Allocation bitmap creation: done
Upcase table creation: done
Writing root directory entry: done
Synchronizing...
exFAT format complete!
Теперь примонтируем раздел в систему. Для этого создадим директорию в папке /mnt:
mkdir /mnt/backup
И примонтируем нужный раздел в эту директорию:
mount /dev/sdb1 /mnt/backup
Для проверки монтирования можно воспользоваться командой:
df -h /mnt/backup/
Вывод будет таким:
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 37T 37M 37T 1% /mnt/backup
На этом настройка и подключение хранилище на примере ОС Ubuntu 22.04 завершена.