我有一个 Amazon Line AMI,其中有两个驱动器,一个用于根驱动器,一个用于数据驱动器,
8G /
1024G /data
数据分区几乎已满 93%/数据,我想在不擦除磁盘的情况下扩展数据分区。
是否可以更改非 LVM 分区上的现有文件系统并将其转变为 LVM 逻辑卷,而无需擦除磁盘?
答案1
不,如果不对现有非 LVM 分区进行 pvc,则无法将其更改为 LVM,从而破坏其中的数据。您必须执行以下操作:
- 获得一个新的1024G磁盘,并
vgcrate new_vg /dev/newdisk
(根据需要更换new_vg
和)newdisk
lvcreate -L+100%FREE -n new_lv
(new_lv
酌情替换)- 格式化并安装在某处
- 移动文件(可能需要服务窗口)
- 当旧磁盘被复制后,你可以卸载它
vgextend new_vg /dev/datadisk
(当前安装在上的磁盘/data
) - ,然后
lvextend -L+100%FREE new_vg/new_lv
增大 fs:resize2fs /dev/new_vg/new_lv
或者备份文件,卸载磁盘并重复 1-4(不获取新磁盘)
答案2
拍摄磁盘快照,然后从该快照创建一个新的更大卷。如果您的 AMI 使用 cloud-init,那么它将自动增长以填满它。如果是这样,请在 fdisk 中编辑分区表(使分区尽可能大),然后重新启动并使用 resize2fs 进行在线调整大小。
答案3
如果您不想采用可能耗时的 LVM 转换路径,这里还有另一种方法,但它可能适合您,也可能不适合您,具体取决于您在 下的目录布局类型/data
。
使用挂载点!本质上:
- 获取一个新的 1024 GB 磁盘
- 在其上创建一个文件系统(如果愿意的话,可以创建一个 LVM 分区)
- 将新文件系统安装在某个临时位置,例如
/data/tmp
如果该位置尚不存在 - 复制一些大的目录
/data
,例如/data/bigdata
/data/tmp
- 将原件重命名
/data/bigdata
为其他名称,例如/data/bigdata.old
- 创建新目录
/data/bigdata
- 卸载
/data/tmp
(您的新磁盘) - 将新磁盘安装到
/data/bigdata
好吧,我承认这远非理想,但在卷管理器出现之前必须做这样的事情。彼得·H他的回答中有更好的想法,无论如何你都应该遵循这一点。