Представь, что твой TrueNAS SCALE работает как швейцарские часы, но ты знаешь, что новая версия принесет исправления безопасности, улучшение производительности и новые функции. Как безопасно выполнить обновление, не потеряв данные и не нарушив работу сервисов? Давай разберем этот процесс от подготовки до завершения.
Обновление TrueNAS SCALE — это не просто клик по кнопке. Это системный процесс, требующий подготовки, проверок и понимания возможных рисков. В этом руководстве я покажу тебе профессиональный подход, который используют опытные DevOps инженеры.
Подготовка к обновлению TrueNAS SCALE
Правильная подготовка — 80% успеха. Пропусти этот этап, и ты рискуешь столкнуться с непредвиденными проблемами.
1. Проверка текущей версии и доступных обновлений
Сначала определи, где ты находишься и куда можешь двигаться:
# Проверка текущей версии через веб-интерфейс:
# Система → Информация о системе
# Или через CLI:
midclt call system.info | grep -i version
# Альтернативно:
cat /etc/version
2. Создание резервной копии конфигурации
Это твоя страховка на случай, если что-то пойдет не так. Бэкап конфигурации можно восстановить даже на чистую установку.
# Через веб-интерфейс:
# Система → Общие → Сохранить конфигурацию
# Через CLI создание бэкапа:
midclt call config.save \
'{"secretseed": false}' \
| jq -r .data > /mnt/tank/backups/truenas-config-$(date +%Y%m%d).tar
# Проверка целостности бэкапа:
tar -tf /mnt/tank/backups/truenas-config-*.tar | head -5
3. Проверка состояния системы
Убедись, что система готова к обновлению:
- Проверь состояние пулов ZFS:
zpool status - Убедись, что нет ошибок SMART у дисков
- Проверь свободное место в загрузочном разделе (минимум 20% свободно)
- Останови не критичные виртуальные машины и контейнеры
- Создай снапшоты важных датасетов
# Проверка состояния пулов:
zpool status -x
# Проверка свободного места в загрузочном разделе:
df -h /boot
# Создание снапшотов для важных датасетов:
zfs snapshot tank/data@pre-update-$(date +%Y%m%d)
zfs snapshot tank/apps@pre-update-$(date +%Y%m%d)
Процесс обновления TrueNAS SCALE
Теперь, когда подготовка завершена, переходим к основному процессу. Существует два основных способа обновления.
Способ 1: Обновление через веб-интерфейс (рекомендуется)
Самый простой и безопасный метод для большинства пользователей.
- Зайди в Система → Обновление
- Нажми кнопку Проверить наличие обновлений
- Выбери доступную версию из списка
- Внимательно прочитай примечания к выпуску (Release Notes)
- Нажми Загрузить обновление и дождись завершения загрузки
- После загрузки нажми Установить обновление
- Система перезагрузится автоматически
Способ 2: Обновление через командную строку
Для продвинутых пользователей или автоматизации через скрипты.
# Проверка доступных обновлений:
midclt call update.check_available
# Просмотр информации о конкретном обновлении:
midclt call update.get_update \
'{"train": "scale", "version": "24.10.0"}'
# Загрузка обновления:
midclt call update.download \
'{"train": "scale", "version": "24.10.0"}'
# Мониторинг прогресса загрузки:
midclt call update.get_download_progress
# Установка загруженного обновления:
midclt call update.install \
'{"reboot": true}'
Что происходит во время обновления?
Понимание процесса поможет тебе не паниковать, если что-то займет больше времени:
| Этап | Что происходит | Время |
|---|---|---|
| Загрузка | Скачивание образа обновления | Зависит от скорости интернета |
| Подготовка | Проверка целостности, создание бэкапа текущей системы | 2-5 минут |
| Установка | Копирование файлов, обновление конфигурации | 5-15 минут |
| Перезагрузка | Загрузка новой версии, инициализация сервисов | 3-10 минут |
После обновления: проверка и откат
1. Проверка успешности обновления
После перезагрузки убедись, что все работает корректно:
# Проверка версии системы:
cat /etc/version
# Проверка состояния сервисов:
systemctl list-units --state=failed
# Проверка состояния пулов:
zpool status
# Проверка сетевых интерфейсов:
ip addr show
# Проверка работы SMB/NFS:
systemctl status smb.service
systemctl status nfs-server.service
2. Тестирование критичных функций
- Доступ к общим папкам (SMB/AFP/NFS)
- Работа виртуальных машин и контейнеров
- Синхронизация с облачными хранилищами
- Работа плагинов и дополнительных сервисов
- Мониторинг и оповещения
3. Откат обновления (если что-то пошло не так)
TrueNAS SCALE сохраняет предыдущую версию в загрузочном меню:
- Перезагрузи систему
- В меню загрузки выбери предыдущую версию TrueNAS
- Загрузись со старой версией
- В веб-интерфейсе перейди в Система → Обновление
- Найди старую версию и нажми Загрузить и активировать
- После перезагрузки система вернется к предыдущей версии
Частые проблемы и их решение
Проблема: Обновление зависло на этапе загрузки
Решение:
# 1. Проверь свободное место в /boot
df -h /boot
# 2. Если место заканчивается, очисти старые загрузочные среды:
# Веб-интерфейс: Система → Загрузка
# Или через CLI:
beadm list
beadm destroy old-boot-environment-name
# 3. Попробуй загрузить обновление заново
Проблема: После обновления не работают сетевые интерфейсы
Решение:
# 1. Проверь конфигурацию сети через консоль:
midclt call network.configuration.config
# 2. Сбрось настройки сети к DHCP:
midclt call network.configuration.update '{"ipv4_dhcp": true}'
# 3. Или восстанови конфигурацию из бэкапа:
midclt call config.upload /mnt/tank/backups/truenas-config-backup.tar
Проблема: Плагины/приложения не запускаются
Решение:
# 1. Проверь статус приложений:
midclt call app.query
# 2. Перезапусти конкретное приложение:
midclt call app.restart '{"name": "plex"}'
# 3. Если не помогает, проверь логи:
tail -f /var/log/middleware.log
tail -f /var/log/apps/plex.log
Лучшие практики обновления TrueNAS SCALE
- Обновляйся поэтапно: Не прыгай через несколько major версий. Сначала обнови до следующей стабильной, проверь работу, затем до следующей.
- Читай Release Notes: В них указаны критические изменения, deprecated функции и известные проблемы.
- Тестируй на не-продакшн системе: Если есть возможность, сначала обнови тестовый стенд.
- Планируй downtime: Обновляй в период наименьшей нагрузки на систему.
- Документируй процесс: Записывай все действия и результаты для будущих обновлений.
- Не отключай питание: Никогда не выключай систему во время обновления.
Автоматизация обновлений
Для опытных пользователей, которые хотят автоматизировать процесс:
#!/bin/bash
# Скрипт для автоматического обновления TrueNAS SCALE
# Запускать с осторожностью!
set -e
LOG_FILE="/var/log/truenas-update-$(date +%Y%m%d).log"
BACKUP_DIR="/mnt/tank/backups"
# Функция логирования
log() {
echo "$(date): $1" | tee -a "$LOG_FILE"
}
# 1. Создание бэкапа конфигурации
log "Создание бэкапа конфигурации..."
midclt call config.save '{"secretseed": false}' \
| jq -r .data > "$BACKUP_DIR/config-$(date +%Y%m%d).tar"
# 2. Проверка доступных обновлений
log "Проверка обновлений..."
UPDATE_INFO=$(midclt call update.check_available)
VERSION=$(echo "$UPDATE_INFO" | jq -r '.version')
if [ -z "$VERSION" ] || [ "$VERSION" = "null" ]; then
log "Нет доступных обновлений"
exit 0
fi
log "Найдено обновление до версии: $VERSION"
# 3. Загрузка обновления
log "Загрузка обновления..."
midclt call update.download "{\"train\": \"scale\", \"version\": \"$VERSION\"}"
# 4. Ожидание завершения загрузки
while true; do
PROGRESS=$(midclt call update.get_download_progress | jq -r '.progress')
log "Прогресс загрузки: $PROGRESS%"
if [ "$PROGRESS" = "100" ]; then
break
fi
sleep 10
done
# 5. Установка обновления
log "Установка обновления..."
midclt call update.install '{"reboot": true}'
log "Обновление запущено, система перезагрузится"
Вопросы и ответы по обновлению TrueNAS SCALE
Как часто нужно обновлять TrueNAS SCALE?
Рекомендуется устанавливать обновления безопасности сразу после выхода. Feature updates (обновления с новыми функциями) можно устанавливать после тестирования, обычно через 2-4 недели после релиза.
Можно ли обновить TrueNAS CORE до SCALE?
Да, но это миграция, а не просто обновление. Нужно экспортировать конфигурацию из CORE, установить SCALE с нуля, затем импортировать конфигурацию. Перед этим обязательно создай полный бэкап данных.
Что делать, если после обновления не загружается веб-интерфейс?
1. Проверь доступность по IP через ping. 2. Попробуй другой браузер или режим инкогнито. 3. Очисть кэш DNS и браузера. 4. Через консоль проверь статус службы nginx: systemctl status nginx. 5. Восстанови конфигурацию из бэкапа.
Сколько времени занимает обновление?
Зависит от размера обновления и производительности системы. Обычно 15-40 минут, включая перезагрузку. Major updates могут занимать больше времени из-за миграции баз данных и конфигураций.
Нужно ли обновлять все приложения после обновления системы?
Не обязательно, но рекомендуется. Некоторые приложения могут требовать обновления для совместимости с новой версией ядра или библиотек. Проверяй статус приложений после обновления системы.
Заключение
Обновление TrueNAS SCALE — это ответственный процесс, который при правильном подходе проходит гладко и безопасно. Ключевые моменты, которые нужно запомнить:
- Всегда создавай бэкап конфигурации перед любым обновлением
- Тестируй обновление на не-продакшн системе, если это возможно
- Читай Release Notes — там может быть критичная информация
- Имей план отката на случай непредвиденных проблем
- Не торопись с major updates — дай время сообществу найти возможные баги
Помни: стабильная и обновленная система — это баланс между актуальностью исправлений безопасности и надежностью работы. Следуя этому руководству, ты сможешь поддерживать свой TrueNAS SCALE в оптимальном состоянии, получая новые функции и исправления, минимизируя риски для данных и доступности сервисов.