avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 Linux 磁盘扩容
文章

Linux 磁盘扩容

发表于 2024-12-2 更新于 2024-12- 3
作者 jepwei
13~16 分钟 阅读

磁盘扩容指南

本文将以扩容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中定义的文件系统

注意事项与缺点

  1. 备份重要数据:在进行磁盘扩容操作之前,务必备份重要数据,以防意外情况导致数据丢失。

  2. 扩容过程中的停机时间:某些操作可能需要重启虚拟机,导致停机时间。请提前安排维护时间,避免影响业务。

  3. 分区表类型:对于大于2TB的硬盘,必须使用GPT分区表,确保兼容性。

  4. 文件系统类型:不同的文件系统(如XFS和ext4)在扩容时的命令不同,需根据实际情况选择合适的命令。

  5. 监控磁盘使用情况:在扩容后,定期监控磁盘使用情况,避免再次出现空间不足的问题。

通过以上步骤,您可以顺利完成磁盘扩容操作。如有疑问,请随时咨询。

Linux
Linux
许可协议: 
分享

相关文章

7月 16, 2025

ubuntu 设置时间显示为24小时制

对ubuntu默认的时间显示格式不太满意,查阅了相关资料进行修改为24小时制度,特此记录和分享给需要设置的网友 查看当前的timezone root@jumpserver:~# timedatectl Local time: Sat 2024-03-23 12:45:5

6月 10, 2025

KVM 虚拟机创建模板

查看--os-type支持的参数 osinfo-query os # 列出所有已知操作系统 win7 virt-install --name=win7_zpcl_ip --vcpu=8,sockets=1,cores=8,threads=1 --ram=16384 --disk path=/home

1月 15, 2025

cpu 内存占用脚本

本文介绍了两个版本的Linux压力测试脚本,分别用于CPU和内存的压力测试。CPU压力测试脚本通过无限循环创建指定数量的进程以占用CPU资源;内存压力测试脚本则通过创建临时内存块来模拟内存占用,支持指定大小和停止运行。用户需根据用法说明参数执行脚本。该文档适合需要进行性能测试的Linux用户。

下一篇

centos7简单优化

上一篇

Linux NFS服务

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy