LVM逻辑分区管理
理论:
LVM:逻辑分区管理
PV(physical volume):物理卷在逻辑卷管理系统最底层,可作为整个物理硬盘或实际物理硬盘上的分区。
VG(volume group):卷组建⽴在物理卷上,⼀卷组中⾄少要包括⼀物理卷,卷组建⽴后可动态的添加物理卷到
卷组中,⼀个逻辑卷管理系统⼯程中可有多个卷组。
LV(logical volume):逻辑卷建⽴在卷组基础上,卷组中未分配空间可⽤于建⽴新的逻辑卷,逻辑卷建
⽴后可以动态扩展和缩⼩空间。
PE(physical extent):物理区域是物理卷中可⽤于分配的最⼩存储单元
一.创建LVM
1.1准备物理磁盘
手动添加一块磁盘10G,lsblk 可以查看磁盘分区和挂载的情况
可以找到未分区的磁盘 /dev/sdb ,现在用fdisk 给磁盘分区,此处默认分一块。也可以不分区,直接使用
# fdisk /dev/sdb
命令(输入 m 获取帮助):n ## 新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p ## 主分区
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519): ## 不填默认为所有,如果想分配 1G 可以填 +1G
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB
然后用partprobe命令重新加载分区表
# partprobe
查看磁盘分区信息
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a4cea
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 41943039 20765696 8e Linux LVM
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbdd9e1bb
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20971519 10484736 83 Linux
磁盘 /dev/mapper/centos-root:20.2 GB, 20187185152 字节,39428096 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
1.2创建.pv(物理卷)
刚创建的分区是用来储存物理卷的
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
#查看物理卷
[root@newrain ~]# pvs
1.3创建vg(卷组)
下列命令用来创建名为’vg1’的卷组,使用/dev/sdb1创建。
[root@localhost ~]# vgcreate vg1 /dev/sdb1
Volume group "vg1" successfully created
[root@localhost ~]# vgs
1.4.创建lv(逻辑卷)
下列命令创建一个名为’lv1’、大小为1G的逻辑卷。我们使用小分区减少执行时间。这个逻辑卷使用之前创建的卷组的空间
1、创建LV,按大小分配空间
lvcreate -L 1G -n lv1 vg1
2、创建LV,按剩余百分比分配空间
lvcreate -l 100%FREE -n my_logical_volume my_volume_group
3、查看所有lv
lvs
1.5 创建⽂件系统并挂载
(注意:谨慎使用,该命令会格式化磁盘)
创建文件系统:不同文件系统用不同的命令
mkfs.xfs
mkfs.ext4
1、临时挂载
mkfs.ext4 /dev/vg1/lv1
mkdir /lvm-mount
mount /dev/vg1/lv1 /lvm-mount/
2、永久挂载
vim /etc/fstab
...
/dev/vg0/lv0 /mnt/lv0 xfs defaults 0 0
/dev/vg0/lv1 /mnt/lv1 ext4 defaults 0 0
...
mount -a //是将/etc/fstab的所有内容重新加载
查看挂载情况
# df -Th
/etc/fstab 配置详细可参考 https://blog.csdn.net/youmatterhsp/article/details/83933158
二.扩容
xfs⽂件系统扩容用xfs_growfs,ext2/3/4 ⽂件系统扩容用resize2fs
2.1 所属vg有多余空间
此处扩容/lvm-mount
1、重新分配lv空间(在所属vg还有空闲的情况下)
lvresize -L 2G /dev/vg1/lv1
2、文件系统扩容
e2fsck -f /dev/vg1/lv1 #检测磁盘错误
resize2fs /dev/vg1/lv1 #扩大文件系统,更新ext4信息
3、检查
df -Th
2.2 所属vg无多余空间(常见)
此处扩容/
1、添加磁盘(或磁盘分区)
2、创建pv
pvcreate /dev/sdb1 #将另⼀块盘创建为物理卷
3、扩容所属vg
vgextend centos /dev/sdb1
4、重新分配lv
lvextend -l +100%FREE /dev/centos/root
# lvextend -L +500GB /dev/centos/root
5、文件系统扩容
# 如果文件系统为xfs
xfs_growfs /dev/centos/root
# 如果文件系统为ext4
resize2fs /dev/centos/root
5、检查
df -Th
lvresize lvextent区别?
lvextend只能增加一个体积的大小,而lvresize可以增加或减小它的大小。这使lvresize功能更强大但更危险。
lvresize用法:
扩容看上面案例
eg:缩容
1.需要先卸载目录
umount /u01
2.这一步是否有根据执行下一步的执行返回决定,看下面的例子
e2fsck -f /dev/mapper/vg_linuxidc-lv_u01
3.文件系统大小变更
resize2fs /dev/mapper/vg_linuxidc-lv_u01 10G
4.lv缩减
lvresize -L 10G /dev/mapper/vg_linuxidc-lv_u01
5.挂载所有/etc/fstab中记录的目录
mount -a
三、交换分区
交换分区管理 Swap
作⽤: ‘提升‘ 内存的容量,防⽌OOM(Out Of Memory)
1.1 查看当前的交换分区
[root@newrain ~]# free -m
total used free shared buff/cache
available
Mem: 972 94 662 7 216
707
Swap: 0 0 0
[root@newrain ~]# swapon -s #检测交换分区使⽤情况
1.2增加交换分区 可以是基本分区,LVM,File
准备分区
[root@newrain ~]# fdisk /dev/sdb
[root@newrain ~]# partprobe /dev/sdb
//partprobe 使kernel(内核核心)重新读取分区表而不用重启系统
[root@newrain ~]# ll /dev/sdd*
brw-rw---- 1 root disk 8, 48 Aug 5 22:54 /dev/sdd
brw-rw---- 1 root disk 8, 49 Aug 5 22:54 /dev/sdd1
初始化
[root@newrain ~]# mkswap /dev/sdd1
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=1def6dd0-78dd-41c2-bce1-1ec239a4ab20
[root@newrain ~]# blkid /dev/sdd1
/dev/sdd1: UUID="1def6dd0-78dd-41c2-bce1-1ec239a4ab20" TYPE="swap"
[root@newrain ~]# vim /etc/fstab
UUID="1def6dd0-78dd-41c2-bce1-1ec239a4ab20" swap swap defaults 0 0
[root@newrain ~]# swapon -a
//swapon -a 挂载swap分区,读取/etc/fstab
swapon -s 查看详细信息
swapoff 关闭swap分区
[root@newrain ~]# swapon -s
Filename Type Size Used
Priority
/dev/sdd1 partition 1048572 0 -3
[root@newrain ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv0 xfs 2.2G 11M 2.2G 1% /mnt/lv0
/dev/mapper/vg0-lv1 ext4 802M 35M 719M 5% /mnt/lv1
文件系统修复
ext 文件系统检测 dumpe2fs /dev/vg0/lv1 tune2fs -l /dev/vg0/lv1
查看备份块 dumpe2fs -h /dev/datavg/lv1 |grep ‘Blocks per group’
利用备份块修复 fsck.ext4 -b 8192 /dev/datavg/lv1
xfs 文件系统检测 xfs_info /dev/datavg/lv1
修复 XFS ⽂件系统 xfs_repair /dev/vda1
mount 设备路径 挂载点
-t 文件系统类型
-o 指定挂载选项