Растущие объемы Amazon EBS Volume [закрыто]


154

Я впечатлен сервисами Amazon EC2 и EBS. Я хотел знать, возможно ли увеличить объем EBS.

Например: если у меня том объемом 50 ГБ и у меня заканчивается свободное место, могу ли я увеличить его до 100 ГБ при необходимости?


2
Я написал учебник по увеличению объема вашего ebs на - aws-musings.com/how-to-expand-your-ebs-volume
Вайбхав Пураник

8
Отличный вопрос (+1). Хотя лучше подходит для отказа сервера?
Джоник

1
Пожалуйста, подтвердите этот ответ, так как он более актуален: stackoverflow.com/a/15229477/163461
Дэвид

1
@Jonik Я полностью согласен. Для тех, кто может (и также согласен), пожалуйста, проголосуйте, чтобы вновь открыть этот вопрос, чтобы его можно было перенести. Если какой-то мод чтения не может сделать то же самое?
Як

Это должно быть перенесено на сбой сервера, если только по какой-либо другой причине, кроме случаев , когда требуется больше текущих ответов (например, тот, который ссылается на документацию AWS по этой теме на docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
Jeromy French

Ответы:


9

Все отличные рекомендации, и я решил добавить найденную статью, которая касается расширения экземпляра Windows Amazon EC2 EBS с использованием инструментов веб-интерфейса Amazon для выполнения необходимых изменений. Если вам неудобно использовать CLI, это значительно облегчит ваше обновление.

http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

Спасибо TekGoblin за публикацию этой статьи.


103

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

Там простое прохождение игры здесь основана на использование инструментов командной строки EC2 Амазонки


2
Вам также необходимо изменить размер файловой системы. Вы, вероятно, ищете "resize2fs - ext2 / ext3 / ext4 resizer файловой системы".
Джеймс Мур

8
Я просто должен был гуглить это. Я задал этот вопрос и это видео одновременно. Это действительно отличная прогулка, хотя огромное спасибо создателю: youtube.com/watch?v=ouYjQ3_I3BA (я сам все выяснил, кроме небольшого изменения размера, как упоминал Джеймс Мур.)
Крис Аллен Лейн,

Существует также способ установить размер тома EBS с помощью AWS-SDK , запросив сначала VolumeSize его снимка, как одну из гибких возможностей в Benefit с использованием EBS .
Четабахана

Теперь вы можете изменить размер живого тома с консоли AWS . Кажется, работает только на экземплярах SSD (gp2, io1), и вы даже можете переключаться с одного типа на другой. Я не уверен, когда это было добавлено, но это решает главную болевую точку.
STRML

44

Вы не можете просто «врезать» больше места на лету, если вам это нужно, но вы можете изменить размер раздела с помощью снимка.

Шаги к этому:

  1. размонтировать объем ebs
  2. создать снимок ebs
  3. добавить новый объем с большим пространством
  4. воссоздать таблицу разделов и изменить размер файловой системы
  5. смонтировать новый объем ebs

Посмотрите на http://aws.amazon.com/ebs/ - Снимок EBS:

Снимки также можно использовать для создания нескольких новых томов, расширения размера тома или перемещения томов по зонам доступности. Когда создается новый том, существует возможность создать его на основе существующего снимка Amazon S3. В этом случае новый том начинается с точной копии исходного тома. Опционально указывая другой размер тома или другую зону доступности, эту функцию можно использовать как способ увеличить размер существующего тома или создать дубликаты томов в новых зонах доступности. Если вы решите использовать снимки для изменения размера тома, вы должны быть уверены, что ваша файловая система или приложение поддерживает изменение размера устройства.


22

Я следовал всем ответам, у всех чего-то не хватает со всем уважением.

Если вы выполните эти шаги, вы сможете увеличить свой том EBS и сохранить свои данные (это не для корневого тома). Для простоты я предлагаю использовать AWS канон для создания снимка ... вы можете сделать это, используя инструменты командной строки AWS.

Мы не касаемся корневого тома здесь.

Перейдите в консоль AWS:

  1. Выключите свой экземпляр (это будет только на несколько минут)
  2. Отключите том, который вы планируете увеличить (скажем / dev / xvdf)
  3. Создайте снимок тома.
  4. Создайте новый том большего размера, используя только что созданный снимок
  5. Прикрепите новый том к вашему экземпляру
  6. Начните свой экземпляр

SSH к вашему экземпляру:

 $ sudo fdisk -l

Это дает вам что-то вроде:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

Запишите значения Start и Id . (в данном случае 2048 и 83)

Используя fdisk, удалите раздел xvdf1 и создайте новый, который начинается точно с того же блока (2048). Мы дадим тот же идентификатор (83):

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Этот шаг хорошо объяснен здесь: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

Почти готово, нам просто нужно смонтировать том и запустить resize2fs:

Смонтируйте объем ebs: (мой находится в / mnt / ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

и изменить его размер:

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

Готово! Используйте, df -hчтобы проверить новый размер.


19

Пока у вас все в порядке с несколькими минутами простоя, Эрик Хаммонд написал хорошую статью по изменению размера корневого диска на работающем экземпляре EBS: http://alestic.com/2010/02/ec2-resize-running-ebs -root


1
Вдохновленный этим, я начал писать «awscripts», @ github.com/moejay/awscripts, в который входят команды Эрика, а также команды для изменения типов экземпляров, в простом, «crontabbable» сценарии
Джей

5

Теперь вы можете сделать это через Консоль управления AWS. Процесс такой же, как и в других ответах, но вам больше не нужно идти в командную строку.


7
Можете ли вы опубликовать дополнительную информацию о том, как это делается через веб-консоль? Консоль может изменять размер тома, но как она справляется с изменением размера раздела внутри тома, особенно если он относится к типу, подобному XFS, BRTFS и т. Д.?
Рияд Калла

Это должен был быть комментарий, поскольку он только дополняет существующие ответы и не добавляет ничего нового сам по себе.
Як

1
Инструкции по использованию веб-консоли доступны здесь: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Дан Осипов,

4

Кстати: как и с физическими дисками, может быть удобно использовать LVM; например:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

Большое преимущество: позволяет динамически добавлять (или удалять) пространство.

Его также можно легко перемещать между / между экземплярами.

Предостережения:

  • он должен быть настроен заранее
  • простая настройка JBOD означает, что вы потеряете все, если потеряете один «диск»

4

Мои шаги:

  1. остановить дело
  2. найти том ebs, прикрепленный к экземпляру, и создать его снимок
  3. создайте новый том с большим дисковым пространством, используя приведенный выше снимок. К сожалению, пользовательский интерфейс на консоли aws для создания моментального снимка практически непригоден, поскольку в нем перечислены все снимки на aws. Использовать инструмент командной строки намного проще, например так:

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. отсоединить существующий том ebs (меньший) от экземпляра

  5. присоедините новый (больший) том к экземпляру и убедитесь, что подключите его к тому же устройству, которое ожидает экземпляр (в моем случае это / dev / sda1)
  6. начать экземпляр

Вы сделали!

Кроме шага 3, описанного выше, вы можете делать все, используя консоль управления aws.

Также обратите внимание, как указано здесь:

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

устройство в вашем экземпляре ec2 может быть / dev / xv *, а веб-консоль aws сообщает, что это / dev / s *.


2
Начиная с ноября 2013 года, вы можете выбрать только что созданный снимок и просто нажать «Создать том» в верхней части страницы. Это создаст том из снимка, и вы можете избежать выполнения шага 3 выше из командной строки.
Мэтт C

1
Следует отметить, что вы должны убедиться, что вы создаете том в той же зоне доступности, что и экземпляр, иначе вы не сможете подключить его.
codecowboy

3

Используйте команду «diskpart» для ОС Windows, посмотрите здесь: Используйте http://support.microsoft.com/kb/300415 Ниже приведены шаги, которые я выполнил для диска без полномочий root (базовый, а не динамический диск).

После того как вы сделали снимок, демонтировали старый том EBS (скажем, 600 ГБ) и создали больший том EBS (скажем, 1 ТБ) и смонтировали этот новый том EBS - вам нужно будет сообщить Windows об изменении размера (от 600 ГБ до 1 ТБ), чтобы в командной строке (запуск от имени администратора)

diskpart.exe

выберите диск = 9

выберите громкость = Z

простираться

[мой диск 9, том с надписью Z, был объемом 1 ТБ, созданным из снимка ec2 размером 600 ГБ - я хотел изменить размер от 600 ГБ до 1 ТБ и поэтому мог бы выполнить описанные выше шаги, чтобы сделать это.]


Отлично работал для моей системы Win Server 2003 R2 Datacenter. Спасибо за чаевые!
Джефф Хей

Отличный пост, очень помог мне!
user1326293

0

Я настоятельно рекомендую Logical Volume Manager (LVM) для всех томов EBS, если ваша операционная система поддерживает это. Обычно дистрибутивы Linux так и делают. Это здорово по нескольким причинам.

  1. Изменение размера и перемещение логических томов может быть выполнено в режиме реального времени, поэтому вместо целой автономной моментальной копии, которая требует простоя, вы можете просто добавить создание еще большего тома EBS, добавить его в пул LVM в качестве физического тома (PV), переместить логический том (LV), удалите старый физический том из пула и удалите старый том EBS. Затем вы просто изменяете размер логического тома и изменяете размер файловой системы на нем. Это не требует простоев вообще!

  2. Он абстрагирует ваше хранилище от ваших «физических» устройств. Перемещение разделов между устройствами без необходимости простоя или изменения точек монтирования / fstab очень удобно.

Было бы неплохо, если бы Amazon позволил изменять размеры томов EBS на лету, но с LVM это не так необходимо.


0

если ваш корневой том - файловая система xfs, тогда выполните эту команду xfs_growfs /


Это нужно немного подробнее, чтобы считаться полным и полезным ответом.
Як
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.