在plus3it/spel项目中配置大于默认大小的根EBS卷(EL7系统)
spel STIG-Partitioned Enterprise Linux (spel) 项目地址: https://gitcode.com/gh_mirrors/sp/spel
背景介绍
在云计算环境中,我们经常需要调整实例的存储容量以满足业务需求。对于使用EL7(Enterprise Linux 7,如CentOS 7或RHEL 7)系统的实例,当我们需要使用比AMI默认配置更大的根EBS卷时,需要了解一些特殊的处理方式。plus3it/spel项目提供了这方面的解决方案。
技术原理
EL7系统内核原生支持在任意时间扩展根磁盘上的分区,这一功能依赖于cloud-utils-growpart
RPM包。当根文件系统("/")位于未分区的磁盘或MBR/GPT风格的分区上时,系统会在首次启动时自动扩展分区。然而,如果根文件系统位于LVM2管理的卷上,则不会自动执行这一操作。
操作步骤
手动扩展方法
- 选择更大的EBS卷大小:在启动AMI时,选择比默认更大的根EBS卷大小
- 启动AMI实例:正常启动AMI实例
- 登录实例:等待实例启动完成后登录
- 获取root权限:使用sudo或直接以root用户登录
- 扩展分区:执行命令
/usr/bin/growpart /dev/xvda 2
- 调整物理卷:执行命令
pvresize /dev/xvda2
- 扩展逻辑卷:使用
lvresize
命令扩展需要增大的卷/文件系统
自动化配置方法
可以通过UserData在实例启动前自动执行扩展操作,以下是几种可行的配置方式:
方法一:使用cloud-config格式
#cloud-config
runcmd:
- /usr/bin/growpart /dev/xvda 2
- pvresize /dev/xvda2
- lvresize -r -l 100%FREE VolGroup00/logVol
方法二:使用growpart模块
#cloud-config
growpart:
mode: auto
devices: [ '/dev/xvda2' ]
ignore_growroot_disabled: false
方法三:使用bash脚本
#!/bin/bash
/usr/bin/growpart /dev/xvda 2
pvresize /dev/xvda2
lvresize -r -l 100%FREE VolGroup00/logVol
注意事项
- 第五代实例类型适配:对于m5、c5等第五代实例类型,需要将命令中的
xvda
替换为nvme0n1
- LVM配置差异:不同系统可能有不同的卷组和逻辑卷名称,请根据实际情况调整
- 测试验证:在生产环境使用前,建议在测试环境中验证配置的正确性
最佳实践
- 对于生产环境,建议使用自动化配置方法,减少人为操作失误
- 在扩展前,建议先创建快照备份重要数据
- 对于关键业务系统,可以先在测试环境中验证扩展操作
- 监控扩展后的文件系统使用情况,确保扩展操作成功完成
通过以上方法,可以灵活地调整EL7系统的根EBS卷大小,满足不同业务场景下的存储需求。plus3it/spel项目提供的这些方案已经在实际环境中得到验证,是可靠且高效的解决方案。
spel STIG-Partitioned Enterprise Linux (spel) 项目地址: https://gitcode.com/gh_mirrors/sp/spel
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考