EC2 Boyutunu artırdıktan sonra hacmi yeniden boyutlandıramıyor


96

EC2 birimini yeniden boyutlandırma adımlarını izledim

  1. Örneği durdurdu
  2. Mevcut birimin anlık görüntüsünü aldım
  3. Önceki anlık görüntüden aynı bölgede daha büyük bir boyuta sahip yeni bir birim oluşturdu
  4. Örnekten eski birimin bağlantısı kaldırıldı
  5. Yeni birimi aynı bağlama noktasındaki örneğe bağladı

Eski birim 5 GB ve oluşturduğum birim 100 GB Şimdi, örneği yeniden başlatıp çalıştırdığımda df -h Ihala bunu görüyorum

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            4.7G  3.5G 1021M  78% /
tmpfs                 296M     0  296M   0% /dev/shm

Koşarken aldığım şey bu

sudo resize2fs /dev/xvde1

The filesystem is already 1247037 blocks long.  Nothing to do!

Eğer koşarsam cat /proc/partitionsgörüyorum

 202       64  104857600 xvde
 202       65    4988151 xvde1
 202       66     249007 xvde2

Anladığım kadarıyla, doğru adımları izlediysem, xvde'nin xvde1 ile aynı verilere sahip olması gerekir, ancak onu nasıl kullanacağımı bilmiyorum

Yeni birimi veya umount xvde1'i nasıl kullanabilirim ve bunun yerine xvde'yi nasıl bağlayabilirim?

Neyi yanlış yaptığımı anlayamıyorum

Ben de denedim sudo ifs_growfs /dev/xvde1

xfs_growfs: /dev/xvde1 is not a mounted XFS filesystem

Btw, bu centos 6.2 x86_64 içeren bir linux kutusu

yardımın için şimdiden teşekkürler

Yanıtlar:


71

Teşekkürler Wilman, komutlarınız doğru çalıştı, EBS'leri daha büyük boyutlara yükseltiyorsak küçük iyileştirmeler dikkate alınmalıdır

  1. Örneği durdurun
  2. Birimden anlık görüntü oluşturun
  3. Anlık görüntüye göre boyutu artıran yeni bir birim oluşturun
  4. Akımın birim bağlama noktasını kontrol edin ve hatırlayın (yani /dev/sda1)
  5. Mevcut hacmi ayır
  6. Son oluşturulan birimi örneğe ekleyin, tam bağlama noktasını ayarlayın
  7. Örneği yeniden başlatın
  8. Örneğe SSH üzerinden erişin ve çalıştırın fdisk /dev/xvde

    UYARI: DOS uyumlu mod kullanımdan kaldırılmıştır. Modu kapatmanız ('c' komutu) ve ekran birimlerini sektörlere dönüştürmeniz ('u' komutu) şiddetle tavsiye edilir.

  9. Hit pakım bölümleri göstermek için

  10. Hit d(birden fazla varsa, bir seferde bir tane silmek zorunda) geçerli bölümleri silmek NOT: Do endişe veri kaybolmaz değil
  11. Hit nyeni bir bölüm oluşturmak için
  12. Hit pbirincil olarak ayarlamak için
  13. 1İlk silindiri ayarlamak için vurun
  14. İstenen yeni alanı ayarlayın (boşsa, tüm alan ayrılmıştır)
  15. aÖnyüklenebilir hale getirmek için vurun
  16. Hit 1ve wdeğişiklikleri yazmak için
  17. Örneği yeniden başlatın VEYA çekirdeğe yeni bölüm tablosu hakkında bilgi vermek için partprobe( partedpaketten) kullanın
  18. SSH ile oturum açın ve resize2fs / dev / xvde1 komutunu çalıştırın
  19. Son olarak df -h çalıştıran yeni alanı kontrol edin

1
"UYARI: DOS uyumlu mod kullanımdan kaldırıldı. Modu kapatmanız ('c' komutu) ve ekran birimlerini sektörlere dönüştürmeniz ('u' komutu) kesinlikle önerilir" Bu benim için gerekli değildi (Ubuntu 13.04). DOS uyumluluğunu zaten kapatmıştı ve varsayılan olarak Sektörleri kullanıyordu. Basmak cve uaslında kullanımdan kaldırılan modlara geçiş yaptı.
wisbucky

