目 录CONTENT

文章目录

CentOS7-磁盘扩容方案

javalx
2023-05-18 / 0 评论 / 0 点赞 / 95 阅读 / 0 字

前言

新增硬盘扩容大致可以分为两种情况:

  • 新增的磁盘挂载到某个目录下面

  • 新增的磁盘扩展已有卷组并扩容已有逻辑卷

方案图谱:

说明:左侧分支为挂载方案,右侧分支为扩展已有卷组方案

方案一:新增磁盘挂载到目录

查看当前容量

  • 命令

    df -Th
    
  • 示例

    [root@localhost ~]# df -Th
    文件系统                类型      容量  已用  可用 已用% 挂载点
    devtmpfs                devtmpfs  908M     0  908M    0% /dev
    tmpfs                   tmpfs     919M     0  919M    0% /dev/shm
    tmpfs                   tmpfs     919M  8.6M  911M    1% /run
    tmpfs                   tmpfs     919M     0  919M    0% /sys/fs/cgroup
    /dev/mapper/centos-root xfs        47G  1.3G   46G    3% /
    /dev/sda1               xfs      1014M  150M  865M   15% /boot
    tmpfs                   tmpfs     184M     0  184M    0% /run/user/0
    
  • 说明

    df 的-T参数就可以显示文件系统的类型,-h参数让其显示的更人性化。
    

查找新加磁盘

  • 命令

    fdisk -l
    
  • 示例

    [root@localhost ~]# fdisk -l
    
    磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000d6763
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     2099199     1048576   83  Linux
    /dev/sda2         2099200    41943039    19921920   8e  Linux LVM
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
  • 说明

    磁盘 /dev/sda 下有两个分区
    磁盘 /dev/sdb 为新增的磁盘
    

新磁盘创建分区

  • 命令

    fdisk /dev/sdb
    
  • 示例

    [root@localhost ~]# fdisk /dev/sdb
    欢迎使用 fdisk (util-linux 2.23.2)。
    
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    Device does not contain a recognized partition table
    使用磁盘标识符 0x63b1e474 创建新的 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): 
    Using default response p
    分区号 (1-4,默认 1):
    起始 扇区 (2048-41943039,默认为 2048):
    将使用默认值 2048
    Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
    将使用默认值 41943039
    分区 1 已设置为 Linux 类型,大小设为 20 GiB
    
    命令(输入 m 获取帮助):w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    正在同步磁盘。
    
    
  • 说明

    n        ##新建分区
    p        ##分区类型为主分区
    1        ##设置分区号为1
    回车    ##默认起始扇区值
    回车    ##默认结束扇区值
    w        ##保存分区操作
    

创建新的物理卷

  • 命令

    pvcreate /dev/sdb1
    
  • 示例

    [root@localhost ~]# fdisk -l
    
    磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000d6763
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     2099199     1048576   83  Linux
    /dev/sda2         2099200    41943039    19921920   8e  Linux LVM
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x63b1e474
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    41943039    20970496   83  Linux
    
    磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    ## ===================================================
    
    [root@localhost ~]# pvcreate /dev/sdb1
      Physical volume "/dev/sdb1" successfully created.
      
    [root@localhost ~]# pvs
      PV         VG     Fmt  Attr PSize   PFree
      /dev/sda2  centos lvm2 a--  <19.00g    0 
      /dev/sdb1  centos lvm2 a--  <20.00g    0 
    
  • 说明

    fdisk -l                            ##查看分区
    pvcreate /dev/sdb1           ##创建物理卷
    pvs                                ##查看物理卷,同 pvdisplay 命令
    

创建新的卷组

  • 命令

    vgcreate vgnew /dev/sdc1
    
  • 示例

    [root@localhost ~]# vgcreate vgnew  /dev/sdc1
      Volume group "vgnew" successfully created.
      
    [root@localhost ~]# vgs
      VG     #PV #LV #SN Attr   VSize  VFree
      centos   2   2   0 wz--n- 38.99g    0 
      centos   1   0   0 wz--n- <20.00g  <20.00g 
    
  • 说明

    vgcreate vgnew  /dev/sdc1    ##创建物理卷
    vgs                                   ##查看卷组,同 vgdisplay 命令
    

创建新的逻辑卷

  • 命令

    lvcreate -n lvnew -l 100%FREE vgnew
    
  • 示例

    [root@localhost ~]# lvcreate -n lvnew -l 100%FREE vgnew
      Logical volume  "lvnew" created.
      
    [root@localhost ~]# lvs
      LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao---- 36.99g                                                    
      swap centos -wi-ao----  2.00g  
      lvnew vgnew -wi-ao----  <10.00g  
    
  • 说明

    lvcreate -n lvnew -l 100%FREE vgnew       ##使用整个(空余的100%)卷组vgnew 创建一个逻辑卷(lvnew 为自定义逻辑卷名)
    lvcreate -n lvnew -l 50%FREE vgnew         ##创建逻辑卷时,也可以只使用卷组的部分空余空间,如50%FREE 等
    lvcreate -n lvnew -L 5G vgnew                 ##也可以使用具体指定存储容量创建逻辑卷
    
    lvs                                                      ##查看当前所有逻辑卷(或使用 lvdisplay 命令)
    

