У нас есть мультимедийное веб-приложение, размещенное на AWS. У нас есть несколько веб-серверов и NFS-сервер.
На сервере NFS (сервер Linux) у нас есть несколько смонтированных томов EBS, и мы использовали mdadm для реализации различных смонтированных томов как одного тома RAID. Веб-серверы просто получают доступ к хранилищу NFS через точку монтирования.
Amazon сообщила нам, что через пару дней они будут проводить техническое обслуживание этого сервера. Поскольку все наши средства массовой информации размещены здесь, это сделает наш сайт непригодным для использования в те часы, когда Amazon работает над ним. Мы хотим предотвратить это время простоя.
Я думал, что мы можем предотвратить простои сервера, возможно, временно установив новый сервер и подключив диски EBS (том рейда) к этому серверу, и наши веб-серверы будут указывать на них во время обслуживания.
Это операция с очень высоким риском, поскольку она включает несколько терабайт наших производственных данных.
Каким будет безопасный способ перенести наш логический диск raid (md0) на новый экземпляр Amazon? Я надеялся, что смогу начать со сборки нового сервера, монтирования томов ebs и сборки раздела RAID с помощью mdadm --assemble --scan перед размонтированием из существующего экземпляра, чтобы я мог сначала проверить, что все работает, и, таким образом, смонтировать его. в двух экземплярах одновременно, но я не верю, что это возможно с тем, как работают файловые системы.
Как перенести программный RAID Linux на новую машину? предлагает способ перемещения дисков, но на самом деле это не облачный вопрос. Возможно, есть более простые способы предотвратить простои системы, если наше решение размещено в облаке? Я подумал о том, чтобы сделать снимок EBS, но он пытается реплицировать все многие терабайты смонтированного хранилища, так что это не практическое решение.
Любые идеи?
Я только что понял: создавать новый экземпляр вручную и вручную перемещать диск RAID не нужно.
Поскольку экземпляр основан на EBS, а диски, образующие том raid, также основаны на EBS, я могу просто остановить образ ebs, а затем запустить его снова. Это перенесет его на новое оборудование.
Это, безусловно, самый простой способ сделать это. Поскольку сервер теперь получит новый IP-адрес, мне просто нужно обновить fstab на веб-серверах, чтобы указать на правильный сервер.
Вы можете прикрепить устройство EBS только к одному экземпляру, поэтому вам придется отсоединять его при перемещении. Я предполагаю, что вы хотите избежать процессов с большим объемом данных, таких как создание снимка EBS или синхронизация данных с новым экземпляром. Я также предполагаю, что вы используете RAID1.
Самый безопасный вариант потребует пару минут простоя. Вы должны запустить новый экземпляр, установить и настроить необходимое программное обеспечение (например, сервер NFS). Затем на старом экземпляре отключите файловую систему, остановите массив и отсоедините два устройства EBS. Затем подключите устройства EBS к новому экземпляру, запустите массив и смонтируйте файловую систему. Заставьте веб-серверы смонтировать NFS из нового экземпляра. Запуск массива должен быть просто случаем запуска mdadm
команду, которую вы описываете, но я обязательно сначала ее протестирую.
Второй вариант потенциально имеет меньшее время простоя (при условии, что вы можете некоторое время работать в режиме только для чтения), но он более опасен. Вы должны запустить новый экземпляр, как указано выше. На старом экземпляре перемонтируйте файловую систему в режиме только для чтения. Затем выведите из строя одно из устройств RAID, отсоедините это устройство EBS и подключите его к новому экземпляру. Запустите массив в деградированном режиме на новом экземпляре, смонтируйте файловую систему и заставьте веб-серверы смонтировать NFS из нового экземпляра (на этом этапе сайт должен быть полностью доступен). Затем остановите массив на старом экземпляре, отсоедините устройство EBS, присоедините его к новому экземпляру и добавьте его в массив. Однако это может вызвать полную повторную синхронизацию, поэтому сначала проверьте это.
Что бы вы ни делали, не забудьте сначала протестировать процесс, чтобы точно знать, как его выполнять, и убедитесь, что у вас есть резервные копии на случай, если что-то пойдет не так. (Также рассмотрите возможность хранения медиафайлов на S3.)