Легко архивируем 1С на холодное хранилище SELECTEL

UPD: Статья устарела, есть более актуальная версия статьи для 2024 года.

UPD: Важно! Не используйте хранилище версий, потому что если файл не докачался по FTP, создается новая версия даже для такого битого файла. В итоге, когда FTP начало работать нестабильно, при размере основного контейнера 84 Гб контейнер версий стал занимать 148 Тб и клиенту пришлось заплатить 20.000 рублей за несколько дней хранения при обычных расходах в 10-50 рублей в день. И еще — всегда ставьте ограничение на размер контейнера, чтобы прогнозировать расходы!

Решил поделиться хорошим опытом архивирования баз 1С на холодное хранилище SELECTEL. Надеюсь, эта статья снимет головную боль системных администраторов 1С мелких и средних предприятий, которые никак не могут найти, в каком облаке хранить архивы. Потому что по себе знаю, что сейчас в этой теме боль и страдания.

Почему холодное хранилище и почему SELECTEL?

Холодное хранилище очень дешево для операций хранения и загрузки в него данных. Вот извлечение данных при необходимости стоит дороже, но не существенно.

В целом можно рассчитывать, что в месяц оно будет обходиться в 50-100 рублей при объеме ежедневного бэкапа в 20-50Гб с поддержкой 10-дневных версий.

Для сравнения сопоставимое по размерам облако одного из российских провайдеров обойдется в 100 рублей в месяц.

Но почему бы не взять тогда облако от обычного популярного провайдера?

Дело в том, что по непонятной причине российский облачные провайдеры препятствуют использованию своих продуктов для корпоративного сектора. Причем делают это не явно. Это узнаешь уже постфактум, типовые проблемы:

  1. Синхронизация делается только программами от провайдера. А они не работают как сервисы — если администратор не залогинился на сервере, архивация не работает.
  2. Для облака декларируется поддержка протокола WebDAV, которого можно было бы использовать для автоматической синхронизации. Но на практике этот протокол работает лишь формально — большие файлы не передает и скорость занижена до полной потери работоспособности (файл передается часами и в итоге соединение рвется).
  3. Корзина на облаке не очищается автоматически, но входит в учет занимаемого объема. Поэтому нужно писать и поддерживать скрипт очистки корзины.
  4. Ограничения на трафик, которые нельзя преодолеть даже за деньги. Например: «В течение месяца вы можете загрузить на свой Диск ограниченный объем файлов — не более двух объемов Диска по вашему тарифу».

Поэтому в конечном итоге выбор делается в сторону простого, прозрачного и надежного решения — холодного хранилища данных.

Почему SELECTEL? Я не знаю других холодных хранилищ в России. Есть хранилища непосредственно от Amazon, но туда очень сложный технический и организационный пороги входа, оплата в валюте. Да и рискованно сейчас хранить данные за границей.

В SELECTEL просто создаешь аккаунт и можно пользоваться! Причем тестовый баланс дают по запросу сразу, оплатить можно потом.

К сожалению, нет доступа по WebDav, но есть доступ по FTP, с которым удобно работать скриптами через командную строку. Скорость закачки в хранилище можно оценить по скриншоту (3 мегабайта в секунду):

Настройки хранилища в SELECTEL

Для регистрации нужен e-mail и телефон. Регистрировать нужно на юридическое лицо, если услуги оплачиваются по безналу, или на физическое, если наличными. После регистрации на SELECTEL при входе запрашивается подтверждение по SMS, авторизация в браузере держится довольно долго.

Я обычно под каждого клиента завожу отдельный профиль в Chrome, чтобы не путаться и не переключаться.

После входа создаем тикет в раздел «Баланс, оплата и отчетные документы».

Краткая формулировка: «Тестовый баланс для проверки холодного хранилища«.

Сообщение: «Прошу предоставить на 14 дней тестовый баланс 100 рублей для для проверки холодного хранилища для бэкапа данных, предполагаемый объем отправки данных в хранилище 10Гб в день, общий объем хранилища 100 Гб«. Объемы данных можно указывать примерные, на практике как раз и проверите объемы. 100 рублей достаточно для таких проверок.

