ОНОВЛЕННЯ (квітень 2015 р.) . У цьому випадку використання слід почати дивитися на нову файлову систему Amazon Elastic File (EFS) , розроблену так, щоб вона була багаторазово прив’язаною саме так, як вам потрібно. Ключова відмінність EFS від EBS полягає в тому, що вони пропонують різні абстракції: EFS розкриває протокол NFSv4, тоді як EBS забезпечує доступ до необмеженого блоку IO.
Нижче ви знайдете моє оригінальне пояснення того, чому неможливо безпечно змонтувати необмежений блок блоку на декількох машинах.
ОРИГІНАЛЬНА ПОСТ (2011):
Навіть якби вам вдалося отримати об'єм EBS, приєднаний до декількох екземплярів, це буде _REALLY_BAD_IDEA_. Цитую Кекоа, "це як використовувати жорсткий диск на двох комп'ютерах одночасно"
Чому це погана ідея? ... Причина, коли ви не можете приєднати об'єм до більш ніж одного примірника, полягає в тому, що EBS надає абстракцію "блочного зберігання", за якою клієнти запускають файлову систему на зразок ext2 / ext3 / тощо. Більшість цих файлових систем (наприклад, ext2 / 3, FAT, NTFS тощо) написані, припускаючи, що вони мають ексклюзивний доступ до блокового пристрою. Два випадки доступу до однієї файлової системи майже напевно закінчилися б сльозами та пошкодженням даних.
Іншими словами, подвійний монтаж тома EBS працюватиме лише в тому випадку, якщо ви працюєте з файловою системою кластера, призначеною для спільного використання пристрою блоку між декількома машинами. Крім того, навіть цього було б недостатньо. EBS потрібно тестувати на цей сценарій і гарантувати, що він забезпечує ті ж гарантії послідовності, що й інші рішення пристроїв спільного блоку ... тобто, блоки не кешуються на проміжних рівнях, що не поділяються, як ядро Dom0, шар Xen, і ядро DomU. А потім є міркування щодо ефективності синхронізації блоків між декількома клієнтами - більшість кластеризованих файлових систем розроблені для роботи над високошвидкісними спеціалізованими SAN, а не найкращими товарними мережами. Це звучить так просто, але те, що ви просите, - це дуже нетривіальна річ.
Крім того, подивіться, чи можливий сценарій обміну даними NFS, SMB / CIFS, SimpleDB або S3. Всі ці рішення використовують протоколи більш високого рівня, які призначені для обміну файлами без спільної підсистеми блокових пристроїв. Багато разів таке рішення насправді є більш ефективним.
У вашому випадку у вас все ще може бути один екземпляр / файловий сервер MySql, до якого можна отримати доступ до декількох веб-сторінок. Цей сервер файлів може потім зберігати свої дані на томі EBS, що дозволяє робити нічні резервні копії знімків. Якщо екземпляр, на якому працює сервер файлів, загублений, ви можете від'єднати об'єм EBS і приєднати його до нового екземпляра файлового сервера і створити резервну копію та запустити за лічені хвилини.
"Чи є щось на зразок S3 як файлової системи?" - так і ні. Так, є сторонні рішення, такі як s3fs, які працюють «добре», але під капотом вони все ще повинні робити відносно дорогі дзвінки веб-служб для кожного читання / запису. Для спільного інструментального режиму, чудово працює. Для типу кластеризованого використання FS, який ви бачите у світі HPC, це не шанс. Щоб зробити це краще, вам знадобиться нова послуга, яка забезпечує бінарний протокол, орієнтований на з'єднання, як NFS. Пропонування такої багатомонтажної файлової системи з розумною продуктивністю та поведінкою було б ВЕЛИКОГО додатком для EC2. Я давно був прихильником Amazon будувати щось подібне.