如何给linux的根目录扩容VMware环境(一般方案+高危方案)

一、简述:

我们一般喜欢在windows平台的VMware中安装linux虚拟机,但是我们在安装后总是会出现预算不足的情况,比如根磁盘空间不足(默认为20GB,稍微存多点东西就不够了)。如果重装系统又太麻烦,那么如何扩容根的空间呢?今天我就来简述如何对系统的根目录进行扩容。

1.系统结构

我们安装的系统实际上是运行在逻辑磁盘上的,使用命令lsblk查看磁盘结构:

[root@localhost ~] lsblk
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 
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
sr0          11:0    1 10.5G  0 rom  

1)sda磁盘

从磁盘结构中我们可以看到系统有一块磁盘sda,该磁盘就是我们安装系统时默认分配的磁盘,它就相当于真实的物理磁盘。

2)sda1分区

该磁盘有两个分区sda1和sda2,sda1为1GB挂载在了/boot中,该磁盘存储了引导加载程序、初始RAM文件系统、GRUB的配置文件等文件,这些文件都是系统启动相关的文件。

3)sda2分区

sda2分区就是我们的整个系统分区,系统会默认是创建了一个“ rl ”卷组,在该卷组中创建了一个逻辑卷“ root ”和逻辑卷“ swap ”,根就挂载在了root逻辑卷上。而另外一个2GB的swap卷就是交换空间使用的卷,通俗讲就是虚拟内存。

4)sr0光盘

sr0光盘中就是我们的系统安装镜像,当系统安装完成后就不再需要它了。当然,该镜像中包含了完整了软件包仓库,可以用来做yum源。光盘是只读的,不用担心损坏。

2.物理卷、卷组、逻辑卷

e3224e1b64df45c19f9c78b651c9f23e.png

物理卷(PV)物理卷可以通过分区直接格式化为物理卷,物理卷是组成卷组的最小单元。物理卷不能直接挂载使用。

卷组(VG)卷组是物理卷的集合,他把物理卷组成一个集合,相当于一个存储池。卷组也不能直接挂载使用。

逻辑卷(LV)逻辑卷是从卷组存储池中划分出来了,逻辑卷就相当于真实的磁盘,可以直接格式化使用。

二、实验环境:

1.VMware 17 Pro

2.虚拟机CentOS 7

三、扩容根磁盘正规的方案:

最简单的方案就是在虚拟机中直接添加磁盘,然后将这些磁盘格式化成物理卷,然后将这些物理卷加入rl卷组,此时卷组就有足够的空间,然后就可以将逻辑卷root(根所在卷)扩大了。

以下为步骤详解:

1.为虚拟机添加物理磁盘:

打开虚拟设置界面,添加一块80GB磁盘。(只修改容量即可,其他保持默认)

e4820e5959fc4701aca2b54baac53292.png

设置完成之后重启虚拟机。必须要重启虚拟机才能识别。

使用lsblk命令查看磁盘,我们可以看到重启后识别出了sdb磁盘80GB。

[root@localhost ~] lsblk
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 
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
sdb           8:16   0   80G  0 disk 
sr0          11:0    1 10.5G  0 rom

2.使用fdisk在sdb磁盘上创建一个分区

磁盘是不能直接格式化为物理卷的,只有分区才可以,所以要先创建分区:

[root@localhost ~] fdisk /dev/sdb
Command (m for help):n
Select (default p):    
Partition number (1-4, default 1):
First sector (2048-167772159,default 2048):
Last sector, +sectors or +size(K,M,G,T,P) (2048-167772159,default 167772159):
Command (m for help):w

创建分区时,输入n创建新分区,然后一路回车,最后w保存。

lsblk查看分区是否创建:

[root@localhost ~] lsblk
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 
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
sdb           8:16   0   80G  0 disk 
└─sdb1        8:17   0   80G  0 part 
sr0          11:0    1 10.5G  0 rom  

可以看见已经创建出了sdb1分区,80GB。

3.将分区格式化为物理卷

[root@localhost ~] pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.

 pvs查看物理卷,我们可以看到多出一个80GB的物理卷:

[root@localhost ~] pvs
  PV         VG Fmt  Attr PSize   PFree  
  /dev/sda2  rl lvm2 a--  <19.00g      0 
  /dev/sdb1     lvm2 ---  <80.00g <80.00g

