it-swarm.com.ru

Монтирование диска NVME на AWS EC2

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

  1. lsblk -> nvme0n1 (проверьте, не смонтирован ли nvme)
  2. Sudo mkfs.ext4 -E nodiscard/dev/nvme0n1
  3. Sudo mount -o сбросить/dev/nvme0n1/mnt/my-data
  4. / dev/nvme0n1/mnt/my-data ext4 по умолчанию, nofail, сбросить 0 2
  5. Sudo mount -a (проверьте, все ли в порядке)
  6. Перезагрузка судо

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

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

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

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

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

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

/ dev/fd/9: строка 2: плимут: команда не найдена

14
tricky

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

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

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

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

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

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

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

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

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

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

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

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

10
Michael - sqlbot

Вы можете найти новое семейство экземпляров 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 имеют то же время жизни, что и экземпляр, к которому они подключены, и не остаются после того, как экземпляр был остановлен или завершен.
1
Vlad Holubiev

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

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

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

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

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

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

================ РЕДАКТИРОВАТЬ с моим исправлением ===========

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

fsck.ext4 /dev/nvme1n1

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

0
user1619801