Ситуация: у нас есть сервер MySQL в AWS, использующий три тома EBS в чередующемся логическом томе для хранения данных базы данных. Логический том почти заполнен, поэтому нам нужно как-то его расширить. Один из вариантов - перезапустить сервер и присоединить новые, более крупные тома EBS, а затем восстановить их из существующего моментального снимка со старого сервера. (В конечном итоге нам нужно будет сделать это в следующий раз, когда нам придется заменить сервер по другим причинам, поэтому я пропускаю параметры, которые изменяют существующий сервер на месте.)
У меня такой вопрос: если у нас есть три снимка EBS (скажем) по 50 ГБ каждый, составляющие логический том, могу ли я восстановить эти снимки на новый сервер с тремя томами EBS большего размера (скажем, 75 ГБ или 100 ГБ или что-то еще)? Или это рецепт катастрофы? Есть ли какие-то особые шаги, которые мне нужно предпринять, чтобы взять на себя текущий процесс? Если бы я хотел вместо этого добавить четвертый том EBS объемом 50 ГБ, могу ли я восстановить три моментальных снимка в новую группу из четырех томов?
Вы можете просто увеличить размер текущего тома (подробнее здесь). Я знаю, что вы сказали, что отказались от этой опции, потому что вам понадобится новый экземпляр, но вы можете легко подключить эти же тома к новому экземпляру. Если вам нужно, чтобы старый и новый экземпляры работали одновременно без перерывов (вы не сказали), это не сработает.
NB: Я явно не собираюсь копировать сюда большую веб-страницу. Документация AWS довольно стабильна и регулярно обновляется, я не хочу, чтобы устаревшие ответы вызывали проблемы.
Альтернативное решение
Просто восстановите свои снимки на трех новых томах, подключите их к новому экземпляру и используйте их.
Потому что LVM Логический объем можно расширить, просто добавив больше дисков (Физические объемы = Тома EBS) в Группа томов.
pvcreate
разделvgextend
lvresize
а затем расширить файловую систему (зависит от типа вашей файловой системы, например resize2fs
).Вы можете попробовать расширить текущие тома EBS вместо добавления трех новых, но тогда вы по-прежнему необходимо расширить все разделы, обновить VG, развернуть LV и изменить размер файловой системы. Это немного более подвержено ошибкам, но должно работать так же.
Преимущество использования нескольких томов EBS заключается в том, что пропускная способность IOPS рассчитывается на каждый том. Т.е. чем больше томов, тем больше пропускная способность ввода-вывода. Это может быть неактуально, если ваш сервер MySQL лишь слегка загружен, но все же полезно знать.
На вашем месте я бы перенес вашу базу данных на Амазонка Аврора управляемая база данных, совместимая с MySQL. Практически нет необходимости запускать самоуправляемый MySQL на EC2, если вы не делаете что-то очень особенное. С Авророй вы получите:
TRUNCATE wrong_table_oops;
;)Я перенес много баз данных MySQL в Aurora, и почти во всех случаях это было так просто, как mysqldump
из старой базы данных и загрузите ее в Aurora (в качестве альтернативы используйте AWS DMS) и измените имя хоста базы данных в приложении. Это просто и сэкономит вам много накладных расходов на управление MySQL в будущем.
Надеюсь, это поможет :)