一千萬個為什麽

搜索

如何增加Amazon EC2上正在運行的實例上磁盤的大小



我用Ubunto獲得了一個運行EC 2服務器的實例。在沒有任何停機時間和最小風險的情況下增加磁盤大小的最佳方式是什麽?

閱讀指南,一種方法是創建一個新磁盤,遷移數據,關閉實例交換磁盤並重新打開它。這種方法聽起來有點風險,需要一些停機時間。我想知道是否有更好的方法?

轉載註明原文: 如何增加Amazon EC2上正在運行的實例上磁盤的大小

一共有 4 個回答:

Amazon AWS剛剛發布(2017年2月13日)一項新功能,該功能允許更改EBS卷的大小。

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

這允許在現有實例運行時增加EBS卷的大小。

請註意,更改卷大小並不會更改卷上文件系統的大小(對於大多數文件系統)。操作系統本身可能需要額外的步驟(取決於文件系統)。例如,當今大多數Linux操作系統使用的 ext4 文件系統上的 resizefs

Full documentation from AWS describing the process can be found at http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html

在某些情況下,塊設備已映射分區,只有一個(或多個)分區包含文件系統。在這種情況下,分區需要先調整大小,然後才是文件系統。此過程也是文檔中所述

博客中描述的新的“在線”大小調整功能僅適用於當前的代實例,還有一些其他的註意事項和限制條件在嘗試進行卷大小調整之前需要檢查。

我所做的(並不完全回答你的問題)如下:

  1. Create an EBS volume and attach it to the instance doc is here
  2. Rescan the scsi buses echo '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan (you may have to adapt the host number)
  3. Create a physical volume with pvcreate on the new disk found (fdisk -l to list all disk)
  4. Create a volume group and then logical volume on it (vgcreate and lvcreate)
  5. Format the logical volume with your desired filesystem
  6. tar the target mountpoint to restore it.
  7. Mount this volume where you need new space.
  8. Restore the tar into this newly mounted space.

如果在安裝某些東西之前使用新的空間,則步驟6和8是可選的。如果您想要替換現有的目錄,您必須避免在歸檔結束和恢復之間寫入一些內容。

您可以針對不同的掛載點重復步驟4到8,這樣可以擴展所需的空間,然後在不中斷的情況下在線調整這些卷的大小。

在調整EBS卷的大小後,我需要擴展ZFS池時執行以下操作:

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  /dev/xvdf # Expand the zpool and the filesystem it holds

AWS(或其他地方)上的ZFS Zero Downtime文件系統存儲擴展

增發

  1. Install ZFS on EC2.

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

  2. Make a zpool for your bulk data using an EBS volume.
  3. Add another EBS to get more block storage. (or set the pool autoexpand=true and just grow your EBS)
  4. Add the new EBS to your zpool to make the space available. (unless you used autoexpand and increased the EBS size)

縮小

  1. 在新EBS上創建一個足以容納縮小數據的新zpool。 (不需要安裝,甚至不需要安裝在相同的EC2上)
  2. 快照舊的太大zpool
  3. zfs - 將快照發送到新的zpool
  4. 在新的池中提升收到的快照並將其掛載
  5. 銷毀舊池
  6. 銷毀舊池的EBS