EC2 sürücüsü EBS birim boyutu değil


18

500GB EBS birimi oluşturduğum bir EC2 örneğim var. Ne yazık ki, EC2 örneği yalnızca 8GB kullanılabilir olduğunu gösteriyor.

Sadece bir sürücüm var, bu doğru.

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

Ancak, bu sürücü sadece 8GB

[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

Ancak, fdisk ve / proc / bölümlerin her ikisi de doğru boyutu gösterir

[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

Herhangi bir yardım büyük, teşekkürler duyacağız.

Yanıtlar:


34

Kök dosya sistemi ext3 veya ext4 ise, çalıştırın:

sudo resize2fs /dev/xvda1

Kök dosya sistemi xfs (daha az yaygın) ise, çalıştırın:

sudo xfs_growfs /

Kök olarak oturum açtıysanız "sudo" yu atlayabilirsiniz.

Bu komutlar sistem çalışırken ve dosya sistemi takılıyken çalıştırılmalıdır.

EBS birimlerinin bir bölüm tablosu içermemesi standarttır. EBS birimi genellikle bölümler olmadan bir dosya sistemi olarak biçimlendirilir.


2
İnsanlar hiçbir açıklama yapmadan sizi oyladığında beni rahatsız eder. Her neyse, bu güzel çalıştı. Çok teşekkürler!
Christian

1
/ ben omuz silkiyor ve hayata devam ediyor :-) Yardım etmekten mutluluk duyuyorum. İşte yazdığım birkaç ilgili makale: alestic.com/2009/12/ec2-ebs-boot-resize alestic.com/2010/02/ec2-resize-running-ebs-root
Eric Hammond

2
Ubuntu AMI'lerde bulunan bulut init paketinin önyükleme sırasında otomatik olarak resize2fs çalıştırdığını unutmayın. Bulut init kullandıkları için Amazon Linux'ta olmadığına şaşırdım.
Eric Hammond

4
Ben de aynı sorunu var ve komutu çalıştırdığınızda diyor ki: Dosya sistemi zaten 2096896 blok uzunluğunda. Yapacak bir şey yok! Hala 8GB!
Neo

12

Buradaki yanıtlar, EBS hacim boyutlarını değiştiren insanlar için özel olarak yeniden boyutlandırmadan önce birkaç adım eksik gibi görünüyor. EBS'yi oluşturmak için bir anlık görüntü kullandıysanız veya belirli AMI'lerle diski (xvda) genişletmeniz, bölümü (xvda1) genişletmeniz ve ardından dosya sistemini (/) genişletmeniz gerekir.

Bunu doğru okuyorsam, diskiniz şöyle görünür:

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

Bunun gibi görünmesi gerekiyor:

/dev/xvda
|______________________/dev/xvda1______________________|

Bundan sonra, koşmak resize2fsiçindeki yeni alana doğru büyüyecek, bunu xvda1kullanarak fdisktekrar silerek ve oluşturarak ve bölümü önyüklenebilir hale getirerek blok boyutunu artırabiliriz. tek gereken bir yeniden başlatma. Çoğu durumda, aynı başlangıç ​​silindiri kullanırsanız verilerinizi etkilememelidir, ancak bölümü yeniden oluştururken yapılan herhangi bir hatanın tüm verilerin kaybedilmesine neden olacağını ve / veya sunucunun yeniden başlatılmayacağını unutmayın. Bunu yeni oluşturulan bir örnekte ilk adım olarak yapmanızı öneririm. Aksi takdirde EC2 EBS Depolama / vb. Fotoğrafınızı çekin.

Aşağıdaki blokta << # >> ile adımları işaretledim, bu yüzden komutun bir parçası değiller. Kök izinlerine ihtiyacınız var, bu yüzden root değilseniz "sudo sh" yapın.

<<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
Bölümün genişletilmesi yalnızca birim bölümlenmişse gereklidir. EC2'de bu oldukça nadirdir. EBS ile yaygın olarak kullanılan en iyi uygulama, tüm ham birimi önce konumlandırmadan dosya sistemiyle biçimlendirmektir. Bu özellikle önyükleme birimleri için geçerlidir. Konumlandırma, fiziksel disklerin dosya sistemleriniz için istediğiniz boyutta olmadığı bir yapay yapıdır. EC2'de, doğru boyutta EBS birimleri oluşturursunuz ve dosya sistemini bölümler olmadan ham birime bırakırsınız.
Eric Hammond

1
Nadir olduğunu bilmiyorum, her iki CentOS EC2 örneğinde de Genel SSD EBS Depolama ile başlattım.
Neo

Kullandığınız CentOS AMI'ları kim yayınladı?
Eric Hammond

@EricHammond centos.org
Neo

4
Bölümlenmiş kök EBS hacimleri olan AMI'leri oluşturmayı durdurmak için centos.org'a dilekçe öneririm. Tek bir bölüm kullanıyorsanız ve yeniden boyutlandırmayı daha zor hale getirirseniz, bunun hiçbir faydası yoktur. Amazon bunu AMI'leriyle yapmıyor. Ubuntu, Red Hat ve diğerleri de öyle. Yeniden boyutlandırmada hareket ettirilmesi gereken ekstra yararsız engeller olmadan dosya sistemini ham EBS birimine yerleştirmek en iyi uygulamadır.
Eric Hammond

2

EBS birimindeki dosya sistemini yeniden boyutlandırın. Çalışıyorsanız ext3(genellikle varsayılan), sadece çalıştırabilirsiniz e2resize /dev/xvda1.


Birimin önce çevrimdışı olması ve sökülmesi gerekir.
Farhan

1
Artık değil bile belli belirsiz Modern Linux dağıtımı. Ext3 dosya sistemlerinin çevrimiçi genişletilmesi yıllardır desteklenmektedir.
womble

Teşekkürler womble, aws distro kullanıyorum ve e2resize orada değil. Onun değil herhangi bir yum repo's. Sadece kaynağı alıp kendim mi yapmalıyım?
Christian

1

Özel bir Ubuntu AMI'den oluşturulan bir örnekle @Neo'nun yanıtını denedim. Açıklama çok yardımcı oldu ama birimleri blok olarak tutmak ve sadece # 4 adım atlamak gerekiyordu. Sonra mükemmel çalıştı.

Ayrıca sadece bir nokta, adım # 5'te adım 10'u kullanmak için başlangıç ​​bloğunu / silindiri kopyalamanız gerektiğidir.

@ Neo'nun yanıtı bölümlenmiş bir sanal disk aygıtınız varsa. Bu sorundan muzdarip olup olmadığını aşağıdakilerle bulabilirsiniz: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 5G 0 part / xvda ve xvda1 çok farklı boyutlarda. Resize2fs yapabilirsiniz ve herhangi bir fark yaratmaz, benim durumumda xvda1 5G ve tüm dosya sistemi kullanacak.

Teşekkürler, @Neo

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.