Добавить диск в TrueNAS: пошаговая инструкция по расширению хранилища | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Как добавить диск в TrueNAS: полное руководство для расширения пула

15 февраля 2026 9 мин. чтения #core #scale #truenas #zfs #диск #накопитель #пул #расширение #хранилище
Timeweb Cloud — облако для проектов
Серверы, базы данных, Kubernetes, S3 и Terraform. Запускайте быстрее.
Перейти в Timeweb Cloud

Представь, что твой сервер TrueNAS почти заполнен, а проекты требуют больше места. Или ты только что установил новый SSD и хочешь добавить его в систему. В этой статье я, как Senior DevOps, разберу с тобой все способы, как добавить диск в TrueNAS — от простого расширения существующего пула до создания нового и настройки через CLI. Мы затронем как TrueNAS CORE, так и SCALE.

Подготовка: что нужно знать перед добавлением диска

Прежде чем физически вставлять диск, важно понять архитектуру ZFS и ограничения. TrueNAS использует ZFS пулы (pools), которые состоят из виртуальных устройств (vdevs). Vdev, в свою очередь, создается из физических дисков. Ключевой момент: расширяется пул, а не отдельный vdev.

Важно: Ты не можешь просто добавить один диск в существующий vdev типа RAIDZ1 (аналог RAID 5). Можно либо добавить новый vdev (из одного или нескольких дисков) к пулу, либо заменить все диски в vdev на более крупные для расширения.

Сценарии добавления диска

  • Расширение пула (добавление нового vdev): Самый частый сценарий. Добавляешь новый vdev (например, из одного диска в режиме stripe или из нескольких в RAID) к существующему пулу.
  • Создание нового пула: Если нужна изоляция данных (например, для быстрых VM или отдельного проекта).
  • Замена диска на более емкий: Постепенная замена всех дисков в vdev для увеличения общего объема.
  • Добавление кэша (L2ARC) или лога (SLOG): Специальные диски (обычно SSD) для ускорения операций.

Шаг 1: Физическое подключение и обнаружение диска

Давай начнем с основ. Выключи сервер, подключи новый диск (SATA, SAS, NVMe) и включи его обратно.

Проверка, видит ли TrueNAS диск

Зайди в веб-интерфейс TrueNAS (обычно по IP адресу сервера).

  1. Перейди в Storage → Disks.
  2. В списке должен появиться новый диск. Обрати внимание на его идентификатор (например, ada2 или nvme0n1).
  3. Если диска нет, проверь подключение или используй CLI.
shell
# Проверить список дисков через командную строку (Shell)
# Подключись к TrueNAS по SSH или через консоль

dmesg | grep -i "sd\|nvme\|ada"  # Последние записи о дисках

# Или используй утилиту camcontrol
camcontrol devlist

# В TrueNAS SCALE (на базе Linux) можно использовать lsblk
lsblk -o name,size,model,serial,tran
Внимание: Перед использованием диск нужно отформатировать (инициализировать). В интерфейсе Storage → Disks нажми на новый диск и выбери «Wipe». Для безопасного использования выбери «Quick» (если диск новый).

Шаг 2: Добавление диска в существующий пул (расширение хранилища)

Это основной метод увеличения общего объема. Мы добавим новый vdev к пулу. Представь, у тебя есть пул tank с одним vdev (mirror из 2 дисков). Мы добавим к нему еще один vdev.

Через веб-интерфейс (рекомендуется)

  1. Иди в Storage → Pools.
  2. Найди нужный пул, нажми на три точки (⋮) и выбери «Expand Pool» или «Manage Devices» (в зависимости от версии).
  3. Нажми «Add Vdev». Теперь нужно выбрать тип нового vdev и диски для него.

Типы Vdev для добавления

Тип Мин. дисков Отказоустойчивость Использование
Stripe (одиночный диск) 1 Нет. Сбой диска = потеря данных всего пула. Не рекомендуется для данных. Можно для временного хранилища.
Mirror (зеркало) 2 Высокая. Выдержит отказ одного диска в каждом mirror. Для важных данных, где нужна скорость и надежность.
RAIDZ1 (аналог RAID 5) 3+ Один диск в vdev. Баланс объема и надежности.
RAIDZ2 4+ Два диска в vdev. Для больших массивов, где важна надежность.

4. Выбери тип (например, Mirror), если добавляешь два диска. 5. В поле «Available Disks» перемести нужные диски в «Vdev Disks». 6. Нажми «Add Vdev», затем «Expand Pool». Начнется процесс расширения, данные останутся целы.

Совет ментора: Для максимальной надежности добавляй vdev того же типа, что и существующие (например, все mirror). Но ZFS позволяет миксовать типы vdev в одном пуле. Помни: самый ненадежный vdev определяет надежность всего пула.

Через командную строку (CLI)

Иногда интерфейс недоступен или нужна автоматизация. Используй команду zpool add.

bash
# Сначала посмотрим структуру пула
zpool status tank

# Добавим новый vdev типа single disk (stripe) к пулу 'tank'
# ВАЖНО: Это рискованно, так как отказ этого диска разрушит весь пул!
zpool add tank /dev/ada2

# Безопаснее добавить vdev типа mirror из двух новых дисков
zpool add tank mirror /dev/ada2 /dev/ada3

# Добавить vdev типа RAIDZ1 из трех дисков
zpool add tank raidz1 /dev/ada2 /dev/ada3 /dev/ada4

# Проверим результат
zpool status tank

