Linux 下扩展文件系统为xfs的根分区的逻辑卷

场景介绍:

根分区磁盘使用率高达96%,新增一块30G的磁盘进行扩展。

操作步骤大致如下:

  1. 创建磁盘分区
  2. 将用于LVM卷的硬盘分区初始化为物理卷
  3.  使用mkfs命令创建所需的文件系统,此处为xfs
  4. 扩展根分区所在卷组
  5. 扩展根分区所在逻辑卷
  6. 扩展根分区所在逻辑卷现存的xfs文件系统

LVM逻辑卷相关知识可参考Redhat官网(逻辑卷管理)链接:

Logical Volume Manager Administration Red Hat Enterprise Linux 7 | Red Hat Customer Portalhttps://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/index

一、查看磁盘分区情况:

[root@localhost ~]# lsblk /dev/sda
NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda               8:0    0  20G  0 disk 
├─sda1            8:1    0   1G  0 part /boot
└─sda2            8:2    0  19G  0 part 
  ├─centos-root 253:0    0  17G  0 lvm  /
  └─centos-swap 253:1    0   2G  0 lvm  [SWAP]
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G   14G  3.3G   81% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G  8.7M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  142M  873M   14% /boot

二、进行扩展:

#1.创建一个lvm逻辑卷分区
fdisk /dev/sdb
-n
-p
-1
-enter
-enter
-t
-8e
-w

