iSCSI превращает стандартную Ethernet-сеть в сеть хранения данных (SAN). Сервер-инициатор отправляет SCSI-команды (чтение, запись блоков данных) через TCP/IP на iSCSI-таргет (сервер хранения). Операционная система видит удалённый LUN (Logical Unit Number) как обычный блочный диск — можно создавать разделы, файловые системы, использовать как диск для VM.
Как работает
Компоненты iSCSI: инициатор (iSCSI initiator) — программный клиент (iscsid в Linux) или аппаратный HBA на стороне сервера; таргет (iSCSI target) — сервер хранения (TrueNAS, NetApp, EMC); LUN — логическое устройство, представленное инициатору. Обнаружение таргетов: через iSNS (iSCSI Naming Service) или вручную по IP:порту (3260/tcp).
Производительность iSCSI зависит от сети: на 10GbE достигается 1–1,2 ГБ/с при задержке 0,1–0,3 мс (против Fibre Channel 0,05–0,1 мс). Для production-баз данных рекомендуется выделенная сеть iSCSI или VLAN — смешивание с пользовательским трафиком увеличивает задержку. iSCSI Offload (TOE) выгружает TCP-обработку на специальный сетевой адаптер.
История
Стандарт iSCSI разработан IBM и Cisco, утверждён IETF в 2003 году как RFC 3720. Появился как дешёвая альтернатива Fibre Channel (FC) — FC требует специальных кабелей, HBA и коммутаторов, тогда как iSCSI работает на обычном Ethernet. К 2008–2010 годам 10GbE сделал iSCSI конкурентоспособным с FC по скорости. RFC 7143 (2014) обновил стандарт iSCSI.
iSCSI vs Fibre Channel vs NFS
| Параметр | iSCSI | Fibre Channel | NFS |
|---|---|---|---|
| Сеть | Ethernet | FC-коммутатор | Ethernet |
| Тип доступа | Блочный | Блочный | Файловый |
| Стоимость | Низкая | Высокая | Низкая |
На что обращать внимание
iSCSI без защиты — любой хост в сети может подключиться к таргету. Для защиты используют CHAP-аутентификацию, VLAN-изоляцию или iptables-фильтрацию по IP. В live migration VM iSCSI-LUN должен быть доступен на обоих хостах — убедитесь, что multipathing настроен.
Как работает iSCSI
iSCSI инкапсулирует команды SCSI в TCP/IP-пакеты. Initiator (клиент) обнаруживает Target (хранилище) через iSCSI Discovery (через SendTargets или iSNS). После аутентификации (CHAP или Kerberos) initiator монтирует LUN (Logical Unit Number) как локальный блочный диск. Операционная система видит iSCSI-том так же, как обычный диск — поверх него создаётся файловая система или раздел для виртуальных машин. Производительность iSCSI по 10 GbE достигает 1 ГБ/с при задержке 0.1--0.2 мс. Для критичных систем используют Fibre Channel — выделенная сеть хранения без Ethernet-overhead.
iSCSI в хостинге
Хостеры используют iSCSI для предоставления блочного хранилища VPS: виртуальный диск вашего VPS физически хранится на SAN-массиве и подключается к гипервизору через iSCSI. Это позволяет хостерам делать Live migration ВМ между физическими серверами без копирования данных. При сбое гипервизора ВМ перезапускается на другом узле с тем же диском.
История iSCSI
iSCSI разработан IBM и Cisco, стандарт RFC 3720 принят в 2004 году. До iSCSI блочное хранилище требовало дорогой инфраструктуры Fibre Channel. iSCSI демократизировал SAN, позволив использовать обычную Ethernet-инфраструктуру. С распространением 10 GbE в 2010--2015 годах iSCSI стал стандартом для среднего бизнеса и хостинг-провайдеров.