Когда тестовый баланс появится, заходим в раздел «Объектное хранилище».

Выбираем команду «Создать контейнер»:

Заполняем данные о контейнере:

Создаем отдельный холодный контейнер, называем его versions.

В настройках контейнера версий указываем хранение версий 240 часов (10 суток):

В свойствах контейнера backup заходим в «Настройки контейнера»:

Включаем версионирование у контейнера backup, прописываем в название контейнера для хранения версий versions:

В итоге должно получиться два холодных контейнера:

Версионирование надежно защитит данные в случае их порчи шифровальщиками.

В разделе пользователи указываем для основного пользователя хранилища новый пароль:

При желании можно создать дополнительного пользователя.

Важно! Используйте в пароле дефис, плюс, цифры и латинские буквы. Остальные символы могут быть некорректно восприняты в скриптах FTP-архивации.

Настройки FTP-архивации на SELECTEL

Для архивации на FTP будем использовать программу WinSCP.

После установки рекомендую проверить соединение с облаком в графическом интерфейсе.

Адрес FTP-сервера: ftp.selcdn.ru Логин и пароль — от пользователя хранилища.

Также можно использовать консоль, запустить ее командой:

«C:\Program Files (x86)\WinSCP\WinSCP.exe» /console

И по очереди вводить команды open, synchronize.

Скрипт архивации ftp_backup_1s.txt для WinSCP выглядит так:

option batch on
option confirm off

# open ftp connection
open ftp://login:password@ftp.selcdn.ru

mkdir \backup\1s

# synchronize files to server
synchronize -criteria=size -transfer=binary remote "F:\Archive" \backup\1s

exit

Здесь login и password — это логин и пароль пользователя хранилища.

Локальный каталог на компьютере: «F:\Archive»

Удаленный каталог на FTP: \backup\1s

Критерием изменения файла является изменение его размера, что актуально для файлов бэкапа.

Важно! У меня был локальный каталог с русскими буквами, в консоли WinSCP воспринимает русские буквы, но в скрипте нет. Решить это оперативно не получилось, поэтому я просто переименовал исходный локальный каталог латинскими буквами.

В качестве запускалки скрипта использую ftp_backup_1s.cmd, который должен быть размещен в одном каталоге со скриптом ftp_backup_1s.txt:

"C:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script="%~dp0ftp_backup_1s.txt" /log="%~dp0ftp_backup_1s_log.txt"

Этот скрипт нужно прописать задачей в планировщик Windows, через несколько часов после старта архивации:

Рекомендую при этом обратить внимание на следующие моменты:

  1. Устанавливайте галочку «Выполнять для всех пользователей», тогда задача отработает даже если администратор не совершил вход в систему.
  2. Устанавливайте галочку «Останавливать задачу выполняемую дольше» и указывайте время 6 часов. По умолчанию там стоит 3 дня. Если скрипт зависнет, то не будет работать 3 дня.

Проверки хранения файлов на SELECTEL

Можно для проверки скачать файлы из облака и сравнить их двоично с оригиналами (например с помощью Total commander). Совпадают:

Скачивать файлы можно через FTP и из браузера.

Дата в хранилище ставится по дате создания файла, поэтому не совпадает с датой исходного файла. В случае цикличных архивов это может стать некоторой небольшой проблемой.

Архивация файлов пользователей на SELECTEL

Туда же можно архивировать и рабочие файлы пользователей (Word, Excel), если нет необходимости в их предварительном шифровании. Я обычно создаю внутри хранилища папку data и аналогичным образом синхронизирую каталоги данных с хранилищем.

Расходы и баланс

В разделе «Объектное хранилище — Потребление» можно получить аналитику по трафику, количеству запросов и расходам на хранилище:

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 3

  1. bob32:

    Упорное нежелание пользоваться S3 хранилищами… Полно инструментов, какие проблемы — не понимаю ?

    • как из консоли бэкапить? По сути из планировщика Windows просто закидывать в S3 хранилище просто по логину/паролю, без создания и поддержки в актуальном состоянии приложений по OAuth2?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *