---
title: "Подключение сетевого диска iSCSI к Linux-серверу — Timeweb Cloud"
description: "Как подключить сетевой диск по протоколу iSCSI на сервере с Ubuntu, Debian или CentOS: настройка сетевого интерфейса, конфигурация автологина, разметка диска и монтирование через fstab."
---

# Подключение iSCSI-диска (ОС Linux)

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

> [!NOTE]
> Если вы добавляете запись о диске в `/etc/fstab`, то необходимо, чтобы:
>
> 1.  Для записи с диском был указан параметр `_netdev`;
> 2.  IP диска и префикс были указаны в конфигурационном файле сети для соответствующего интерфейса.

После подготовки сетевого диска мы сообщим вам IP-адрес диска, который нужно добавить на сервер, и IP-адрес стораджа, к которому необходимо будет осуществлять подключение.

Далее для подключения диска вам необходимо выполнить следующие действия.

1.  Установить на сервер необходимые пакеты:

Для Ubuntu/Debian:

```shell
apt install open-iscsi
```

Для CentOS:

```shell
yum install -y iscsi-initiator-utils
```

2.  Добавить IP-адрес диска (*не стораджа*), выданный для вашего сервера, на сетевой интерфейс (будет работать до первой перезагрузки):

```shell
ip a add 172.18.%.%/24 dev eth1
```

Для того, чтобы после перезагрузки диск корректно инициировался в ОС, необходимо указать IP-адрес и /24 маску подсети на соответствующем интерфейсе.

Для Ubuntu/Debian:

```shell
vim /etc/netplan/*.yaml
```

```shell
network:
  version: 2
  ethernets:
    eno1:
      # здесь настройки сети на первом интерфейсе для доступа в интернет
    eno2:
      # далее идут настройки для сетевого диска
      dhcp4: no
      addresses: [ 172.18.%.%/24 ]
      # gateway4: указывать не нужно
```

Для CentOS:

```shell
vi /etc/sysconfig/network-scripts/ifcfg-enp1s0f1
```

```shell
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 сервера.

3.  Выполнить перезагрузку сетевого демона:

Для Ubuntu/Debian:

```
sudo netplan --debug generate # проверка корректности синтаксиса в конфигурации сети
```

```
sudo netplan try --timeout 15 # пробное применение новых сетевых настроек в течение 15 секунд
```

```
sudo netplan apply # применение настроек
```

Для CentOS:

`netplan` не используется для управления конфигурацией сети. Необходимо отредактировать конфигурационный файл интерфейса, *отличного от того, на котором работает интернет*. Обычно в `/etc/sysconfig/network-scripts` находятся 2 конфигурационных файла сети. Настройки интернета находятся в файле с меньшим номером, поэтому настройку сетевого диска необходимо проводить на другом интерфейсе.

Например:

```shell
# /etc/sysconfig/network-scripts
# ifcfg-eno1 (ifcfg-enp1s0f0) — здесь настройки интернета
# ifcfg-eno2 (ifcfg-enp1s0f1) — здесь настройки сетевого диска
```

```shell
sudo systemctl restart network
```

4.  Перезапустить iSCSI:

```shell
systemctl restart iscsi
```

5.  Подключиться по предоставленному IP-адресу стораджа:

```shell
iscsiadm -m discovery -t st -p IP_адрес;iscsiadm -m node -l
```

где IP_адрес — выданный вам IP-адрес *стораджа*.

Пример успешного подключения к стораджу с IP-адресом 172.18.0.3:

![1](https://content.timeweb.com/assets/0a0cb23d-cbd6-47a6-9aa7-edd4025744ac?width=532&height=52)

6.  Включить автологин в `/etc/iscsi/iscsid.conf`, заменив значение параметра `node.startup` на:

```shell
node.startup = automatic
```

Это можно сделать командой:

```shell
sed -i 's/node.startup = manual/node.startup = automatic/' /etc/iscsi/iscsid.conf
```

7.  Проверить что в файлах в `/etc/iscsi/nodes` также указано значение `automatic`, например:

```shell
find /etc/iscsi/nodes/ -type f | xargs grep auto
node.startup = automatic
```

Если директория `/etc/iscsi/nodes/` отсутствует, просто пропустите этот шаг. 

8.  Проверить наличие диска:

```shell
fdisk -l
```

Или:

```shell
parted -l
```

В выводе должен быть отображен новый диск с новой меткой.

В нашем примере появился новый диск `/dev/sdd`:

![2](https://content.timeweb.com/assets/32cf5864-8e5d-4a17-b7ef-fe637ee7bcdb?width=465&height=604)

9.  Убедившись в наличии диска, создать таблицу разделов:

```shell
fdisk /dev/DISK
```

где `DISK` — метка нового бэкапного диска.

Пример разметки с меткой диска sdd:

```shell
# 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.
```

10.  Создать файловую систему на разделе:

```shell
mkfs.ext4 /dev/DISK_N
```

где `DISK_N` — созданный раздел бэкапного диска.

11.  Создать директорию, куда будет смонтирован диск (например, `/mnt/backup`), и смонтировать раздел:

```shell
mkdir /mnt/backup
```

```shell
mount /dev/DISK_N /mnt/backup
```

12.  Посмотреть UUID диска и указать его в соответствующей записи в `fstab` (п. 13):

```shell
sudo blkid
```

В случае установленных в сервере накопителей SSD/HDD мы рекомендуем указывать запись о сетевом диске, ссылаясь на UUID раздела. В случае установленных только NVMe-дисков можно ссылаться на имя раздела (`/dev/sdb` и пр.)

13.  Добавить запись в `fstab` (после создания раздела на диске из п. 12):

```shell
echo "/dev/disk/by-uuid/<скопированный UUID> /mnt/backup ext4 defaults,_netdev 0 0" >> /etc/fstab
```

где:

-   `/``mnt/backup` — точка монтирования;
-   `_netdev` — параметр, позволяющий проверять блочное устройство после инициализации сетевой части при загрузке ОС.
