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.


Коментувати