Redhat虚拟机根目录扩容

Redhat虚拟机系统用久了,突然发现根目录内存不够用,接近饱满状态,此时,需要对根目录进行扩容

本贴针对于磁盘分区采用LVM格式的虚拟机进行扩容操作,全称Logical Volume Manager,逻辑卷管理,在linux系统下对磁盘分区进行管理的机制,是建立在物理磁盘上的抽象层。

**

1、基本分区概念

在进行根分区扩容之前,必须了解以下几个名词
物理卷(pv,physical volume)

可以理解为linux下的物理磁盘或者磁盘分区,如/dev/sdb(磁盘)、/dev/sdb1(磁盘分区,通过fdisk对/dev/sdb进行操作划分出来的磁盘分区,类似于windows下的C、D、E盘),但是和物理磁盘以及磁盘分区不同的是,物理卷含有和LVM相关的参数

卷组(vg,volume group)
由一个或者多个物理卷组成的卷组

逻辑卷(lv,logical volume)
通过卷组划分出来的分区,可以用来建立文件系统,例如/dev/mapper/centos-root 是根目录的文件系统挂载点,它就是建立在一个逻辑卷之上的,该文件系统的大小就是这个逻辑卷的大小

物理块(PE,physical extent)
每个物理卷被分为若干个物理块,是LVM寻址中的最小单元,有唯一编号,可以设置大小,默认为4MB

逻辑块(LE,logical extent)
每个逻辑卷被分为若干个逻辑卷,与PE是一一对应的

2、案例:REHL根目录扩容

2-1 、查看当前各分区容量

[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 27G 7.7G 20G 29% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 183M 20K 183M 1% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /run/media/root/RHEL-7.4 Server.x86_64

可以看到根目录容量为27G,已用7.7G

2-2、查看当前系统分区情况

在虚拟机启动前,在虚拟机编辑界面增加一块硬盘,
在系统启动后,就会多一个磁盘或者虚拟机的虚拟硬盘 /dev/sdb,如果没有,记得在右下角把磁盘图标点亮。

[root@localhost ~]# fdisk -l

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000e8ae7

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 62914559 30407680 8e Linux LVM

磁盘 /dev/mapper/rhel-root:29.0 GB, 28982640640 字节,56606720 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/rhel-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

2-3、通过 fdisk /dev/sdb 操作来分出一块分区/dev/sdb1

对sdb进行分区

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xf334f265 创建新的 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):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf334f265

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

2-4、再次查看当前系统分区情况

[root@localhost ~]# fdisk -l

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf334f265

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 8e Linux LVM

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000e8ae7

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 62914559 30407680 8e Linux LVM

磁盘 /dev/mapper/rhel-root:29.0 GB, 28982640640 字节,56606720 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/rhel-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

3、创建物理卷,加入卷组

3-1、手动创建一块物理卷

[root@localhost ~]# pvcreate /dev/sdb1
Physical volume “/dev/sdb1” successfully created.
[root@localhost ~]# pvdisplay
— Physical volume —
PV Name /dev/sda2
VG Name rhel
PV Size <29.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 7423
Free PE 1
Allocated PE 7422
PV UUID UwOEvZ-CoK0-mO2F-2mX5-sRm5-R1sP-68IUnL

“/dev/sdb1” is a new physical volume of “5.00 GiB”
— NEW Physical volume —
PV Name /dev/sdb1
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 1nKoUh-kM2v-0CE6-i7nR-F0bz-h6f6-zzNcbX

3-2、查看当前卷组情况

[root@localhost ~]# vgdisplay
— Volume group —
VG Name rhel
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 <29.00 GiB
PE Size 4.00 MiB
Total PE 7423
Alloc PE / Size 7422 / 28.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID zc8ar0-TojF-yqIi-3IZP-52b0-AsXx-18xjsQ

3-3、将sdb1加入卷组(rehl)

[root@localhost ~]# vgextend rhel /dev/sdb1
Volume group “rhel” successfully extended
[root@localhost ~]# vgdisplay
— Volume group —
VG Name rhel
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 33.99 GiB
PE Size 4.00 MiB
Total PE 8702
Alloc PE / Size 7422 / 28.99 GiB
Free PE / Size 1280 / 5.00 GiB
VG UUID zc8ar0-TojF-yqIi-3IZP-52b0-AsXx-18xjsQ

3-4、对根进行扩容

[root@localhost ~]# lvextend -L + 5G /dev/mapper/rhel-root (根目录挂载点)
Invalid argument for --size: +
Error during parsing of command line.
[root@localhost ~]# lvextend -L +5G /dev/mapper/rhel-root
Size of logical volume rhel/root changed from 26.99 GiB (6910 extents) to 31.99 GiB (8190 extents).
Logical volume rhel/root successfully resized.

3-5、最后对文件系统进行扩容

[root@localhost ~]# resize2fs /dev/mapper/rhel-root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/rhel-root 时
找不到有效的文件系统超级块.

有时会出错,通过df -h 也无法看到扩容的根,则需要执行以下内容

[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 27G 7.7G 20G 29% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 183M 20K 183M 1% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /run/media/root/RHEL-7.4 Server.x86_64

[root@localhost ~]# cat /etc/fstab | grep rehl-root

我的系统为rehl7,文件系统类型为xfs

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

3-6、再次查看系统当前挂载分区的情况
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 32G 7.7G 25G 24% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 183M 20K 183M 1% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /run/media/root/RHEL-7.4 Server.x86_64

猜你喜欢

转载自blog.csdn.net/qq_40288857/article/details/88290490