Proxmox Backup Server та Synology NFS

Розповідаю про те як встановити Proxmox Backup Server (PBS) у контейнер Proxmox VE та підʼєднати до нього Synology NAS через NFS. А також трохи про віддалений доступ до PBS з іншої мережі (локації).

Proxmox Backup Server та Synology NFS
Photo by benjamin lehman on Unsplash

Вступ

І так під час роботи з Proxmox і по мірі зростання кількості контейнерів і віртуальних машин, які почали приносити мені користь, постала проблема резервного копіювання. І Proxmox був підготовлений в цьому питанні. Він має свій власний продукт який гарно інтегрується в Proxmox VE - це Proxmox Backup Server (PBS).

Proxmox Backup Server
Proxmox Backup Server is an enterprise backup solution, for backing up and restoring VMs, containers, and physical hosts.
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 з вами:

How To: Setup Synology NFS for Proxmox Backup Server Datastore - Derek Seaman’s Tech Blog
This post covers deploying a Proxmox Backup Server (PBS) and using a Synology NAS NFS mount as a datastore for backups. And optionally you can run the PBS server as a VM on your Synology NAS as well. Why would you want to use Proxmox Backup Server? Here are a few reasons:Built-in data deduplication. I’m

Але не подумайте, що на цьому все. Там це є нюанси.

Нижче я виніс основні команди, які я виконував уже на встановленому бекап сервері. Мій 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
Прошу вас дуже уважно пройтись по кроках з налаштування Synology NFS. Саме помилки в цих кроках заберуть ваш час.

Структура

Каталоги

Хочу дати пояснення стосовено структури каталогів.

Як і було в основному прикладі від 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.

Ось так я бачив, що запланована задача не відпрацювала. Це неприємно.

Backup job fails

crontab

Одразу згадалось, що можна було б перекласти таку задачу на такий інструмент як crontab. Він запускає з розкладом потрібну команду.

На сервері PBS в Shell треба виконати команду, яка запустить редагування crontab

crontab -e

У файлі який відкрився на редагування переміщаємось до самого низу та додаєм наступну строку

*/30 * * * * mount -a

Виглядатиме це приблизно так

Додавши зберігаємо зміни і більше ніколи не повертаємось до цього питання.

Детальніше про crontab рекомендую почитати ось тут

How To Use Cron to Automate Tasks on Ubuntu 18.04 | DigitalOcean
Cron is a time-based job scheduling daemon found in Unix-like operating systems, including Linux distributions. This guide provides an overview of how to sch…

Висновок

В мене не було проблем налаштувати все за інструкціями інших авторів, бо це вже давно добре відкатаний процес. Саме в моєму випадку я стикнувся з проблемою структури каталогів та підключенням PBS розташованого за межами поточної мережі. Про ці проблеми я відповідно і розповів.

По структурі - створюйте окремі каталоги та datastore для кожного серверва Proxmox VE. Це і зручно і зрозуміло і навіть безпечніше, особливо якщо заморочитесь і створюватимете різних користувачів з унікальними паролями.

А от підключення через 8007 порт прокинутий через роутер - це те, з чим може стикнутись багато людей. Прокидання портів через роутер - це доволі тривіальна задачка в хоумлабінгу (homelabbing). Якщо ви цього ніколи не робили, то це не так страшно.

Пробуйте і у вас все вийде.

Read more

How to add ads.txt file in self-hosted Ghost blog

Як додати ads.txt до блогу на платформі Ghost

Додаєте ads.txt до блогу на Ghost? Дізнайтесь, як створити файл, опублікувати його на GitHub, налаштувати перенаправлення через redirects.yaml та перевірити коректність роботи. Це простий спосіб забезпечити відповідність стандартам реклами для вашого блогу.

By Volodymyr Lavrynovych