Кейс по переносу Битрикс24 из облачной в коробочную версию (при большом объеме данных).
Если посмотреть на этот вопрос с технической стороны, чаще всего процедура перемещения Битрикс24 из облака в коробку – это классическое мероприятие. Оно практически ничем не отличается от процесса восстановления на основе резервной копии. В определенных случаях могут произойти ситуации, когда возникают трудности при восстановлении классическими штатными средствами.
Что может произойти?
Стоит рассмотреть ситуацию, которая произошла с одним из наших заказчиков. Он пользовался облачным сервисом от Битрикс24. В определенный момент предоставленного функционала стало недостаточно.
Клиент решил переместить все в коробку, чтобы легче корректировать и дорабатывать корпоративный портал с учетом своих нужд. Одновременно с этим, он желал сохранить сервер и Битрикс24 на территории организации.
Коробочный Битрикс24 непринципиально относится к месту расположения сервера. Главное, он в обязательном порядке должен соответствовать нужным техническим характеристикам. В ситуации с нашим заказчиком, требовалось расположить корпоративный портал на виртуальной машине имеющегося сервера, который соседствует с главной 1С, контроллером доменной зоны и иными сервисами.
В связи с тем, что на момент разработки виртуальной машины сервер использовался на протяжении многих лет, системный администратор смог выделить лишь 125 гигабайт SSD. Такого объема памяти было мало для фирмы, где в штате присутствует порядка ста человек.
Чаще всего, при возникновении аналогичной ситуации, мы предлагаем использовать облачное хранилище, чтобы выгрузить файлы. Здесь же сделать это невозможно, так как загрузочные файлы являются информацией, которую нужно оставить на территории заказчика.
После долгих дискуссий, системный администратор изыскал неиспользуемый объем памяти на диске HDD. Его также можно было бы присоединить к серверу. Использовать HDD в качестве главного диска мы не рискнули, так как это приводит к снижению скорости работы портала. Скорость чтения/записи достаточна для директории, поэтому HDD применили именно здесь.
Какие есть ограничения?
1. Время
После заказа создания резервной копии в Битрикс24 происходит рассинхронизация между корпоративным порталом в облачном сервисе и тем, который восстанавливается из бэкапа. По истечении такого процесса возникают последствия, которые нужно обязательно устранить. Чем больше времени прошло с момента создания бэкапа, тем меньше последствий.
Мы никаким образом не сможем повлиять на скорость работы представителей Битрикс24. Они создают бэкап примерно за 2-3 дня. Единственное, что мы можем гарантировать, так это восстановление в сжатые сроки.
2. Размер диска
Полная копия корпоративного веб-ресурса, согласно проведенной предварительно оценке, весит примерно 250 гигабайт. С разрешения заказчика получилось слегка освободить место, но итоговый объем изменился несущественно – до 221 гигабайта. Его в любом случае больше, чем на основном диске.
Было решено пойти обходным путем. Совершены действия:
- В ходе установки NAS применили в качестве корневой директории Битрикс.
- Скачали/восстановили резервную копию.
- Перенесли файлы из ядра Битрикс на диск SSD.
- Перемонтировали NAS к директории.
3. Скорость интернета
Перед тем, как перенести всю информацию, была измерена скорость интернета. Она составляла порядка 60 Мбит/с. Зная о недобросовестности провайдера, мы сомневались, что скорость останется неизменной. К счастью, подозрения не оправдались.
Было бы неприятно осознавать, что весь офисный канал занят скачиванием бэкапа. Мы не знали, какими сервисами пользуются в локальной сети, каким образом наши действия повлияют на работоспособность предприятия. Именно поэтому изначально было договорено, что скорость скачивания ограничится до 40 МБит/с.
Для проведения расчетов стоит привлечь математику. В нашем случае скачивание 221 гигабайта информации, если установлена скорость 40 МБит/с, продлится примерно 12 часов. Это долго даже в том случае, если скорость на канале не была бы ограничена.
Мы предварительно рассчитывали, какой скорости можно достигнуть, если распределить архив среди специалистов из разрабатывающего отдела. Думали отправить их домой, чтобы специалисты с помощью домашнего интернета скачали части архива, привезли его в офис на флеш-накопителе. Теоретически, на такую процедуру ушло бы четыре часа. На практике данная методика сопровождается возникновением многих рисков. Именно поэтому, от нее решили отказаться.
4. Восстановление бэкапа
Классическая методика восстановления корпоративного портала из резерва – скачивание его с веб-ресурса restore.php. Нужно открыть скрипт с помощью браузера, следовать представленным там инструкциям. Данный способ будет актуальным для малого интернет-магазина, а для крупных порталов (к примеру, нашего) он не подойдет. Стоит рассмотреть причины более подробно:
- Необходимо скачать 2 271 часть из архива, каждая из которых весит примерно по 100 мегабайт. Если в системе случайно произойдет сбой, процесс нужно начинать сначала. Зная, что на скачивание уйдет 12 часов, делать такое было рискованно.
- Скрипт перемещает архив по одной части. В итоге такая процедура происходит медленнее, чем при реализации многопоточного скачивания.
- Работа мастера по восстановлению резервной копии основана на использовании графического интерфейса, взаимодействующего с браузером. При случайном закрытии вкладки, процедуру нужно начинать сначала.
Распаковка/дешифровка файлов с информацией обязательно делается с использованием restore.php, но перемещение бэкапа лучше осуществить самому. После запуска мастера по восстановлению скрипту будет видно, что требуемые файлы уже на месте. Он автоматически перейдет к следующему этапу.
Как осуществляется перенос?
1. Настройка сервера
Нужно заранее установить на сервере CentOS 7.5., а также последнюю модификацию веб-окружения Битрикс24. Компоненты с сервисами (Apache, Nginx, Mysql, Memcached, Sphinx и NodeJS RTC), которые необходимы в последующем, обязательно стоит настроить. Осуществляем выпуск SSL-сертификатов, корректируем автоматическое продление, присоединяем сервер к системе мониторинга.
Чтобы восстановить бэкап, нужно поставить 2 пакета:
- Aria2. Он нужен для скачивания файлов, используя многопоточный режим.
- Tmux. Такой пакет позволяет в любое время выполнить синхронизацию или отключиться от сервера.
$ yum install -y aria2 tmux
2. Запрос создания резервной копии
Чтобы осуществить эту процедуру, нужно связаться с представителями Битрикс24, подождать, пока копия будет готова. После этого придет письмо на электронную почту о том, что требуемый архив можно скачивать. Здесь же прописано точное число частей, в нашей ситуации – 2271.
3. Скачивание резервной копии
Первоначально стоит сформировать файл, где перечислена вся информация, требуемая для скачивания:
# Первая часть архива
$ echo 'http://migration-share-box.bx24.net/cloud/20190226_203923/20190226_203923_full_93b858c5.enc' > /home/bitrix/www/files.txt
# Последующие части архива
$ for i in seq 1 2270 ; do echo "http://migration-share-box.bx24.net/cloud/20190226_203923/20190226_203923_full_93b858c5.enc.$i" >> /home/bitrix/www/files.txt; done
Далее необходимо открыть сессию в пакете Tmux, инициировать процесс скачивания путем использования команды:
$ aria2c --max-overall-download-limit 6M --max-connection-per-server 10
--max-concurrent-downloads 10 --continue --input-file /home/bitrix/www/files.txt
--dir /home/bitrix/www/files.txt
Рекомендуем на протяжении пары минут посмотреть, имеются ли сбои в ходе ведения процесса. Если все в порядке, можно отключиться от сервера. Далее нужно ждать, пока завершится ранее рассчитанный промежуток времени – 12 часов.
4. Восстановление резервной копии
В нашей ситуации скачивание завершилось через 11 часов 45 минут. Продолжаем работу – переносим скрипт restore.php на корневую директорию Битрикс:
curl -sL https://www.1c-bitrix.ru/download/files/scripts/restore.php -o /home/bitrix/www/restore.php
Далее запускаем скрипт из браузера, выполняем все действия, которые предлагает сделать мастер установки. Здесь невозможно сделать процедуру быстрее, нужно ждать, пока все задачи будут завершены.
У нас для полного восстановления ушло примерно 5 часов 15 минут. Для исследования целостности ядра мы дополнительно затратили 20 мин., а на восстановление базы – примерно четверть часа. Сразу после этого корпоративный портал начал свою работу.
5. Донастройка Битрикс24
После всех вышеописанных манипуляций можно оповестить заказчика о готовности портала к использованию. Параллельно с этим выполняется донастройка. К примеру, необходимо удалить резервную копию и всевозможные служебные скрипты.
Что в итоге?
Независимо от того, как рекламируется система для резервного штатного копирования, использование такого подхода не всегда эффективно при снятии бэкапов. Бывают ситуации, что с помощью такой методики справиться с поставленными задачами попросту невозможно.
Обсуждая технические требования к серверу с заказчиком, нужно учесть, что коробочная версия Битрикс24 – это весьма сложный софт. Для нормальной работоспособности нужно привлечь большое количество ресурсов. Чтобы не возникло сложностей с интеграцией и дальнейшей работой, не рекомендуется формировать бюджет по остаточному принципу.
Нужен перенос Битрикс24 из облака в коробку? Проведите эту процедуру с опытным интегратором Битрикс24.
Перенос Битрикс24 с облака на коробку