Снимок Amazon EC2 поврежден

Снимки для одного из наших томов AWS повреждены. Мы используем эти снимки в качестве резервной копии, и в прошлом они очень помогли. (Примечание: это не единственный способ резервного копирования!) Однако поврежденный снимок бесполезен.

Интересно, как с этим справиться, как это обнаружить заранее и т. Д.

ситуация

У нас есть веб-сервер AWS с одним большим томом ext3 (DATA) со множеством изображений в одной папке. Мы делаем ежедневные снимки всех объемов, и поскольку мы храним их в течение четырех недель, этот снимок слишком дорогой. Мне просто нужен один снимок изображения в случае чрезвычайной ситуации, а для остальной части объема я хочу нормальное количество. Вот что я хотел сделать:

  1. Создать снимок из тома DATA
  2. Создание нового тома ext4 ИЗОБРАЖЕНИЯ из снимка
  3. Смонтируйте тома ИЗОБРАЖЕНИЯ, удалите все файлы и папки, кроме папки с изображениями
  4. Переместить оригинальную папку в корень тома DATA
  5. Ссылка на новую папку изображений на ИЗОБРАЖЕНИЯ из исходного местоположения на ДАННЫХ
  6. Rsync все остальные данные на новый меньший том ext4: ВЕБ-САЙТ
  7. Замените том DATA на том ВЕБ-САЙТА, ​​ссылаясь на том ИЗОБРАЖЕНИЙ

Шаг 3 не сработал. Я получил следующую ошибку:

sudo mount / dev / xvdf / images
mount: mount / dev / xvdf on / images не удалось: требуется очистить структуру

Погуглив на эту ошибку я нашел совет сделать xfs_check, но файловая система ext3, поэтому я попробовал e2fsck. Это приводило к бесконечным ошибкам и исправлениям, которые, похоже, не работали.

sudo xfs_check /dev/xvdf
sudo e2fsck -f /dev/xvdf

Я создал новый том, ИЗОБРАЖЕНИЯ, и использовал rsync, чтобы скопировать все, поскольку cp привел к сбою. Я немедленно создал снимок нового тома и восстановил его, чтобы увидеть, работает ли он нормально, что он и сделал.

Затем я приступил к разделению тома и заменил старый том двумя новыми. Это все работает, и проблемы решены.

Поддержка Amazon

Тем не менее, я хочу знать, что здесь произошло, и как предотвратить это в будущем, поэтому я обратился в службу поддержки Amazon. Они сказали мне, что снимки были повреждены, вероятно, потому что снимки были сделаны во время использования тома. Мы делаем это все время, выполнили много восстановлений с этими снимками (но не с этим томом), никогда не возникало проблем. Этот том был прикреплен, но без записи во время моментального снимка.

Я решил последовать совету, отсоединить том, сделать снимок и посмотреть, что произошло. После отсоединения исходный том DATA больше не может быть подключен. Поскольку я уже заменил этот том, он не имеет последствий, так что это не большая проблема, но, очевидно, это не работает, как Adv (ERT).

Снимок можно прикрепить и смонтировать, а также открыть открытые папки и т. Д. Когда я выполняю e2fsck, я снова получаю ошибки. Оглядываясь назад, я забыл сделать этот e2fsck на оригинальном томе DATA, что очень жаль. Я думаю, что это также сообщило бы об ошибках.

В этот раз поддержка Amazon была ниже среднего, и это жаль.

Вопросы

  1. Как я могу обнаружить подобные проблемы без необходимости время от времени проверять каждый том / снимок вручную?
  2. Можно ли временно установить громкость только для записи? Как я могу это сделать?
  3. Я читал о badblocks Команда для таких проблем (Структура нуждается в очистке). Когда я восстанавливаю снимок на новый (виртуальный) том, проверка этого тома кажется бесполезной, поскольку он находится в другом физическом месте. Полезны ли бадблоки в подобном случае?
  4. Fsck, похоже, меняет содержимое диска. Какой безопасный метод для тестирования проблемного диска, как этот?

1 ответ

Снимок не поврежден. Файловая система, содержащаяся в снимке, повреждена. Есть разница

Файловая система в снимке может быть повреждена, если вы сделаете снимок, когда файловая система находится в процессе записи данных. Это может произойти, когда при инициализации моментального снимка была записана только часть группы блоков "все или ничего".

Ранее, если ваши старые снимки были сделаны во время использования тома, и восстановление прошло нормально, это просто не повезло: файловая система не записывалась в момент инициализации снимка. Теперь ваша удача закончилась, и вы столкнулись с вероятными последствиями сценария.

1. Предотвращение проблемы

Самый простой способ решить эту проблему - это просто предотвратить ее появление. Чтобы избежать подобных проблем, AWS рекомендует:

  • приостановка файловой системы (например, fsfreeze),
  • размонтирование файловой системы (например, umount), или же
  • остановка экземпляра EC2 (например, aws ec2 stop-instances).

Смотрите: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html

2. Исправление проблемы

Поскольку вы оказались с поврежденной файловой системой, ваш лучший путь - исправить файловую систему, прежде чем делать что-либо еще.

  • Используйте инструменты Linux, такие как xfs_check или же e2fsck исправить любые поврежденные блоки в вашей файловой системе.
  • Создайте новый том EBS и попробуйте скопировать на него файлы.

Как только ваша файловая система будет исправлена, тогда примите меры для предотвращения проблемы (см. Раздел 1).

Дополнительные примечания

  • Файловая система активного тома EBS не может быть повреждена при создании снимка. Только при восстановлении тома из снимка, который был инициирован в середине записи, вы получите поврежденную файловую систему.
  • Файловая система могла быть повреждена при создании снимка на шаге 1. Или она могла быть уже повреждена, если ваш том был восстановлен из более старого снимка.
Другие вопросы по тегам