Я заинтересован в создании двух отказоустойчивых / избыточных серверов NFS с аварийным переключением на Amazon EC2. Я знаком с такими инструментами / технологиями, как DRBD, Heartbeat и т. Д. Предоставляет ли Amazon какие-либо конкретные способы достижения этой цели через свою платформу?
Подходящим примером может быть то, что файлы хранятся на отдельной резервной EBS - в случае сбоя новый экземпляр автоматически запускается из предварительно созданного AMI, том EBS монтируется, а IP-адрес переносится без проблем.
Это возможно? Есть ли платформы лучше, чем Amazon? Можете ли вы дать мне общее представление о базовой архитектуре, о которой мы говорим, чтобы осуществить это?
В AWS использование GlusterFS с Elastic Load Balancer и автоматическое масштабирование инстансов EC2 должно дать желаемый результат. Я не могу комментировать другие IaaS.
Amazon предоставляет некоторые из того, что вам нужно для достижения вашей цели, а остальное позволяет реализовать.
Серверы Amazon EC2 по сути являются VPS - вы можете настроить на них Heartbeat / Corosync / Pacemaker и т. Д. (Хотя в прошлый раз, когда я проверял, вы не можете использовать широковещательную рассылку в их сети - вы можете использовать одноадресную передачу - udpu).
Вы упомянули две идеи, которые Amazon рассматривает (отчасти) отдельно: отказоустойчивость и избыточность.
В EC2 нет встроенного механизма избыточности, хотя в зависимости от того, что вы ищете, есть несколько способов добиться этого.
С другой стороны, отказоустойчивость лучше обеспечивается платформой Amazon:
В дополнение к вышесказанному вы можете передавать настраиваемые параметры своим недавно запущенным экземплярам или довольно легко извлекать информацию о ваших запущенных в данный момент экземплярах, что может позволить вам создать сценарий для некоторых настроек (и, конечно же, у AWS есть API, который позволит вам создать скрипт для всех действий, которые они предлагают - включая переназначение эластичного IP-адреса, запуск новых экземпляров, отсоединение / присоединение томов EBS и т. д.).
Вы описали, что «файлы хранятся на отдельной резервной EBS ... [которая затем] монтируется». Во-первых, в EC2 том EBS может быть присоединен только к одному экземпляру за раз (поэтому для копирования данных на него необходимо присоединить том EBS). Вы должны поддерживать избыточность (вы можете настроить RAID-массивы устройств EBS или сделать что-нибудь еще). Проблема, однако, в том, что иногда тома EBS не отключаются, когда экземпляр действительно выходит из строя - вы можете принудительно отсоединить их (что дает лучший, но не идеальный показатель успеха), и вы можете сделать снимок тома EBS, даже если он используется (что затем вы можете создать новый том EBS и запустить AMI с помощью). Однако лучше (меньше времени на восстановление, более гибко и т. Д.) Поддерживать реплики данных в нескольких экземплярах, а не в нескольких томах EBS в одном экземпляре.
Другой вариант - использовать Zadara Storage, то есть NFS «как услугу». Поскольку это служба, вам не нужно управлять стеком сервера NFS, и по умолчанию это HA. Вам даже не нужно платить за экземпляры сервера NFS. Вы можете подключить все машины EC2 к своим общим ресурсам, используя стандартный NFS.
Раскрытие информации: я с Zadara Storage.