6
Çözüm mükemmel çalıştı ancak örnek bir ünlem işaretiyle (ReadHat 6.5) "1/2 kontrol geçti" seçeneğine takıldı. Bunu düzeltmek için "ilk silindiri" 16 olarak ayarladım (daha önce olduğu gibi). Bundan sonra örnek "2/2 kontrol geçti" ile normal başladı. Umarım bu birine yardımcı olur ...
user3586516

1
Ben de ilk silindiri değiştirmek zorunda kaldım, ancak 2048 olarak değiştirmem gerekti. Silmeden önce mevcut bölüm ayarınızı kontrol etmenizi tavsiye ederim.
Doyley

9
Örneğimi yeniden başlattıktan sonra SSH aracılığıyla bağlanamıyorum. Bağlantı zaman aşımına uğradı ve aws konsolu, Durum Kontrollerini başlatamadığını gösteriyor. Sanırım öldü. ne herhangi bir fikrin var mı?
Richard

5
AWS, EBS birimleri için çevrimiçi yeniden boyutlandırmayı desteklediğinden, bu yanıt artık kullanımdan kaldırılmıştır.
Dale Anderson

310

Artık yeniden boyutlandırmak için örneği durdurmanıza ve EBS birimini ayırmanıza gerek yok!

13 Şubat 2017 Amazon duyurdu: " Amazon EBS Güncellemesi - Yeni Elastic Volumes Her Şeyi Değiştiriyor "

Uzatılacak birim, çalışan örneğin kök birimi olsa bile süreç çalışır!


Ubuntu'nun önyükleme sürücüsünü 8G'den 16G'ye "anında" yükseltmek istediğimizi varsayalım.

adım-1) AWS web konsolunda oturum açın -> EBS -> yeniden boyutlandırmak istediğinizi sağ tıklayın -> "Birimi Değiştir" -> "Boyut" alanını değiştirin ve [Değiştir] düğmesini tıklayın

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin


step-2) ssh örneğini içine alın ve bölümü yeniden boyutlandırın:

kutumuza eklenen blok aygıtları listeleyelim:
lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part /

Gördüğünüz gibi / dev / xvda1, 16 GiB'lik bir cihazda hala 8 GiB'lik bir bölüm ve birimde başka bölüm yok. 8G bölümünü 16G'ye kadar yeniden boyutlandırmak için "Growpart" kullanalım:

# install "cloud-guest-utils" if it is not installed already
apt install cloud-guest-utils

# resize partition
growpart /dev/xvda 1

Sonucu kontrol edelim (görebilirsiniz / dev / xvda1 artık 16G):

lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0  16G  0 part /

Pek çok SO yanıtı, fdisk'i, özellikle önyükleme sürücüsünü değiştirdiğimizde kötü, riskli ve hataya açık bir süreç olan silme / yeniden oluşturma bölümleri ile birlikte kullanmayı önerir.


Adım 3) yeni bölüm alanını tam olarak kullanmak için dosya sistemini yeniden boyutlandırın
# Check before resizing ("Avail" shows 1.1G):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  6.3G  1.1G  86% /

# resize filesystem
resize2fs /dev/xvda1

# Check after resizing ("Avail" now shows 8.7G!-):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       16G  6.3G  8.7G  42% /

Yani sıfır kesinti süremiz ve kullanacak çok sayıda yeni alanımız var.
Zevk almak!

Güncelleme: Güncelleme: XFS dosya sistemi olduğunda resize2fs yerine sudo xfs_growfs / dev / xvda1 kullanın.


bölümü yeniden boyutlandırmak çok yardımcı oldu .... !! En harika şey, kök hacmi için bile işe yaramasıydı.
piyushmandovra

4
Lütfen birisi bunu doğru cevap olarak kabul eder mi? Çünkü ... öyle.
eduardohl

Sağlam, çok teşekkürler ... Yukarıdaki cevaplarda bahsedilen adımları
uygularken

4
Huh, resmi dokümanlar büyüme bölümünden bahsetmiyor, bu yüzden bunu daha önce çalıştıramadım. Teşekkürler!
İbrahim

1
@Shihas, evet. Bütün mesele bu. Önyüklenebilir "kök" takılı sürücü bile yeniden başlatma gerekmeden güvenli bir şekilde artırılabilir!
Dmitry Shevkoplyas

42

