Привід 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 / розділи показують правильний розмір

[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
Зауважте, що пакунок хмари-init, включений до AMI Ubuntu, автоматично запускає resize2fs під час завантаження. Я здивований, що це не в Amazon Linux, оскільки вони також використовують cloud-init.
Ерік Хаммонд

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

12

Тут, здається, не вистачає відповідей за кілька кроків до повторного розміру спеціально для людей, які змінюють розмір гучності EBS. Якщо ви створили знімок для створення EBS або з певними AMI, вам потрібно буде розширити диск (xvda), розгорнути розділ (xvda1), а потім розширити файлову систему (/).

Якщо я читаю це правильно, ваш диск виглядає приблизно так:

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

Це має виглядати так:

/dev/xvda
|______________________/dev/xvda1______________________|

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

У блоці нижче я позначив кроки << # >>, тому команда не є частиною команди. Вам потрібні кореневі дозволи, тому зробіть "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.
Нео

Хто опублікував використовувані вами AMOS CentOS?
Ерік Хаммонд

@EricHammond centos.org
Нео

4
Я рекомендую подати клопотання centos.org, щоб припинити створення AMI з розділеними кореневими томами EBS. Для цього немає ніякої користі, якщо ви використовуєте один розділ, і це ускладнює зміну розміру. Amazon цього не робить зі своїми AMI. Не мають також Ubuntu, Red Hat та інших. Найкраща практика - просто розмістити файлову систему на необробленому томі EBS без зайвих непотрібних бар'єрів, які потрібно переміщувати за розміром.
Ерік Хаммонд

2

Змініть розмір файлової системи на томі EBS. Якщо ви працюєте ext3(як правило, за замовчуванням), ви можете просто запустити e2resize /dev/xvda1.


Том спочатку повинен бути офлайн і вимкнено.
Фархан

1
Не з будь-яким навіть невиразно сучасним дистрибутивом Linux. Онлайн розширення файлових систем ext3 підтримується роками.
живіт

Дякую, що я маю на увазі, я використовую дистрибутив Aws і e2resize не є. Його немає ні в одному yum repo. Чи варто мені просто отримати джерело і створити його самостійно?
Крістіан

1

Я спробував відповідь від @Neo з екземпляром, створеним із користувацького Ubuntu AMI. Пояснення було дуже корисним, але мені потрібно було зберегти одиниці як блоки та просто пропустити крок №4. Потім це спрацювало чудово.

Крім того, лише на тому, що на кроці №5 ви повинні скопіювати стартовий блок / циліндр для використання на кроці №10.

@ Нео відповідь, якщо у вас є розділений пристрій віртуального диска. Ви можете дізнатися, чи страждаєте ви від цієї проблеми за допомогою наступного: 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.