Сервер хранения · 8 min read · Nov 26, 2025
Как установить сервер хранения iSCSI на Ubuntu 22.04

Интерфейс малых компьютерных систем через Интернет (iSCSI) — это протокол, используемый в сетях хранения (SAN) для совместного использования ресурсов блочного хранения, таких как разделы жестких дисков (HDD) или твердотельных накопителей (SSD), разделы управления логическими томами (LVM) или блочные файлы по сети. Используя архитектуру клиент-сервер, iSCSI облегчает передачу команд SCSI по сетям TCP/IP между двумя основными компонентами: инициатором и целью. Цель iSCSI — это служба, размещенная на сервере iSCSI, отвечающая за предоставление доступа к совместно используемому хранилищу. Напротив, инициатор iSCSI функционирует как клиент, устанавливающий соединение с целью, чтобы использовать ресурсы совместного хранения.
Этот учебник является полным руководством по настройке как целей, так и инициаторов iSCSI на сервере с Ubuntu 22.04. Он охватывает шаги по настройке безопасного совместного использования хранилища в вашей сети.
Требования
- Система с установленной Ubuntu 22.04 для цели iSCSI с 1 ГБ внешним HDD.
- Система с новой установкой Ubuntu 22.04 для инициатора iSCSI.
- Статический IP-адрес 192.168.1.10 настроен на цели iSCSI, и 192.168.1.20 настроен на инициаторе iSCSI.
- Пароль root настроен на обоих серверах.
Обновление системы
Перед началом рекомендуется обновить вашу систему до последних пакетов. Вы можете обновить их с помощью следующей команды:
apt update -y
apt upgrade -yПосле обновления всех пакетов перезагрузите систему, чтобы применить изменения.
Установка цели iSCSI
Пакет цели iSCSI по умолчанию находится в репозитории по умолчанию Ubuntu 22.04. Вы можете установить его, выполнив следующую команду на сервере цели iSCSI:
apt install tgt -yПосле установки цели iSCSI проверьте статус сервера с помощью следующей команды:
systemctl status tgtВы должны получить следующий вывод:
? tgt.service - (i)SCSI target daemon
Loaded: loaded (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2024-01-03 11:13:04 UTC; 23s ago
Docs: man:tgtd(8)
Main PID: 7770 (tgtd)
Status: "Starting event loop..."
Tasks: 1
Memory: 1.1M
CGroup: /system.slice/tgt.service
??7770 /usr/sbin/tgtd -f
Jan 03 11:13:04 ubuntu2204 systemd[1]: Starting (i)SCSI target daemon...
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: iser_ib_init(3431) Failed to initialize RDMA; load kernel modules?
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: work_timer_start(146) use timer_fd based scheduler
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: bs_init(387) use signalfd notification
Jan 03 11:13:04 ubuntu2204 systemd[1]: Started (i)SCSI target daemon.
На этом этапе цель iSCSI установлена на вашем сервере. Теперь вы можете перейти к следующему шагу.
Настройка цели iSCSI
Сначала создайте устройство LUN (Logical Unit Number) на вашем сервере iSCSI. LUN — это устройство хранения на заднем плане, которое является частью физического устройства SCSI. Все LUN, сопоставленные с целью iSCSI, виртуально подключены к операционной системе клиента. Поэтому инициаторы могут устанавливать и управлять файловыми системами на LUN iSCSI.
Вы можете настроить его, создав новый конфигурационный файл:
nano /etc/tgt/conf.d/iscsi.confДобавьте следующие строки:
backing-store /dev/sdb
initiator-address 192.168.1.20
incominguser iscsi-user password
outgoinguser iscsi-target secretpass
Сохраните и закройте файл, когда закончите.
Где:
- Первая строка определяет имя LUN.
- Вторая строка определяет местоположение и имя устройства хранения на сервере цели iSCSI.
- Третья строка определяет IP-адрес инициатора iSCSI.
- Четвертая строка определяет имя пользователя/пароль для входящих соединений.
- Пятая строка определяет имя пользователя/пароль, которые цель предоставит инициатору для обеспечения взаимной аутентификации CHAP.
Далее перезапустите службу iSCSI, чтобы применить изменения:
systemctl restart tgtЗатем проверьте сервер цели iSCSI с помощью следующей команды:
tgtadm --mode target --op showВы должны получить следующий вывод:
Target 1: iqn.2024-01.example.com:lun1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
iscsi-user
iscsi-target (outgoing)
ACL information:
192.168.1.10
На этом этапе сервер цели iSCSI установлен и настроен. Теперь вы можете перейти к следующему шагу.
Установка и настройка инициатора iSCSI
Далее перейдите на машину инициатора iSCSI и установите пакет инициатора iSCSI с помощью следующей команды:
apt install open-iscsi -yПосле завершения установки обнаружьте сервер цели iSCSI, чтобы узнать о совместно используемых целях, используя следующую команду:
iscsiadm -m discovery -t st -p 192.168.1.10Вы должны увидеть следующий вывод:
192.168.1.10:3260,1 iqn.2024-01.example.com:lun1
Далее вам нужно будет определить имя устройства LUN в файле initiatorname.iscsi:
nano /etc/iscsi/initiatorname.iscsiДобавьте имя вашего LUN цели iSCSI, как показано ниже:
InitiatorName=iqn.2024-01.example.com:lun1
Сохраните и закройте файл, когда закончите.
Далее вам нужно будет определить информацию CHAP, которую вы настроили на цели iSCSI, чтобы получить доступ к цели iSCSI с инициатора iSCSI. Файл конфигурации узла будет находиться в каталоге ‘/etc/iscsi/nodes/‘ и будет иметь каталог для каждого доступного LUN.
Вы можете определить его, отредактировав следующий файл:
nano /etc/iscsi/nodes/iqn.2024-01.example.com\:lun1/192.168.1.10\,3260\,1/defaultДобавьте / измените следующие строки:
node.session.auth.authmethod = CHAP
node.session.auth.username = iscsi-user
node.session.auth.password = password
node.session.auth.username_in = iscsi-target
node.session.auth.password_in = secretpass
node.startup = automatic
Сохраните и закройте файл, затем перезапустите службу инициатора iSCSI с помощью следующей команды:
systemctl restart open-iscsi iscsidВы также можете проверить статус службы с помощью следующей команды:
systemctl status open-iscsiВы должны получить следующий вывод:
? open-iscsi.service - Login to default iSCSI targets
Loaded: loaded (/lib/systemd/system/open-iscsi.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2024-01-03 11:33:13 UTC; 10s ago
Docs: man:iscsiadm(8)
man:iscsid(8)
Process: 2861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS)
Process: 2867 ExecStart=/lib/open-iscsi/activate-storage.sh (code=exited, status=0/SUCCESS)
Main PID: 2867 (code=exited, status=0/SUCCESS)
Jan 03 11:33:14 initiator systemd[1]: Starting Login to default iSCSI targets...
Jan 03 11:33:14 initiator iscsiadm[2861]: Logging in to [iface: default, target: iqn.2024-01.example.com:lun1, portal: 104.245.33.142,3260] (m>
Jan 03 11:33:14 initiator iscsiadm[2861]: Login to [iface: default, target: iqn.2024-01.example.com:lun1, portal: 104.245.33.142,3260] success>
Jan 03 11:33:14 initiator systemd[1]: Finished Login to default iSCSI targets.
Вы также можете проверить соединение iSCSI с помощью следующей команды:
iscsiadm -m session -o showВы должны получить следующий вывод:
tcp: [2] 192.168.1.10:3260,1 iqn.2024-01.example.com:lun1 (non-flash)
Вы также можете проверить устройство хранения, совместно используемое с цели iSCSI, с помощью следующей команды:
lsblkВы должны увидеть совместно используемое устройство sdb в следующем выводе:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
??sda1 8:1 0 80G 0 part /
sdb 8:16 0 1000M 0 disk
Создание файловой системы на совместно используемом устройстве
Чтобы использовать совместно используемое устройство на инициаторе iSCSI, вам нужно будет создать файловую систему на совместно используемом устройстве (sdb) и смонтировать его, чтобы сделать это устройство полезным.
Сначала создайте файловую систему на совместно используемом устройстве (sdb) с помощью следующей команды:
fdisk /dev/sdbОтветьте на все вопросы, как показано ниже, чтобы создать файловую систему:
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9743ddcf.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-2047999, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2047999, default 2047999):
Created a new partition 1 of type 'Linux' and of size 999 MiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Затем отформатируйте раздел с помощью следующей команды:
mkfs.ext4 /dev/sdb1Вы должны получить следующий вывод:
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 255744 4k blocks and 64000 inodes
Filesystem UUID: e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
Затем смонтируйте раздел в каталог /mnt с помощью следующей команды:
mount /dev/sdb1 /mntТеперь вы можете проверить смонтированный раздел с помощью следующей команды:
df -hВы должны получить следующий вывод:
Filesystem Size Used Avail Use% Mounted on
udev 972M 0 981M 0% /dev
tmpfs 199M 528K 199M 1% /run
/dev/sda1 79G 1.8G 74G 3% /
tmpfs 994M 0 994M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 994M 0 994M 0% /sys/fs/cgroup
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 968M 2.5M 899M 1% /mnt
Часто задаваемые вопросы
Ниже приведены ответы на некоторые часто задаваемые вопросы о инициаторе и цели iSCSI.
Что такое iSCSI?
iSCSI, или интерфейс малых компьютерных систем через Интернет, — это сетевой протокол, который позволяет передавать данные по интранетам и управлять хранилищем на больших расстояниях. Он облегчает транспортировку данных на блочном уровне между инициатором iSCSI на сервере и целью iSCSI на оборудовании хранения.
Что такое цель и инициатор iSCSI?
Цель iSCSI выступает в качестве устройства хранения, такого как жесткий диск, доступного по сети. Инициатор iSCSI — это клиент, который подключается к хранилищу на Цели и взаимодействует с ним.
Могу ли я использовать iSCSI через WAN?
Да, iSCSI можно использовать через сеть с широкой полосой (WAN), но это требует стабильного и быстрого сетевого соединения для обеспечения производительности и надежности. Также важны соображения безопасности, такие как VPN или выделенные линии, при использовании iSCSI через WAN.
Чем iSCSI отличается от NFS или SMB?
В отличие от NFS (сетевой файловой системы) или SMB (протокол сервера сообщений), которые являются протоколами хранения на уровне файлов, iSCSI работает на уровне блоков. Это означает, что он позволяет системе взаимодействовать с удаленным хранилищем так, как если бы это был локальный жесткий диск, предоставляя большую гибкость в управлении хранилищем.
Безопасен ли iSCSI?
Сама по себе iSCSI не включает в себя высокоуровневые функции безопасности. Однако вы можете защитить свои соединения iSCSI, используя такие методы, как IPsec для безопасности сетевого уровня или настройку CHAP (протокол аутентификации с вызовом) для аутентификации.
Каковы соображения по производительности для iSCSI?
Производительность iSCSI зависит от скорости сети, задержки, производительности устройств хранения и конфигурации сети. Обеспечение высокоскоростного сетевого соединения и минимальной задержки имеет решающее значение для оптимальной производительности.
Нужны ли мне специальные аппаратные средства для iSCSI?
Для iSCSI не требуется специальное оборудование. Он может работать на стандартном сетевом оборудовании. Однако для улучшения производительности могут использоваться выделенные HBA (адаптеры шины хоста) iSCSI.
Как мне устранить проблемы с соединением iSCSI на Ubuntu?
Устранение неполадок может включать проверку сетевого подключения, проверку конфигурационных файлов как инициатора, так и цели, просмотр системных журналов и обеспечение правильного экспорта устройств хранения целью. Кроме того, использование таких инструментов, как iscsiadm, может помочь диагностировать и управлять соединениями iSCSI.
Заключение
Вышеуказанное руководство научило вас, как настроить цель и инициатор iSCSI на сервере Ubuntu 22.04. Вы также узнали, как совместно использовать устройство на сервере Цели и получить к нему доступ с инициатора.
Get new posts in your inbox
No spam. Unsubscribe anytime.