Amazon EC2'de çalışan bir örnekte diskin boyutunu büyütme


14

Ubunto ile çalışan EC 2 sunucu kurulumunun bir örneğini aldım. Kesinti süresi ve minimum risk olmadan disk boyutunu artırmanın en iyi yolu nedir?

Kılavuzları okumak, bir yolu yeni bir disk oluşturmak, verileri taşımak, örnek takas diskini kapatmak ve tekrar açmak olacaktır. Bu yaklaşım biraz risk gibi gelse de kesinti gerektirecektir. Daha iyi bir yaklaşım var mı acaba?

Yanıtlar:


14

Amazon AWS, bir EBS hacminin boyutunu değiştirmeye izin veren yeni bir özellik (13 Şubat 2017'de) yayınladı.

Kaynak: https://aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/

Bu, varolan bir örnek üzerinde çalışırken bir EBS biriminin boyutunu artırmaya izin verir.

Birim boyutunu değiştirmenin birimdeki dosya sisteminin boyutunu değiştirmediğine dikkat etmek önemlidir (çoğu dosya sistemi için). İşletim sisteminin kendisinde ek adımlar (dosya sistemine bağlı olarak) gerekebilir. Örneğin resizefs, ext4günümüzde çoğu Linux işletim sistemi tarafından kullanılan bir dosya sisteminde.

AWS'den süreci açıklayan tüm belgeleri http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html adresinde bulabilirsiniz.

Bazı durumlarda, blok aygıt bölümleri eşlemiştir ve bölümlerden yalnızca biri (veya daha fazlası) bir dosya sistemi içerir. Bu durumda bölümün önce ve sonra dosya sisteminin yeniden boyutlandırılması gerekir. Bu işlem dokümantasyonda da açıklanmıştır .

Blogda açıklanan yeni "çevrimiçi" yeniden boyutlandırma özelliği yalnızca mevcut nesil örnekler için geçerlidir ve toplu yeniden boyutlandırmayı denemeden önce kontrol edilmesi gereken bazı diğer hususlar ve sınırlamalar vardır.


Dosya sistemini yeniden boyutlandırmadan önce altta yatan bölümü de yeniden boyutlandırmanız gerekir, bu da sıcak yeniden boyutlandırma için fiziksel bölümleri gerçekten engeller.
Tensibai

@Tensibai üzgünüm "sıcak yeniden boyutlandırma için fiziksel bölümleri engellemenin" ne anlama geldiğini anlamıyorum. AWS API'lerini kullanarak birim boyutunu değiştirmenin, birime yazma / okuma yapmasını engelleyeceği anlamına mı geliyor?
Evgeny

Hayır, yani disk daha büyük olacak, ancak üzerindeki bölüm aynı kalacak, fdiskyeniden boyutlandırmak için kullanmalısınız , kök bölümle ilgili olarak, genellikle disk bölümü tablosunu takılıyken yazamazsınız ve bağlantısını kesemezsin. Bir noktada yeniden başlatmanız gerekecek :)
Tensibai

Doğru, dosya sistemi katmanını eklemeden önce birden çok bölüm kullanırsanız, önce bölümlerin yeniden boyutlandırılması gerekir. Teşekkürler, nasıl yapıldığına dair bazı rehberlerden alıntı yaparak cevaba ekleyeceğim.
Evgeny

Duruş olmadan bahsedilen soru. Ancak bir kök birimini yeniden boyutlandırmak için bu adımı gerçekleştirmek için örneği almanız gerekir gibi görünüyor?
Chris Stryczynski

2

Yaptığım (ve sorunuzu tam olarak cevaplamayan) aşağıdaki gibidir:

  1. Bir EBS birimi oluşturun ve bunu doc dokümanına ekleyin
  2. Scsi veri yollarını yeniden tarayın echo '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan(ana bilgisayar numarasını uyarlamanız gerekebilir)
  3. pvcreateBulunan yeni diskte fiziksel bir birim oluşturun ( fdisk -ltüm diski listelemek için)
  4. Bir birim grubu ve ardından üzerinde bir mantıksal birim oluşturun ( vgcreateve lvcreate)
  5. Mantıksal birimi istediğiniz dosya sistemiyle biçimlendirin
  6. tar hedef bağlama noktasını geri yükleyin.
  7. Bu birimi yeni alana ihtiyacınız olan yere monte edin.
  8. Katranı bu yeni monte edilen alana geri yükleyin.

Bir şey yüklemeden önce yeni bir alan kullanırsanız 6. ve 8. adımlar isteğe bağlıdır. Varolan bir dizini değiştirmek isterseniz, arşivin sonu ile restorasyon arasında bir şeyler yazmaktan kaçınmalısınız.

Farklı montaj noktaları için 4 ila 8 adımlarını tekrarlayabilirsiniz, bu da gereken alanı genişletmenize ve daha sonra bu hacimleri kesintisiz olarak yeniden boyutlandırmanıza izin verir.


0

AWS'de (veya başka bir yerde) ZFS Zero Downtime dosya sistemi depolama ölçeği

bir yükseltmek

  1. EC2'ye ZFS'yi yükleyin.

    http://serverascode.com/2016/09/05/aws-zfs-user-data.html

  2. Bir EBS birimi kullanarak toplu verileriniz için bir zpool yapın.
  3. Daha fazla blok depolama alanı elde etmek için başka bir EBS ekleyin. (veya havuz otomatik genişletme = true değerini ayarlayın ve EBS'nizi büyütün)
  4. Alanı açmak için yeni EBS'yi zpool'unuza ekleyin. (otomatik genişletme kullanmadıysanız ve EBS boyutunu büyütmediyseniz)

downsize

  1. Büzülmüş verileri tutacak kadar büyük yeni EBS'de yeni bir zpool yapın. (henüz, hatta aynı EC2'ye monte edilmesi gerekmez)
  2. anlık görüntü eski çok büyük zpool
  3. zfs-anlık görüntüyü yeni zpool'a gönder
  4. alınan anlık görüntüyü yeni havuzda tanıtın ve bağlayın
  5. eski havuzu yok et
  6. eski havuzun EBS'sini yok et

0

EBS birimini yeniden boyutlandırdıktan sonra, ZFS havuzunu genişletmem gerektiğinde yürüttüğüm şey:

parted -l # Get the list of partitions 
parted /dev/xvdf rm 9 # Remove the buffer partition
parted /dev/xvdf resizepart 1 100% # Resize the partition
zpool online -e <zfs partition name> /dev/xvdf # Expand the zpool and the filesystem it holds
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.