Установка диска NVME на AWS EC2

Итак, я создал i3.large с диском NVME на каждом узле, вот мой процесс:

  • lsblk → nvme0n1 (проверьте, пока nvme еще не установлен)
  • sudo mkfs.ext4 -E nodiscard/dev/nvme0n1
  • sudo mount -o discard/dev/nvme0n1/mnt/my-data​​li >
  • /dev/nvme0n1/mnt/my-data ext4 по умолчанию, nofail, discard 0 2
  • sudo mount -a (проверьте, все ли в порядке)
  • перезагрузка sudo

Итак, все это работает, я могу подключиться к экземпляру. У меня есть 500 Перейдите в мой новый раздел.

Но после того, как я остановил и перезапустил компьютеры EC2, некоторые из них случайно стали недоступными (предупреждение AWS проверено только на 1/2 теста)

Когда я смотрю журналы о том, почему это недоступно, он говорит мне об этом разделе nvme (но я сделал sudo mount -a, чтобы проверить, все ли в порядке, поэтому я не понимаю)

У меня нет журналов AWS точно, но я получил несколько строк:

Плохое магическое число в суперблоке при попытке открыть

тогда суперблок поврежден, и вы можете попробовать запустить e2fsck с альтернативным суперблоком:

/dev/fd/9: строка 2: plymouth: команда не найдена

Ответ 1

Остановка и запуск экземпляра стирают эфемерные диски, перемещает экземпляр на новое хост-оборудование и выдает новые пустые диски... поэтому эфемерные диски всегда будут пустыми после остановки/запуска. Когда экземпляр остановлен, он не существует на любом физическом узле - ресурсы освобождаются.

Итак, лучший подход, если вы собираетесь останавливать и запускать экземпляры, - это не добавлять их в /etc/fstab а просто форматировать их при первой загрузке и монтировать их после этого. Один из способов проверки наличия файловой системы - использование file утилиты и grep ее вывод. Если grep не находит совпадение, он возвращает false.

SSD NVMe в классе экземпляров i3 является примером объема хранилища экземпляров, также известного как Ephemeral [Disk | Объем | Привод ]. Они физически находятся внутри экземпляра и очень быстро, но не избыточны и не предназначены для постоянных данных... следовательно, "эфемерные". Постоянные данные должны быть на томе Эластичного блока (EBS) или в Эластичной файловой системе (EFS), обе из которых выдерживают остановку/запуск экземпляра, сбои оборудования и обслуживание.

Непонятно, почему ваши экземпляры не загружаются, но nofail не может делать то, что вы ожидаете, когда присутствует тома, но не имеет файловой системы. У меня сложилось впечатление, что в конечном итоге это должно получиться.

Но вам может понадобиться apt-get install linux-aws при запуске Ubuntu 16.04. Поддержка Ubuntu 14.04 NVMe на самом деле не стабильна и не рекомендуется.

У каждого из этих трех решений хранения есть свои преимущества и недостатки.

Магазин экземпляров является локальным, поэтому он довольно быстро... но, это эфемерно. Он выдерживает жесткие и мягкие перезагрузки, но не останавливает/запускает циклы. Если ваш экземпляр испытывает сбои в оборудовании или планирует выйти на пенсию, как это происходит со всем оборудованием, вам придется остановиться и запустить экземпляр, чтобы перенести его на новое оборудование. Зарезервированные и выделенные экземпляры не изменяют поведение эфемерного диска.

EBS - это постоянное избыточное хранилище, которое можно отделить от одного экземпляра и переместить в другое (и это происходит автоматически через останов/старт). EBS поддерживает моментальные снимки момента времени, и они увеличиваются на уровне блоков, поэтому вы не платите за хранение данных, которые не менялись в моментальных снимках... но через отличное колдовство у вас также нет отслеживать "полные" и "инкрементные" снимки - моментальные снимки - это только логические контейнеры указателей на резервные блоки данных, поэтому они, по сути, являются "полными" моментальными снимками, но только выставлены как инкрементные. Когда вы удаляете моментальный снимок, удаляются только блоки, которые больше не нужны для восстановления того моментального снимка и любого другого моментального снимка, из внутренней системы хранения (которая, прозрачно для вас, фактически использует Amazon S3).

Объемы EBS доступны как как SSD, так и магнитные объемы вращающегося диска, опять же с компромиссами в стоимости, производительности и соответствующих приложениях. См. Типы томов EBS. Объемы EBS имитируют обычные жесткие диски, за исключением того, что их емкость может быть вручную увеличена по требованию (но не уменьшена) и может быть преобразована из одного типа тома в другой без выключения системы. EBS выполняет всю миграцию данных "на лету" с уменьшением производительности, но без сбоев. Это относительно недавняя инновация.

EFS использует NFS, поэтому вы можете монтировать файловую систему EFS на столько случаев, сколько хотите, даже в зонах доступности внутри одного региона. Предел размера для любого одного файла в EFS составляет 52 терабайта, и ваш экземпляр будет фактически сообщать о 8 экзабайтах свободного места. Фактическое свободное пространство для всех практических целей неограничено, но EFS также является самым дорогим - если у вас есть 52 файла TiB, хранящихся там в течение одного месяца, это хранилище будет стоить более 15 000 долларов. Самое большее, что я когда-либо хранил, было около 20 TiB в течение 2 недель, стоило мне около 5 тысяч долларов, но если вам нужно место, пространство там. Он выставляется ежечасно, поэтому, если вы сохранили 52 файла TiB всего за пару часов, а затем удалили его, вы заплатили бы, может быть, за 50 долларов. "Эластичность" в EFS относится к мощности и цене. Вы не предусмотрели место в EFS. Вы используете то, что вам нужно, и удаляете то, что у вас нет, а оплачиваемый размер вычисляется ежечасно.

Дискуссия о хранилище не будет полной без S3. Это не файловая система, это хранилище объектов. Приблизительно 1/10 цена EFS, S3 также имеет фактически бесконечную емкость и максимальный размер объекта 5 ТБ. Некоторые приложения лучше разрабатывать с использованием объектов S3 вместо файлов.

S3 также может быть легко использован системами вне AWS, будь то в вашем центре обработки данных или в другом облаке. Другие технологии хранения предназначены для использования внутри EC2, хотя есть недокументированное обходное решение, которое позволяет использовать EFS извне или через регионы с прокси и туннелями.

Ответ 2

У меня был такой же опыт! Мой экземпляр C5.xlarge обнаруживает EBS как nvme1n1. Я добавил эту строку в fstab.

 /dev/nvme1n1 /data ext4 discard,defaults,nofail 0 2

После нескольких перезагрузок он выглядел работоспособным. Он продолжал работать в течение нескольких недель. Но сегодня я просто получил предупреждение, что экземпляр не смог подключиться. Я попытался перезагрузить его с консоли AWS, не повезло, что виновником является fstab. Не удалось установить диск.

Я поднял билет до поддержки AWS, и обратной связи пока нет. Я должен запустить новый экземпляр для восстановления моей службы.

В другом тестовом экземпляре я пытаюсь использовать UUID (получить по команде blkid) вместо /dev/nvme 1n1. Пока все еще работает... увидит, вызвала ли она какие-либо проблемы.

Я буду обновлять здесь, если какая-либо поддержка поддержки AWS.

================ EDIT с моим исправлением ===========

AWS пока не дает мне отзывов, но я нашел проблему. На самом деле, в fstab, независимо от того, что вы монтируете /dev/nvme 1n1 или UUID, это не имеет значения. Моя проблема: у моего ESB есть некоторые ошибки в файловой системе. Я привязал его к экземпляру, затем запустил

fsck.ext4 /dev/nvme1n1

После исправления пары ошибок файловой системы поместите ее в fstab, перезагрузите, больше проблем!

Ответ 3

Вы можете найти полезный новый экземпляр семейства EC2, оснащенный локальным хранилищем NVMe: C5d.

См. Запись в блоге: https://aws.amazon.com/blogs/aws/ec2-instance-update-c5-instances-with-local-nvme-storage-c5d/

enter image description here

Некоторые выдержки из сообщения в блоге:

  • Вам не нужно указывать отображение блочного устройства в вашем AMI или во время запуска экземпляра; локальная память будет отображаться как одно или несколько устройств (/dev/nvme * 1 в Linux) после загрузки гостевой операционной системы.
  • Помимо добавления локального хранилища, C5 и C5d используют одни и те же спецификации.
  • Вы можете использовать любой AMI, который включает драйверы для Elastic Network Adapter (ENA) и NVMe
  • Каждое локальное устройство NVMe аппаратно зашифровано с использованием блочного шифрования XTS-AES-256 и уникального ключа.
  • Локальные устройства NVMe имеют тот же срок службы, что и экземпляр, к которому они прикреплены, и не закрываются после того, как экземпляр был остановлен или завершен.