Как да намалим обема на AWS EC2 екземпляр

Въпреки че увеличаването на обема на AWS екземпляр е лесно, намаляването му далеч не е просто. Това лесно ръководство трябва да ви помогне да свиете силата на звука на вашия Ubuntu екземпляр на EC2, за по-малко от 30 минути. Моля, обърнете внимание, че това е тествано само на Ubuntu 16.04.1 LTS, но стъпките не трябва да се различават много в други версии и аромати. Също така, можете да прочетете отказа от отговорност в долната част, преди да продължите.

Създайте моментна снимка и нов обем

  1. Ако приемем, че сте влезли във вашия AWS акаунт, изберете и спрете въпросния екземпляр.
  2. Изберете силата на звука, прикрепена към този случай, и я отделете.
  3. Изберете обособения обем и създайте моментна снимка.
  4. Докато се създава моментната снимка, създайте нов обем с предпочитания размер. Този том в крайна сметка ще замени текущия ви обем.
  5. Когато моментната снимка е готова и е създаден новият том, прикачете отново трите тома, както е описано по-долу.

Оригинален обем в / dev / sda1, нов обем в / dev / sdf, моментна снимка в / dev / sdg.

Подгответе нов обем

Рестартирайте инстанцията и влезте с SSH. Създайте файлова система на новия том, като използвате mkfs.ext4 или mke4fs.

sudo mkfs.ext4 / dev / xvdf

или,

sudo mke4fs -t ext4 / dev / xvdf

Монтирайте моментна снимка и нов обем

Създайте точки за монтиране за моментна снимка, нов обем и ги монтирайте.

sudo mkdir / mnt / newvol
sudo mkdir / mnt / моментна снимка
sudo mount / dev / xvdf / mnt / newvol
sudo mount -t ext4 / dev / xvdg1 / mnt / моментна снимка

Намерете етикета на файловата система с оригиналния том, така че да промените същия за нов том.

sudo e2label / dev / xvda

Това трябва да отпечата нещо като cloudimg-rootfs. Задайте това като етикет за новия том, замествайки <етикет> по-долу.

sudo e2label / dev / xvdf 

Копирайте файловата система в нов том

След това копирайте всички файлове от моментна снимка до нов обем с помощта на rsync,

sudo rsync -ax / mnt / моментна снимка / / mnt / newvol /

Това обикновено отнема известно време.

Инсталирайте grub на нов обем

Новият том се нуждае от собствена инсталация за изкопване.

sudo grub-install --root-directory = / mnt / newvol / --force / dev / xvdf

Деактивирайте новия том за следващата стъпка.

sudo umount / mnt / newvol

Промяна на UUID на нов обем

Преди да използвате новия том, неговият UUID трябва да бъде променен, така че да съвпада с този на първоначалния обем.

blkid

Тази команда отпечатва атрибути за блокчейн устройствата, които намира в системата. Например,

/ dev / xvda: LABEL = "cloudimg-rootfs" UUID = "263dc91a-fc69-2314-cdaf-23cabc336a24" TYPE = "ext4" PTTYPE = "dos"

Копирайте UUID низа от резултата от blkid (този за оригинален том / dev / xvda) и го използвайте с tune2fs, замествайки по-долу,

sudo tune2fs -U  / dev / xvdf

Моля, обърнете внимание, ако tune2fs не успее да промени UUID, може да се наложи да изключите uninit_bg flag * на новия том, преди да опитате отново същата команда.

sudo tune2fs -O ^ uninit_bg / dev / xvdf

* Не забравяйте да стартирате e2fsck, след като деактивирате / активирате този флаг.

Стартирайте екземпляр с нов том

  1. Излезте от SSH и спрете инстанцията.
  2. Извадете всички томове от инстанцията.
  3. Прикачете нов обем на / dev / sda1
  4. Стартирайте инстанцията.

Вече имате екземпляр, работещ с новия (намален) том.

Опровержение

Тъй като инструкциите не влияят на първоначалния обем, има по-малка вероятност да загубите данни или екземпляра. Това ръководство обаче трябва да се използва само ако знаете как се заобикаляте AWS конзолата и дистрибутивите на Linux. Помислете, че сте предупредени.