Сервер Proxmox
systemctl restart sshsystemctl restart ssh

Описание
Своими словами. Это ОС назначение, которой запускать в себе другие ОС. Создавать между ними все виды виртуальных устройств. Интересно то, что позволяет создавать хранилища, в которых уже и будут размещаться виртуальные накопители. Получается, нет привязки к конкретному диску. Все может храниться, где угодно, и переноситься куда угодно. Его плюсом является очень низкие требования к железу, бесплатность.
Подготовка

На сервер установлен Proxmox (Гипервизор) версия 6.1-1. Брать с официального сайта.
- Скачиваем образ и записываем на USB накопитель.
- Делать лучше всего с помощью Rufus. Брать с официального сайта. Распространяется бесплатно.
- Устройство: выбираем наш USB накопитель.
- Метод загрузки: выбираем скачанный образ.
- Схема раздела: GPT (если совсем устаревшее железо, не совместимое с UEFI, то выбираем MBR)
- Старт.
- Ожидаем, когда запишется образ на USB накопитель.
Установка Proxmox
Загружаемся с USB накопителя. Появляется логотип Proxmox с выбором установки.
- Выбираем: Install Proxmox VE.
Ожидаем, когда загрузится менеджер установки.
Соглашаемся с условиями: I agree.
- Target Harddisk: Выбираем накопитель на который будет выполняться установка. Это 120 Гигабайт SSD.
Нажимаем: “Options”.
- Выбор файловой системы ext4.
Filesystem: ext4
- Общий размер раздела для установки.
hdsize: 120.0
- Размер виртуальной оперативной памяти 2 гигабайта.
swapsize: 2
OK, Next, Next.
- Вводим пароль для пользователя root, и второй раз для подтверждения.
Password: пароль_пользователя_root
- Указываем почту, на случай если захотим получать оповещения о статусе Proxmox.
E-Mail: наша_почта
Next.
Сетевое устройство, с которым будем работать, сейчас такое, меняется в зависимости от оборудования.
Management Interface: ens33
IP адрес сейчас такой, это зависит от того, что присвоит DHCP сервер. Его лучше всего привязать к MAC адресу. Описывается в разделе сеть.
Убедившись в том, что адрес получен нажимаем Next.
Нам показывают все что мы настроили.
Наш сервер имеет имя: pve
IP адрес у него: 192.168.1.130
Install.
Дожидаемся установки Proxmox.
По окончании установки нам сообщают что все хорошо.
Для продолжения будет выполнена перезагрузка, после того как выполнится загрузка ОС можно попасть на сервер с помощью web браузера, используя локальный IP и порт 8006.
В моём случае: https://192.168.1.130:8006
Браузер скажет, что сайт небезопасен, но мы то знаем, что он наш, так что нечего бояться. Нас встречает экран авторизации Proxmox.
- Сразу меняем язык на русский.
Language: Русский.
Интерфейс сразу же перезагрузиться, и все станет на русском.
Вводим имя пользователя: root
И пароль: пароль_пользователя_root
Нам сообщают о том, что прокси отсутствует. Но это мы настроем намного позже.
На данном этапе установка Proxmox закончена. Дальнейшие действия зависят от требований.
Первичная настройка Proxmox.
Теперь создаем для себя рабочую атмосферу.
Proxmox является готовым продуктом, но как ни крути настраивать его все ещё приходится по старике. А точнее то что касается аппаратных средств, монтирование дисков и так далее.
Самое главное установить SSH. Нужен для удаленного доступа к консоли сервера. Так как начинают работать все фишки консоли. Например, в Window PowerShell. Так намного быстрее можно вводить команды, производить копирование правым нажатием мыши, выделение текста.
Переходим в web интерфейсе в узел Датацентр/pve.
В узле переходим в “Оболочка”.
Открывается консоль с доступом к Proxmox на прямую. В ней уже выполнен вход от root. Но для более удобной работы с открываем PowerShell. Да мы гребаные “виндусятники”!
В PowerShell уже встроен клиент SSH. Вписываем локальный адрес Proxmox. Соглашаемся: yes.
ssh root@192.168.1.164
Вводим пароль Proxmox: пароль_пользователя_root
Все мы попали в консоль, теперь:
Обновляем репозитории:

