Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Backup Server
    Как перенести существующие резервные копии в PBS

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Как перенести существующие резервные копии в PBS, Proxmox Backup Server
     
    proximoxi2
    Guest
    #1
    0
    02.03.2024 00:00:00
    В данный момент у нас есть два сервера на Debian с пулом ZFS, на который мы делаем резервные копии наших контейнеров и виртуальных машин (через NFS). Сейчас мы хотим перейти на PBS. Заменить один из серверов на PBS, мигрировать уже существующие бэкапы, а потом заменить второй сервер. Но как перенести существующие резервные копии в PBS? Я не нашёл никакой документации по этому поводу.
     
     
     
    proximoxi2
    Guest
    #2
    0
    10.05.2024 18:47:00
    vma-to-pbs работает хорошо. Было всего два неожиданных минуса. По умолчанию vma-to-pbs при импорте бэкапа использует текущее время, из-за чего импорт становится малоэффективным, если у меня есть 10 бэкапов с «сейчас». Есть опция `--backup-time <EPOCH>`, но, на мой взгляд, её стоило бы указывать в примерах. Ещё было бы здорово, если бы `vma-to-pbs --help` объяснял, что такое EPOCH — похоже, это unix timestamp в секундах. Если у вас уже есть более свежие бэкапы виртуальной машины, появляется ошибка: `Error: proxmox_backup_connect failed: command error: backup timestamp is older than last backup.` Но это можно обойти, переместив некоторые файлы на PBS-сервере.  
    И вот скрипт, который, возможно, можно добавить в вики, так как, думаю, миграция с файловых бэкапов на PBS — самый распространённый кейс для этого инструмента:

    ```bash
    #!/bin/bash
    for file in *.vma.zst; do
     vmid=$(echo "$file" | grep -oP '(\d+)-\d{4}_\d{2}_\d{2}-\d{2}_\d{2}_\d{2}' | grep -oP '^\d+')
     backup_time=$(date -d "$(echo "$file" | grep -oP '\d{4}_\d{2}_\d{2}-\d{2}_\d{2}_\d{2}' | tr '_' ' ')" +"%s")
     zstd -d --stdout "$file" | \
     PBS_FINGERPRINT='PBS-FINGERPRINT' vma-to-pbs \
       --repository 'user@realm!token@server ort:datastore' \
       --vmid "$vmid" \
       --backup-time "$backup_time" \
       --password-file path/to/pbs_password
    done
    ```

    У импортированных ВМ комментарий остаётся пустым, хотя эта информация есть в файле `qemu-server.conf`. Было бы круто, если бы имя оттуда автоматически использовалось как комментарий.
     
     
     
    keonik
    Guest
    #3
    0
    14.06.2024 17:15:00
    В продолжение ответа @proximoxi2:

    1. Я поправил его скрипт, он неправильно считал дату.  
    2. Добавил логирование в файл.  
    3. Нашёл способ добавлять комментарии к бэкапам, но пока не внедрил — причина ниже.

    Bash:  
    ```bash
    #!/bin/bash  
    # Настройки  
    PATH_TO_BACKUP_DUMPS="/mnt/old_backups/dump"  
    PBS_FINGERPRINT="aa:bb:cc......"  
    PBS_REPOSITORY="user@pam@192.168.1.1:my-backup-storage"  
    PBS_PASSWORD_FILE="/tmp/pbs-password"  
    LOG_FILE_PATH=/tmp/vma-to-pbs.log

    # Подготовка данных для бэкапа  
    cd $PATH_TO_BACKUP_DUMPS  
    touch $LOG_FILE_PATH  
    for file in *.vma.zst; do  
     vmid=$(echo "$file" | grep -oP '(\d+)-\d{4}_\d{2}_\d{2}-\d{2}_\d{2}_\d{2}' | grep -oP '^\d+')  
     backup_day="$(echo "$file" | grep -oP '\d{4}_\d{2}_\d{2}' | tr '_' '/')"  
     backup_time="$(echo "$file" | grep -oP '\-\d{2}_\d{2}_\d{2}' | tr '_' ':')"  
     backup_time="${backup_time:1}"  
     backup_full_time=$(date -d "$backup_day $backup_time" +"%s")

     # Запуск бэкапа  
     echo "Start backup: $file" | tee -a $LOG_FILE_PATH  
     zstd -d --stdout "$file" | \
     vma-to-pbs \
       --fingerprint "${PBS_FINGERPRINT}" \
       --repository "${PBS_REPOSITORY}" \
       --vmid "$vmid" \
       --backup-time "$backup_full_time" \
       --password-file ${PBS_PASSWORD_FILE} 2>&1 | tee -a $LOG_FILE_PATH >/dev/null  
     tail -n 1 /tmp/vma-to-pbs.log  
     echo -e "\n\n\n" | tee -a $LOG_FILE_PATH  
    done  
    echo "Log file path: $LOG_FILE_PATH"
    ```

    Теперь про добавление комментариев. Комментарии можно добавить через proxmox API, вот ссылка на нужный метод: https://pbs.proxmox.com/docs/api-viewer/index.html#/admin/datastore/{store}/notes

    В чём проблема: я нашёл инструкции по использованию API (https://pve.proxmox.com/wiki/Proxmox_VE_API), но следуя им авторизация у меня постоянно срывалась. При этом, если "перехватить" запрос из браузера и немного его подправить — всё отлично работает.

    Теперь расскажу, как "перехватить" этот запрос:  
    1. Открываете Datastore -> my-storage -> Content  
    2. Выбираете любой бэкап -> кликаете "Edit" в поле комментариев -> печатаете что-то, но НЕ жмёте "Ok".  
    3. Нажимаете F12 и открываете вкладку "Network"  
    4. Жмёте "Ok" для сохранения комментария  
    5. Ищете запрос с названием "notes" в списке, кликаете по нему правой кнопкой -> Copy -> Copy as cURL  
    6. В итоге получите что-то вроде:

    ```bash
    curl 'https://192.168.1.1:8007/api2/extjs/admin/datastore/my-storage/notes' \
     -X 'PUT' \
     -H 'CSRFPreventionToken: djshfdhsgfhjdsgfhj' \
     -H 'Connection: keep-alive' \
     -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
     -H 'Cookie: dlhgjdfkghjdfkhgjdfkh' \
     -H 'X-Requested-With: XMLHttpRequest' \
     --data-raw 'backup-type=vm&backup-id=114&backup-time=<timestamp>¬es=MyComment' \
     --compressed \
     --insecure
    ```

    7. Теперь отредактируйте его по своему усмотрению — замените нужные id и сделайте так, чтобы комментарий для бэкапа считывался из переменной. Этот запрос можно вставить после команды импорта бэкапа.

    Источники:  
    - https://pbs.proxmox.com/wiki/index.php/Import_VMA_Backups_into_Proxmox_Backup_Server  
    - https://forum.proxmox.com/threads/backup-server-api-access.133151/  
    - https://pve.proxmox.com/wiki/Proxmox_VE_API  
    - https://forum.proxmox.com/threads/query-if-a-backup-task-is-running.112019/#post-550198  
    - https://forum.proxmox.com/threads/pbs-client-authentication-with-api-token-doesnt-work.79457/
     
     
     
    proximoxi2
    Guest
    #4
    0
    10.05.2024 02:30:00
    Я заметил, что теперь есть https://pbs.proxmox.com/wiki/index.php/Import_VMA_Backups_into_Proxmox_Backup_Server. Но есть ли также инструмент или документация по импорту резервных копий контейнеров?
     
     
     
    fabian
    Guest
    #5
    0
    10.05.2024 09:57:00
    Нет, для бэкапов контейнеров такого инструмента пока не существует. Всегда можно извлечь бэкап (это tar-файл, содержащий rootfs и конфигурации контейнера), а потом создать резервную копию снова с помощью proxmox-backup-client, как это делает vzdump (так можно синхронизировать временную метку снимка PBS с временной меткой старого бэкапа), либо использовать pct restore и vzdump, но тогда временные метки будут потеряны.
     
     
     
    Creat
    Guest
    #6
    0
    25.01.2026 17:39:00
    Просто хотел быстро добавить комментарий для тех, кто может наткнуться на этот пост через Google или что-то подобное: это уже не нужно, потому что вся функциональность (включая комментарии/заметки) теперь встроена напрямую в vma-to-pbs. Можно просто указать директорию с дампами, и он импортирует всё содержимое в заданное хранилище PBS, сохраняя правильные временные метки, комментарии и всё остальное.

    У меня были пару бэкапов, которые отказывались импортироваться с какой-то странной ошибкой (proxmox_backup_write_data failed: command error: write_data: got invalid null chunk), но я просто пропустил эти бэкапы, и для меня это не проблема. Ограничение на невозможность импортировать бэкапы старше тех, что уже есть в PBS, всё ещё сохраняется — тогда vma-to-pbs ругается и прерывает процесс. Полагаю, в таких случаях этот скрипт всё равно поможет и сработает.

    К тому же теперь vma-to-pbs принимает параметр для «notes-file», чтобы можно было импортировать комментарии напрямую. Это легко добавить в скрипт блоком вроде такого перед комментарием «start backup»:

    Bash:  
    notes_arg=""  
    if [ -f "${file}.notes" ]; then
        notes_arg="--notes-file ${file}.notes"  
    fi  

    Дальше просто добавьте ${notes_arg} перед 2>&1 в вызове vma-to-pbs — и всё должно работать. Это проверялось частично, потому что я перешёл на метод с дамп-директорией, встроенный в официальный инструмент.
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры