29 травня, Понеділок, 2023
A- A A+

proxmox vm nas v2 1

В даному посібнику, я розпишу як ми можем поєднати різні типи сховища для резервування бекапів

1. Synology NAS (SMB/CIFS)

2. Hetzner Storage Box (HSB)

Synology NAS

Proxmox пропонує численні функції та інструменти для розширення та додавання сховища, наприклад NFS та CIFS.

Це чудові варіанти не лише для розширення пам’яті, але й для додавання місць резервного копіювання.

Активуйте NFS на Synology
Щоб додати Synology NAS до Proxmox за допомогою NFS, службу NFS потрібно спочатку активувати в самій Synology, оскільки NFS вимкнено за замовчуванням.

Спочатку запустіть панель керування, звідти перейдіть до спільних служб.

Параметр SMB знаходиться у вкладці « SMB/NFS ». Ви можете знайти службу NFS прямо внизу на першій вкладці.

pve nfs 1

 

pve nfs 3

pve nfs 2

Далі створюєм спільну папку для зберігання, користувача та права доступ до цієї папки

pve nfs 4

pve nfs 5

pve nfs 6

Зберегти і на цьому налаштування на стороні Synology - завершені.

Переходим до самого Proxmox Datacenter -> Storage -> Add -> NFS

pve nfs 7

pve nfs 8

Готово, аналогічно можна і спробувати додати CIFS

pve nfs 9

Hetzner Storage Box (HSB)

Access with SSH/rsync/BorgBackup

SAMBA/CIFS

Rclone

1. Реєструємось, та купуємо Storage Box - відповідно до ваших вимог та розміру середовища

2. Вмикаємо ті пункти які нам будуть потрібні для роботи зі сховищем (SMB/CIFS, SSH) на ресурсі є чудовий посібник користувача (man)

H ftp 1

 Спочатку я розпишу, як налаштувати вивантеження бекапів з робочого серверу PVE на HSB.

Access with SSH/rsync/BorgBackup

Storage Box надає розширену службу SSH на порту 23. За допомогою цієї служби можна використовувати rsync, BorgBackup і деякі додаткові інструменти командного рядка.

ssh -p23 Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.

де uXXXXX - це ваш унікальний ІД користувача

Є можливість отримати інтерактивний доступ SSH, але цей доступ обмежений. Повної оболонки немає. Наприклад, неможливо використовувати канали або перенаправлення. Також неможливо виконати завантажені сценарії.

Ви також можете безпосередньо виконувати команди через SSH, як це:

ssh -p23 Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. mkdir MyBackup

Якщо ви використовуєте дочірній обліковий запис, використовуйте ім’я користувача дочірнього облікового запису для з’єднання SSH.

Для того щоб автоматизувати процес та не вводити паролі потрібно згенерувати ключі SSH

