目录
通过 fdisk /dev/sdb 操作来分出一块分区/dev/sdb1
一、lvm简介
1、lvm简介
LVM全称Logical Volume Manager,逻辑卷管理,在linux系统下对磁盘分区进行管理的机制,是建立在物理磁盘上的抽象层。
2、基本分区概念
物理卷(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是一一对应的
3、fdisk介绍
fdisk 是一个用于磁盘分区的命令行工具,它能够创建、删除、调整 Linux 磁盘分区,还可以查看分区的状态和文件系统类型。
fdisk命令
查看或管理磁盘分区
fdisk -l [磁盘设备]或fdisk [磁盘设备]
查看或管理磁盘分区:fdisk -l
1>“p”:列出硬盘中的分区情况
2>“n”:新建分区
3>“d”:删除分区
4>“t”:变更分区的类型。
5>“w”:保存退出fdisk分区“q”:不保存退出fdisk分区
二、案例:根目录扩容
2-1 、查看当前各分区容量
可以看根目录已用7%,扩容一下
2-2 、查看当前各分区容量
在虚拟机启动前,在虚拟机编辑界面增加一块硬盘
在系统启动后,就会多一个磁盘或者虚拟机的虚拟硬盘 /dev/sdb,如果没有,记得在右下角把磁盘图标点亮。
启动虚假机,查看磁盘分区
总磁盘大小21.5GB,其中磁盘分了sda1,sda2两个分区。Linux LVM为虚拟机分区约有20GB磁盘空间。
2-3、创建新分区
通过 fdisk /dev/sdb 操作来分出一块分区/dev/sdb1
[root@redhat ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x5bf2f15e.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5bf2f15e
Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
欢迎使用 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):
分区 1 已设置为 Linux 类型,大小设为 20GiB
命令(输入 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@redhat ~]# fdisk -l
三、创建物理卷
3-1、手动创建一块物理卷
[root@redhat ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@redhat ~]# pvdisplay
3-2、查看当前卷组情况
[root@redhat ~]# vgdisplay
3-3、将sdb1加入卷组
[root@redhat ~]# vgextend rhel /dev/sdb1
Volume group "rhel" successfully extended
3-4、对根进行扩容
将卷组剩余空间(刚添加的20G)添加到逻辑卷(lv):/dev/mapper/rhel-root
[root@redhat ~]# lvextend -l +100%FREE /dev/mapper/rhel-root (根目录挂载点)
Size of logical volume rhel/root changed from <17.00 GiB (4351 extents) to 36.99 GiB (9470 extents).
Logical volume rhel/root successfully resized.
【注意】:根目录挂载点是/dev/mapper/rhel-root,因为用了LVM逻辑卷管理,根文件系统建立在卷组(VG)Redhat上的逻辑卷(LV)上,逻辑卷名是rhel-root。
3-5、对文件系统进行扩容
之前只是对逻辑卷扩容,还要同步到文件系统,实现对根目录的扩容。
[root@redhat ~]# resize2fs /dev/mapper/rhel-root 有时会出错
因为我的系统为rehl7,文件系统类型为xfs,所以使用xfs_growfs命令增加 XFS 文件系统的大小。
[root@redhat ~]# xfs_growfs /dev/mapper/rhel-root