Решил поделиться хорошим опытом архивирования баз 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 и аналогичным образом синхронизирую каталоги данных с хранилищем.

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

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

Комментарии (15)


  1. alekssamos
    13.05.2023 09:57

    Ребятки, у меня такой вопрос про FTP.
    Скачивал и загружал 11 гб по FTP, если связь плохая, например, мобильный интернет, то файл был повреждён. Если я это делал через другие протоколы, при обрыве и восстановлении связи он проверял хеши и докачивал, делал всё правильно. А ftp - нет.

    Есть ли ещё у кого такая проблема и если да, то как её решали?


  1. pfr46
    13.05.2023 09:57

    FTP медленный (3 mb/s на сегодня это очень медленно) так он ещё и мёртвый протокол. Не просто так его из браузеров удалили.


    1. fixin Автор
      13.05.2023 09:57
      -1

      Медленный, но верный. А главное простой.

      Все эти S3 протоколы и прочие слишком сложны.

      Кто хочет продавать - создает условия.

      Если бы Яндекс хотел привлечь средний бизнес для бэкапов, реализовал хотя бы Webdav.


      1. numb
        13.05.2023 09:57
        +1

        Возможно я не прав, и мне показалось, но тон ответов автора, на комментарии "всё плохое, вот мое хорошее"

        Webdav - по опыту, если у вас много объектов, то это дико медленно(

        С s3 я вообще проблем не вижу, почти каждое современное ПО для бекапа в него может, а если нет, то консольный клиент решает этот вопрос. У самого пет-проекты(linux) бекапятся в s3, и все хорошо.


        1. fixin Автор
          13.05.2023 09:57
          +1

          все упирается в учебную курву. Где взять консольного клиента для s3 из командной строки? Ну и потом, я посмотрел расценки на Яндекс холодное облако. Ничего там не дешево.


      1. pfr46
        13.05.2023 09:57

        1. fixin Автор
          13.05.2023 09:57

          это что за извращение? Есть протокол WebDav, который прекрасно работает через Curl а это что, API Webdavа? Это как?


          1. pfr46
            13.05.2023 09:57

            Это не API WebDav'а, а API для работы с WebDav'ом. Curl конечно так же можно использовать. Яндекс диск сам по себе использует WebDav.


    1. dmitrye1
      13.05.2023 09:57

      Вот никак не пойму, почему при передаче одного большого файла FTP должен быть медленнее других протоколов? Куча маленький файлов - согласен, будут проблемки.


  1. shachneff
    13.05.2023 09:57
    +1

    У селектела дорогое объектное хранилище. Я у яндекс облака его беру. Так там еще и ЛЕДЯНОЕ есть, оно еще дешевле холодного, для вечных архивов с хранением не меньше года самое то.

    Winscp для винды. Если сервер на линуксе?

    Если база на ms sql, советую 2022 версию, там штатно бекап базы на уровне скуля делается прямо в объектное хранилище s3, без программ и скриптов


    1. fixin Автор
      13.05.2023 09:57

      Дорогое? я вас умоляю. Посмотрел цены на Яндексе.

      https://cloud.yandex.ru/services/storage

      400 Гб холодного хранилища с 100Гб исходящим из облака траффиком стоят 555 рублей в месяц.


  1. port-sigar
    13.05.2023 09:57

    Скажите, может я чего-то не понимаю. Но вот уже несколько лет в теме и какая-то контора позволяет себе хранить бух учет на облаке? Все что моя орг-я наработала за 20 лет нежно храниться на сьемных носителях в сейфе у бухгалтера в двух и еще копия на болванках. Ежедневно копия на дополнительный диск и с него на внешний. И так уже 20 лет. Внешний диск естественно жесткий не ссд. И все в сохранности.


    1. fixin Автор
      13.05.2023 09:57

      Тут нужно оценивать вероятности пожара и шифровальщика. Копия должна быть размещена отдельно и быть изолированные версии.
      Просто ручками диски двигать можно, если ручки недорого стоят. Если ручки дорогие, облако дешевле выходит.


    1. numb
      13.05.2023 09:57
      +1

      Если инфра конторы находится в облаке, а не под столом главбуха, то и бекапы будут в облаке.

      Про бекапы, есть принцип 3-2-1, исходя из которого, одна копия должна находится вне периметра компании. Если делать все это руками, то обязательно выстрелит человеческий фактор, когда кому-то будет лень это делать, или забыл, или заболел и тогда будет больно.


      1. fixin Автор
        13.05.2023 09:57

        Вот именно. Надо просчитывать все риски.