4.将物理卷加入rl卷组

查看原来卷组大小:

[root@localhost ~] vgs
  VG #PV #LV #SN Attr   VSize   VFree
  rl   1   2   0 wz--n- <19.00g    0 

将物理卷加入卷组:

[root@localhost ~] vgextend rl /dev/sdb1
  Volume group "rl" successfully extended

再次查看卷组大小,可以看到卷组多出<80GB的剩余空间:

[root@localhost ~] vgs
  VG #PV #LV #SN Attr   VSize  VFree 
  rl   2   2   0 wz--n- 98.99g <80.00g

5.扩容root逻辑卷

查看逻辑卷大小:

[root@localhost ~] lvs
  LV   VG Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rl -wi-ao---- <17.00g                                                    
  swap rl -wi-ao----   2.00g

扩展逻辑卷:

[root@localhost ~] lvextend -L 96G /dev/rl/root
  Size of logical volume rl/root changed from <17.00 GiB (4351 extents) to 96.00 GiB (24576 extents).
  Logical volume rl/root successfully resized.

查看逻辑卷目前大小,此时逻辑卷已经由17GB扩展到了96GB:

[root@localhost ~] lvs
  LV   VG Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rl -wi-ao---- 96.00g                                                    
  swap rl -wi-ao----  2.00g 

6.刷新逻辑卷文件系统

刷新文件系统的原因是,该root逻辑卷只有前面17GB的空间是xfs文件系统,后面扩展的部分也必须要格式化为xfs才行。如下图用df -h查看:

[root@localhost ~] df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             1.8G     0  1.8G    0% /dev
tmpfs                1.9G     0  1.9G    0% /dev/shm
tmpfs                1.9G  9.0M  1.9G    1% /run
tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/rl-root   17G  1.8G   16G   11% /
/dev/sda1           1014M  210M  805M   21% /boot
tmpfs                371M     0  371M    0% /run/user/0

我们可以看到根虽然挂在了rl卷组的root逻辑卷下,但是可利用的文件系统容量还是17GB。

查看root逻辑卷的文件系统,是xfs文件系统:

[root@localhost ~] blkid /dev/rl/root 
/dev/rl/root: UUID="0bcf9e16-bb32-461d-ac67-1846cea78b0b" BLOCK_SIZE="512" TYPE="xfs"

刷新xfs文件系统:

[root@localhost ~] xfs_growfs /dev/rl/root
meta-data=/dev/mapper/rl-root    isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=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 log           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 25165824

再次查看根的可用空间

[root@localhost ~] df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             1.8G     0  1.8G    0% /dev
tmpfs                1.9G     0  1.9G    0% /dev/shm
tmpfs                1.9G  9.0M  1.9G    1% /run
tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/rl-root   96G  2.3G   94G    3% /
/dev/sda1           1014M  210M  805M   21% /boot
tmpfs                371M     0  371M    0% /run/user/0

可以看到根的可用空间已经扩展到96GB了,还有94GB可用。重启一下,看系统有没有出现损坏或无法启动的情况。

四、扩容磁盘-高级操作(有一定危险性)

上述方法虽然扩展了根磁盘,但是有一个缺点,那就是一旦将物理卷加入卷组,那就是就是卷组的一部分了,不可退出,这个磁盘就永远被绑定了。除非删除所有逻辑卷,但这样系统就没有了。而且一旦强行删除或格式化该磁盘,系统直接就损坏了。这对于系统磁盘1:1对拷来说,就是问题。下面进行高级操作,直接扩容sda磁盘:

1.打开新建的虚拟机的设置,将该磁盘由20GB扩展为100GB。

注意,如果虚拟机有快照是无法扩展的,需要删掉快照。扩展必须为关机状态。

7a82d73e60b440df8612538c2cf550e4.png

 e67235eef4bf410c876e1f7a672aa813.png

9b92cb05d9d742fe99a51e5489714aae.png

2.开起虚拟机,重新创建sda2分区。

查看磁盘情况:

[root@localhost ~] lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   19G  0 part 
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
sr0          11:0    1 10.5G  0 rom

此时只有一个磁盘sda,且磁盘容量已经由20GB变成了100GB,但是sda2还是17GB。我们使用fdisk重新创建sda2分区。

