Proxmox Backup Server та Synology NFS
Розповідаю про те як встановити Proxmox Backup Server (PBS) у контейнер Proxmox VE та підʼєднати до нього Synology NAS через NFS. А також трохи про віддалений доступ до PBS з іншої мережі (локації).
Вступ
І так під час роботи з Proxmox і по мірі зростання кількості контейнерів і віртуальних машин, які почали приносити мені користь, постала проблема резервного копіювання. І Proxmox був підготовлений в цьому питанні. Він має свій власний продукт який гарно інтегрується в Proxmox VE - це Proxmox Backup Server (PBS).
Proxmox Backup Server - це корпоративне рішення для резервного копіювання та відновлення віртуальних машин (ВМ), контейнерів та фізичних хостів. Підтримуючи інкрементальні, повністю дедупліковані резервні копії, Proxmox Backup Server значно зменшує мережеве навантаження та економить цінний простір для зберігання. За допомогою надійного шифрування та методів забезпечення цілісності даних ви можете відчувати себе безпечно при резервному копіюванні даних, навіть яким повністю не довіряєте. - Офіційний сайт
Зрозуміло, що прийдется спробувати це. Але файли треба десь зберігати, а особливо коли це стосується резервних копій, то краще таке робити на окремому сервері, котрого я не мав...
Ідея
Ознайомившись з усіма аспектами я обрав не самий кращий, але найбільш підходящий для себе спосіб - буду встановлювати Proxmox Backup Server як віртуальний сервер Proxmox VE, але маючи Synology NAS було вирішено використати його для файлів.
Суть полягає в тому, що я дійсно не мав окремого сервера з виділеними накопичувачами саме під резервування. Але я маю Proxmox VE і я маю NAS
Proxmox VE - стане основою для запуску Proxmox Backup Server, як повноцінного сервера, а NAS окремо зберігатиме файли.
Чи можна було б віртуалізувати і бекап сервер і його сховище? Так! Але, коли і контейнери, які ми плануємо бекапити, і бекап сервер розсташовують свої файли на одному фізичному пристрої, то це знецінює повністю спробу покращити відмовостійкість всієї системи. Воно логічно не має сенсу. Якщо все крутитиметься на одному фізичному сервері і ваш накопичувач SSD/HDD накриється, то ви загубите все. При саме цих умоваш вам не потрібен PBS, ви з легкістю можете робити бекапи у локальне сховище Proxmox VE.
Synology NAS у моєму випадку (а у вас це може бути будь-яке мережеве сховище) дуже гарно підходить на роль незалажного і стабільного пристрою для бекапів.
Установка та налаштування
Це той розділ, де я не хочу повторювати інших авторів. Є дуже гарна стаття про те, як встановити PBS, налаштувати NFS та підключити все, а також як включити регулярні бекапи. Я пройшовся по всих кроках я зміг налаштувати всі потрібне. Ділюсь цим чудовим дописом Derek Seaman з вами:
Але не подумайте, що на цьому все. Там це є нюанси.
Нижче я виніс основні команди, які я виконував уже на встановленому бекап сервері. Мій NAS має адресу 192.168.1.52.
# create dir
cd /mnt
mkdir synology
# access
chown backup:backup /mnt/synology
chmod 775 /mnt/synology
# check mounts
mount -a
# add to fstab
echo “192.168.1.52:/volume1/pbs /mnt/synology nfs vers=3,nouser,atime,auto,retrans=2,rw,dev,exec 0 0" >> /etc/fstab
# to make sure that the record was added correctly
nano /etc/fstab
# reload
systemctl daemon-reload
# (optional) create any file to verify that it's added on Synology NAS
touch /mnt/synology/testfile.txt
# create different folders for different Proxmox VE servers
cd /mnt/synology
mkdir thor
mkdir stargate
Структура
Каталоги
Хочу дати пояснення стосовено структури каталогів.
Як і було в основному прикладі від Derek Seaman в нас буде каталог з назвою synology. Він являтиме собою мережеве сховище розташоване на нашому NAS. І от з самого початку я підключив його до Proxmox VE і був щасливий. Але пізніше в мене зʼявився інший сервер Proxmox VE розташований далеко за межами поточної мережі. Після підключення і резервування інших контейнерів (інколи з подібними ID або іменами) в мене почався хаос.
І саме тому я дуже наполягаю з самого початку створювати каталоги з назвами ваших серверів Proxmox VE для зручності.
В мене їх два: Thor (на якому розташований і сам PBS) та Stargate (в іншому місті).
Datastores
Відповідно до структури каталогів маємо створювати і datastore. Але я створив не два, а всі три. Для кожного сервера і загальний (каталог synology)
Плюсом такого підходу буде те, що підключивши datastore відповідного сервера, і загальний datastore ви з легкістю зможете робити бекапи з оного сервера в загальний datastore Synology і використовувати їх на іншому сервері. Це зручно особливо для темлейтів віртуальних машиш або контейнерів.
Висновок по структурі
Всі ці дії актуальні, коли у вас не один Proxmox VE сервер. Така структура і підключення декількох datastore надає наступні переваги:
- Розмежування бекапів різних серверів
- Швидкий обмін бекапами і темплейтами
Підключення віддаленого PBS
Так як мій PBS та один з Proxmox VE серверів (Stargate) знаходяться в різних містах, то довелось пробувати як підключити віддалений PBS.
Тунель від Cloudflare з публічним доменим іменем, який багато хто практикую в домашніх умовах, для сервера PBS працює лише як веб-ресурс, тобто ви можете заходити і продивлятись лише веб-інтерфейс. Як налаштувати такий Cloudflare тунель я можливо розкажу за нагоди іншим разом.
А для повноцінної роботи бекап сервера потрібно було відкрити порт відмінний від 80 та 8443. На своєму роутері я відкрив і TCP і UDP протоколи на 8007 порті
І окремо налаштував DDNS. Зробіть це, якщо до цього не мали, або використовуйте встановлену раніше адресу
Знову ж, я не намагаюсь пояснювати в деталях як це правильно робиться. Різні роутери матимуть різні веб-інтерфейси і розташування, а можливо і назви. Детальніше про налаштування Port Forwariding та DDNS читайте саме на прикладі вашого роутера.
Маючи відкритий порт 8007 та віддалений доступ через публічний домен DDNS ви легко зможете підключити ваш PBS до сервера Proxmox VE в іншому місті.
Для наглядності намалював діаграмку, яка має допомогти розібратись
Перепідключення
Після декількох вимкнень світла я зрозумів, що Proxmox Backup Server під час запуску не зміг перепідключитись до Synology. Скоріше за все він запускається швидше за те, коли Synology NFS стає доступним. Саме через це я декілька разів заходив на сервер і в ручному режимі виконував команду перепідключення mount -a.
Ось так я бачив, що запланована задача не відпрацювала. Це неприємно.
crontab
Одразу згадалось, що можна було б перекласти таку задачу на такий інструмент як crontab. Він запускає з розкладом потрібну команду.
На сервері PBS в Shell треба виконати команду, яка запустить редагування crontab
crontab -e
У файлі який відкрився на редагування переміщаємось до самого низу та додаєм наступну строку
*/30 * * * * mount -a
Виглядатиме це приблизно так
Додавши зберігаємо зміни і більше ніколи не повертаємось до цього питання.
Детальніше про crontab рекомендую почитати ось тут
Висновок
В мене не було проблем налаштувати все за інструкціями інших авторів, бо це вже давно добре відкатаний процес. Саме в моєму випадку я стикнувся з проблемою структури каталогів та підключенням PBS розташованого за межами поточної мережі. Про ці проблеми я відповідно і розповів.
По структурі - створюйте окремі каталоги та datastore для кожного серверва Proxmox VE. Це і зручно і зрозуміло і навіть безпечніше, особливо якщо заморочитесь і створюватимете різних користувачів з унікальними паролями.
А от підключення через 8007 порт прокинутий через роутер - це те, з чим може стикнутись багато людей. Прокидання портів через роутер - це доволі тривіальна задачка в хоумлабінгу (homelabbing). Якщо ви цього ніколи не робили, то це не так страшно.
Пробуйте і у вас все вийде.