加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux磁盘 扩容大全

发布时间:2022-12-13 11:24:29 所属栏目:Linux 来源:
导读:  当我们租了服务器之后,肯定会需要到磁盘扩容的。

  一、背景

  linux使用中经常遇到磁盘空间不足,需要对磁盘进行扩容。根据自己的经验进行归纳整理,多种场景,帮助需要者和备查

  本文执行
  当我们租了服务器之后,肯定会需要到磁盘扩容的。
 
  一、背景
 
  linux使用中经常遇到磁盘空间不足,需要对磁盘进行扩容。根据自己的经验进行归纳整理,多种场景,帮助需要者和备查
 
  本文执行的命令,均在centos7 环境下运行的,其他环境思路和相似,命令基本一致。
 
  分区情况说明:
 
  sda是单独的一块磁盘总大小50G,sda1、sda2是两个分区,sda2下面有三个逻辑分区centos-root 、centos-home、centos-swap (df命令时可以看到的挂载点);
 
  centos-root 对应的挂载点是 根目录
 
  centos-home对应的挂载点是 /home
 
  卷组名称为centos (通过pvdisplay查看)
 
  [root@vm-210 templates]# lsblk
 
  NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 
  sda 8:0 0 50G 0 disk
 
  ├─sda1 8:1 0 1G 0 part /boot
 
  └─sda2 8:2 0 49G 0 part
 
  ├─centos-root 253:0 0 40G 0 lvm /
 
  ├─centos-home 253:1 0 7G 0 lvm /home
 
  └─centos-swap 253:2 0 2G 0 lvm [SWAP]
 
  [root@vm-210 templates]# pvdisplay
 
  --- Physical volume ---
 
  PV Name /dev/sda2
 
  #卷组名称
 
  VG Name centos
 
  PV Size
 
  Allocatable yes
 
  PE Size 4.00 MiB
 
  Total PE 12543
 
  Free PE 1
 
  Allocated PE 12542
 
  PV UUID 1Fpioh-HkxD-f4Pd-78An-on4A-vGS1-B9UXr4
 
  二、场景
 
  出现以下问题参考文章:
 
  扩容磁盘不显示扩容后的磁盘或者磁盘大小两种情况:
 
  情况一:修改原来磁盘大小
 
  情况二:新增磁盘
 
  场景一:将centos-home分区移动到根分区centos-root
 
  由于分区时,centos-home分区空间非常大,centos-root分区非常小,需要删除centos-home分区,扩容到centos-root分区
 
  操作思路(括号中是用到的命令):
 
  先备份/home下文件
 
  卸载(umount) /home (注意:卸载不掉时,请将所有使用/home的进程关闭 参考)
 
  从逻辑卷中删除(lvremove) home 分区
 
  扩展:将腾出的空间扩展(lvextend)到 centos-root分区下
 
  使扩展生效(xfs_growfs)
 
  注释掉fstab中的启动挂载项
 
  恢复备份数据到/home 下
 
  详细代码如下:
 
  #!/bin/bash
 
  #【功能】 将centos-home分区的空间移动到根centos-root分区下
 
  #1.先备份 /home下文件: 将/home下的所有内容备份到/backup下,下面的命令自动创建/backup目录
 
  mkdir /backup && mv /home/* /backup
 
  # 2.卸载 centos-home
 
  umount /home
 
  ## 如提示失败则用下面的命令终止/home 分区下的进程 再进行卸载
 
  ## fuser 安装方法 yum install -y psmisc
 
  ## fuser -m -v -i -k /home
 
  ## 判断是哪个进程占用了此目录,请kill掉那个进程也可以
 
  # 3.从逻辑卷中删除(lvremove) centos-home 分区
 
  echo y|lvremove /dev/mapper/centos-home
 
  # 4.扩展:将腾出的空间扩展(lvextend)到 centos-root分区下
 
  lvextend -l+100%FREE /dev/mapper/centos-root
 
  # 5.使扩展生效(xfs_growfs)
 
  xfs_growfs /dev/mapper/centos-root
 
  # 6.注释掉fstab中的启动挂载项
 
  sed -i 's;/dev/mapper/centos-home;#/dev/mapper/centos-home;g' /etc/fstab
 
  # 7.恢复 原来home下的数据 并删除/backup
 
  mv /backup/* /home && rm -rf /backup
 
  # 8.查看
 
  df -H
 
  说明:
 
  思路是一样的,如果是其他分区,请修改里面的分区目录即可
 
  场景二:新增磁盘扩容到根目录或者home下
 
  磁盘空间不足,新增加了一块硬盘的场景。此处举例新增的一块磁盘名称为/dev/sdb
 
  操作思路(括号中是用到的命令):
 
  查看磁盘情况(lsblk、fdisk -l、pvdisplay)
 
  创建物理卷(pvcreate)
 
  将磁盘扩展到卷组(vgextend)
 
  扩展逻辑分区(lvextend)
 
  使扩展生效(xfs_growfs)
 
  查看(df -H)
 
  # 1.查看磁盘情况(lsblk、fdisk -l、pvdisplay)
 
  lsblk
 
  # 2.创建物理卷(pvcreate)
 
  pvcreate /dev/sdb
 
  # 3.将磁盘扩展到卷组(vgextend)
 
  vgextend centos /dev/sdb
 
  # 4.扩展逻辑分区(lvextend)
 
  # 根据自己的情况选择扩容到centos-root
 
  # 还是centos-home逻辑分区,请修改注释
 
  # 100%是将所有的磁盘空间扩容到指定分区,也可以根据需要进行调整比例
 
  # 也支持指定大小比如10G等等(指定固定值时参数-l需要修改为-L)
 
  lvextend -l+100%FREE /dev/mapper/centos-root
 
  #lvextend -l+100%FREE /dev/mapper/centos-home
 
  # 5.使扩展生效(xfs_growfs)根据扩容的分区进行选择使用
 
  # xfs_growfs /dev/mapper/centos-home
 
  xfs_growfs /dev/mapper/centos-root
 
  # 6.查看(df -H)
 
  df -H
 
  场景三:在原始磁盘上增加空间(常在虚拟化环境中)
 
  虚拟化或者超融合环境中、或者VMware虚拟机中;磁盘空间不足,增加了已有磁盘的大小的场景,把增加的空间扩容到根目录或者centos-home下。
 
  操作思路(括号中是用到的命令):
 
  方法一:fdisk进行分区,操作步骤与场景二基本一样,多了一步分区
 
  查看磁盘情况(lsblk、fdisk -l、pvdisplay)
 
  创建分区(fdisk 磁盘名称)
 
  创建物理卷(pvcreate)
 
  将磁盘扩展到卷组(vgextend)
 
  扩展逻辑分区(lvextend)
 
  使扩展生效(xfs_growfs)
 
  查看(df -H)
 
  方法二:用parted命令调整大小
 
  查看磁盘情况(parted /dev/sda print free)
 
  分配剩余的可用空间(parted /dev/sda resizepart 2 100%)
 
  刷新物理卷(pvresize /dev/sda2)
 
  扩展逻辑分区(lvextend)
 
  使扩展生效(xfs_growfs)
 
  查看(df -H)
 
  方法一:fdisk进行分区,操作步骤与场景二基本一样,多了一步分区
 
  # 1.创建分区(fdisk)
 
  fdisk /dev/sda
 
  #在进入命令环境中,按n键 一路按回车linux分区工具,最后一步按w键保存,最后按q键退出
 
  # 2.创建物理卷(pvcreate) sda3根据第一步中创建的分区名称进行替换
 
  pvcreate /dev/sda3
 
  # 3.将磁盘扩展到卷组(vgextend) sda3根据第一步中创建的分区名称进行替换
 
  vgextend centos /dev/sda3
 
  # 4.扩展逻辑分区(lvextend)
 
  # 根据自己的情况选择扩容到centos-root
 
  # 还是centos-home逻辑分区,请修改注释
 
  # 100%是将所有的磁盘空间扩容到指定分区,也可以根据需要进行调整比例
 
  # 也支持指定大小比如10G等等(指定固定值时参数-l需要修改为-L)
 
  lvextend -l+100%FREE /dev/mapper/centos-root
 
  #lvextend -l+100%FREE /dev/mapper/centos-home
 
  # 5.使扩展生效(xfs_growfs)根据扩容的分区进行选择使用
 
  # xfs_growfs /dev/mapper/centos-home
 
  xfs_growfs /dev/mapper/centos-root
 
  # 6.查看(df -H)
 
  df -H
 
  方法二:用parted命令调整大小
 
  举例:系统只有一个磁盘,2个分区:需要将新扩容的磁盘空间扩容到分区2上,下图中number 为2的,实际上对应的是/dev/sda2
 
  [root@vm-210 templates]# parted /dev/sda print free
 
  Model: ATA QEMU HARDDISK (scsi)
 
  Disk /dev/sda: 53.7GB
 
  Sector size (logical/physical): 512B/512B
 
  Partition Table: msdos
 
  Disk Flags:
 
  Number Start End Size Type File system Flags
 
  32.3kB 1049kB 1016kB Free Space
 
  1 1049kB 1075MB 1074MB primary xfs boot
 
  2 1075MB 53.7GB 52.6GB primary lvm
 
  方法二:用parted命令进行操作
 
  #1. 查看磁盘情况:打印可用空间
 
  parted /dev/sda print free
 
  #2.分配剩余的可用空间
 
  #将剩余的可用空间分配到 /dev/sda2,根据实际修改磁盘
 
  # resizepart 中的2 只的是第二个分区即:/dev/sda2
 
  # 100% 将所有的空闲空间分配给/dev/sda2,也可以用单位和百分比
 
  parted /dev/sda resizepart 2 100%
 
  # 3.刷新物理卷
 
  #分区的空间修改了,也要刷新一下pv物理卷的大小,这样pv才能识别变动的空间
 
  pvresize /dev/sda2
 
  # 4.查看物理卷是否变化
 
  #查看pv中free 项中是否显示了可用的空间
 
  pvdisplay
 
  # 5.扩展逻辑分区
 
  #开始增加到逻辑卷中
 
  lvextend -l+100%FREE /dev/mapper/centos-root
 
  # 6.使扩展生效(xfs_growfs)
 
  xfs_growfs /dev/mapper/centos-root
 
  # 7.查看(df -H)
 
  df -H
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!