Ответ 1
UPDATE (апрель 2015 г.). Для этого варианта использования вы должны начать поиск новой Amazon Elastic File System (EFS ), который предназначен для многократного присоединения точно так, как вы этого хотите. Ключевое различие между EFS и EBS заключается в том, что они предоставляют различные абстракции: EFS предоставляет протокол NFSv4, тогда как EBS обеспечивает доступ к исходному блочному IO.
Ниже вы найдете мое первоначальное объяснение того, почему невозможно безопасно монтировать необработанное блочное устройство на нескольких машинах.
ОРИГИНАЛЬНАЯ ПОЧТА (2011):
Даже если вы смогли получить том EBS, прикрепленный к нескольким экземплярам, это будет _REALLY_BAD_IDEA_. Чтобы процитировать Kekoa, "это похоже на использование жесткого диска на двух компьютерах одновременно"
Почему это плохая идея?... Причина, по которой вы не можете присоединить тома к нескольким экземплярам, заключается в том, что EBS предоставляет абстракцию "блокировки блоков", на которой клиенты запускают файловую систему, такую как ext2/ext3/etc. Большинство этих файловых систем (например, ext2/3, FAT, NTFS и т.д.) Написаны при условии, что они имеют эксклюзивный доступ к блочному устройству. Два экземпляра, обращающихся к одной и той же файловой системе, почти наверняка закончили бы слезы и повреждение данных.
Другими словами, двойной монтаж тома EBS будет работать, только если вы используете файловую систему кластера, предназначенную для совместного использования блочного устройства между несколькими компьютерами. Более того, этого было бы недостаточно. EBS необходимо будет протестировать для этого сценария и обеспечить, чтобы он обеспечивал те же гарантии согласованности, что и другие решения разделяемых блочных устройств... т.е. Что блоки не кэшируются на промежуточных неосновных уровнях, таких как ядро Dom0, слой Xen, и ядро DomU. И тогда соображения производительности синхронизации блоков между несколькими клиентами - большая часть кластерных файловых систем предназначены для работы на высокоскоростных специализированных SAN, а не в сети с лучшими усилиями. Это звучит так просто, но то, о чем вы просите, очень нетривиально.
Кроме того, посмотрите, может ли ваш сценарий совместного использования данных быть NFS, SMB/CIFS, SimpleDB или S3. В этих решениях используются протоколы более высокого уровня, предназначенные для совместного использования файлов без общей подсистемы блочных устройств. Много раз такое решение фактически более эффективно.
В вашем случае у вас все еще может быть один экземпляр/файловый сервер MySql, к которому обращаются несколько веб-интерфейсов. Затем этот файловый сервер может хранить данные на томе EBS, позволяя вам выполнять ночные резервные копии моментальных снимков. Если экземпляр, на котором запущен файловый сервер, потерян, вы можете отсоединить громкость EBS и снова подключить его к новому экземпляру файлового сервера и выполнить резервное копирование и запуск в считанные минуты.
"Есть ли что-то вроде S3 в качестве файловой системы?" - да и нет. Да, есть сторонние решения, такие как s3fs, которые работают "нормально", но под капотом им все равно приходится делать относительно дорогие вызовы веб-сервисов для каждого чтения/записи. Для общего инструментария dir работает отлично. Для типа кластерного использования FS вы видите в мире HPC, а не шанс. Чтобы добиться большего успеха, вам понадобится новая служба, которая обеспечивает бинарный протокол, ориентированный на соединение, например NFS. Предлагая такую многоуровневую файловую систему с разумной производительностью и поведением, это будет добавление GREAT для EC2. Я уже давно сторонник Amazon, чтобы построить что-то подобное.