增大尺寸后不能调整容积

我遵循了调整 EC2卷大小的步骤

  1. 阻止了实例
  2. 截取当前卷的快照
  3. 在上一个快照的基础上创建了一个新卷,在同一区域中的大小更大
  4. 从实例中分离旧卷
  5. 在相同的装入点将新卷附加到实例

Old volume was 5GB and the one I created is 100GB 现在,当我重新启动实例并运行 df -h I时,仍然可以看到这个

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

这就是我跑步的下场

sudo resize2fs /dev/xvde1


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

如果我运行 cat /proc/partitions我看到

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

根据我的理解,如果我遵循了正确的步骤,xvde 应该拥有与 xvde1相同的数据,但是我不知道如何使用它

如何使用新卷或 ummount xvde1并挂载 xvde?

我不明白我做错了什么

我也试了 sudo ifs_growfs /dev/xvde1

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

顺便说一下,这是一个 linux 的盒子,内置6.2 x86 _ 64

Thanks in advance for your help

121995 次浏览

你在这个卷上做了分区吗? 如果做了,你需要先增加分区。

[解决]

这是必须要做的

  1. Stop the instance
  2. 从卷中创建快照
  3. Create a new volume based on the snapshot increasing the size
  4. Check and remember the current's volume mount point (i.e. /dev/sda1)
  5. Detach current volume
  6. Attach the recently created volume to the instance, setting the exact mount point
  7. Restart the instance
  8. 通过 SSH 访问实例并运行 fdisk /dev/xvde
  9. p显示当前分区
  10. d删除当前分区(如果有多个分区,则必须一次删除一个)注意: 不要担心数据不会丢失
  11. 点击 n创建一个新的分区
  12. p设置为主要
  13. 1设置第一个气缸
  14. 设置所需的新空间(如果保留了整个空间)
  15. Hit a to make it bootable
  16. 1w写更改
  17. 重新启动实例
  18. Log via SSH and run resize2fs /dev/xvde1
  19. 最后检查运行 df -h的新空间

This is it

Good luck!

对于 xfs 文件系统,只需运行以下命令即可

xfs_growfs /

谢谢你威尔曼你的命令工作正常,小的改进需要考虑,如果我们增加 EBS 到更大的尺寸

  1. 停止实例
  2. 从卷中创建快照
  3. 根据增加大小的快照创建新卷
  4. 检查并记住当前的音量安装点(即 /dev/sda1)
  5. Detach current volume
  6. 将最近创建的卷附加到实例,设置确切的挂载点
  7. 重新启动实例
  8. Access via SSH to the instance and run fdisk /dev/xvde

    警告: 不推荐使用 DOS 兼容模式。强烈建议使用 关闭模式(命令‘ c’)并将显示单元更改为 扇区(命令‘ u’)

  9. p显示当前分区

  10. d删除当前分区(如果有多个分区,则必须一次删除一个)注意: 不要担心数据不会丢失
  11. 点击 n创建一个新的分区
  12. p设置为主要
  13. Hit 1 to set the first cylinder
  14. 设置所需的新空间(如果保留了整个空间)
  15. a使其可启动
  16. 1w写更改
  17. Reboot instance OR use partprobe (from the parted package) to tell the kernel about the new partition table
  18. 通过 SSH 登录并运行 resize2fs/dev/xvde1
  19. 最后检查运行 df-h 的新空间

可启动标志(a)在我的例子中不起作用(EC2,centos6.5) ,所以我必须从快照中重新创建卷。 After repeating all steps EXCEPT bootable flag - everything worked flawlessly so i was able to resize2fs after. 谢谢!

没有足够的代表来评论上面的内容; 但是也要注意上面的评论,如果你从1开始,你可能会损坏你的实例; 如果你在用“ p”列出你的分区之前,在启动 fdisk 之后点击“ u”,这实际上会给你一个正确的开始编号,所以你不会损坏你的卷。对于厘米6.5 AMI,也正如上面提到的2048对我来说是正确的。

没有必要停止实例和分离 EBS 卷来调整它的大小了!

2017年2月13日亚马逊宣布: “ 亚马逊 EBS 更新-新的弹性卷改变一切

即使要扩展的卷是正在运行的实例的根卷,该流程也能正常工作!


假设我们想把 Ubuntu 的引导驱动器从8G 增加到16G。

步骤-1)登录到 AWS 网络控制台-> EBS-> 右键鼠标点击一个您希望调整大小-> “修改音量”-> 更改“大小”字段,并点击[修改]按钮

