Подключение iSCSI-диска (ОС Linux)
ВАЖНО:
Если вы добавляете запись о диске в
/etc/fstab
, то необходимо, чтобы:
- Для записи с диском был указан параметр _netdev;
- IP диска и префикс были указаны в конфигурационном файле сети для соответствующего интерфейса.
После подготовки сетевого диска мы сообщим вам IP-адрес диска, который нужно добавить на сервер, и IP-адрес стораджа, к которому необходимо будет осуществлять подключение.
Далее для подключения диска вам необходимо выполнить следующие действия.
- Установить на сервер необходимые пакеты:
# Для Ubuntu/Debian
apt install open-iscsi
# Для CentOS
yum install -y iscsi-initiator-utils
- Добавить IP-адрес диска (не стораджа), выданный для вашего сервера, на сетевой интерфейс (будет работать до первой перезагрузки):
ip a add 172.18.%.%/24 dev eth1
Для того, чтобы после перезагрузки диск корректно инициировался в ОС, необходимо указать IP-адрес и /24 маску подсети на соответствующем интерфейсе.
# Для Ubuntu/Debian
vim /etc/netplan/*.yaml
network:
version: 2
ethernets:
eno1:
# здесь настройки сети на первом интерфейсе для доступа в интернет
eno2:
# далее идут настройки для сетевого диска
dhcp4: no
addresses: [ 172.18.%.%/24 ]
# gateway4: указывать не нужно
# Для CentOS
vi /etc/sysconfig/network-scripts/ifcfg-enp1s0f1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
NAME=enp1s0f1
UUID=21b81603-e485-4ff9-8394-19114b2983ad
DEVICE=enp1s0f1
ONBOOT=yes
IPADDR=172.18.%.%
PREFIX=24
где:
- 172.18.%.% — IP-адрес диска (НЕ стораджа);
- eno2/enp1s0f1 — отдельный сетевой интерфейс, отличный от того, на котором работает основной IP сервера.
- Выполнить перезагрузку сетевого демона:
Для Ubuntu/Debian:
sudo netplan --debug generate # проверка корректности синтаксиса в конфигурации сети
sudo netplan try --timeout 15 # пробное применение новых сетевых настроек в течение 15 секунд
sudo netplan apply # применение настроек
Для CentOS:
netplan
не используется для управления конфигурацией сети. Необходимо отредактировать конфигурационный файл интерфейса, отличного от того, на котором работает интернет. Обычно в /etc/sysconfig/network-scripts
находятся 2 конфигурационных файла сети. Настройки интернета находятся в файле с меньшим номером, поэтому настройку сетевого диска необходимо проводить на другом интерфейсе.
Например:
# /etc/sysconfig/network-scripts
# ifcfg-eno1 (ifcfg-enp1s0f0) — здесь настройки интернета
# ifcfg-eno2 (ifcfg-enp1s0f1) — здесь настройки сетевого диска
sudo systemctl restart network
- Перезапустить iSCSI:
systemctl restart iscsi
- Подключиться по предоставленному IP-адресу стораджа:
iscsiadm -m discovery -t st -p IP_адрес;iscsiadm -m node -l
где IP_адрес — выданный вам IP-адрес стораджа.
Пример успешного подключения к стораджу с IP-адресом 172.18.0.3:
- Включить автологин в
/etc/iscsi/iscsid.conf
, заменив значение параметраnode.startup
на:
node.startup = automatic
Это можно сделать командой:
sed -i 's/node.startup = manual/node.startup = automatic/' /etc/iscsi/iscsid.conf
- Проверить что в файлах в
/etc/iscsi/nodes
также указано значениеautomatic
, например:
find /etc/iscsi/nodes/ -type f | xargs grep auto
node.startup = automatic
Если директория /etc/iscsi/nodes/ отсутствует, просто пропустите этот шаг.
- Проверить наличие диска:
fdisk -l
# Или:
parted -l
В выводе должен быть отображен новый диск с новой меткой.
В нашем примере появился новый диск /dev/sdd:
- Убедившись в наличии диска, создать таблицу разделов:
fdisk /dev/DISK
где DISK — метка нового бэкапного диска.
Пример разметки с меткой диска sdd:
# fdisk /dev/sdd
Command (m for help): p
Disk /dev/sdd: 944.9 GB, 944892805120 bytes
255 heads, 63 sectors/track, 114876 cylinders, total 1845493760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc4395aa1
Device Boot Start End Blocks Id System
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-1845493759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1845493759, default 1845493759):
Using default value 1845493759
Command (m for help): p
Disk /dev/sdd: 944.9 GB, 944892805120 bytes
255 heads, 63 sectors/track, 114876 cylinders, total 1845493760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc4395aa1
Device Boot Start End Blocks Id System
/dev/sdd1 2048 1845493759 922745856 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
- Создать файловую систему на разделе:
mkfs.ext4 /dev/DISK_N
где DISK_N
— созданный раздел бэкапного диска.
- Создать директорию, куда будет смонтирован диск (например,
/mnt/backup
), и смонтировать раздел:
mkdir /mnt/backup
mount /dev/DISK_N /mnt/backup
- Посмотреть UUID диска и указать его в соответствующей записи в
fstab
(п. 13):
sudo blkid
В случае установленных в сервере накопителей SSD/HDD мы рекомендуем указывать запись о сетевом диске, ссылаясь на UUID раздела. В случае установленных только NVMe-дисков можно ссылаться на имя раздела (/dev/sdb
и пр.)
- Добавить запись в
fstab
(после создания раздела на диске из п. 12):
echo "/dev/disk/by-uuid/<скопированный UUID> /mnt/backup ext4 defaults,_netdev 0 0" >> /etc/fstab
где:
/
mnt/backup
— точка монтирования;_netdev
— параметр, позволяющий проверять блочное устройство после инициализации сетевой части при загрузке ОС.