AWS örneğinde '/' yeterli disk alanı yok


28

Web Sunucum için Ubuntu 11.04 örneğini AWS bulutunda çalıştırıyorum, şimdi sunucumun / bölümünde disk alanım yok . df -ah bunu söyle

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  7.8G   97M  99% /
proc                     0     0     0   -  /proc
none                     0     0     0   -  /sys
fusectl                  0     0     0   -  /sys/fs/fuse/connections
none                     0     0     0   -  /sys/kernel/debug
none                     0     0     0   -  /sys/kernel/security
none                  3.7G  112K  3.7G   1% /dev
none                     0     0     0   -  /dev/pts
none                  3.7G     0  3.7G   0% /dev/shm
none                  3.7G   80K  3.7G   1% /var/run
none                  3.7G     0  3.7G   0% /var/lock
/dev/xvdb             414G   16G  377G   4% /mnt

Şimdi bu şeyi / bölüme biraz fazla alan kazandırmak için denedim

  • Apache için tüm günlük dosyalarını temizleyin.
  • Gereksiz tüm dosyaları sunucudan kaldırıldı.
  • Giriş dizini Temizleme.

Ama yine de yeterli yer alamıyorum. Bu Örnek türü, 8 GB EBS ile m1.large şeklindedir . Şimdi / dev / xvdb içinde yeterince disk alanım var .

Bazı disk alanlarını / from / dev / xvdb veya Herhangi Bir Başka Yol'a tahsis etmenin bir yolu var mı ? Lütfen bana bunun için olası çözümü önerin. Aynı / dev / xvdb bölümünü başka bir örnekle kullanmak mümkün ?


1
2017 güncellemesi: Amazon bugünlerde sürücülerinizi (hatta önyükleme sürücülerini) yeniden boyutlandırmanıza izin veriyor! SO cevabını burada görün: stackoverflow.com/a/42791031/7022062
Dmitry Shevkoplyas

Yanıtlar:


26

Cevap iki yönlüdür.

Geçici çözüm: geçici veriler için / dev / xvdb (/ mnt) kullanın.

Bu, Amazon EC2 örneğinizin geçici depolanmasıdır ve özellikleri, başka yerlerde kullanılan kalıcı Amazon EBS depolarından büyük ölçüde farklıdır . Özellikle, bu geçici depolama durdurma / başlatma döngülerinde kaybolacak ve genellikle ortadan kaybolabilir , bu nedenle kesinlikle oraya kalıcı bir değer koymak istemezsiniz, yani yalnızca kolayca kaybetmek veya yeniden oluşturmak için göze alabileceğiniz geçici verileri koymak istemezsiniz , Bir takas dosyası veya hesaplamalar sırasında kullanımda kesinlikle geçici veriler gibi. Tabii ki orada büyük indeksleri saklayabilirsiniz, ancak herhangi bir nedenden ötürü depolama silindikten sonra bunları yeniden oluşturmaya hazırlıklı olmalısınız (örnek yeniden başlatma, donanım arızası, ...).

Çözüm: İstenilen depolama alanını elde etmek için / dev / xvda1 (/) değerini yeniden boyutlandırın

Bu sözde olduğu Kök Cihaz Depolama sizin içinde Amazon EBS destekli kolaylaştıran EC2 örneği, Amazon EBS özellikle esneklik ve dayanıklılık için, yani veri yoktur makul güvenlidir ve örnek hatalarını hayatta koydu; % 99,999999999% dayanıklılık özelliğine sahip olan Amazon S3'te depolanan EBS hacminin düzenli görüntülerini alarak esnekliği ve dayanıklılığı daha da artırabilirsiniz .

Bu anlık görüntü özellikleri, sorununuzu sırayla çözmenize olanak tanır; mevcut 8GB EBS kök depolamanızı (/ dev / xvda1) istediğiniz kadar az ya da çok istediğiniz kadar değiştirebilirsiniz. İşlem Eric Hammond'ın mükemmel bir makalesinde , Çalışan EBS Boot EC2 Örneğinde Kök Diskin Yeniden Boyutlandırılması bölümünde açıklanmıştır :

EC2 örneğinde biraz az zamanınız olduğu sürece (birkaç dakika), kök EBS hacmini daha büyük bir kopya ile, yeni bir örnek başlatmaya gerek kalmadan değiştirmek mümkündür.

Tanımladığı adımları doğru bir şekilde hazırlarsanız (yordam hakkında bilgi sahibi olmak için önce onları atılmış bir EC2 örneği ile test etmenizi veya uyarlanmış bir komut dosyasıyla otomatikleştirmenizi şiddetle tavsiye ederim), işlemi bir kaç dakika ile bitirebilmeniz gerekir. kesinti dakika sadece gerçekten.

Belirtilen adımların çoğu , Amazon EC2 API Tools ile uğraşmayı da engelleyen AWS Yönetim Konsolu ile de gerçekleştirilebilir ; Bu aşağı kaynar:

  • EC2 örneğini durdurun (sonlandırmayın!)
  • EBS birimini durdurulan örnekden ayır
  • müstakil EBS hacminin anlık görüntüsünü oluşturmak
  • oluşturulan anlık görüntüden yeni (daha büyük) bir EBS birimi oluşturun
  • yeni EBS hacmini EC2 örneğine ekleyin ( Önemli ! Bu sizin kök cihazınızsa, tam olarak belirtildiği gibi örneğin kök cihaz olarak adlandırdığınızdan emin olun (örneğin / dev / sda1) veya (/ dev / xdva1) Aksi takdirde, bir root aygıtı değil blok aygıt olarak eklenir ve örnek için listelenen kök aygıt olmayacağından örneği başlatamazsınız.)
  • Çalışan örneğe SSH ekleyin ve her şeyin yolunda olduğundan emin olun df -ah
    • Sisteminiz dosya sistemini otomatik olarak yeniden boyutlandırmadıysa, bunu Eric'in makalesinde açıklandığı şekilde el ile yapmanız gerekir.

