Цели проекта
- Произвести безболезненный переезд компании с одной операционной системы на другую.
- Перейти на новую кодировку базы данных UTF8MB4CI.
- Грамотно настроить сервер и доукомплектовать его важным набором программ.
Анализ
На этапе запуска мы имеем:
- База данных Mysql 95 гигабайт.
- Архив с файлами в 100 гигабайт.
- Сервер располагается в нашей инфрастуктуре, специально созданной для Битрикс24
- Запуск резервной копии средствами Битрикс платформы управления сайтом за 5 часов не упаковал и 30% всей информации.
- Компания работает в нескольких часовых поясах и большой простой критичен для бизнеса.
Наш подход к решению задачи
Мы предлагаем клиенту решение, которое позволит максимально плавно перейти на новую операционную систему. Для этого был выработан специальный план действий, который учитывал все особенности, выявленные на этапе анализа всей ситуации.
План переноса
Для оптимизации всего процесса мы разбили весь переезд на несколько крупных этапов. Для проведения работ было выбрано нерабочее время. В резерв мы заложили 72 часа, чтобы было время на реагирование в случае нештатных ситуаций и как показала практика не зря.
Подготовка эталонной системы Centos 9
Поскольку данный переезд был на нашей инфраструктуре, то у нас не возникло проблем, т.к. имеется уже готовый настроенный эталонный образ Centos 9 вместе с окружением Битрикс24 9 версии. Для начала мы его выделили и подготовили на том же гипервизоре что и работающая машина с предыдущей версией ОС. В эталонный образ уже входит набор программ, которые расширяют базовые функции системы и позволяют дополнительно защитить систему от перебора паролей и вирусов. Так же у нас имеются оптимизированные настройки разных серверов и служебные скрипты для адаптации конкретного портала к железу и нагрузке. Все наши машины мониторятся на главном сервере системой ZABBIX по более 300 параметрам круглые сутки.
Выгрузка базы данных
95 гигабайт - это достаточно много. В Битрикс24 более 2000 таблиц, которые связаны между собой. Это очень осложняет перенос данных. Если у вас в системе есть диски NVME и HDD, то стоит выгружать именно на быстрый диск, т.к. скорость может отличаться в разы. Выгружать средствами Битрикса базу данных слишком долго. Наши тесты даже с учетом выгрузки на диск NVME показали, что речь идёт о 7 часах и более, т.к. платформа выгружает по своему алгоритму и тратит много ресурсов на параллельные процессы. В итоге выгружали средствами MYSQL на отдельный диск NVME, который предварительно был создан и подключен к виртуальной машине. Всего на этот этап ушло 4,5 часа. После создания копии базы мы переносим этот диск на эталонную машину для дальнейшей распаковки.
Перенос файлов портала
Данный этап потребовал от нас перенести папку /backup на диск с файлами, чтобы ускорить переезд. Мы сделали копию портала без папки /upload и базы данных. Полученный архив потом был отмонтирован и перенесён вместе с файлами папки /upload
Перенос файлов из /upload
Поскольку у нас в инфраструктуре каждая виртуальная машина имеет разделения на файлы портала и файлы загружаемые в папку /upload для нас не составило труда отмонтировать диск с одной виртуальной машины и перенести его на другую виртуальную машину. После этого смонтировать и подключить в соответсвующую папку портала.
Разворот резервной копии портала
Первое что мы делаем - это с подключенного диска загружаем скопированную базу данных в базу эталонного портала средствами MYSQL. Далее мы запускаем процедуру восстановления портала с диска, который был ранее примонтирован. Для того, чтобы не раздувать диск с базой данных мы делаем хитрый ход, прокидывая симлинки от файлов с резервной копии в корневую папку битрикса. Это позволит сэкономить место при разворачивании копии. После разворачивания копии у нас есть работающий портал.
Конвертация базы данных в кодировку UTF8MB4CI
Портал у нас работает, но кодировка базы данных у нас UTF8MB3. Для новой операционной системы и новой версии Mysql UTF8MB4CI является кодировкой по умолчанию. Нам предстоит снять лимиты с важных служб и запустить перекодирование всех таблиц базы данных. Вся эта процедура может занять 4 и более часа. Всё зависит от железа сервера на котором расположен портал. После перекодирования нужно будет убедиться, чтобы все таблицы и сама база данных была исправна.
Окончательная настройка окружения
Если на предыдущих этапах всё было выполнено грамотно, то нам остаётся донастроить окружение Битрикс, проверить портал на ошибки и перенести настройки отправки почты и прочие скрипты, если они были установлены в старой системе.
Результаты переезда и улучшения
- В краткие сроки перенесён на новую операционную систему достаточно большой портал.
- Новая система настроена по самым строгим стандартам безопасности системы.
- База данных переведена на новую кодировку, которая по производительности более быстрая и поддерживает большое количество специальных символов.
- Портал теперь сможет получать обновления как файлов PHP, так и пакетов, которые составляют окружение Битрикс24.