使用 Ubuntu 16.04 在 M5 类型 EC2 上增加 EBS 卷后扩展文件系统

使用 Ubuntu 16.04 在 M5 类型 EC2 上增加 EBS 卷后扩展文件系统

生产 AWS 实例:我们有一个 m5 ec2 nitro 实例需要进行查询优化。但是,我们时间紧迫,决定暂时将内存和存储投入其中,直到我们能够完成查询优化。(提前致歉)

50GB在一个EBS 卷 (/dev/sda1)和另一个50GB 在第二个卷 (/dev/sdf) 上据我所知,EC2 只使用了其中一个 50GB 卷,dev/sda1

Linux 内核版本:4.4.0-1128-aws 32GB 内存(M5a.2xlarge)

我们的/dev/nvme0n1p1 | (/tmp)目录已满,导致出现 SQL 28 无磁盘空间错误,我们想要增加目录的大小/tmp目录来自20GB 到 50GB。我们优化查询以减少存储在 /tmp 中的临时数据库 (.MAI) 文件的大小

我目前的位置:在我们的测试环境/EC2(也是 M5.2xlarge)中,我能够将卷大小增加到100GB我已经按照https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html

  • 这是我运行时显示的内容 lsblk
NAME                MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

nvme0n1             259:0    0   100G  0 disk                                                                                                         
├─nvme0n1p1         259:1    0    20G  0 part /                                                                                                       
├─nvme0n1p2         259:2    0     2G  0 part [SWAP]                                                                                                  
└─nvme0n1p3         259:3    0    28G  0 part                                                                                                         
  ├─vg_xxx-logs     251:0    0     8G  0 lvm  /var/log                                                                                                
  └─vg_xxx-app      251:1    0    19G  0 lvm  /home/xxx

这是我运行 df -hT 时显示的内容:

Filesystem              Type      Size  Used Avail Use% Mounted on
udev                    devtmpfs   16G     0   16G   0% /dev
tmpfs                   tmpfs     3.1G  183M  3.0G   6% /run
/dev/nvme0n1p1          ext4       20G  8.6G   11G  45% /
tmpfs                   tmpfs      16G     0   16G   0% /dev/shm
tmpfs                   tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs                   tmpfs      16G     0   16G   0% /sys/fs/cgroup
/dev/loop0              squashfs   44M   44M     0 100% /snap/certbot/1788
/dev/loop1              squashfs  111M  111M     0 100% /snap/core/12834
/dev/loop3              squashfs   62M   62M     0 100% /snap/core20/1434
/dev/loop5              squashfs   56M   56M     0 100% /snap/core18/2409
/dev/loop4              squashfs   25M   25M     0 100% /snap/amazon-ssm-agent/4046
/dev/loop2              squashfs   56M   56M     0 100% /snap/core18/2284
/dev/mapper/vg_xxx-logs xfs       8.0G  362M  7.7G   5% /var/log
/dev/loop6              squashfs   26M   26M     0 100% /snap/amazon-ssm-agent/5656
/dev/loop8              squashfs   44M   44M     0 100% /snap/certbot/2035
/dev/loop7              squashfs   62M   62M     0 100% /snap/core20/1328
/dev/mapper/vg_xxx-app  xfs        19G  4.7G   15G  25% /home/xxx
tmpfs                   tmpfs     3.1G     0  3.1G   0% /run/user/1000
tmpfs                   tmpfs     3.1G     0  3.1G   0% /run/user/1001

正如你所见,它表明nvme0n1100GB可用,但 3 个分区仍然相等50GB。当我到达 AWS 文档中有关扩展文件系统以占用新添加的卷空间的第 7 步时,我得到以下内容:

ubuntu@ip-xx-xx-xx-xxx:~$ **sudo resize2fs /dev/nvme0n1p1**                                                                                           
resize2fs 1.42.13 (17-May-2015)                                                                                                                   
**The filesystem is already 5242619 (4k) blocks long.  Nothing to do!**

我有一个 ext4 文件系统(但我在nvme0n1p3但我不认为这有什么改变)并尝试过成长部分分开但是这些在线找到的解决方案通常适用于 Ubuntu,而不是专门针对 EC2 EBS 卷,所以我不想过多地偏离我似乎找不到的 AWS 提供的解决方案。话虽如此,这些解决方案也产生了错误消息,指出驱动器/目录正在使用中。

我的理解是,AWS EBS 允许 ec2 增加卷大小,然后扩展文件系统,而无需停止实例或卸载正在扩展的设备。尽管如此,我在停止正在测试的暂存实例时无法执行相同的操作。我愿意停止实例来完成此操作,但是,我更愿意在不卸载设备和/或停止实例的情况下执行此操作。

如果需要,我还可以升级实例以提供更多 RAM,但我仍然需要先扩展文件系统。

任何帮助都将不胜感激!

答案1

调整卷大小后扩展 Linux 文件系统:

  1. 登录到实例;

  2. 输入df -h以列出有关文件系统的信息;

  3. 类型lsblk;

  4. 检查您的卷名;

  5. 要扩展根卷上的分区,请使用以下growpart命令。

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

    growpart /dev/nvme0n1 1
    
    # (1 = number of partitions)
    
  6. df -h再次检查尺寸lsblk

  7. 扩展分区后,扩展整个文件系统resize2fs /dev/nvme0n1p1

相关内容