[root@localhost ~]# fdisk /dev/sda

Command (m for help):d
Partition number (1,2, default 2):
Partition 2 has been deleted.
Command (m for help):n
Select (default p):
Partition number (2-4, default 2):
First sector (2099200-209715199, default 2099200):
Last sector, +sectors or +size{K,M,G,T,P} (2099200-209715199, default 209715199):

Partition #2 contains a LVM2_member signature.
Do you want to remove the signature? [Y]es/[N]o: N

Command (m for help):w

注意!注意!

在删除sda2分区后不要保存!不要保存!不要退出fdisk命令!接着重新创建sda2。

创建完后他会提示,发现该磁盘已经有一个 LVM2 成员签名,是否要删除它,

选择N!不要删除!不然系统将无法识别逻辑卷签名,导致无法开机。

最后w保存。

这样操作,创建的sda2分区就保留了原来的标签,并且fdisk扩大分区是不会割裂原有数据,它只会在原有空间之后追加更多空间。这种机制也保护了数据的安全性。

(如果操作失误导致无法开机,请找专业人士修复,这里不提供方案)

查看重新创建后的sda2容量:

[root@localhost ~] lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   99G  0 part 
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
sr0          11:0    1 10.5G  0 rom

 查看卷组情况

[root@localhost ~] vgs
  VG #PV #LV #SN Attr   VSize   VFree
  rl   1   2   0 wz--n- <19.00g    0 

由上图,我们可以看见sda2磁盘已经变成99GB,而卷组和逻辑卷容量没有改变。

3.刷新物理卷容量

卷组没有随着磁盘变大是因为卷组只认识物理卷,而物理卷没有被刷新,所以容量不会跟着变化,现在我们刷新物理卷:

[root@localhost ~]# pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

 再次查看卷组:

[root@localhost ~] vgs
  VG #PV #LV #SN Attr   VSize   VFree 
  rl   1   2   0 wz--n- <99.00g 80.00g

由上图我们可以看出,物理卷更新后卷组也会自动更新。

4.扩展逻辑卷

卷组拥有足够的空间后,我们就可以用lvextend来扩展逻辑卷:

[root@localhost ~] lvextend -L 96G /dev/rl/root
  Size of logical volume rl/root changed from <17.00 GiB (4351 extents) to 96.00 GiB (24576 extents).
  Logical volume rl/root successfully resized.

查看逻辑卷容量

[root@localhost ~] lvs
  LV   VG Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rl -wi-ao---- 96.00g                                                    
  swap rl -wi-ao----  2.00g 

5.刷新文件系统

查看文件系统格式化空间:

[root@localhost ~]# df -h 
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             1.8G     0  1.8G    0% /dev
tmpfs                1.9G     0  1.9G    0% /dev/shm
tmpfs                1.9G  9.0M  1.9G    1% /run
tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/rl-root   17G  1.8G   16G   11% /
/dev/sda1           1014M  210M  805M   21% /boot
tmpfs                371M     0  371M    0% /run/user/0

文件系统只格式化了17GB,我们需要刷新文件系统(xfs):

[root@localhost ~] xfs_growfs /dev/rl/root
meta-data=/dev/mapper/rl-root    isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=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 log           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 25165824

再次查看文件系统格式化空间:

[root@localhost ~] df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             1.8G     0  1.8G    0% /dev
tmpfs                1.9G     0  1.9G    0% /dev/shm
tmpfs                1.9G  9.0M  1.9G    1% /run
tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/rl-root   96G  2.3G   94G    3% /
/dev/sda1           1014M  210M  805M   21% /boot
tmpfs                371M     0  371M    0% /run/user/0

 可以看见根所挂载的磁盘已经扩展到96GB,还有94GB剩余空间。

总结

第一种方法就是逻辑卷的正确扩容方法,就是添加新的磁盘来扩展卷组,再扩展逻辑卷。

第二种方法就是改变磁盘容量,利用重建分区的方法扩展分区大小,然后再刷新物理卷大小、扩展逻辑卷大小。

以上就是两种扩展系统根磁盘空间的方法,当然,第二种方法只停留在虚拟环境,毕竟现实中硬盘的容量是固定的,不能改变。

感谢观看!

 

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值