pveserver# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): hetzner
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in hetzner
Your public key has been saved in hetzner.pub
The key fingerprint is:
SHA256:Jxxg1woJN5WX4rb9/pEQB5ah83Z70LlULoUHWVYGUxD [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|   .... .   +o*=E|
|    .o o . =.= +.|
|      *   B o +.+|
|     . + o @ o ++|
|      . S O B +oo|
|       . + + o.+.|
|        .     ...|
|               . |
|                 |
+----[SHA256]-----+

Завантажуємо ключ на Storage Box у Robot

Створюжмо папку на HSB

ssh -p 23 Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. mkdir .ssh

Перевіряжм чи все ок

ssh -p 23 Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. ls -la
Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.'s password:
total 152
drwxr-xr-x   4 u312144  u312144   5 Aug  1 07:11 .
dr-x--x--x  10 root     wheel    10 Jul 28 14:27 ..
-rw-r--r--   1 u312144  u312144  54 Jul 28 15:18 .hsh_history
drwxr-xr-x   2 u312144  u312144   2 Aug  1 07:11 .ssh

Завантажити:

pveserver# cat ~/.ssh/id_rsa.pub | ssh -p23 Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. install-ssh-key
Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.'s password:
Key No. 1 (ssh-rsa [email protected]) was installed in RFC4716 format
Key No. 1 (ssh-rsa [email protected]) was installed in OpenSSH format

Після цього ви можете використовувати публічний ключ SSH для входу без пароля

rsync

Ви можете використовувати rsync, щоб завантажити поточний стан ваших каталогів файлів у ваш Storage Box. Наприклад, щоб завантажити локальний каталог до Storage Box, ви можете використати rsync таким чином:

rsync --progress -e 'ssh -p23' --recursive /var/lib/vz/dump/ Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.:MyBackup

далі без пароля у вас повинно з*явитись прогрес копіювання файлів з директорії бекапів на віддалений HSB

vzdump-qemu-151-2022_07_24-16_11_23.vma.zst
 15,393,882,715 100%  132.22MB/s    0:01:51 (xfr#7, to-chk=22/30)

Автоматизуєм процес копіювання з PVE на HSB

Створити файл nano /home/hsb.sh

#!/bin/bash
#autodelete old files after 5 days
find /var/lib/vz/dump/ -mtime +5 -type f -delete
# sync dump files to Hetzner Storage Box
rsync --progress -e 'ssh -p23' --recursive /var/lib/vz/dump/ Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.:MyBackups
chmod +x /home/hsb.sh

!ВАЖЛИВО!

Планувальник створюєм після того як ваш PVE сервер створить бакап ваших ВМ

Створюєм cron планувальник crontab -e (від користувача який буде ранити цей скрипт)

додаєм вміст запуск кожної суботи о 01:00, та запис в лог файл:

0 1 * * 6 root /home/hsb.sh >> /var/log/hsb.log 2>&1

SAMBA/CIFS

Алгоритм додавання samba/cifs - мав б бути дуже простим з врахуванням на скільки добре працює система гіпервізора proxmox

1. Авторизуємовсь у PVE -> Dashboard -> Storage -> Add -> SAMBA/CIFS

pve cifs

pve cifs 2

pve cifs 3

2. Заповнюєм всі пункти і отримуєм помилку 500.

Якщо ми до цього свторили окремого користувача і пробуєм підключатись, то вже помилка буде іншою:

pve cifs 4

Та помилка в PVE: dmesg

CIFS: VFS: cifs_mount failed w/return code = -112

Отже пробуєм з PVEserver перевіряти чи є доступ по smb протоколу

smbclient //uXXXXX.your-storagebox.de/uXXXXX-sub1 -d 0 -m smb3 -U uXXXXX-sub1 -c 'l'
Enter WORKGROUP\uXXXXX-sub1's password:
  .                                   D        0  Mon Aug  1 12:50:36 2022
  ..                                  D        0  Mon Aug  1 12:50:36 2022

                5368709120 blocks of size 1024. 4416901816 blocks available

перевіряєм чи є підтримка версій smb 1, 2, 3

WARNING: Ignoring invalid value 'smb1' for parameter 'client max protocol'
Enter WORKGROUP\uXXXXX-sub1's password:
  .                                   D        0  Mon Aug  1 12:50:36 2022
  ..                                  D        0  Mon Aug  1 12:50:36 2022

                5368709120 blocks of size 1024. 4399381340 blocks available

Отже свариться тільки на smb1.

Ось мій обхідний шлях:

увійдіть за допомогою основного облікового запису в StorageBox через sftp, наприклад, FileZilla, і створіть нову папку, наприклад HSB


Створіть новий суб-обліковий запис (uXXXXXX-subX) у Hetzner Robot - Storage Box і призначте його до папки HSB

увійдіть @ Proxmox Terminal і створіть папку

mkdir /mnt/HSB

створіть новий каталог у Proxmox->Storage
ID:
папка Hetzner-BX: /mnt/HSB

nano /etc/fstab
#mount hetzner Storage Box
//uXXXXXX -subX.your-storagebox.de/uXXXXXX-subX /mnt/HSB cifs iocharset=utf8,rw,credentials=/etc/HSB-credentials.txt,file_mode=0660,dir_mode=0770 0 0
nano /etc/HZ-BX-credentials.txt
користувач =uXXXXXX-subX
пароль=xxxxxxxxxxxxxxx

вихід

chmod 0600 /etc/HSB-credentials.txt

перезавантажте Proxmox

@ Proxmox Terminal df -H вказує на успішне підключення до сховища

//uXXXXXX.your-storagebox.de/uXXXXXX-sub1  5.0T  895G  4.2T  18% /mnt/HSB

Щоб не перезавантажувати сервер можем виконати команду:

mount.cifs //uXXXXXX.your-storagebox.de/uXXXXXX-sub1 /mnt/HSB -o user=uXXXXXX-sub1,pass=mypassword,vers=1.0 --verbose

 Швидкість завантаження буде залеєати від вашого місцезназодження та стабільності роботи інет з*єднання

pve cifs 5

Rclone

Ви можете використовувати SFTP-сервер у Rclone для доступу до Storage Box.

Встановлюєм rclone

apt install rclone

Щоб налаштувати Rclone, виконайте команду rclone config та дотримуйтеся вказівок помічника.

Крім того, ви також можете налаштувати його вручну. Мінімальна конфігурація (шлях за замовчуванням ~/.config/rclone/rclone.conf) виглядає так:

[HSB]
type = sftp
host = uXXXXX.your-storagebox.de
user = uXXXXX
port = 23
pass = obscured-password

Щоб приховати пароль, виконайте команду rclone obscure .

Замість пароля у passзмінній ви також можете вказати ключ SSH зі змінною конфігурації key_file = .

Потім ви можете отримати доступ до Storage Box таким чином:

rclone ls HSB: