TrueNAS виртуальные машины: настройка KVM в Core и Scale | AdminWiki

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

07 января 2026 6 мин. чтения #centos #homelab #kvm #truenas #truenas core #truenas scale #virtualization #виртуальные машины

Представь, что у тебя есть мощный сервер с TrueNAS, который хранит все твои данные. Но что, если на этом же железе можно запустить веб-сервер, базу данных или тестовый стенд? Именно для этого существуют виртуальные машины в TrueNAS. Давай разберем, как превратить твой NAS в полноценную виртуализационную платформу.

TrueNAS Core vs Scale: разные подходы к виртуализации

Первое, что нужно понять — TrueNAS Core и TrueNAS Scale используют разные технологии виртуализации. Это критически важно при выборе дистрибутива под твои задачи.

Параметр TrueNAS Core TrueNAS Scale
Технология bhyve (FreeBSD) KVM (Linux)
Поддержка ОС Ограниченная (FreeBSD, Linux) Широкая (Linux, Windows)
Производительность Хорошая для FreeBSD Отличная для Linux
Графический интерфейс Базовый Продвинутый (на основе libvirt)
Совет ментора: Если планируешь запускать преимущественно Linux-системы (включая CentOS) или Windows — выбирай TrueNAS Scale. Для FreeBSD-окружения подойдет Core.

Настройка виртуальных машин в TrueNAS Scale

В TrueNAS Scale виртуальные машины работают на базе KVM — промышленного стандарта виртуализации. Интерфейс интуитивный, но есть нюансы.

Шаг 1: Подготовка хранилища

Перед созданием ВМ нужно подготовить ZVOL — блочное устройство в ZFS, которое будет использоваться как диск виртуальной машины.

bash
# Создание ZVOL через CLI (альтернатива GUI)
zfs create -V 20G tank/vm-disks/centos-vm
zfs set volblocksize=64k tank/vm-disks/centos-vm
Важно: Для лучшей производительности SSD установи volblocksize=64k. Для HDD можно оставить 128k.

Шаг 2: Создание виртуальной машины CentOS

Давай создадим виртуальную машину CentOS — популярный выбор для серверных задач.

  • В веб-интерфейсе переходим в "Virtual Machines" → "Add"
  • Указываем имя: centos-server
  • Описание: "Production web server"
  • Выбираем тип ОС: Linux
  • Версия: CentOS 8/9 (в зависимости от образа)

Шаг 3: Конфигурация ресурсов

Критически важный этап — распределение ресурсов. Вот оптимальные настройки для средней нагрузки:

config
{
  "vcpus": 4,           // Ядра CPU
  "memory": 8192,       // 8 GB RAM
  "bootloader": "UEFI", // Для современных ОС
  "autostart": true,    // Автозапуск при старте TrueNAS
  "devices": [
    {
      "type": "disk",
      "path": "/dev/zvol/tank/vm-disks/centos-vm",
      "size": "20G"
    },
    {
      "type": "cdrom",
      "path": "/mnt/tank/isos/CentOS-9-stream.iso"
    }
  ]
}

Шаг 4: Настройка сети

TrueNAS Scale предлагает несколько вариантов сетевой конфигурации:

  • Bridge Mode — ВМ получает IP из той же сети, что и хост
  • NAT — ВМ в изолированной сети с выходом через NAT
  • MAC-адрес — генерируем или указываем вручную
bash
# Просмотр доступных сетевых интерфейсов
virsh net-list --all

# Информация о bridge-интерфейсе
virsh net-info default

Особенности TrueNAS Core виртуальных машин

В TrueNAS Core виртуальная машина работает на bhyve. Интерфейс проще, но функционала достаточно для базовых задач.

Создание ВМ через веб-интерфейс

  1. Переходим в "Virtual Machines" → "Add"
  2. Выбираем тип гостевой ОС (поддерживаются не все дистрибутивы)
  3. Указываем размер диска — создается автоматически
  4. Настраиваем CPU и RAM (осторожно с oversubscription!)
  5. Монтируем ISO-образ для установки
Ограничение: TrueNAS Core может иметь проблемы с некоторыми образами Linux. Всегда проверяйте совместимость в документации.

Конфигурация через CLI (продвинутый уровень)

bash
# Создание ВМ через bhyve CLI
bhyveload -m 4G -d /mnt/tank/vm/centos.img centos-vm
bhyve -c 4 -m 4G -H -A -I \
  -s 0,hostbridge \
  -s 1,virtio-blk,/mnt/tank/vm/centos.img \
  -s 2,virtio-net,tap0 \
  -s 3,fbuf,tcp=0.0.0.0:5900,w=1024,h=768 \
  -s 4,xhci,tablet \
  -l com1,stdio \
  centos-vm

Оптимизация производительности виртуальных машин

Чтобы твои виртуальные машины в TrueNAS летали, нужно правильно настроить ZFS и параметры KVM/bhyve.

ZFS настройки для ВМ

  • recordsize: 64K для ZVOL под ВМ
  • primarycache: metadata или all (в зависимости от RAM)
  • logbias: throughput для HDD, latency для SSD
  • compression: lz4 (минимум нагрузки на CPU)
bash
# Оптимальные настройки ZFS для пула с ВМ
zfs set recordsize=64K tank/vm-disks
zfs set primarycache=all tank/vm-disks
zfs set compression=lz4 tank/vm-disks
zfs set atime=off tank/vm-disks  # Отключаем atime для производительности

Параметры CPU и памяти

Для KVM в TrueNAS Scale:

xml


  
  
  




  
    
  

Бэкап и миграция виртуальных машин

Одна из сильных сторон TrueNAS — интеграция с ZFS снапшотами. Используй это для бэкапа ВМ.

bash
# Создание снапшота ZVOL с ВМ
zfs snapshot tank/vm-disks/centos-vm@backup-$(date +%Y%m%d)

# Восстановление из снапшота (осторожно!)
zfs rollback tank/vm-disks/centos-vm@backup-20240115

# Клонирование ВМ для тестирования
zfs clone tank/vm-disks/centos-vm@backup-20240115 tank/vm-disks/centos-test
Профессиональный совет: Настрой автоматические снапшоты через Tasks → Periodic Snapshot Tasks. Для ВМ достаточно ежедневных снапшотов с хранением 7-14 дней.

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

ВМ не запускается

Проверь:

  • Достаточно ли свободной памяти на хосте
  • Не конфликтуют ли MAC-адреса
  • Корректность ISO-образа (проверь checksum)
  • Логи через journalctl -u libvirtd (для Scale)

Плохая производительность диска

Решение:

bash
# Проверка производительности ZVOL
fio --name=test --ioengine=libaio --rw=randread \
  --bs=64k --numjobs=4 --size=1G --runtime=60 \
  --filename=/dev/zvol/tank/vm-disks/centos-vm

# Если медленно — проверь фрагментацию
zpool list -v tank

Проблемы с сетью

В TrueNAS Scale:

bash
# Перезапуск сетевого стека libvirt
systemctl restart libvirtd

# Проверка bridge-интерфейса
brctl show vm-bridge

# Просмотр правил iptables/nftables
iptables -L -n -v | grep virbr
Поделиться:
Сохранить гайд? В закладки браузера