Я хотел бы поделиться файловой системой с поддержкой EBS размером до 20 ГБ в файлах размером 200 КБ в нескольких экземплярах EC2. Мастер-мастер было бы идеально, но я тоже был бы доволен решением мастер-раб.
Я знаю, что общее решение для Linux будет использовать DRBD, но есть ли для этого специальный инструмент для AWS?
Кстати. Я нашел аналогичный вопрос, который задавали более года назад: Совместное использование / репликация EBS на узлах AWS
Блочные устройства как вычислительная модель не предназначены для доступа более чем с одного устройства. Абстракция EBS этой аппаратной модели не способна изменить правила игры, потому что драйверы файловой системы в вышележащий вычислительные экземпляры остались прежними. Они могут творить только магию вроде снимков, потому что доступ для чтения в лежащий в основе Layer не влияет на то, что программное обеспечение в системе ожидает, на блочных устройствах. Если какая-либо система, отличная от одного экземпляра EC2, к которому подключен том, попытается напрямую изменить биты на ваших дисках, файловая система самоуничтожится.
Единственное, что вы можете сделать особенным с EBS, - это использовать моментальные снимки для клонирования дисков и прикрепить каждый клон устройства к отдельному экземпляру. Это было бы полезно, если бы у вас был относительно статический набор данных только с периодическими обновлениями и вам нужен был быстрый локальный доступ из многих экземпляров.
Вам нужно будет переместить вашу архитектуру совместного использования на один уровень выше в файловую систему. Для этого есть множество инструментов, включая общие файловые системы, такие как nfs
. Конечно, ваша производительность будет ограничена производительностью экземпляра EC2, к которому вы подключаете устройство и используете его в качестве файлового сервера.
Если вам требуется что-то более тонкое, чем эти два подхода, вам нужно будет изучить одну из различных распределенных, реплицируемых или кластерных файловых систем. Также, как вы упомянули, существуют инструменты синхронизации более низкого уровня, такие как DRDB, но я предполагаю, что вам с большей вероятностью понадобится уровень файловой системы, чем система синхронизации на уровне блоков.
Для дополнительной благодарности: ознакомьтесь с некоторыми из текущих разговоров о том, являются ли блочные устройства подходящей моделью для использования, например, в этой статье: Магазин магических блоков: когда абстракции не справляются.