Створення ZFS dataset для спільних файлів та підключення до LXC у Proxmox

1. Створення ZFS dataset

Спочатку створюємо окремий dataset DATA у ZFS-пулі ZFS-Mirror-500GB:

zfs create ZFS-Mirror-500GB/DATA

Встановлюємо точку монтування:

zfs set mountpoint=/ZFS-Mirror-500GB/DATA ZFS-Mirror-500GB/DATA

Створюємо структуру каталогів для зберігання файлів:

mkdir -p /ZFS-Mirror-500GB/DATA/{Documents,Scans,Archives,Shared,Backup}

Отримуємо таку структуру:

/ZFS-Mirror-500GB/DATA/
├── Documents/
├── Scans/
├── Archives/
├── Shared/
└── Backup/

2. Увімкнення стиснення ZFS

Для економії дискового простору використовуємо алгоритм стиснення LZ4:

zfs set compression=lz4 ZFS-Mirror-500GB/DATA

Перевіряємо налаштування:

zfs get compression ZFS-Mirror-500GB/DATA

Очікуваний результат:

NAME                    PROPERTY     VALUE
ZFS-Mirror-500GB/DATA   compression  lz4

3. Підключення dataset до LXC-контейнера

Для прикладу, підключимо спільний каталог до контейнера з ID 100.

Спочатку зупиняємо контейнер:

pct shutdown 100

Додаємо точку монтування:

pct set 100 -mp0 /ZFS-Mirror-500GB/DATA,mp=/DATA

Запускаємо контейнер:

pct start 100

4. Перевірка доступу всередині контейнера

Підключаємося до контейнера:

pct enter 100

Перевіряємо вміст каталогу:

ls -lah /DATA

Маємо побачити створені папки:

Archives
Backup
Documents
Scans
Shared

5. Перевірка конфігурації контейнера

На хості Proxmox виконуємо:

pct config 100

У конфігурації має бути присутній рядок:

mp0: /ZFS-Mirror-500GB/DATA,mp=/DATA

Переваги такого підходу

  • Незалежність від контейнера: видалення або перевстановлення LXC не видаляє файли з dataset.
  • Зручне резервне копіювання: дані зберігаються окремо від системного диска контейнера.
  • Спільний доступ: один dataset можна підключити до декількох контейнерів, наприклад Samba та FileBrowser Quantum.
  • Стиснення: LZ4 автоматично стискає дані на рівні ZFS.
  • Просте відновлення: після перевстановлення Proxmox достатньо імпортувати ZFS-пул і знову підключити dataset до контейнерів.

Важливо: команди виконуються на хості Proxmox, а не всередині LXC. Для повторного підключення dataset до іншого контейнера використовується вільний номер mpX.

Примітка: pct set ... -mp0 підключає каталог хоста до контейнера як bind mount. Самі файли не копіюються в резервну копію контейнера, тому для їх збереження потрібно окремо резервувати ZFS dataset.

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.