TrueNAS Virtual Machine: Создание, настройка, оптимизация ВМ | Гайд 2024 | AdminWiki

TrueNAS Virtual Machine: Полное руководство по созданию и настройке ВМ

30 января 2026 6 мин. чтения #bhyve #hypervisor #truenas #virtual machine #vm #zfs #виртуальная машина #настройка

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

Что такое Virtual Machine в TrueNAS?

TrueNAS использует гипервизор bhyve (BSD Hypervisor) для создания и управления виртуальными машинами. Это легковесное, но мощное решение, интегрированное прямо в веб-интерфейс TrueNAS. В отличие от отдельных систем виртуализации, здесь всё управляется централизованно: и твои ZFS пулы, и ВМ.

Важно: Функционал virtual machine доступен в TrueNAS CORE (на базе FreeBSD) и TrueNAS SCALE (на базе Linux). В SCALE используется KVM, что открывает больше возможностей для совместимости с гостевыми ОС.

Подготовка к созданию Virtual Machine

Перед созданием первой ВМ нужно выполнить несколько важных шагов:

  • Проверь поддержку виртуализации в CPU: Убедись, что в BIOS/UEFI включены технологии Intel VT-x/AMD-V.
  • Выдели ресурсы: Реши, сколько ядер CPU, оперативной памяти и дискового пространства ты готов выделить для ВМ.
  • Подготовь установочный образ: ISO-файл с операционной системой (Ubuntu, Windows, Alpine Linux и др.).
  • Настрой сетевой мост: Для доступа ВМ к сети.

Создание сетевого моста (Bridge)

Виртуальной машине нужен доступ к сети. Создадим сетевой мост в интерфейсе TrueNAS:

  1. Перейди в Network → Interfaces.
  2. Нажми ADD и выбери тип Bridge.
  3. Укажи имя (например, br0) и выбери физический интерфейс (например, igb0).
  4. Сохрани настройки.
bash
# Проверка созданного моста через CLI TrueNAS
ifconfig | grep bridge
# Пример вывода: bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

Пошаговое создание Virtual Machine в TrueNAS

Теперь перейдем к самому интересному — созданию виртуальной машины. Представь, что мы разворачиваем легковесный веб-сервер на Alpine Linux.

Шаг 1: Добавление ВМ через веб-интерфейс

  1. Перейди в раздел Virtual Machines.
  2. Нажми кнопку ADD.
  3. Заполни основные параметры:
    • Name: alpine-web
    • Description: Легковесный веб-сервер
    • Virtual CPUs: 2 ядра
    • Memory Size: 1024 MiB

Шаг 2: Настройка загрузочного устройства

Здесь мы укажем ISO-образ для установки системы:

config
Boot Method: UEFI
# или Legacy для старых ОС

Devices:
  - Type: CD-ROM
    Path: /mnt/tank/iso/alpine-virt-3.18.4-x86_64.iso
    # Путь к ISO в твоем ZFS пуле

Шаг 3: Настройка диска виртуальной машины

Создадим виртуальный диск на ZFS. Это может быть файл (ZVOL) или отдельный dataset.

config
Disk Type: AHCI
# или VirtIO для лучшей производительности

Create New Image: Yes
Location: /mnt/tank/vm/
Size: 10 GiB
# ZFS автоматически создаст ZVOL
Внимание! Для гостевых ОС Linux всегда выбирай VirtIO в качестве типа диска и сетевого интерфейса. Это даст значительный прирост производительности по сравнению с эмуляцией реального оборудования.

Шаг 4: Настройка сети для virtual machine

Привяжем ВМ к созданному ранее сетевому мосту:

config
Adapter Type: VirtIO
  # Максимальная производительность
Attach NIC: br0
  # Имя нашего моста
MAC Address: (оставь auto или задай вручную)

Шаг 5: Запуск и установка ОС

После сохранения конфигурации:

  1. В списке ВМ найди свою alpine-web.
  2. Нажми кнопку >_ (Launch VNC) для доступа к консоли.
  3. Запусти ВМ кнопкой PLAY.
  4. Следуй стандартной установке Alpine Linux через VNC.

Оптимизация производительности Virtual Machine

Чтобы твои виртуальные машины работали максимально эффективно, используй эти продвинутые настройки:

Параметр Рекомендация Эффект
CPU Pinning Закрепи ядра CPU за ВМ Уменьшает contention, улучшает отзывчивость
VirtIO драйверы Используй в гостевой ОС +30-50% к скорости диска и сети
ZFS настройки recordsize=16K для ВМ дисков Оптимизация под нагрузку случайного чтения/записи
Memory Ballooning Включи в настройках ВМ Динамическое перераспределение RAM между ВМ
bash
# Настройка ZFS dataset под ВМ диски (через CLI)
zfs create tank/vm-disks
zfs set recordsize=16K tank/vm-disks
zfs set primarycache=metadata tank/vm-disks
# primarycache=metadata экономит RAM, т.к. данные ВМ и так кэшируются в гостевой ОС

Управление Virtual Machine через CLI

Иногда удобнее работать через командную строку. Основные команды для управления ВМ в TrueNAS CORE (bhyve):

bash
# Список всех ВМ
midclt call vm.query

# Запуск ВМ по ID
midclt call vm.start 1

# Остановка ВМ
midclt call vm.stop 1

# Получение статуса ВМ
midclt call vm.status 1

# Изменение параметров ВМ
midclt call vm.update 1 '{"memory": 2048}'

Бэкап и миграция Virtual Machine

Одно из главных преимуществ использования TrueNAS для виртуализации — интеграция с ZFS. Бэкап ВМ становится тривиальной задачей:

  1. Снимки (Snapshots): Создай снапшот dataset с дисками ВМ перед обновлением.
  2. Клонирование: Клонируй снапшот для тестирования.
  3. Репликация: Настрой репликацию dataset на другой TrueNAS сервер для аварийного восстановления.
bash
# Создание снапшота диска ВМ
zfs snapshot tank/vm-disks/alpine-web@before-update

# Клонирование для тестовой среды
zfs clone tank/vm-disks/alpine-web@before-update tank/test-vm/disk

# Восстановление из снапшота (если что-то пошло не так)
zfs rollback tank/vm-disks/alpine-web@before-update

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

Проблема: ВМ не запускается, ошибка "Cannot allocate memory".
Решение: Проверь, не исчерпана ли память ZFS ARC. Временно уменьши vm.kmem_size или выдели меньше RAM для ВМ.
Проблема: Низкая производительность диска в ВМ.
Решение: 1) Убедись, что используешь VirtIO; 2) Проверь нагрузку на физические диски; 3) Рассмотри возможность выделения SSD под L2ARC или SLOG.

TrueNAS CORE vs SCALE для виртуализации

Выбор платформы зависит от твоих задач:

  • TrueNAS CORE (bhyve): Стабильность, глубокая интеграция с FreeBSD, но меньше совместимости с гостевыми ОС.
  • TrueNAS SCALE (KVM): Широкая поддержка ОС (включая Windows), Docker-контейнеры рядом с ВМ, но моложе и может быть менее стабилен в некоторых сценариях.

Теперь у тебя есть полное руководство по работе с virtual machine в TrueNAS. Начни с простой ВМ, поэкспериментируй с настройками, и вскоре ты сможешь развернуть на своем NAS целую инфраструктуру: файловое хранилище, веб-сервер, медиацентр и систему мониторинга — всё на одном физическом сервере. И помни главное преимущество: все твои ВМ хранятся на отказоустойчивых ZFS пулах с мгновенными снапшотами.

Поделиться:
Сохранить гайд? В закладки браузера