Как уменьшить объем тома EBS без потери данных?

Я хотел бы уменьшить объем тома EBS без потери данных.

Я хотел бы изменить емкость с 1 ТБ до 200 ГБ.

Пожалуйста, подробно опишите, как это сделать.

Ответы

Ответ 1

Подход, который я принимаю к уменьшению объема корня EBS, выглядит следующим образом:

Остановить (не завершать) целевой экземпляр и отделить корневой объем EBS. Кроме того, вы можете сделать снимок корневого тома (или использовать существующий моментальный снимок) и создать из него новый том EBS. (например,/dev/xvda1)

Примечание. Объем, который вы используете из вышеприведенного шага, будет изменен, поэтому вы можете захотеть сделать снимок, если вы этого еще не сделали.

Create a new EBS volume that is the desired size (e.g. /dev/xvdg)

Launch an instance, and attach both EBS volumes to it

Check the file system (of the original root volume): (e.g.) e2fsck -f /dev/xvda1

Maximally shrink the original root volume: (e.g. ext2/3/4) resize2fs -M -p /dev/xvda1

Copy the data over with dd:
    Choose a chunk size (I like 16MB)

    Calculate the number of chunks (using the number of blocks from the resize2fs output): blocks*4/(chunk_size_in_mb*1024) - round up a bit for safety

    Copy the data: (e.g.) dd if=/dev/xvda1 ibs=16M of=/dev/xvdg obs=16M count=80

Resize the filesystem on the new (smaller) EBS volume: (e.g.) resize2fs -p /dev/xvdg

Check the file system (of the new volume): (e.g.) e2fsck -f /dev/xvdg

Detach your new EBS root volume, and attach it to your original instance

Ответ 2

Ответ от ezhilrean в порядке, но есть более простой способ.

Скажем, у вас есть экземпляр с вашим /var разделом на /dev/sdf 1, и вы хотите уменьшить его с 300 до 200 ГБ (предполагая, что в /var есть данные до 200 ГБ)

Создайте новый том в том же AZ, что и исходный том Прикрепите его к экземпляру как /dev/sdg Войдите в аккаунт с правами root

fdisk /dev/sdg
n (for New)
p (for Primary)
Accept defaults for other fdisk options
w (for Write)

fdisk затем выйдет. Теперь вам нужно создать файловую систему на новом разделе

mkfs.ext4 /dev/sdg1 (presuming that ext4 was used on existing partition)

Затем установите новый раздел во временную точку монтирования

mkdir /new
mount /dev/sdg1 /new

Теперь скопируйте свои данные

cd/var  cp -ax */new/

Обновите свой /etc/fstab, чтобы использовать новый раздел для /var

/dev/sdg1   /var        ext4    defaults        0   0

Перезагрузка

init 6

Если вам нужен ваш/var-раздел с идентификатором /dev/sdf 1, вы можете остановить экземпляр, отсоединить оба тома EBS и снова подключить новый меньший как /dev/sdf Не забудьте изменить /etc/fstab, прежде чем вы это сделаете