本节所讲内容:

LVM日常管理

LVM快照

磁盘配额

一、 逻辑卷管理(Logical Volume Manager

LVMlinux环境下对底层磁盘的一种管理机制可以整合多个实体磁盘使这些磁盘看起来像是一个磁盘并且在未来还可以新增或者移除这些磁盘使得磁盘空间的使用具有弹性

二、 LVM管理的基本术语

LVM的全名是Logical Volume Manager翻译成中文即为逻辑卷管理

1PEphysical extent

每一个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB

2PV physical volume

LVM最底层的实体卷轴,称为物理卷(PV)。制作PV就是将物理磁盘划分成PE

3VG Volume Group

逻辑卷组,由PV整合而成。

4LVlogical volume

从逻辑卷组PV中划分的逻辑分区可以被格式化使用

wKioL1ZGh6egKXirAABO09aRqkA733.png

LVM层次结构图

 

三、 创建LV的流程

1、 在虚拟机中添加一块磁盘sdb,大小为10G

2、 准备分区

[root@xuegod63 Desktop]#fdisk /dev/sdb
#通过命令在 sdb中划分三个分区: sdb1,sdb2,sdb3
[root@xuegod63 Desktop]# ls /dev/sdb*
#查看 sdb 下三个分区
/dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3

3、 制作PV

[root@xuegod63 Desktop]# pvcreate /dev/sdb{1,2}    #sdb1,sdb2 的简写
Writing physical volume data to disk "/dev/sdb1"
Physical volume "/dev/sdb1" successfully created    #successfully 表示pv创建成功
Writing physical volume data to disk "/dev/sdb2"
Physical volume "/dev/sdb2" successfully created

4、 制作VG

[root@xuegod63 Desktop]# vgcreate Vg1 /dev/sdb1 /dev/sdb2
Volume group "Vg1" successfully created
#制作了一个名为Vg1的VG

5、 制作LV

[root@xuegod63 Desktop]# lvcreate -n LV1 -L 1.5G Vg1
Logical volume "LV1" created
#-n 指定LV的名字
# -L 指定LV的大小

 

6、 LVM使用

[root@xuegod63 ~]# mkfs.ext4 /dev/Vg1/LV1 #格式化后才能进行挂载
[root@xuegod63 ~]# mount /dev/Vg1/LV1 /opt/#挂载
[root@xuegod63 ~]# ls !$ #!$为调用上一个命令的最后一个单词
ls /opt/
lost+found #lost+found 是用来存放 fsck 过程中部分修复的文件,如果误删除后,可用 mklost+found 进行恢复(不同与普通的 mkdir 命令)。

四、 LVM的查看命令

简单对应卷的信息

扫描相关的所有对应卷

详细对应卷的信息

查看物理卷PV

pvs

pvscan

pvdisplay

查看逻辑卷组VG

vgs

vgscan

vgdisplay

查看逻辑卷LV

lvs

lvscan

lvdisplay

【例】查看 PE 详细信息

[root@xuegod63 Desktop]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb1 #pv名字
VG Name Vg1 #属于哪个vg
PV Size 1.01 GiB / not usable 3.41 MiB #pv 的大小
Allocatable yes (but full)
PE Size 4.00 MiB #pe 的大小
注:MIB 为 linux 默讣癿单位, 1MIB=1024KIB 但是 1MB=1000KB

【例】创建时指定 PE

[root@xuegod63 Desktop]# vgcreate -s 16M vg1 /dev/sdb1 /deb/sdb2
#-s 指定PE的大小为 16M, 并且PE 大小只能能为 2 的冪数, 且最大为 512M

五、 LVM动态扩容和静态缩容

5.1、动态扩容

1、 查看相关的大小

[root@xuegod63 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
Vg1 2 1 0 wz--n- 2.02g 528.00m
[root@xuegod63 ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LV1 Vg1 -wi-ao 1.50g

2、 逻辑卷动态扩容

[root@xuegod63 ~]# lvextend -L +300M /dev/Vg1/LV1 #+300M 为逻辑卷增加300M
Extending logical volume LV1 to 1.79 GiB
Logical volume LV1 successfully resized
查看现在的逻辑卷大小
root@xuegod63 ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LV1 Vg1 -wi-ao 1.79g
扩展文件系统的大小
[root@xuegod63 ~]# resize2fs /dev/Vg1/LV1
[root@xuegod63 ~]# df –h
/dev/mapper /Vg1-LV1 1.8G 35M 1.7G 2% /opt#文件系统增加为1.7G

 

5.2、 静态缩容

1LV缩减

[root@xuegod63 ~]#umount /opt #缩容需要先卸载
[root@xuegod63 ~]#e2fsck –f /dev/Vg1/LV1 #强制检查文件系统
[root@xuegod63 ~]#resize2fs /dev/Vg1/LV1 1G#文件系统缩小至 1G
[root@xuegod63 ~]#lvreduce -L 1G /dev/Vg1/LV1#逻辑分区缩小至 1G
[root@xuegod63 ~]#mount /dev/Vg1/LV1 /opt

2VG缩减

[root@xuegod63 ~]# vgreduce Vg1 /dev/sdb1
Physical volume "/dev/sdb1" still in use

表示当前pv正在被使用,而缩减时只能缩减没有被使用的pv

[root@xuegod63 ~]# vgreduce Vg1 /dev/sdb3#将pv成vg中删除
Removed "/dev/sdb3" from volume group "Vg1"

六、 LVM的删除命令

1、 删除lv

[root@xuegod63 ~]#umount /dev/Vg1/LV1#先卸载lv
[root@xuegod63 ~]#lvremove /dev/Vg1/LV1#删除lv

2、 删除vg

[root@xuegod63 ~]#vgremove Vg1

3、 删除pv

[root@xuegod63 ~]#pvremove /dev/sdb1
【例】 删除的应用
[root@xuegod63 ~]# lvremove /dev/Vg1/LV1
Do you really want to remove active logical volume LV1? [y/n]: y
Logical volume "LV1" successfully removed
[root@xuegod63 ~]# lvs
[root@xuegod63 ~]# vgremove Vg1
Volume group "Vg1" successfully removed
[root@xuegod63 ~]# pvremove /dev/sdb3

七、 LVM快照

lvm快照有两大用途,一是用来克隆虚拟机,例如做xen虚拟机时,可先新建一台完整虚拟机,假设大小为10G,然后我们可以在这台10G的虚拟机上创建13G的快照,接着通过这个3G的快照启动虚拟机,做完实验后,可以直接删除快照而保持原来完整虚拟机的纯净。二是实时备份(moment-in-time),即为了保持系统的一致性,我们先做一个快照冻结当前系统状态,这样快照里面的内容可暂时保持不变,系统本身继续运行,通过备份快照来实现不中断服务的的备份。

【例】 创建快照的步骤

原来有一个 lv 的基础上

[root@xuegod63 ~]#lvcreate -s -n lv_NAME_bak -L 200M /dev/Vg1/LV1
#创建一个名字为 lv_NAME_bak,大小为 200M 的快照。

八、 LVM相关命令总结

任务

PV阶段

VG阶段

LV阶段

查找(scan

pvscan

vgscan

Lvscan

新建(create

pvcreate

vgcreate

Lvcreate

显示(display

pvdisplay

vgdisplay

lvdisplay

增加(extend

vgextend

lvextend(lvresize)

减少(reduce

vgreduce

lvreduce(lvresize)

删除(remove

pvremove

vgremove

lvremove

改变容量(resize

lvresize

改变属性(attribute

pvchange

vgchange

lvchange

九、 磁盘配额

9.1、磁盘配额的用途

由于linux是多人多任务的工作环境,所以会有很多人共同使用一个磁盘,一次系统管理员应该可以限制用户的可用磁盘空间,以达到磁盘合理使用的目的。

9.2、启用quota磁盘配额功能

[root@xuegod63 ~]# fdisk /dev/sdb#格创建一个新的分区
[root@xuegod63 ~]# mkfs.ext4 /dev/sdb5#格式化该分区
[root@xuegod63 ~]# mkdir /sdb5#创建挂载点
[root@xuegod63 ~]# mount /dev/sdb5  /sdb5/#挂载分区
[root@xuegod63 ~]# mount -o remount,usrquota,grpquota /sdb5/#启用quota磁盘配额功能
[root@xuegod63 ~]# vim /etc/fstab#设置开机自动启动
/dev/sdb5/sdb5ext4defaults,usrquota,grpquota  0 0
[root@xuegod63 ~]# quotacheck -cugv /tmp/sdb5/#检测磁盘配额,并生成配额文件

# c 创建配额文件

# u 扫描磁盘空间,计算每个用户所占用的目录和文件数目

# g扫描磁盘空间,计算每个群组所占用的目录和文件数目

# v 显示指令执行过程

[root@xuegod63 ~]# ll /sdb5/
总用量 32
-rw------- 1 root root  6144 9月  11 22:10 aquota.group
-rw------- 1 root root  6144 9月  11 22:10 aquota.user
drwx------ 2 root root 16384 9月  11 22:05 lost+found

9.3、用户和组账号的磁盘配额设置

[root@xuegod63 ~]# useradd mk
[root@xuegod63 ~]# edquota -g mk
Disk quotas for group mk (gid 500):
Filesystem blocks soft hard  inodes soft hard
/dev/sdb5  0  50  80  0  0  0

各字段的含义依次为:配额的作用范围;已经使用的磁盘容量;磁盘容量的软限制数值;磁盘容量的硬限制数值;用户拥有的文件数量;文件数量的软限制;文件数量的硬限制

# g 设置群组的配额

[root@xuegod63 ~]# quotaon -ugv /tmp/sdb5/#激活配额设置
/dev/sdb5 [/sdb5]: group quotas turned on
/dev/sdb5 [/sdb5]: user quotas turned on

# u 开启用户配额

# g 开启群组配额

9.4、验证磁盘配额

[root@xuegod63 ~]# mkdir /sdb5/test
[root@xuegod63 ~]# chmod 777 / sdb5/test/
[mk@xuegod63 test]$ dd if=/dev/zero of=mk.txt bs=1K count=70 #大于 50K 报警
sdb3: warning, group block quota exceeded.
70+0 records in
70+0 records out
71680 bytes (72 kB) copied, 0.00388255 s, 18.5 MB/s
[mk@xuegod63 test]$ rm -rf mk.txt
[mk@xuegod63 test]$ dd if=/dev/zero of=mk.txt bs=1K count=90 #大于 80 报错
sdb5: write failed, group block limit reached.
dd: writing `mk.txt': Disk quota exceeded
[mk@xuegod63 test]$ ll -h
total 80K
-rw-rw-r-- 1 mk mk 80K Feb 2 22:30 mk.txt

 

         学神-IT-教育51cto技术交流群:468845589  快来上我们公开课吧!

                              学神MK老师:1273815479

                              学神ZY老师:3054384936

 

 

                                                                          学神教育学神IT-1508-VIP-哀殇整理提供