Yukarıda jperelli'nin kaymakam yorumu.

Bugün aynı sorunla karşılaştım. AWS belgeleri, büyüme bölümünden açıkça bahsetmez. Zor yolu anladım ve gerçekten de iki komut, Ubuntu ile M4.large & M4.xlarge üzerinde mükemmel çalıştı

sudo growpart /dev/xvda 1
sudo resize2fs /dev/xvda1

iliştirmek için ikinci cevap ve bu cevap yeniden boyutlandırmak içindir
Adiii

İnanılmaz! t2.small örneğimde çalıştı. Whew. Bundan daha kanlı olacağını düşündüm. Teşekkürler!
2018

Growpart içeren cloud-guest-utils'i yükleyemiyorum. Linux sürüm 3.16.0-4-amd64
nettie

16

[ÇÖZÜLDÜ]

Yapılması gereken buydu

  1. Örneği durdurun
  2. Birimden anlık görüntü oluşturun
  3. Anlık görüntüye göre boyutu artıran yeni bir birim oluşturun
  4. Akımın birim bağlama noktasını kontrol edin ve hatırlayın (yani / dev / sda1)
  5. Mevcut hacmi ayır
  6. Son oluşturulan birimi örneğe ekleyin, tam bağlama noktasını ayarlayın
  7. Örneği yeniden başlatın
  8. Örneğe SSH üzerinden erişin ve çalıştırın fdisk /dev/xvde
  9. Hit pakım bölümleri göstermek için
  10. Hit d(birden fazla varsa, bir seferde bir tane silmek zorunda) geçerli bölümleri silmek NOT: Do endişe veri kaybolmaz değil
  11. Hit nyeni bir bölüm oluşturmak için
  12. Hit pbirincil olarak ayarlamak için
  13. 1İlk silindiri ayarlamak için vurun
  14. İstenen yeni alanı ayarlayın (boşsa, tüm alan ayrılmıştır)
  15. aÖnyüklenebilir hale getirmek için vurun
  16. Hit 1ve wdeğişiklikleri yazmak için
  17. Örneği yeniden başlatın
  18. SSH ile oturum açın ve çalıştırın resize2fs /dev/xvde1
  19. Sonunda çalışan yeni alanı kontrol edin df -h

Budur

İyi şanslar!


1
Amazon EBS birimlerinde, resize2fs'de fdisk ile kullandığınız aynı bağlama noktasının kullanılması önemli görünmektedir. df, ekli EBS birimi olarak / dev / xvda1 gibi bir şey gösterir, ancak resize2fs komutu yalnızca fdisk'te yeni bölümü yaptığımda kullandığım / dev / sdf1 tanımlayıcısını kullandığımda çalıştı.
Garreth McDaid

Bu, AWS belgelerinde yer almaktadır. Kötü olan şey, 3 yıl geçtikten sonra prosedürlerinin hala tamamlanmamış olmasıdır. Bir görüntünüz varsa geri çekilebilirsiniz, kesinlikle. Yeni diski, masaüstünü çalıştıran bir örnekten de geçici olarak asmak her zaman mümkündür, ancak gparted kullanmayı düşünüyorsanız, yeniden boyutlandırma için takılmasına ihtiyaç duymak bir sorun olabilir. gcloud anında yeniden boyutlandırır.
mckenzm

Depolama aygıtım (/ dev / xvda1) sektör 1'de değil sektör 16065'te başladı. Bu nedenle adım 13 (ilk silindiri ayarlamak için Hit 1) benim durumumda 16065 olmalıydı.
Simon Paarlberg

Bu çözüme gitmeyin, verilerinizi kaybedebilirsiniz. Aslında, bölüm tablosunda bölüm listesi değerleri gösteriliyorsa bölümü silme seçeneğine gitmeyin, çünkü liste oradaysa bölümü tam anlamıyla siler, bu nedenle yanıt "Olmazsa bile veriler kaybolur sil ". Bölüm boyutunu genişletmenin bir yolu var, alt kısımda bölüm boyutunuzu sorunsuz bir şekilde genişletmenize yardımcı olacak başka yardımcı programlar var.
piyushmandovra

6
  1. AWS web konsolunda oturum açın -> EBS -> yeniden boyutlandırmak istediğinizi sağ tıklayın -> "Birimi Değiştir" -> "Boyut" alanını değiştirin ve [Değiştir] düğmesini tıklayın

  2. growpart /dev/xvda 1

  3. resize2fs /dev/xvda1

