首页主机资讯centos虚拟机存储空间管理

centos虚拟机存储空间管理

时间2025-12-23 08:09:04发布访客分类主机资讯浏览1240
导读:CentOS 虚拟机存储空间管理 一 快速排查与清理 查看整体占用与类型:运行df -h或df -Th,确认哪个挂载点(如**/、/var**、/home)接近满额,并识别文件系统类型(如xfs、ext4)。 定位大目录与文件: 逐级查...

CentOS 虚拟机存储空间管理

一 快速排查与清理

  • 查看整体占用与类型:运行df -hdf -Th,确认哪个挂载点(如**//var**、/home)接近满额,并识别文件系统类型(如xfsext4)。
  • 定位大目录与文件:
    • 逐级查看一级目录占用:sudo du -sh / 2> /dev/null | sort -hr | head -n 20*
    • 查找大于指定大小的文件:find / -type f -size +100M -exec ls -lh { } ; 2> /dev/null
  • 常见可清理项(谨慎执行,避免删除正在使用的文件):
    • 包管理缓存:sudo yum clean all;移除无用依赖:sudo yum autoremove
    • 日志与临时文件:sudo find /var/log -type f -name “*.gz” -deletesudo rm -rf /tmp/ /var/tmp/**
    • 旧内核(RHEL/CentOS 7/8 常用):sudo package-cleanup --oldkernels
    • Docker 垃圾回收:docker system prune -af --volumes(会删除停止容器、悬挂镜像与无用卷)
  • 若发现**/var/lib/docker**占用异常高,优先清理无用镜像/容器/卷,再考虑迁移目录或扩容。

二 在线扩容流程 LVM 场景

  • 宿主机侧扩容虚拟磁盘:在 VMware/VirtualBox/KVM 中先关机,扩展虚拟硬盘容量(例如从100G扩到200G),再启动系统。
  • 识别新增空间:
    • 查看磁盘与分区:lsblkfdisk -l
    • 若是 SCSI 设备未自动识别,可触发重扫:
      • 例如:echo “- - -” > /sys/class/scsi_host/host0/scan(按需对 host0/host1 执行)
  • 场景 A 扩展现有 sda 的未分配空间(推荐)
    1. 分区:执行fdisk /dev/sda,新建分区(通常得到**/dev/sda3**),将类型设为Linux LVM(8e),写入分区表。
    2. 通知内核:partprobe 或重启。
    3. 纳入 LVM:
      • 创建物理卷:pvcreate /dev/sda3
      • 扩展卷组:vgextend < VG名> /dev/sda3(VG 名可用 vgs 查看)
    4. 扩展逻辑卷:
      • 将卷组剩余空间全给根 LV:lvextend -l +100%FREE /dev/mapper/-root
      • 或指定增量:lvextend -L +50G /dev/mapper/-root
    5. 扩展文件系统:
      • XFSxfs_growfs /(或指定挂载点)
      • ext2/3/4resize2fs /dev/mapper/-root
    6. 验证:df -h 应显示新容量。
  • 场景 B 新增一块磁盘(/dev/sdb)并加入 LVM
    1. 分区:fdisk /dev/sdb → 新建分区(如**/dev/sdb1**)→ 类型8e → 保存
    2. 纳入 LVM:pvcreate /dev/sdb1vgextend < VG名> /dev/sdb1
    3. 扩展 LV 与文件系统(同上)。
  • 关键要点:
    • LVM 扩容顺序为:PV → VG → LV → 文件系统;最后一步扩容文件系统不可遗漏。
    • XFS 必须在挂载状态下扩容;ext4 可用 resize2fs 在线扩。

三 非 LVM 或根分区不在 LVM 的扩容

  • 方案 1 使用 GParted LiveCD/ISO 调整分区
    • 关闭虚拟机 → 挂载 GParted ISO 启动 → 调整目标分区大小 → 应用 → 重启进入系统后用 resize2fs/xfs_growfs 扩文件系统(按实际文件系统选择)。
  • 方案 2 添加新磁盘并挂载为大目录
    • 虚拟机设置中添加新硬盘 → 系统内分区并格式化(如 mkfs.xfs /dev/sdb1)→ 挂载到需要扩容的目录(如 /var/lib/docker):
      • 临时:mount /dev/sdb1 /var/lib/docker
      • 永久:写入 /etc/fstab(建议使用 UUID,可用 lsblk -f 查询)。
  • 方案 3 迁移目录后替换原挂载点
    • 挂载新盘到临时目录 → 停相关服务(如 systemctl stop docker)→ rsync -aXS /var/lib/docker/ /mnt/newdisk/docker/ → 备份原目录 → 挂载新盘到 /var/lib/docker → 验证无误后删除旧数据。
  • 风险提示:分区/移动系统目录存在数据风险,务必先完整备份,并在变更 /etc/fstab 前测试挂载。

四 缩减占用与回收空间

  • 虚拟机层面回收磁盘:
    • 清理无用文件后,执行磁盘“压缩/收缩”:
      • VMware Workstation:图形界面“压缩”,或命令行:vmware-vdiskmanager -k /path/to/disk.vmdk
      • VirtualBox:先对空闲空间写零(如 zerofree),再执行:VBoxManage modifyhd /path/to/disk.vdi --compact
    • 删除无用快照(快照会显著占用宿主机空间)。
  • 系统层面精简:
    • 清理包缓存、旧日志、临时文件、旧内核、未使用软件与容器镜像(见第一部分)。
    • 若使用 LVM,可先缩小文件系统(需离线,风险高),再lvreduce,最后回收 PV;生产环境建议优先“加盘+迁移目录”替代缩容。

五 常用命令与排错清单

  • 快速诊断
    • 容量与类型:df -hdf -Th
    • 块设备与分区:lsblkfdisk -l
    • LVM 结构:pvsvgslvspvdisplayvgdisplaylvdisplay
  • 扩容后容量未变化
    • 确认已执行文件系统扩容:xfs_growfs < 挂载点> (XFS)或 resize2fs (ext4);XFS 需对挂载点执行,ext4 可对 LV 执行。
  • 扩展分区看不到新空间
    • 执行 partprobe 或重启;若是 SCSI 设备,尝试 echo “- - -” > /sys/class/scsi_host/hostX/scan 触发重扫。
  • 扩展失败提示空间不足
    • 使用 vgs 检查 Free 空间;必要时先扩展卷组(新增磁盘或扩展 sda 后创建新 PV 并 vgextend)。
  • 生产建议
    • 变更前创建快照/备份;对关键业务选择维护窗口;对 /var/lib/docker/var/log 等大目录优先采用“新增磁盘+迁移”方案,降低风险。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos虚拟机存储空间管理
本文地址: https://pptw.com/jishu/778097.html
centos下docker端口映射技巧 centos虚拟机日志分析技巧

游客 回复需填写必要信息