apt-get update
Выполняем обновление пакетов из репозиториев.
apt-get upgrade -y
Устанавливаем файловый менеджер mc
apt-get install mc -y
Proxmox готов к работе.
Настройка сети
в консоли pve
apt-get install ifupdown2
Для устройств SMB и Plex решено виртуализировать собственную подсеть, для снижения нагрузки на канал вне сервера (Чиать далее).

В разделе pve выбираем Система/Сеть.
Нажимаем: “Создать”
Выбираем: Linux Bridge
Прописываем адрес IPv4: 192.168.2.1/24
Все виртуальная сетевая карта есть.
Настройка виртуальных машин
ZFS на Proxmox
raidz
создать массив raidz из трёх накопителей
смотрим id накопителей
ls /dev/disk/by-id/
в моем случае
ata-TOSHIBA_MG07ACA12TE_2050A07PF95G
ata-TOSHIBA_MG07ACA12TE_59D0A12KF95G
ata-TOSHIBA_MG07ACA12TE_60C0A07XF95G
из них и создадим массив raidz
набор команд и параметров взят от сюда преобразовано в такой вид: название пула meganas, тип пула raidz.
zpool create -o ashift=12 meganas raidz /dev/disk/by-id/ata-TOSHIBA_MG07ACA12TE_2050A07PF95G /dev/disk/by-id/ata-TOSHIBA_MG07ACA12TE_59D0A12KF95G /dev/disk/by-id/ata-TOSHIBA_MG07ACA12TE_60C0A07XF95G
после чего смотрим статус
zpool status
сообщается что нужно обновить для включения фич
zpool upgrade meganas
Кеш SSD
я подключаю SSD кеш, на чтение. Делаю это на ssd на 960 гигабайт, создав раздел на 120 гигабайт. И именно этот раздел и подключаю к массиву.
ls /dev/disk/by-id/
id раздела в моём случае
ata-Netac_SSD_960GB_AA000000000000000878-part1
подключаем
zpool add -f meganas cache /dev/disk/by-id/ata-Netac_SSD_960GB_AA000000000000000878-part1
теперь есть кеш
Точка монтирования
создадим папку для точки монтирования пула
mkdir /mnt/meganas
сразу меняем точку монтирования
zfs set mountpoint=/mnt/meganas meganas
Создание ФС
теперь создадим файловую систему для сервер NAS
zfs create meganas/nas
и еще одну ФС для Nextcloud
zfs create meganas/nextcloud
Посмотреть какие есть Папки:
zfs list
Удалить папку:
zfs destroy meganas/nextcloud
видим таблицу, того к каким из каталогов применены наши настройки. Команды указаны тут. А тут указывается методы просмотра информации.
источники
инструкция о создании массива и некоторых важных настройках
Большой ман по множеству настроек NFS (Английский)
Манул по работе с ФС добавление каталогов
Информация о настройках хранилища в proxmox (Английский)
Статься о создании и настройках habr
Настройки ФС
Теперь о фичах, это максимально важно
компрессия данных, нужна даже если преобладает несжимаемые данные, особенность ФС писать данные блоками определённого объема, файлы меньше блока, иногда будут размером с блок. Сжатие позволит избавиться как минимум от этой особенности.
zfs set compression=on meganas/название каталога
и тип компрессии ставим lz4
zfs set compress=lz4 meganas/название каталога
я предпочитаю на данный момент присваивать параметры для каждого каталога ФС по отдельности.
Очень важная настройка sync. Для повышения производительности пула можно отключить синхронизацию. Обратите внимание что при отключенной синхронизации возможна потеря данных при отключении питания. Но прирост к скорости на больших файлах 100 процентов.
zfs set sync=disabled meganas/каталог ФС
Опции atime=off и relatime=on значительно повысят производительность ФС, соответственно пожертвовав метками времени доступа к файлам.
zfs set atime=off meganas/каталог ФС
zfs set relatime=on meganas/каталог ФС
Еще одна настройка для работы с NFS
zfs set sharenfs=on meganas/каталог ФС
Без этих настроек все сверх уныло
Посмотреть с подробностями по каждой папке, какие параметры были даны:
zfs list -o name,sharenfs,mountpoint,compression,sync,atime,relatime
Импорт пула
Если системы больше нет, но нужно вернуть пул с дисков в рабочее состоянии
zpool import
увидим название и вообще то что есть пул и с ним всё ок
теперь сделаем полноценный импорт
zpool import -f meganas
Пул на месте, если была точка монтирования то он примонтируется. Если нет:
zfs mount -a
NFS
Устанавливаем серверную часть.
apt-get install nfs-kernel-server
Далее редактируем конфиг
nano /etc/exports
Добавляем нашу папку, и указываем нужную нам подсеть.
/mnt/meganas/nas 192.168.2.0/24(rw,sync,no_subtree_check,no_root_squash) /mnt/meganas/nextcloud 192.168.2.0/24(rw,sync,no_subtree_check,no_root_squash)
Запускаем службы
/etc/init.d/nfs-kernel-server start service nfs-kernel-server restart exportfs -ra
Готово.
Контейнеры
Открыл для себя контейнеры.
Хорошо экономит ресурсы, как памяти так и мощности.
Для использования контейнера в ProxMox нужно загрузить шаблон.
Делать это нужно в консоли хоста (сам сервер proxmox).
pveam update
показать список:
pveam available
я выбрал для себя ubuntu-20.04, просто привычнее. Скачиваем шаблон:
pveam download local ubuntu-20.04-standard_20.04-1_amd64.tar.gz
После чего можно уже создавать Контейнеры из этого шаблона. Из минусов то, что шаблон практически пуст. И большинство компонентов нужно будет установить самостоятельно.
Перво наперво, это создать пользователя. Это иногда требуется. Потому, по умолчанию есть только ROOT. Из за этого не работает ssh из коробки.
adduser vova
Задаём ему пароль 2 раза. Будет вопрос по дополнительным данным, если ничего не нужно просто нажимаем ENTER. В конце соглашаем с тем что все правильно.
Дадим права пользователю
usermod -a -G sudo vova
После чего можно попасть на нашу контейнер по ssh
Есть и второй способ, не безопасный но быстрый. В файле /etc/ssh/sshd_config
nano /etc/ssh/sshd_config
Найти строку и сделать такой:
PermitRootLogin yes
Послу чего перезагрузить службу ssh
systemctl restart ssh
Далее лучше всего сделать обновление:
apt update
apt upgrade -y
Теперь неплохо установит русскую локаль.
dpkg-reconfigure locales
Выбираем из списка ru_RU.UTF-8
Её же в следующем меню
Готово
После перезапуска терминала будут доступны русские символы.
Установим часовой пояс как надо.
timedatectl set-timezone Asia/Omsk
и проверим время
timedatectl
Не лишним будет поставить MC
apt install mc
Как оказалось еще нет ADD-APT-REPOSITORY
apt install software-properties-common
Теперь расшарим папку из нашего Хоста внутрь контейнера, чтобы не было всяких там NFS.
Для это отредактируем файл конфигурации нашего контейнера. Они находятся /etc/pve/lxc/
Выполняем это на хосте, машине с proxmox
nano /etc/pve/lxc/номер.conf
Я хочу пробросить паку с ZFS рейда расположенную на хосте /mnt/meganas/nas/media/ в папку /media/nas/ в контейнере.
Добавлю строку в файл конфигурации
mp0: /mnt/meganas/nas/media,mp=/media/nas
На машине контейнере создаём папку /media/nas
mkdir /media/nas
перезагружаем контейнер