Bu, Dmitry Shevkoplyas'ın cevabının basit bir versiyonu. AWS belgeleri growpartkomutu göstermiyor. Bu, ubuntu AMI için iyi çalışıyor.


6
  1. sudo büyüme bölümü / dev / xvda 1
  2. sudo resize2fs / dev / xvda1

yukarıdaki iki komut AWS ubuntu ec2 bulut sunucuları için zaman kazandırdı.



4

Her ihtimale karşı burada GCP google bulut platformu için birisi varsa, şunu
deneyin:

sudo growpart /dev/sdb 1
sudo resize2fs /dev/sdb1

2

Bu ciltte bir bölüm mü yaptınız? Yaptıysanız, önce bölümü büyütmeniz gerekecek.


hayır yapmadım. Bunu nasıl yapmalıyım? Eklediğim bu yeni cildin önceki tüm verilere sahip olması gerektiğini hatırlayın çünkü orijinal cildin bir anlık görüntüsüdür
Wilman Arambillete

Hayır. Ancak eklenmiş bir bölüm varsa bu hatayı aldım. Git ve birimi doğru boyutta yaptığını iki kez kontrol et ve yeni birimi taktığını iki kez kontrol et.
chantheman

Ayrıca, bunu yapmak için örneği durdurmanız gerekmez. Bu ciltte yazılarınız varsa güvenlidir, ancak çalışırken örnek olarak anlık görüntü alabilirsiniz.
chantheman

1

Önyüklenebilir bayrak (a) benim durumumda çalışmadı (EC2, centos6.5), bu yüzden anlık görüntüden birimi yeniden oluşturmak zorunda kaldım. Önyüklenebilir bayrak HARİÇ tüm adımları tekrarladıktan sonra - her şey kusursuz bir şekilde çalıştı, bu yüzden sonra2fs'yi yeniden boyutlandırabildim. Teşekkür ederim!


1

Teşekkürler @Dimitry, dosya sistemime uyması için küçük bir değişiklikle harika çalıştı.

kaynak: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux

Ardından, dosya sisteminin bağlama noktasını değiştirerek aşağıdaki komutu kullanın (bunları yeniden boyutlandırmak için XFS dosya sistemleri bağlanmalıdır):

[ec2-user ~]$ sudo xfs_growfs -d /mnt
meta-data=/dev/xvdf              isize=256    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 26214400

Not Başarısız bir xfsctl alırsanız: Bellek hatası tahsis edilemiyor, örneğinizde Linux çekirdeğini güncellemeniz gerekebilir. Daha fazla bilgi için, özel işletim sistemi belgelerinize bakın. Dosya sistemi zaten nnnnnnn blok uzunluğundadır. Yapacak bir şey yok! hatası, bkz. Linux Bölümünü Genişletme.


0

Yukarıda yorum yapmak için yeterli temsilciniz yok; ancak yukarıdaki yorumlara göre, 1'den başlarsanız örneğinizi bozabileceğinizi unutmayın; Eğer bölümlerinizi 'p' ile listelemeden önce fdisk'i başlattıktan sonra 'u' tuşuna basarsanız bu size doğru başlangıç ​​numarasını verecektir, böylece birimlerinizi bozmazsınız. Centos 6.5 AMI için, yukarıda da belirtildiği gibi 2048 benim için doğruydu.


0

Öyleyse, herhangi birinin bu sorunu% 100 kullanımla karşıladığı ve Growpart komutunu çalıştırmak için bile yer olmadığı (çünkü / tmp dosyasında bir dosya oluşturduğu için)

İşte EBS birimi kullanılırken ve ayrıca ec2'nizde boş yeriniz kalmadığında ve% 100'ünüzdeyseniz bile baypas ettiğini bulduğum bir komut.

/sbin/parted ---pretend-input-tty /dev/xvda resizepart 1 yes 100%

bu siteye buradan bakın:

https://www.elastic.co/blog/autoresize-ebs-root-volume-on-aws-amis


Bu komutun ardından sudo resize2fs /dev/xvda1güncelleme yapılmalı /etc/fstab, ancak bundan sonra df -hbüyüyen disk alanı gösterilecek
karmendra

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.