Диск EC2 не размер тома EBS


18

У меня есть экземпляр EC2, для которого я создал том EBS на 500 ГБ. К сожалению, экземпляр EC2 показывает только 8 ГБ.

У меня только один диск, и это правильно.

[root@ip-10-244-134-250 ~]# ls -la /dev/x*
brw-rw---- 1 root disk 202, 1 Aug  7 08:54 /dev/xvda1

Но этот диск только 8 ГБ

[root@ip-10-244-134-250 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            8.0G  1.3G  6.7G  16% /
tmpfs                 3.7G     0  3.7G   0% /dev/shm

Но fdisk и / proc / partitions показывают правильный размер

[root@ip-10-244-134-250 ~]# fdisk -l

Disk /dev/xvda1: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/xvda1 doesn't contain a valid partition table

[root@ip-10-244-134-250 ~]# cat /proc/partitions 
major minor  #blocks  name

 202        1  524288000 xvda1

Любая помощь будет принята с благодарностью, спасибо.

Ответы:


34

Если корневой файловой системой является ext3 или ext4, выполните:

sudo resize2fs /dev/xvda1

Если корневой файловой системой является xfs (реже), запустите:

sudo xfs_growfs /

Вы можете опустить "sudo", если вы вошли в систему как root.

Эти команды должны выполняться во время работы системы и монтирования файловой системы.

Стандартные тома EBS не содержат таблицы разделов. Том EBS обычно форматируется как файловая система полностью без разделов.


2
Раздражает меня, когда люди голосуют за тебя без объяснения причин. Во всяком случае, это работало прекрасно. Огромное спасибо!
Кристиан

1
/ я пожимает плечами и движется с жизнью :-) Рад помочь. Вот пара статей, которые я написал: alestic.com/2009/12/ec2-ebs-boot-resize alestic.com/2010/02/ec2-resize-running-ebs-root
Эрик Хаммонд,

2
Обратите внимание, что пакет cloud-init, включенный в AMI Ubuntu, автоматически запускает resize2fs при загрузке. Я удивлен, что это не в Amazon Linux, так как они также используют cloud-init.
Эрик Хаммонд

4
У меня та же проблема, и когда я запускаю команду, она говорит: Файловая система уже 2096896 блоков. Нечего делать! Это все еще 8 ГБ!
Neo

12

Ответы здесь, кажется, пропускают несколько шагов перед изменением размера специально для людей, которые изменяют свой размер тома EBS. Если вы использовали моментальный снимок для создания EBS или с определенными AMI, вам потребуется расширить диск (xvda), расширить раздел (xvda1), а затем расширить файловую систему (/).

Если я правильно читаю, ваш диск выглядит так:

/dev/xvda
|__/dev/xvda1__|______________ Free space______________|

Это должно выглядеть так:

/dev/xvda
|______________________/dev/xvda1______________________|

После этого, рабочая область resize2fsвырастет в это новое пространство внутри xvda1, используя, fdiskмы можем увеличить размер блока, удалив и создав его снова и сделав загрузочный раздел. все, что требуется, это перезагрузка. В большинстве случаев это не должно влиять на ваши данные, если вы используете тот же цилиндр запуска, но учтите, что любая ошибка при воссоздании раздела приведет к потере всех данных и / или к тому, что сервер не перезагрузится. Я бы порекомендовал сделать это в качестве первого шага на только что созданном экземпляре. В противном случае сделайте снимок вашего хранилища EC2 EBS и т. Д.

Я пометил шаги с помощью << # >> в блоке ниже, поэтому они не являются частью команды. Вам нужны права суперпользователя, поэтому сделайте «sudo sh», если вы не root.

<<1>> Look at the filesystem, it is 6G
<<2>> Look at the disk and the partition, the disk is 21.5 GB but the partition is 6 GB (6291456 blocks)
<<3>> Start fdisk for that disk (xvda, so not the partition xvda1)
<<4>> Switch to sector display.
<<5>> Print the partition(s), and remember the start sector (2048 in the example).
<<6>> Delete the partition.
<<7>> Create a new partition.
<<8>> Make it primary.
<<9>> First partition.
<<10>> Enter the old start sector, do NOT make any typo here!!! (2048 in the example) 
<<11>> Hit enter to accept the default (this is the remainder of the disk)
<<12>> Print the changes and make sure the start sector is ok, if not restart at <<6>>
<<13>> Make the partition bootable. do NOT forget this!!!
<<14>> Enter your partition number (1 in the example)
<<15>> Write the partition info back, this will end the fdisk session.
<<16>> Reboot the server, and wait for it to come up (this may take longer than usual).
<<17>> Verify the filesystem size.
<<18>> If the filesystem is not around 20Gb as expected, you can use this command.