#2.查看卷组
[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  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               PCt1G1-ymoy-Gxzs-0qO3-dRgT-zFJK-tVZChd
#3.磁盘格式化分区  
[root@localhost ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1966016 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=7864064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3839, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

#4.创建物理卷
[root@localhost ~]# pvcreate /dev/sdb1 
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.
#5.查看物理卷
[root@localhost ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               etGmvn-g75A-GQay-RcEl-PEaF-ftJs-eUzJu4
   
  "/dev/sdb1" is a new physical volume of "<30.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <30.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               EtfeP0-64oC-vAjl-J2T6-d6q1-3eAy-GB5uuK
#6.把物理卷添加到卷组中
[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  6
  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               48.99 GiB
  PE Size               4.00 MiB
  Total PE              12542
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       7679 / <30.00 GiB
  VG UUID               PCt1G1-ymoy-Gxzs-0qO3-dRgT-zFJK-tVZChd
#7.查看逻辑卷情况
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                ezJJVV-tcqv-qekY-HOlN-0fS9-9nqC-vB46Oq
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-09-10 17:06:24 +0800
  LV Status              available
  # open                 1
  LV Size                <17.00 GiB
  Current LE             4351
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
#8.扩展根分区,将新添加的sdb1全部扩展给/dev/centos/root
[root@localhost ~]# lvextend -l+100%free /dev/centos/root 
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to 46.99 GiB (12030 extents).
  Logical volume centos/root successfully resized.
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G   14G  3.3G   82% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G  8.9M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  142M  873M   14% /boot
tmpfs                   tmpfs     380M     0  380M    0% /run/user/1003
#9.扩展文件系统
[root@localhost ~]#  xfs_growfs /dev/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 12318720

#10.查看当前磁盘使用情况
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        47G   14G   34G   30% /     ---->由此可见扩展成功
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G  8.9M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  142M  873M   14% /boot
tmpfs                   tmpfs     380M     0  380M    0% /run/user/1003

问题记录:

 1.如果创建磁盘分区时,磁盘正在使用中,提示资源正忙,则需要执行partprobe 重读分区表,否则在进行mkfs格式化文件系统时可能会提示新增的磁盘分区找不到(详情如下)

  设备 Boot      Start         End      Blocks   Id  System
 /dev/sda1   *        2048     2099199     1048576   83  Linux
 /dev/sda2         2099200    41943039    19921920   8e  Linux LVM
 
 命令(输入 m 获取帮助):n
 Partition type:
    p   primary (2 primary, 0 extended, 2 free)
    e   extended
 Select (default p): p
 分区号 (3,4,默认 3):3
 起始 扇区 (41943040-419430399,默认为 41943040):
 将使用默认值 41943040
 Last 扇区, +扇区 or +size{K,M,G} (41943040-419430399,默认为 419430399):
 将使用默认值 419430399
 分区 3 已设置为 Linux 类型,大小设为 180 GiB
 
 命令(输入 m 获取帮助):t
 分区号 (1-3,默认 3):3
 Hex 代码(输入 L 列出所有代码):8e  
 已将分区“Linux”的类型更改为“Linux LVM”
 
 命令(输入 m 获取帮助):w
 
The partition table has been altered!
 
 Calling ioctl() to re-read partition table.
 
 WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
 The kernel still uses the old table. The new table will be used at
 the next reboot or after you run partprobe(8) or kpartx(8)
 正在同步磁盘。


 [root@localhost ~]# mkfs.xfs -f /dev/sda3
 /dev/sda3: 没有那个文件或目录
 [root@localhost ~]# mkfs.xfs -f /dev/sda
 sda   sda1  sda2  
 [root@localhost ~]# partprobe   ---》 执行partprobe之后就正常了。
 [root@localhost ~]# mkfs.xfs -f /dev/sda
 sda   sda1  sda2  sda3  

(partprobe命令用于重读分区表,将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。如果删除文件后,仍然提示占用空间,可以用partprobe在不重启的情况下重读分区 。详细命令可参考链接:partprobe命令 – 重读分区表 – Linux命令大全(手册) (linuxcool.com)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
G。 1. 首先,在虚拟机的设置中添加两块虚拟磁盘,假设它们的设备名为sdb和sdc。在Linux系统中使用fdisk命令查看硬盘信息: ``` sudo fdisk -l ``` 可以看到已经存在的硬盘为/dev/sda。现在需要对sdb进行分区。 ``` sudo fdisk /dev/sdb ``` 按照提示依次输入n(新建分区)、p(主分区)、1(分区号)、2048(起始扇区,默认)、+1G(分区大小),依次输入n、p、2、(默认)、+5G、n、p、3、(默认)、+8G,最后输入w保存分区表。 接下来需要创建逻辑卷文件系统。先安装LVM相关软件: ``` sudo apt-get update sudo apt-get install lvm2 ``` 使用pvcreate命令将sdb上的分区加入LVM: ``` sudo pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3 ``` 使用vgcreate命令创建卷组: ``` sudo vgcreate linux /dev/sdb1 /dev/sdb2 /dev/sdb3 ``` 使用lvcreate命令创建逻辑卷: ``` sudo lvcreate -L 2G -n redhat linux sudo lvcreate -L 1G -n centos linux ``` 分别使用mkfs.xfsmkfs.ext4命令创建文件系统: ``` sudo mkfs.xfs /dev/linux/redhat sudo mkfs.ext4 /dev/linux/centos ``` 创建挂载点并挂载: ``` sudo mkdir /mnt/redhat sudo mkdir /mnt/centos sudo mount /dev/linux/redhat /mnt/redhat sudo mount /dev/linux/centos /mnt/centos ``` 编辑/etc/fstab文件,添加以下两行: ``` /dev/linux/redhat /mnt/redhat xfs defaults 0 0 /dev/linux/centos /mnt/centos ext4 defaults 0 0 ``` 重启机器后,使用df命令查看挂载情况,应该可以看到: ``` /dev/mapper/linux-redhat 2.0G 33M 2.0G 2% /mnt/redhat /dev/mapper/linux-centos 976M 33M 876M 4% /mnt/centos ``` 2. 调整逻辑卷大小可以使用lvresize命令。例如,将redhat卷的大小调整为5G: ``` sudo lvresize -L 5G /dev/linux/redhat ``` 将centos卷的大小调整为8G: ``` sudo lvresize -L 8G /dev/linux/centos ``` 3. 扩容卷组需要扩展物理卷和卷组。先使用fdisk命令对sdb进行分区,将剩余空间全部分配给一个新的分区sdb4。然后使用pvcreate命令将sdb4加入卷组: ``` sudo pvcreate /dev/sdb4 ``` 使用vgextend命令扩展卷组: ``` sudo vgextend linux /dev/sdb4 ``` 使用lvresize命令扩展逻辑卷: ``` sudo lvresize -l +100%FREE /dev/linux/redhat sudo lvresize -l +100%FREE /dev/linux/centos ``` 使用xfs_growfs和resize2fs命令扩展文件系统: ``` sudo xfs_growfs /mnt/redhat sudo resize2fs /dev/linux/centos ``` 4. 在sdc上创建分区可以使用fdisk命令,方法与sdb类似。将一个分区分配给分区,将另一个分区做成swap: ``` sudo fdisk /dev/sdc n p 1 (default) +64G t 1 82 w ``` 将新分区加入LVM: ``` sudo pvcreate /dev/sdc1 sudo vgextend linux /dev/sdc1 ``` 使用lvresize命令扩大分区: ``` sudo lvresize -L 60G /dev/mapper/linux-root ``` 创建swap分区: ``` sudo mkswap /dev/sdc1 ``` 编辑/etc/fstab文件,添加以下一行: ``` /dev/sdc1 none swap sw 0 0 ``` 重启机器后使用free命令查看swap分区是否生效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值