格式化并挂载

  • 命令

    mkfs.xfs /dev/vgnew/lvnew
    mount /dev/vgnew/lvnew /newdir
    vi /etc/fstab
    
  • 示例

    img 在这里插入图片描述
  • 说明

    mkfs.xfs /dev/vgnew/lvnew                ##格式化磁盘(格式化磁盘分为xfs、ext4、ext3等格式)
    mount /dev/vgnew/lvnew /newdir        ##挂载磁盘
    vi /etc/fstab                                    ##编辑实现开机自动挂载(内容:/dev/mapper/vgnew-lvnew /newdir xfs defaults 0 0)
    

方案二:新增磁盘扩容到已有逻辑卷

查看当前容量

  • 参考挂载方案

查找新加磁盘

  • 参考挂载方案

新磁盘创建分区

  • 参考挂载方案

创建新的物理卷

  • 参考挂载方案

扩展已有卷组

  • 命令

    vgdisplay
    vgextend centos /dev/sdb1
    vgs
    
  • 示例

    [root@localhost ~]# vgdisplay
      --- Volume group ---
      VG Name               centos
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  3
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                2
      Open LV               2
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <19.00 GiB
      PE Size               4.00 MiB
      Total PE              4863
      Alloc PE / Size       4863 / <19.00 GiB
      Free  PE / Size       0 / 0   
      VG UUID               UMJme6-1Zuh-hXuA-kHZN-tIBs-76mN-kCCkew
       
    ##########################################################
       
    [root@localhost ~]# vgextend centos /dev/sdb1
      Volume group "centos" successfully extended
    [root@localhost ~]# vgdisplay
      --- Volume group ---
      VG Name               centos
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                2
      Open LV               2
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               38.99 GiB
      PE Size               4.00 MiB
      Total PE              9982
      Alloc PE / Size       4863 / <19.00 GiB
      Free  PE / Size       5119 / <20.00 GiB
      VG UUID               UMJme6-1Zuh-hXuA-kHZN-tIBs-76mN-kCCkew
       
    ##########################################################
       
    [root@localhost ~]# vgs
      VG     #PV #LV #SN Attr   VSize  VFree  
      centos   2   2   0 wz--n- 38.99g <20.00g
    
  • 说明

    vgdisplay                               ##查看已有卷组
    vgextend centos /dev/sdb1       ##扩展已有卷组
    vgs                                      ##查看扩展后的卷组
    

扩容逻辑卷

扩展逻辑卷的逻辑边界

  • 命令

    lvs
    lvextend -l +100%FREE /dev/mapper/centos-root
    
  • 示例

    [root@localhost ~]# lvextend -l +100%FREE /dev/mapper/centos-root
      Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to 36.99 GiB (9470 extents).
      Logical volume centos/root successfully resized.
    
    
  • 说明

    lvs                                                                     ##查看已有逻辑卷
    lvextend -l +100%FREE /dev/mapper/centos-root        ##扩展逻辑卷的逻辑边界
    

扩展逻辑卷的文件系统大小

  • 命令

    xfs_growfs /dev/mapper/centos-root 或 resize2fs /dev/mapper/centos-root
    
  • 示例

    [root@localhost ~]# xfs_growfs /dev/mapper/centos-root
    meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=4455424, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 4455424 to 9697280
    
    
  • 说明

    xfs_growfs        ##针对文件系统xfs
    resize2fs          ##针对文件系统ext2 ext3 ext4
    

方案三:已有磁盘分配新空间后扩容(虚拟机等)

扩容相关知识

文件系统结构图

扩容相关操作图谱

任务PV阶段VG阶段LV阶段FileSystem(XFS)FileSystem(EXT4)
搜寻(scan)pvscanvgscanlvscanlsblk、blkidlsblk、blkid
创建(create)pvcreatevgcreatelvcreatemkfs.xfsmkfs.ext4
列出(display)pvdisplayvgdisplaylvdisplaydf、mountdf、mount
增加(extend)vgextendlvextend (lvresize)xfs_growfsresize2fs
减少(reduce)vgreducelvreduce (lvresize)不支持resize2fs
删除(remove)pvremovevgremovelvremoveumount或格式化umount或格式化
改变容量(resize)lvresizexfs_growfsresize2fs
改变属性(attribute)pvchangevgchangelvchange/etc/fstab、remount/etc/fstab、remount
0

评论区