Легко архивируем 1С на холодное хранилище SELECTEL
UPD: Статья устарела, есть более актуальная версия статьи для 2024 года.
UPD: Важно! Не используйте хранилище версий, потому что если файл не докачался по FTP, создается новая версия даже для такого битого файла. В итоге, когда FTP начало работать нестабильно, при размере основного контейнера 84 Гб контейнер версий стал занимать 148 Тб и клиенту пришлось заплатить 20.000 рублей за несколько дней хранения при обычных расходах в 10-50 рублей в день. И еще — всегда ставьте ограничение на размер контейнера, чтобы прогнозировать расходы!
Решил поделиться хорошим опытом архивирования баз 1С на холодное хранилище SELECTEL. Надеюсь, эта статья снимет головную боль системных администраторов 1С мелких и средних предприятий, которые никак не могут найти, в каком облаке хранить архивы. Потому что по себе знаю, что сейчас в этой теме боль и страдания.
Почему холодное хранилище и почему SELECTEL?
Холодное хранилище очень дешево для операций хранения и загрузки в него данных. Вот извлечение данных при необходимости стоит дороже, но не существенно.
В целом можно рассчитывать, что в месяц оно будет обходиться в 50-100 рублей при объеме ежедневного бэкапа в 20-50Гб с поддержкой 10-дневных версий.
Для сравнения сопоставимое по размерам облако одного из российских провайдеров обойдется в 100 рублей в месяц.
Но почему бы не взять тогда облако от обычного популярного провайдера?
Дело в том, что по непонятной причине российский облачные провайдеры препятствуют использованию своих продуктов для корпоративного сектора. Причем делают это не явно. Это узнаешь уже постфактум, типовые проблемы:
- Синхронизация делается только программами от провайдера. А они не работают как сервисы — если администратор не залогинился на сервере, архивация не работает.
- Для облака декларируется поддержка протокола WebDAV, которого можно было бы использовать для автоматической синхронизации. Но на практике этот протокол работает лишь формально — большие файлы не передает и скорость занижена до полной потери работоспособности (файл передается часами и в итоге соединение рвется).
- Корзина на облаке не очищается автоматически, но входит в учет занимаемого объема. Поэтому нужно писать и поддерживать скрипт очистки корзины.
- Ограничения на трафик, которые нельзя преодолеть даже за деньги. Например: «В течение месяца вы можете загрузить на свой Диск ограниченный объем файлов — не более двух объемов Диска по вашему тарифу».
Поэтому в конечном итоге выбор делается в сторону простого, прозрачного и надежного решения — холодного хранилища данных.
Почему 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, через несколько часов после старта архивации:
Рекомендую при этом обратить внимание на следующие моменты:
- Устанавливайте галочку «Выполнять для всех пользователей», тогда задача отработает даже если администратор не совершил вход в систему.
- Устанавливайте галочку «Останавливать задачу выполняемую дольше» и указывайте время 6 часов. По умолчанию там стоит 3 дня. Если скрипт зависнет, то не будет работать 3 дня.
Проверки хранения файлов на SELECTEL
Можно для проверки скачать файлы из облака и сравнить их двоично с оригиналами (например с помощью Total commander). Совпадают:
Скачивать файлы можно через FTP и из браузера.
Дата в хранилище ставится по дате создания файла, поэтому не совпадает с датой исходного файла. В случае цикличных архивов это может стать некоторой небольшой проблемой.
Архивация файлов пользователей на SELECTEL
Туда же можно архивировать и рабочие файлы пользователей (Word, Excel), если нет необходимости в их предварительном шифровании. Я обычно создаю внутри хранилища папку data и аналогичным образом синхронизирую каталоги данных с хранилищем.
Расходы и баланс
В разделе «Объектное хранилище — Потребление» можно получить аналитику по трафику, количеству запросов и расходам на хранилище:
Упорное нежелание пользоваться S3 хранилищами… Полно инструментов, какие проблемы — не понимаю ?
как из консоли бэкапить? По сути из планировщика Windows просто закидывать в S3 хранилище просто по логину/паролю, без создания и поддержки в актуальном состоянии приложений по OAuth2?