Linux 磁盘扩容
磁盘扩容指南
本文将以扩容KVM虚拟机为例,详细介绍磁盘扩容的步骤,包括对虚拟机的qcow2文件进行扩容以及在系统内进行相应操作。
1. 扩容虚拟机的qcow2文件
首先,我们需要对虚拟机的qcow2文件进行扩容。以下是具体步骤:
# 查看虚拟机的qcow2文件信息
qemu-img info centos_xiaogan_192.168.1.1.qcow2
# 将qcow2文件扩容50G
qemu-img resize centos_xiaogan_192.168.1.1.qcow2 +50G
# 再次查看qcow2文件信息以确认扩容
qemu-img info centos_xiaogan_192.168.1.1.qcow2
# 启动虚拟机
virsh start centos_xiaogan_192.168.1.1
2. 目录扩容
在虚拟机内,我们需要对新的磁盘空间进行分区和扩容。具体步骤如下:
# 查看当前硬盘使用情况
df -h
# 查看硬盘分区情况
fdisk -l
# 对新硬盘进行分区
fdisk /dev/vda

# 新建分区后重启虚拟机,继续以下步骤(以扩容/dev/mapper/centos-home为例)
vgdisplay # 查看当前卷组信息
vgextend centos /dev/vda1 # 扩展卷组
lvextend -l +100%FREE /dev/mapper/centos-home # 扩展逻辑卷
xfs_growfs /dev/mapper/centos-home # 扩展文件系统
df -h # 查看扩容后的挂载情况
3. 目录扩容(2T以上)
如果新硬盘的容量超过2TB,需使用GPT分区表。以下是具体步骤:
# 查看新硬盘信息
fdisk -l
# 确认新硬盘(/dev/sdc)存在且大于2TB
# 1. 安装 ntfs-3g_ntfsprogs-2021.8.22(通常情况下不需要,除非没有)
# 2. 使用 parted 进行分区
parted /dev/sdc
(parted) mklabel gpt # 将分区表类型转换为GPT
(parted) print # 打印分区信息
(parted) mkpart primary 1 100% # 创建主分区
(parted) quit # 退出parted
# 格式化新分区
mkfs -t xfs /dev/sdc1 # 格式化为XFS文件系统
# 3. 将新分区加入LVM管理
pvcreate /dev/sdc1 # 创建物理卷
pvscan # 扫描物理卷
# 4. 查看当前VG信息
vgdisplay # 或 vgscan
# 5. 扩容VG
vgextend cl /dev/sdc1 # 扩展卷组
# 6. 查看当前LV信息
lvdisplay # 或 lvscan
# 7. 扩展LV
lvextend -L 2.8T /dev/cl/home # 将LV扩展至2.8T
# 或者
lvextend -l +100%FREE /dev/cl/home # 将VG的全部剩余空间扩展至home
# 8. 使扩展生效
xfs_growfs /dev/cl/home # 对于XFS文件系统
# 如果是ext4格式,则使用以下命令
# resize2fs /dev/cl/home
# 9. 查看挂载情况
df -h # 确认扩容成功
4. 新建目录扩容
如果需要将新硬盘扩容到新目录(如/data),请按照以下步骤操作:
# 对新硬盘(/dev/vdb)进行分区并扩容到新目录(data)中
# 1. 格式化硬盘
fdisk /dev/vdb
# 依次输入以下选项 n p 回车 回车 回车 t 8e p w(写入分区表)
# 2. 创建物理逻辑卷
pvcreate /dev/vdb1 # 假设新分区为vdb1
# 3. 创建卷组
vgcreate dskj /dev/vdb1 # 创建卷组dskj
# 4. 创建逻辑卷
lvcreate -l +100%FREE -n data dskj # 创建逻辑卷data
# 5. 格式化逻辑卷
mkfs.xfs /dev/dskj/data # 格式化为XFS文件系统
# 6. 创建目录并挂载
mkdir /data # 创建挂载点
mount /dev/dskj/data /data # 挂载逻辑卷
# 7. 查看挂载情况
df -h # 确认挂载成功
# 8. 将输出的/home对应的Filesystem记录到/etc/fstab文件中,以便开机自动挂载
# 9. 卸载挂载目录
umount /data # 卸载之前的挂载
# 10. 测试启动挂载
mount -a # 挂载所有在/etc/fstab中定义的文件系统
注意事项与缺点
-
备份重要数据:在进行磁盘扩容操作之前,务必备份重要数据,以防意外情况导致数据丢失。
-
扩容过程中的停机时间:某些操作可能需要重启虚拟机,导致停机时间。请提前安排维护时间,避免影响业务。
-
分区表类型:对于大于2TB的硬盘,必须使用GPT分区表,确保兼容性。
-
文件系统类型:不同的文件系统(如XFS和ext4)在扩容时的命令不同,需根据实际情况选择合适的命令。
-
监控磁盘使用情况:在扩容后,定期监控磁盘使用情况,避免再次出现空间不足的问题。
通过以上步骤,您可以顺利完成磁盘扩容操作。如有疑问,请随时咨询。