Шаг 3: Создание нового пула с добавленным диском

Если хочешь изолированное хранилище, создай новый пул. Иди в Storage → Pools → Add.

  1. Нажми «Create Pool».
  2. Присвой имя (например, fast-ssd).
  3. Перетащи диски из «Available Disks» в область конфигурации.
  4. Выбери тип vdev (Data Vdev Type) для этих дисков.
  5. Настрой остальные параметры (шифрование, резервное копирование метаданных).
  6. Нажми «Create». Пул будет отформатирован и смонтирован.

Шаг 4: Добавление диска кэша (L2ARC) или лога (SLOG)

Это специальные роли для ускорения. L2ARC — кэш чтения (часто используемые данные). SLOG — журнал синхронных записей (ускоряет NFS, iSCSI, базы данных). Для них лучше использовать быстрые NVMe SSD.

bash
# Добавить SSD в качестве кэша (L2ARC) к пулу 'tank'
zpool add tank cache /dev/nvme0n1p1

# Добавить SSD в качестве журнала синхронных записей (SLOG)
# Рекомендуется использовать зеркало из двух дисков для надежности
zpool add tank log mirror /dev/nvme0n1p2 /dev/nvme0n1p3

# Проверить, что все добавлено
zpool status tank
Предупреждение: L2ARC использует оперативную память для своей индексной таблицы. Слишком большой L2ARC (например, >200GB при 32GB RAM) может вытеснить полезные данные из ARC и замедлить систему.

Частые проблемы и их решение

Диск не отображается в интерфейсе

  • Проблема: Физически подключенный диск не виден в Storage → Disks.
  • Решение:
    1. Проверь кабели и питание.
    2. В CLI выполни dmesg | tail — возможно, драйвер не загрузился.
    3. Для SAS-контроллера убедись, что он в режиме IT (Initiator Target), а не RAID.

Ошибка "one or more vdevs refer to the same disk"

Ты пытаешься добавить диск, который уже используется в системе. Убедись, что диск очищен (wiped) и не входит в другой пул. Используй команду, чтобы увидеть, где используется диск:

bash
# Найти, к какому пулу привязан диск /dev/ada2
zpool status | grep -B5 -A5 ada2

После добавления диска свободное место не увеличилось

ZFS распределяет данные по всем vdev пропорционально (подобное RAID 0). Новое место станет доступно сразу, но чтобы его использовать, нужно, чтобы данные записывались. Проверь команду:

bash
zpool list -v tank

Ты увидишь размер каждого vdev. Если добавил mirror или RAIDZ, учти, что часть объема уйдет на избыточность.

Часто задаваемые вопросы (FAQ)

Можно ли добавить один диск к существующему vdev RAIDZ1?

Нет, это невозможно в ZFS. Архитектура ZFS не позволяет добавлять диски в существующий vdev после его создания. Можно только: 1) Добавить новый vdev к пулу. 2) Заменить все диски в vdev на диски большего объема и затем расширить пул.

Какой тип vdev лучше добавить для расширения?

Если в пуле уже есть vdev типа mirror, добавляй также mirror — это обеспечит равномерную надежность. Если в пуле RAIDZ2, можно добавить еще один RAIDZ2. Добавление одиночного диска (stripe) резко снижает отказоустойчивость всего пула.

Нужно ли останавливать сервисы или прерывать работу при добавлении диска?

Нет. Добавление нового vdev — операция «на лету». Существующие данные не затрагиваются, сервисы (SMB, NFS, Docker) продолжают работать. Однако при физической установке диска в «горячем» режиме убедись, что твоя система и контроллер поддерживают hot-plug.

Как добавить диск, если слоты SATA/SAS закончились?

Потребуется расширить аппаратную часть:

  1. Установить HBA/RAID-контроллер в режиме IT (например, LSI 9211-8i).
  2. Использовать внешнюю JBOD-стойку, подключенную по SAS.
  3. Замена дисков на более емкие (замена по одному с последующим resilver).

Почему после добавления диска ZFS показывает состояние "DEGRADED"?

Это нормально на время операции «resilvering» (перераспределение данных). Проверь прогресс командой zpool status. После завершения статус сменится на ONLINE. Если статус не меняется, проверь SMART-статус нового диска.

Заключение и лучшие практики

Давай резюмируем, как правильно добавить диск в TrueNAS:

  1. Планируй архитектуру заранее: Продумай, будешь ли ты расширять пул или создавать новый. Помни о правилах отказоустойчивости vdev.
  2. Используй одинаковые vdev в одном пуле: Для предсказуемой производительности и надежности.
  3. Всегда инициализируй (wipe) новые диски перед добавлением.
  4. Для критичных данных избегай single-disk vdev. Используй минимум mirror.
  5. Мониторь состояние пула после добавления: Выполни zpool status и проверь SMART новых дисков через интерфейс.
  6. Документируй изменения: Запиши, какие диски, куда и когда были добавлены. Это спасет при диагностике.

Теперь ты знаешь не только как добавить диск в TrueNAS через веб-интерфейс, но и как делать это через CLI, понимаешь разницу между расширением пула и созданием vdev, а также можешь решать типичные проблемы. Это фундаментальный навык для любого админа систем хранения. Экспериментируй на тестовом стенде, прежде чем вносить изменения в боевую систему. Удачи в масштабировании твоего хранилища!

Поделиться:
Timeweb Cloud
Лучшие цены IaaS, 120 000+ клиентов, Премия Рунета.
Запустить
Сохранить гайд? В закладки браузера