enter image description here

enter image description here

enter image description here


步骤2)将 ssh 放入实例并调整分区大小:

让我们列出附在盒子上的块设备:
lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part /

如您所见,在16 GiB 设备上,/dev/xvda1仍然是8 GiB 分区,卷上没有其他分区。 让我们使用“ growth part”将8G 分区调整到16G:

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


# resize partition
growpart /dev/xvda 1

让我们检查一下结果(您可以看到/dev/xvda1现在是16G) :

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

Lots of SO answers suggest to use fdisk with delete / recreate partitions, which is nasty, risky, error-prone process especially when we change boot drive.


步骤3)调整文件系统的大小,以便充分利用新的分区空间
# 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% /

所以我们没有停机时间,有很多新空间可以使用。
好好享受吧!

Update: Update: Use sudo xfs_growfs /dev/xvda1 instead of resize2fs when XFS filesystem.

Thanks, @Dimitry, it worked like a charm with a small change to match my file system.

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

然后使用以下命令,替换文件系统的挂载点(必须挂载 XFS 文件系统才能调整它们的大小) :

[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

注意 如果收到 xfsctl 失败: 无法分配内存错误,可能需要更新实例上的 Linux 内核。有关更多信息,请参考您的特定操作系统文档。 如果您收到的文件系统已经是 nnnnnn 块长。

  1. 登录到 AWS 网络控制台-> EBS-> 右键鼠标点击一个您希望调整大小-> “修改音量”-> 更改“大小”字段,并点击[修改]按钮

  2. growpart /dev/xvda 1

  3. resize2fs /dev/xvda1

这是 Dmitry Shevkoplyas 回答的直截了当的版本。AWS 文档没有显示 growpart命令。这对 ubuntu AMI 很有用。

完美的评论由 jperelli 以上。

我今天也遇到了同样的问题。AWS 文档并没有明确提到 growth part。我找到了困难的方法,事实上这两个命令在 M4.large & M4.xlarge 和 Ubuntu 上运行良好

sudo growpart /dev/xvda 1
sudo resize2fs /dev/xvda1
  1. Sudo growth part/dev/xvda 1
  2. Sudo resize2fs/dev/xvda1

以上两个命令为 AWS ubuntu ec2实例节省了时间。

因此,在 Case 中,任何人都会遇到这样的问题: 他们100% 地使用,甚至没有空间来运行 growth part 命令(因为它在/tmp 中创建了一个文件)

下面是我发现的一个命令,即使在使用 EBS 卷时也可以绕过它,而且如果您的 ec2上没有剩余空间,并且您已经达到100%

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

点击这里查看:

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

为了以防万一,如果有人在这里为 GCP 谷歌云平台,< br/> 试试这个: < br/>

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

在名字和数字之间放空格,例如:

sudo growpart /dev/xvda 1

请注意,在设备名称和分区号之间有一个空格。

要扩展每个卷上的分区,请使用以下增长部分 注意,在设备名和 分区编号。

Https://docs.aws.amazon.com/awsec2/latest/userguide/recognize-expanded-volume-linux.html

一旦您修改您的 EBS 的大小,

List the block devices

sudo lsblk

NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1     259:2    0  10G  0 disk
|-nvme0n1p1 259:3    0   1M  0 part
`-nvme0n1p2 259:4    0  10G  0 part /

Expand the partition

假设您想扩展安装在 /上的第二个分区,

sudo growpart /dev/nvme0n1 2

如果根卷中的所有空间都用完了,并且基本上无法访问 /tmp,即使用错误消息 Unable to growpart because no space left,

  1. 暂时安装一个 /tmp音量: sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp
  2. 完成完整的大小调整后卸载: sudo umount -l /tmp

验证新的大小

NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1     259:2    0  20G  0 disk
|-nvme0n1p1 259:3    0   1M  0 part
`-nvme0n1p2 259:4    0  10G  0 part /

调整文件系统的大小

对于 XFS (使用挂载点作为参数)

sudo xfs_growfs /

对于 EXT4(使用分区名作为参数)

sudo resize2fs /dev/nvme0n1p2

我在 EC2中的 Ubuntu 系统遇到过类似的问题

首先检查文件系统

lsblk

Then after increasing volume size from console, I ran below commands

sudo growpart /dev/nvme0n1 1

这将显示 lsblk 命令中的更改

然后我可以用

sudo resize2fs /dev/nvme0n1p1

Finally verify it with df -h command, it will work