LUN (Logical Unit Number) — это логическая единица хранения в СХД, которая предоставляется серверу как отдельный диск. Для операционной системы LUN выглядит как обычный жёсткий диск, хотя физически это набор RAID-массивов, томов или просто область на дисках внутри системы хранения. Понимание устройства LUN критично для построения отказоустойчивой инфраструктуры и правильного распределения ресурсов между серверами.
Каждый LUN получает уникальный идентификатор в рамках СХД. Сервер видит его через протоколы iSCSI, Fibre Channel или SAS как независимое блочное устройство. Администратор может создать несколько LUN на одной дисковой полке, выделить их разным серверам и настроить права доступа на уровне контроллера хранилища.
Физическая архитектура LUN в СХД
Внутри системы хранения данных LUN организован как виртуальный слой над физическими дисками. Контроллер СХД объединяет жёсткие диски в RAID-группы, затем нарезает их на тома (volumes), а уже тома делит на LUN. Такая архитектура позволяет гибко управлять пространством и защитой данных.
Типичная структура выглядит так: физические HDD или SSD накопители объединяются в RAID-массив (например, RAID 6 для критичных данных или RAID 10 для баз с высокими требованиями к скорости). На базе массива создаётся том объёмом, скажем, 10 ТБ. Этот том можно разделить на пять LUN по 2 ТБ каждый и назначить их пяти разным серверам.
| Уровень | Компонент | Пример |
|---|---|---|
| Физический | Диски | 12× HDD SAS 4 ТБ |
| RAID | Массив | RAID 6 (10 дисков данных + 2 чётности) |
| Логический | Том | Volume_01 объёмом 40 ТБ |
| Представление | LUN | LUN 0 — 10 ТБ, LUN 1 — 20 ТБ, LUN 2 — 10 ТБ |
Контроллер хранилища управляет маппингом: какой LUN какому серверу доступен. Это называется LUN masking или zoning (в терминах Fibre Channel). Без правильной настройки сервер либо не увидит нужный LUN, либо получит доступ к чужим данным.
Как LUN выделяется серверу
Процесс выделения LUN серверу состоит из нескольких этапов: создание логической единицы на СХД, настройка прав доступа и подключение со стороны операционной системы. Рассмотрим каждый шаг подробнее.
Создание LUN на стороне хранилища
Администратор заходит в интерфейс управления СХД (веб-консоль или CLI), выбирает дисковую группу или том, указывает размер будущего LUN и тип (thick или thin provisioning). Thick provisioning сразу резервирует всё пространство на дисках, thin выделяет место по мере записи данных. Для production-систем рекомендуется thick, чтобы избежать ситуации переполнения пула.
После создания LUN получает идентификатор — обычно порядковый номер от 0 до 255 (зависит от модели СХД). Этот номер используется для маппинга на сервер. Некоторые системы хранения позволяют задать текстовое имя для удобства (например, «SQL_DB_LUN»).
Настройка прав доступа (LUN Masking)
Чтобы сервер увидел LUN, нужно связать идентификатор сервера (WWN порта HBA для Fibre Channel или IQN для iSCSI) с созданным LUN. В интерфейсе СХД это выглядит как добавление сервера в список разрешённых хостов для конкретного LUN.
Пример для iSCSI: LUN 3 маппится на инициатор с IQN iqn.2024-01.ru.server360:db-server-01. Другие серверы этот LUN не увидят, даже если физически подключены к той же сети хранения. Это базовая мера безопасности, предотвращающая случайное повреждение данных.
Обнаружение LUN на сервере
После настройки со стороны СХД нужно просканировать шину SCSI на сервере. В Linux это команда echo "- - -" > /sys/class/scsi_host/host0/scan (или использование rescan-scsi-bus.sh). В Windows — через диспетчер дисков или PowerShell командлет Update-HostStorageCache.
Операционная система обнаружит новое блочное устройство (например, /dev/sdc в Linux или Disk 3 в Windows). Дальше с ним работают как с обычным диском: создают разделы, форматируют в нужную файловую систему, монтируют.
Типы конфигураций LUN
Выбор конфигурации зависит от задач сервера, требований к производительности и отказоустойчивости. Разберём распространённые сценарии.
Один LUN — один сервер
Самая простая схема: каждый LUN выделяется ровно одному серверу. Подходит для файловых хранилищ, баз данных, виртуальных машин, где нет необходимости в общем доступе. Преимущества: простота управления, отсутствие конфликтов блокировок, легко отследить потребление ресурсов.
Пример: сервер 1С получает LUN 5 размером 500 ГБ под базу данных, сервер резервного копирования — LUN 6 объёмом 10 ТБ. Каждый работает независимо, перераспределить пространство между ними можно только через переконфигурацию на СХД.
Несколько LUN — один сервер
Серверу назначается несколько LUN разного назначения. Типичный случай: LUN для ОС (50 ГБ на быстрых SSD), LUN для данных приложений (1 ТБ на HDD в RAID 10), LUN для логов (200 ГБ на SSD с настроенным износом). Такое разделение повышает производительность и упрощает резервное копирование — можно делать снапшоты LUN независимо.
Важно учитывать ограничения контроллеров: старые HBA могут поддерживать максимум 256 LUN, современные — тысячи. Для виртуализации (VMware, Hyper-V) часто создают по одному LUN на datastore, чтобы распределить нагрузку и избежать конкуренции за IOPS.
Один LUN — несколько серверов (кластерная файловая система)
Сложная конфигурация, требующая специальных файловых систем типа VMFS (VMware), OCFS2 (Oracle) или GFS2 (Red Hat). Один LUN маппится на несколько серверов одновременно, файловая система координирует доступ через механизмы блокировок.
Применяется в кластерах виртуализации (несколько ESXi-хостов работают с одним datastore на LUN) и отказоустойчивых базах данных (Oracle RAC). Критично настроить multipathing и fencing, иначе при отказе одного узла возможно повреждение данных.
Multipathing: несколько путей к одному LUN
Для обеспечения отказоустойчивости серверы подключаются к СХД по нескольким физическим каналам. Например, два HBA-адаптера на сервере, каждый соединён с отдельным контроллером хранилища. Если один путь отказывает, трафик автоматически переключается на резервный.
Операционная система видит один и тот же LUN через несколько путей (в Linux утилита multipath -ll покажет все активные маршруты). Без настройки multipath-драйвера ОС может принять каждый путь за отдельный диск, что приведёт к конфликтам и потере данных. Драйвер (DM-Multipath в Linux, MPIO в Windows) агрегирует пути и предоставляет единое устройство.
Балансировка нагрузки между путями повышает пропускную способность. Режимы: round-robin (чередование запросов), active-passive (один путь активен, остальные в резерве), least-queue (выбор пути с наименьшей очередью). Выбор зависит от возможностей СХД и требований приложения.
Примеры конфигураций для типовых задач
| Задача | Количество LUN | Размер и тип | RAID | Особенности |
|---|---|---|---|---|
| Файловый сервер | 1 | 5 ТБ, thick | RAID 6 | Один LUN на все данные, снапшоты раз в сутки |
| Сервер 1С (100 пользователей) | 2 | ОС: 100 ГБ SSD, БД: 1 ТБ HDD | RAID 1 / RAID 10 | Разделение для ускорения запросов |
| Виртуализация (3 хоста) | 3-5 | По 2 ТБ на datastore | RAID 5 | Общий доступ через VMFS, multipathing обязателен |
| База данных СУБД | 3 | Данные: 2 ТБ, Логи: 500 ГБ, Temp: 200 ГБ | RAID 10 / RAID 1 | Изоляция нагрузки, логи на отдельных дисках |
| Резервное копирование | 1 | 20 ТБ, thin | RAID 6 | Thin provisioning экономит место при редких записях |
Для каждого сценария учитывайте профиль нагрузки: случайные или последовательные операции, преобладание чтения или записи, количество одновременных потоков. Это влияет на выбор типа дисков (HDD vs SSD), уровня RAID и настроек кэша контроллера.
Управление производительностью LUN
Современные СХД позволяют устанавливать QoS-политики на уровне LUN: ограничивать IOPS, пропускную способность или приоритизировать критичные рабочие нагрузки. Это предотвращает ситуацию, когда один сервер с агрессивной нагрузкой (например, процесс архивации) забивает шину и тормозит остальных.
Tiering (многоуровневое хранение) автоматически перемещает горячие данные на быстрые SSD, холодные — на медленные HDD. LUN физически располагается на нескольких типах носителей, контроллер анализирует паттерны доступа и оптимизирует размещение блоков. Для баз данных с частыми запросами это даёт прирост скорости в разы без ручного вмешательства.
Кэширование на стороне СХД ускоряет операции чтения и записи. Контроллер буферизует запросы в оперативной памяти (обычно защищённой батарейками или конденсаторами), подтверждает запись серверу мгновенно, а реальную запись на диски выполняет асинхронно. Для LUN с высокой нагрузкой имеет смысл увеличить объём выделенного кэша.
Снапшоты и репликация LUN
Снапшот (моментальный снимок) LUN — это состояние данных в определённый момент времени. Создаётся мгновенно через механизм copy-on-write: СХД фиксирует структуру блоков, при изменении данных старые версии сохраняются отдельно. Снапшоты используются для быстрого отката (например, перед обновлением приложения) и резервного копирования без остановки сервера.
Важно понимать: снапшоты не заменяют backup. Они хранятся на том же физическом оборудовании, что и исходные данные. Отказ дисковой полки уничтожит и LUN, и все его снапшоты. Поэтому критичные системы требуют репликации на второе хранилище.
Репликация LUN бывает синхронной и асинхронной. Синхронная подтверждает запись только после сохранения на обоих СХД — нулевая потеря данных (RPO=0), но требует быстрого канала связи между площадками и добавляет задержку. Асинхронная копирует данные с интервалом (например, раз в 15 минут) — меньше нагрузка на сеть, но при аварии потеряются изменения за последний интервал.
Особенности работы с LUN в разных протоколах
iSCSI
LUN передаётся по TCP/IP сети. Требуется выделенная сеть хранения (Storage Network) с пропускной способностью минимум 10 Гбит/с для production. Важна настройка jumbo frames (MTU 9000) для снижения overhead и правильная конфигурация VLAN для изоляции трафика от основной сети.
Каждый LUN получает target IQN (например, iqn.2024-01.ru.server360.storage:lun5), сервер подключается как инициатор. Поддержка CHAP-аутентификации защищает от несанкционированного доступа. Для multipathing нужно настроить несколько сетевых интерфейсов на сервере и несколько IP-адресов на контроллерах СХД.
Fibre Channel
LUN виден через коммутаторы FC (SAN Fabric). Выше производительность и надёжность по сравнению с iSCSI, но дороже оборудование. Требуются HBA-адаптеры на серверах, FC-коммутаторы и соответствующие порты на СХД.
Zoning на уровне коммутатора определяет, какие серверы видят какие LUN. Обычно настраивают WWN-based zoning (по уникальным идентификаторам HBA), чтобы при замене кабеля конфигурация не сбивалась. Multipathing реализуется через подключение сервера к двум коммутаторам (Fabric A и Fabric B).
SAS Direct Attach
LUN на внешней дисковой полке подключается напрямую к серверу по SAS-кабелю. Нет сетевой инфраструктуры — меньше точек отказа, минимальная задержка. Ограничение: один сервер (или два в кластерной конфигурации), расстояние до 10 метров.
Применяется для небольших инсталляций или специализированных задач (например, видеомонтаж с требованиями к минимальной latency). Полка с дисками управляется контроллером на сервере, логика LUN реализуется программно или через RAID-контроллер.
Ошибки при работе с LUN и их решение
Сервер не видит LUN после создания. Проверьте LUN masking: убедитесь, что WWN или IQN сервера добавлен в список разрешённых инициаторов на СХД. Выполните rescan SCSI-шины на сервере. Для iSCSI проверьте доступность target через ping и iscsiadm.
LUN виден, но недоступен для записи. Возможно, включён режим read-only на уровне СХД (например, для снапшота). Проверьте права доступа в консоли управления хранилищем. В кластерной конфигурации убедитесь, что другой узел не захватил эксклюзивную блокировку.
Низкая производительность. Проанализируйте, на каком уровне узкое место: диски, контроллер СХД, сетевые адаптеры, настройки multipath. Утилиты iostat (Linux) или Performance Monitor (Windows) покажут загрузку дисковой подсистемы. Если контроллер перегружен, распределите нагрузку на несколько LUN или настройте QoS.
LUN внезапно отключился. Частая причина — отказ одного из путей при отсутствии multipathing или его неправильной настройке. Проверьте логи драйвера multipath, состояние кабелей, статус портов на коммутаторах FC или сетевых адаптерах.
Переполнение LUN при thin provisioning. Thin LUN выделяет место по требованию, но если пул исчерпан, запись блокируется. Мониторьте утилизацию storage pool и настройте алерты при превышении 80%. Для критичных систем используйте thick provisioning или гарантированные резервы.
Мониторинг и обслуживание LUN
Регулярный мониторинг параметров LUN предотвращает простои и потерю данных. Отслеживайте: утилизацию пространства (свободно/занято), количество IOPS и их тип (чтение/запись), среднюю задержку (latency), количество ошибок ввода-вывода, состояние путей multipath.
Современные СХД предоставляют API для сбора метрик (SNMP, REST). Интегрируйте мониторинг в системы типа Zabbix, Nagios или Prometheus. Настройте триггеры: при latency выше 20 мс — предупреждение, выше 50 мс — критический алерт.
Периодически проверяйте логи контроллера хранилища на предмет ошибок чтения/записи. Рост числа переназначенных секторов (reallocated sectors) на дисках внутри RAID-группы, на которой лежит LUN, сигнализирует о скорой деградации диска. Замените его до отказа.
Планируйте расширение LUN заранее. Большинство СХД позволяют увеличить размер LUN «на лету» без остановки сервера. После расширения на стороне хранилища нужно выполнить rescan на сервере и расширить файловую систему (для ext4 — resize2fs, для NTFS — утилита diskpart или GUI-инструмент).
Практические рекомендации по планированию LUN
Не создавайте один огромный LUN на весь объём СХД. Разделите на несколько LUN по задачам и серверам — это упростит управление, резервное копирование и диагностику проблем. Типовое правило: один LUN — одна рабочая нагрузка (база данных, файлы, виртуальные машины).
Учитывайте выравнивание (alignment) при создании разделов на LUN. Неправильное выравнивание снижает производительность в разы, особенно на SSD. Современные ОС (начиная с Windows Server 2008 R2 и Linux с ядром 2.6.31) выравнивают разделы автоматически, но при миграции со старых систем проверьте вручную.
Для критичных приложений резервируйте 10-15% пространства LUN. Многие файловые системы деградируют при заполнении выше 90%, а базы данных требуют места для временных таблиц и логов транзакций. Алерты ставьте на уровне 80% заполнения.
Документируйте конфигурацию LUN: какой LUN какому серверу назначен, на каком томе и RAID-группе физически располагается, какие снапшоты настроены, параметры репликации. При инциденте это сэкономит часы на поиск информации. Храните документацию в системе управления конфигурациями или хотя бы в защищённой wiki.
Миграция данных между LUN
Задача миграции возникает при апгрейде оборудования, реорганизации хранилища или переносе на новые диски. Способы зависят от доступности простоя и объёма данных.
Миграция на уровне СХД (Storage-based migration). Некоторые системы хранения умеют мигрировать данные между LUN прозрачно для сервера. Создаётся новый LUN на целевых дисках, запускается процесс копирования, после завершения старый LUN отключается. Сервер продолжает работать, видя один и тот же идентификатор LUN.
Миграция на уровне ОС. Подключаете к серверу второй LUN, копируете данные утилитами типа rsync (Linux) или robocopy (Windows), переключаете приложение на новый LUN. Требует остановки приложения на время финальной синхронизации, зато универсально и работает с любым хранилищем.
Миграция через snapshot и репликацию. Создаёте снапшот исходного LUN, восстанавливаете его на новый LUN, настраиваете репликацию изменений. После синхронизации переключаете сервер. Минимизирует downtime, но требует поддержки со стороны СХД.
Безопасность и шифрование LUN
Шифрование защищает данные при краже дисков или несанкционированном доступе к хранилищу. Реализуется на уровне СХД (контроллер шифрует данные перед записью на диски) или на уровне сервера (ОС или приложение шифрует перед отправкой в LUN).
Шифрование на СХД удобнее: настраивается один раз, прозрачно для сервера, ключи управляются централизованно через Key Management Server (KMS). Производительность практически не падает — современные контроллеры имеют аппаратные крипто-ускорители. Минус: если СХД скомпрометирована, данные доступны.
Шифрование на сервере (BitLocker для Windows, LUKS для Linux) даёт контроль на уровне ОС. Даже при доступе к LUN извне данные нечитаемы без ключа. Но усложняет восстановление — если потерян ключ, данные утрачены безвозвратно. Также снижает производительность на 5-15% из-за overhead на CPU.
Для регулируемых индустрий (финансы, медицина) шифрование обязательно. Убедитесь, что решение сертифицировано по нужным стандартам (FIPS 140-2, ФСБ России для отечественных систем).
Интеграция LUN с системами виртуализации
В виртуализации LUN используется как datastore (хранилище виртуальных дисков). VMware ESXi форматирует LUN в VMFS, Hyper-V — в ReFS или NTFS (для Cluster Shared Volume), KVM — обычно работает с raw device или LVM.
Рекомендуется выделять отдельные LUN под разные типы нагрузок: один LUN для production-виртуалок, другой для тестовых, третий для шаблонов. Это упрощает настройку QoS и резервное копирование. Избегайте огромных LUN (больше 10 ТБ для VMFS) — при повреждении метаданных рискуете потерять все VM на datastore.
Функции СХД типа VAAI (VMware vStorage APIs for Array Integration) снижают нагрузку на хосты виртуализации. Операции клонирования VM, создания снапшотов и обнуления дисков выполняются на контроллере хранилища, а не гоняют данные через сеть и серверы.
Частые вопросы о LUN в СХД
Можно ли изменить размер LUN без потери данных?
Да, большинство современных СХД позволяют расширить LUN онлайн. После расширения на стороне хранилища выполните rescan SCSI-шины на сервере и увеличьте размер раздела и файловой системы штатными средствами ОС. Уменьшение LUN обычно не поддерживается или требует пересоздания с миграцией данных.
Чем отличается thick provisioning от thin для LUN?
Thick provisioning резервирует всё заявленное пространство на дисках сразу при создании LUN. Thin provisioning выделяет место по мере реальной записи данных. Thick гарантирует доступность места, но расходует ресурсы СХД; thin экономит пространство, позволяет overprovisioning (сумма размеров LUN больше физической ёмкости), но требует контроля утилизации пула.
Сколько LUN можно создать на одной СХД?
Зависит от модели хранилища. Начальные системы поддерживают десятки LUN, корпоративные — тысячи. Ограничение может быть на уровне контроллера, лицензии или протокола (Fibre Channel в стандарте FC-AL ограничен 126 устройствами на петлю, FC-SW снимает это ограничение). Уточняйте в документации конкретной СХД.
Нужен ли multipathing для одного кабеля между сервером и СХД?
Multipathing при одном физическом подключении бесполезен — нет резервного пути. Для отказоустойчивости нужно минимум два независимых канала: два HBA на сервере, два контроллера на СХД, два коммутатора (для FC) или две сети (для iSCSI). Только тогда multipath-драйвер сможет переключиться при отказе одного из компонентов.
Понимание архитектуры и управления LUN — базовый навык для администраторов инфраструктуры. Правильная конфигурация обеспечивает производительность, отказоустойчивость и безопасность данных. Учитывайте специфику приложений, планируйте ресурсы с запасом, мониторьте состояние и документируйте изменения. Для подбора оборудования под задачи хранения данных воспользуйтесь конфигуратором серверов или изучите готовые решения в каталоге готовых сборок.