# df -h  <<1>>

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      6.0G  2.0G  3.7G  35% / 
tmpfs            15G     0   15G   0% /dev/shm

# fdisk -l  <<2>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders
Units = cylinders of 1649 * 512 = 844288 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           2        7632     6291456   83  Linux

# fdisk /dev/xvda  <<3>>

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): u  <<4>>
Changing display/entry units to sectors

Command (m for help): p  <<5>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 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: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048    12584959     6291456   83  Linux

Command (m for help): d  <<6>>
Selected partition 1

Command (m for help): n  <<7>>
Command action
   e   extended
   p   primary partition (1-4)
p  <<8>>
Partition number (1-4): 1  <<9>>
First sector (17-41943039, default 17): 2048  <<10>>
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <<11>>
Using default value 41943039

Command (m for help): p <<12>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 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: 0x0003b587

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

Command (m for help): a  <<13>>
Partition number (1-4): 1  <<14>>


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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: ...
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

# reboot  <<16>>

<wait>

# df -h  <<17>>
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  2.0G   17G  11% / 
tmpfs            15G     0   15G   0% /dev/shm

# resize2fs /dev/xvda1  <<18>>
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvda1 to 5242624 (4k) blocks.
The filesystem on /dev/xvda1 is now 5242624 blocks long.

root@vs120 [~]#  df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  7.8G   11G  42% /
tmpfs           498M     0  498M   0% /dev/shm
/usr/tmpDSK     399M   11M  368M   3% /tmp
root@vs120 [~]#

1
Расширение раздела необходимо только в том случае, если том разделен. Это довольно редко на EC2. Общепринятая лучшая практика в EBS - форматировать весь необработанный том в файловой системе, не размещая его вначале. Это особенно верно для загрузочных томов. Позиционирование - это артефакт физических дисков, размер которых не соответствует размеру файловой системы. В EC2 вы просто создаете том (ы) EBS нужного размера и помещаете файловую систему в необработанный том без разделов.
Эрик Хаммонд,

1
Я не знаю о редких, это случилось со мной в обоих экземплярах CentOS EC2, которые я запустил с Generic SSD EBS Storage.
Neo

Кто опубликовал CentOS AMI, которые вы использовали?
Эрик Хаммонд

@EricHammond centos.org
Neo

4
Я бы порекомендовал ходатайствовать о centos.org, чтобы прекратить сборку AMI с разделенными корневыми томами EBS. В этом нет никакой пользы, если вы используете один раздел, и это затрудняет изменение размера. Amazon не делает этого со своими AMI. Как и Ubuntu, Red Hat и другие. Лучше всего просто положить файловую систему на сырой том EBS без лишних бесполезных барьеров, которые нужно перемещать при изменении размера.
Эрик Хаммонд

2

Измените размер файловой системы на томе EBS. Если вы работаете ext3(что обычно используется по умолчанию), вы можете просто запустить e2resize /dev/xvda1.


Сначала том должен быть отключен и отключен.
Фархан

1
Не с любым даже смутно современным дистрибутивом Linux. Онлайновое расширение файловых систем ext3 поддерживается годами.
Уомбл

Спасибо, womble, я использую дистрибутив aws, а e2resize там нет. Его нет ни в одном ням-репо. Должен ли я просто получить исходный код и собрать его сам?
Кристиан

1

Я попробовал ответ от @Neo с экземпляром, созданным из пользовательского Ubuntu AMI. Объяснение было очень полезным, но мне нужно было сохранить юниты в виде блоков и просто пропустить шаг № 4. Это тогда работало отлично.

Также важно то, что на шаге 5 вы должны скопировать начальный блок / цилиндр для использования на шаге 10.

@ Neo ответит, если у вас виртуальное дисковое устройство с разделами. Вы можете найти, если вы страдаете от этой проблемы со следующим: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 5G 0 part / xvda и xvda1 очень разных размеров. Вы можете изменить размер2fs, и это не будет иметь никакого значения, в моем случае xvda1 равен 5G, и это все, что будет использовать файловая система.

Спасибо, @Neo

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