İyi şanslar!


Alternatif

Bu EBS hacimlerinin çok yönlülüğü ve kullanım kolaylığı göz önüne alındığında, ek bir seçenek, örneğinize daha fazla EBS birimi eklemek ve açıkça ayrılabilir ilgili alanları oraya taşımak olabilir.

Örneğin, her biri sürüm başına 1-2 GB depolama yapan birkaç tane oldukça ağır Java uygulaması kullanıyoruz; Yükseltme sürümlerini kolaylaştırmak ve genellikle bu uygulamaları kendi takdirime bağlı olarak farklı örneklere taşıyabilmek için, her birini ayrı ayrı EBS birimlerine yerleştirdim, bunları bir örneğe monte ettim ve bunları istenen yere, örneğin genellikle /var/lib/<app>/<version>ve /usr/local/<app>/<version>.

Bu yöntemle kök cihaz depolamasında EC2 örneklerini hala varsayılan 8 GB boyutunda (sizinki gibi), ancak bazen de farklı boyutlarda (1-15 GB) eklenmiş 8 EBS birimiyle çalıştırıyoruz.

Yine de, tüm bu EBS hacimleri, I / O'ları için aynı LAN kullandıkları için, hatta her ne kadar ilgili performans artışları getirebileceklerini veya aşırı durumlarda ağınızı doyurabilecekleri için, potansiyel ağ performans sorunlarının farkında olmalısınız. kullanım durumunda ve eldeki iş yükü.


Neredeyse 16GB boyutunda olan veritabanımı korumak için / dev / xvdb kullanıyorum, güncel bir durum için bir arka plan işlemi çalışıyor. Peki bu veritabanı için en iyi kalıcı depolama ne olmalıdır. Amazon RDS veya Amazon DynamoDB için mi gitmeliyim? önerin nedir? Bu örnekte PHP sunucusu çalıştırıyorum.
Sumant

2
@Sumant: Bu iyi değil, yani tehlikeli olanı yaptınız, yani herhangi bir zamanda temelde kaybolabilecek bir diske kalıcı olarak veri koymak için (genellikle böyle yapmaz, birisine böyle davranması gerekir)? Süreç (eğer sırasında önlemek veri kaybına için bu hafifletici dikkatli ekstra olun - Ben arı bu konuda yanıltıcı yapmadıysanız umut do ? Bakılmaksızın veritabanı yedekleri var, öyle mi)!
Steffen Opel

@Sumant: Sorunuzla ilgili - Depolama sorununu gidermek için uygulama mimarinizi (veya bunun için DB'yi) değiştirmenize, yalnızca kök diskinizi yeniden boyutlandırmanıza veya önerilen şekilde daha fazla EBS birimi eklemenize gerek yok. Bununla birlikte, DB düzeyinizi de geliştirmek ve ayrıştırmak istiyorsanız, bu, gelecekteki büyüme göz önünde bulundurularak (ama başlangıçtaki ilgili maliyetlerle birlikte gelir) ve şu anda MySQL kullandığınızı varsayarsak, Amazon RDS'yi çalıştırdığınızı varsayarak iyi bir şeydir. mükemmel ve uygun bir seçim olacaktır. Amazon DynamoDB tamamen yeni bir uygulama mimarisi gerektirir ve yalnızca belirli kullanım durumlarına uygulanır.
Steffen Opel

1
@Sumant: Bir m1.small RDS örneğine senin DB göç olduğunu, olsa tavsiye edilebilir belki aslında ilgili CPU ve I / O performansı faydaları ile m1.large çalıştıran EC2 geçerli MySQL, daha yavaş bir performans sergileyen - Bu geçerli olup, Ancak mevcut DB iş yükünüze bağlıdır. Elbette, bunu düzeltmek için daha büyük RDS örnekleri de kullanabilirsiniz, ancak maliyetiniz buna göre artacaktır.
Steffen Opel

1

Fstab yapmak için basit bir yol kullanın ve / var / www / html / files2 /

daha sonra mkdir / var / www / html / files2 / web sitesi daha sonra ln -s -d / var / www / html / web sitesi / var / www / html / files2 / web sitesi


bölümü blkids komutunu kullanarak monte etmek için UUID'i kullanın ve fdisk '/ dev / vxds /' diyerek bölümü yapın. F6 ile dosyaları bir klasörden diğerine taşımak için gece yarısı komutanını kullanın, oh konumunun altında doğru klasörü seçtiğinizden emin olun ve elbette fstab
Daniel Chay

0

Bugün aynı problemi gördüm, yeni ec2 etkisizliğini yitirdiğinizde varsayılan olarak EBS 8GB. Ekli EBS'nin boyutunu yeni intace oluşturmadan veya anlık görüntü almadan veya EBS'yi ayırmadan değiştirebilirsiniz. İzleyebileceğiniz üç adım:

  1. EBS Birimini Yeniden Boyutlandır
  2. Bölümü yeniden boyutlandır
  3. Bölümü yeniden boyutlandırın İlk adım için AWS konsolunuza gidin ve EBS'yi tıklayın ve istediğiniz boyutu değiştirin ve değiştir'i tıklayın.

Sormaktan çekinmeyeceğiniz herhangi bir sorunuz varsa, lütfen bu adımları takip edin .

Teşekkürler!

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.