Создание iSCSI хранилища на Debian

Подготовка физических носителей под LVM

​ Сразу отметим, что делать LVM-тома не обязательно, т.к. можно презентовать целиком сырые блочные устройства (например, /dev/sdb). Недостаток этого метода состоит в том, что наращивать “вертикально” такие тома не получится. Таким образом, лучше сразу делать lvm-тома. Для дополнительной надежности, до того как создавать lvm-массивы, можно еще и объединить физические диски в программные RAID утилитой mdadm. В данном примере обойдемся без этого.

Сначала ставим нужные пакеты:

sudo apt update
sudo apt install -y tgt lvm2

Инициализация дисков под LVM

pvcreate /dev/sdb /dev/sdc

Создаем группы томов

vgcreate ovt /dev/sdb /dev/sdc

Создаем логические тома (том)

lvcreate -L 100G -n ovt-iscsi ovt 

Как дополнительный пример, можно создать том с именем ovt-part2 и емкостью 30% от общего размера группы томов

lvcreate -l 30%VG -n ovt-part2  ovt 

Посмотрим созданные тома командой lvdisplay

LV Path: путь к устройству логического тома.
LV Name: имя логического тома.
VG Name: имя группы томов.
LV UUID: идентификатор.
LV Write Access: уровень доступа.
LV Creation host, time: имя компьютера и дата, когда был создан том.
LV Size: объем дискового пространства, доступный для использования.
Current LE: количество логических экстентов.

Файловые системы создавать не надо, т.к. мы будем отдавать в сеть созданный том как блочное устройство. ФС будет создана на уровне потребителя (клиента).

Создание цели на сервере iSCSI (target)

Создаем файл конфигурации сервера /etc/tgt/targets.conf

include /etc/tgt/conf.d/*.conf
<target iqn.2020-3.ru.ovtsolutions:scsi>
backing-store /dev/mapper/ovt-ovt--iscsi
initiator-address 192.168.96.0/24
incominguser ovt MySeсretPass
</target>

Включаем автоматическое предоставление блочных устройств в файле /etc/iscsi/iscsid.conf

node.startup = automatic

Запускаем сервис tgt

/etc/init.d/tgt.service start

или

systemctl start tgt

Настройка на клиенте (initiator)

Ставим клиентскую часть доступа по iSCSI протоколу

apt install open-iscsi -y

Если на сервере настроена аутентификация, правим конфигуратор /etc/iscsi/iscsid.conf.

Раскомментируем метод аутентификации и установим параметры:

node.session.auth.authmethod = CHAP
node.session.auth.username = ovt
node.session.auth.password = Passw@rd

Запускаем обнаружитель цели (адрес сервера: 192.168.30.51)

iscsiadm --mode discovery --type sendtargets --portal 192.168.30.51

В ответ команды выдает все обнаруженные цели (targets)

192.168.30.51:3260,1 iqn.2020-3.ru.ovtsolutions:scsi

Подключаемся к цели:

iscsiadm -m node --login

Logging in to [iface: default, target: iqn.2020-3.ru.ovtsolutions:scsi, portal: 192.168.30.51,3260] (multiple)
Login to [iface: default, target: iqn.2020-3.ru.ovtsolutions:scsi, portal: 192.168.30.51,3260] successful.

Проверим, что у нас появилось новое блочное устройство:

cat /proc/partitions
major minor  #blocks  name

   8        0  488386584 sda
   8        1     307200 sda1
   8        2     102400 sda2
   8        3     131072 sda3
   8        4  204800000 sda4
   8        5  153600000 sda5
   8        6  125345792 sda6
   8        7    4097024 sda7
  11        0    1048575 sr0
   8       16  314572800 sdb

Видим, что появилось устройство sdb.

Теперь его можно использовать, как обычный локальный диск. Создавать на нем разделы, файловые системы, объединять эти устройства в программные RAID и прочее.

Включаем автоматическое получение блочных устройств с target-сервера в файле /etc/iscsi/iscsid.conf

node.startup = automatic