生产 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
正如你所见,它表明nvme0n1有100GB可用,但 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 文件系统:
登录到实例;
输入
df -h
以列出有关文件系统的信息;类型
lsblk
;检查您的卷名;
要扩展根卷上的分区,请使用以下
growpart
命令。请注意,设备名称和分区号之间有一个空格。
growpart /dev/nvme0n1 1 # (1 = number of partitions)
df -h
再次检查尺寸lsblk
扩展分区后,扩展整个文件系统
resize2fs /dev/nvme0n1p1