Как только возникает проблема сохранения баз данных 1С, сразу же встает вопрос об их переносе в безопасное место, желательно подальше из страны.
Мы предлагаем воспользоваться услугой «перенос 1С в облако». Ее поэтапный механизм рассмотрим в данной статье, в которой рассказывается, как можно спрятать 1С в Германии.
Условия ситуации
Компания, которая заказала перенос баз данных 1С на еще один терминальный сервер, расположенный в Германии, работает в определенных условиях:
- пользователи ведут свою деятельность с тонких клиентов на ферме терминальных серверов,
- периметр «охраняет» роутер, межсетевой экран которого D-Link DFL-800,
- к нему поднята сотня туннелей IPsec,
- он отвечает за резервирование WAN.
Те БД 1С, что были определены для переноса, имели конфигурацию, осложненную множественным числом обменов и обработок (при этом используемые другими базами данных, а также сетевыми ресурсами). Также учитывалось, что следует оставить без изменений применение Active Directory, которая служит для авторизации пользователей в 1С.
Первый этап – добавление сервера в домен
Чтобы сервер мог видеть через зашифрованный канал всю локальную сеть, он должен стать полноправным членом домена. Проведенные операции по решению этой задачи отражены на общей схеме.
После того, как туннель создан, на этом этапе подготавливаются сетевые параметры сервера, используя для этого wmi. И завершающий момент – добавление в домен.
Туннель в Германии функционировал на скорости приблизительно 24 Mbps(при этом заявленный предел для VPN составил 60 Mbps). Специалисты считают такой результат хорошим, потому что предельное значение необходимо из-за дуплекса делить пополам.
Второй этап – замена всех путей к базам данных 1С
Так исторически сложилось, что добавлять пути к базам данных 1С автоматически следует, использовав скрипт (чудовищный!), который построчно в профиле пользователя заполняет файл ibases.v8i. Поэтому в описываемой ситуации воспользовались временным AutoIT, имеющим более простой скрипт.
;Собираем в массив файлы конфигурации 1сlocal $aArray = _FileListToArrayRec («путь к DFS-шаре с профилями пользователей», «ibases.v8i»,1,1,0,2) if@error <> 1then;Перебираем массивfor $i=1to $aArray[0] $iLine=0While1 $iLine += 1 $sLine = FileReadLine($aArray[$i],$iLine ) If@error = -1ThenExitLoop;если находим в строке конфига нужную нам базу… IfStringInStr($sLine, ‘Ref=»Нужная база «;’) Then;…То меняем в имя сервера _ReplaceStringInFile($aArray[$i],$sLine,StringReplace($sLine,«Имя старого сервера»,«Имя нового сервера»)) EndIfWEndNext
EndIf
Хотя специалисты утверждают, что есть еще более удачные альтернативные решения на данном этапе (например, штатный механизм 1С + безопасность NTFS или Powershell).
Третий этап – настройка резервного WAN-подключения
Резервное WAN-подключение настраивается после того, как принципиально удаленные базы данных 1С уже доступны для работы пользователей. Для этого IPSec учат переподключаться на другой адрес, если основной является недоступным. В этом помогает скрипт CMD.
@echo off Rem задаем адреса IP основного и резервного канала.Set office1=1.2.3.4Set office2=4.3.2.1Rem проверяем туннель пингом локального адреса:Ping10.0.0.10 -n 3Rem если адрес недоступенiferrorlevel1 ( rem проверяем доступность основного канала интернетping%office1% -n 3rem если и он не доступен – проверяем резервный каналiferrorlevel1 ( ping%office2% -n 3rem если уж и он недоступен – значит в офисе проблемы. Пишем в логiferrorlevel1 ( echo%date%%time% office down >> check-ipsec.txt ) else ( Rem если же резервный канал доступен – переключаем туннельecho%date%%time% reset tun office2 >>check-ipsec.txt netsh ipsec static set rule id=1 policy=ipsec tunnel=%office2% netsh ipsec static set policy name=ipsec assign=no netsh ipsec static set policy name=ipsec assign=yes ping10.0.0.10 -n 3 ) ) else ( Rem если же основной канал в порядке, а туннеля нет rem значит нужно переключить туннель обратно, или он просто завис.echo%date%%time% reset tun office1 >> check-ipsec.txt netsh ipsec static set rule id=1 policy=ipsec tunnel=%office1% netsh ipsec static set policy name=ipsec assign=no netsh ipsec static set policy name=ipsec assign=yes ping10.0.0.10 -n 3 ) )
Для решения проблем с отказоустойчивым IPSec-подключением, сценарий устанавливается в автозапуске каждые 5 минут. Для переключения каналов со стороны D-link DFL есть специальные инструкции, размещенные на официальном сайте.
Специалисты подсказывают: можно произвести настройку двух туннелей с помощью разных провайдеров, но это увеличит нагрузку на сервер.
Заключение
Описываемый поэтапный механизм переноса 1С своими результатами удовлетворил запросы заказчика. Но бухгалтеры компании оказались ими не довольны. Подобное недовольство объясняется тем, что специалисты смогли спрятать 1С на удаленный сервер в Германии, но скорость работы в период больших нагрузок была низкой из-за не слишком высокой производительности VPN. Такая проблема решается заменой более мощного роутера (например, на 1 ГБ). В заключение следует отметить, что описанный перенос 1С был совершен с минимально возможными затратами.