文章目录
一.LVM
1.LVM概述
LVM是linux操作系统中对磁盘分区进行管理的一种逻辑机制,能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性
一般/boot分区用于存放引导文件,不能基于LVM创建
2.LVM机制的基本概念
PV(物理卷) 物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘
VG(卷组) 由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
LV(逻辑卷) 逻辑卷建立在卷组之上,与物理卷没有直接关系。每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷
PE(物理区域) 物理区域是物理卷中可用于分配的最小存储单元,默认4M
3.LVM的管理命令
4.LVM建立步骤
分区
首先新建两个磁盘并对其进行分区为LVM,创建分区上一章已说过,这里就不写详细步骤了
分区完成后如下,两个磁盘均为LVM
[root@yzq ~]# fdisk -l
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb357a06a
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 8e Linux LVM
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9b3329fb
磁盘 /dev/mapper/centos-root:39.7 GB, 39720058880 字节,77578240 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
创建物理卷(PV)
两个磁盘同时创建物理卷
[root@yzq ~]# pvcreate /dev/sdb1 /dev/sdc1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
创建卷组vgname
[root@yzq ~]# vgcreate vgname /dev/sdb1 /dev/sdc1
Volume group "vgname" successfully created
创建逻辑卷lvname
[root@yzq dev]# lvcreate -L 18G -n lvname vgname
Logical volume "lvname" created.
其中 -L 指定逻辑卷大小, -n后指定逻辑卷名称以及逻辑卷卷组来源
即 -n [创建的逻辑卷名称] [逻辑卷卷组来源名称]
格式化
[root@yzq vgname]# mkfs.xfs /dev/vgname/lvname
meta-data=/dev/vgname/lvname isize=512 agcount=4, agsize=1179648 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=4718592, 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
挂载到/dev/data1下面
挂载并查看
[root@yzq dev]# mount /dev/vgname/lvname /data1
[root@yzq dev]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 37G 5.1G 32G 14% /
devtmpfs devtmpfs 894M 0 894M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 11M 900M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 182M 4.0K 182M 1% /run/user/42
tmpfs tmpfs 182M 36K 182M 1% /run/user/0
/dev/mapper/vgname-lvname xfs 18G 33M 18G 1% /data1
创建成功,查看
[root@yzq vgname]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID 0NcSf4-V8mX-e9uB-cUc7-xVco-mJ2S-KK83aL
LV Write Access read/write
LV Creation host, time localhost, 2022-06-29 00:29:53 +0800
LV Status available
# open 1
LV Size 36.99 GiB
Current LE 9470
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
LV扩容
扩容1G后显示还是19G(需使用扩展生效命令)
[root@yzq vgname]# lvextend -L +1G /dev/vgname/lvname
Size of logical volume vgname/lvname changed from 19.00 GiB (4864 extents) to 20.00 GiB (5120 extents).
Logical volume vgname/lvname successfully resized.
[root@yzq vgname]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 37G 5.2G 32G 14% /
devtmpfs 894M 0 894M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 11M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 182M 4.0K 182M 1% /run/user/42
tmpfs 182M 44K 182M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/mapper/vgname-lvname 19G 33M 19G 1% /data1
使扩容生效
使用xfs_growfs /dev/vgname/lvname刷新xfs系统容量(对增加空间格式化),查看为20G,扩容生效
(resize2fs刷新ext2类型文件的系统容量)
[root@yzq vgname]# xfs_growfs /dev/vgname/lvname
meta-data=/dev/mapper/vgname-lvname isize=512 agcount=5, agsize=1179648 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4980736, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal 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 4980736 to 5242880
[root@yzq vgname]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 37G 5.2G 32G 14% /
devtmpfs devtmpfs 894M 0 894M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 11M 900M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 182M 4.0K 182M 1% /run/user/42
tmpfs tmpfs 182M 44K 182M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
/dev/mapper/vgname-lvname xfs 20G 33M 20G 1% /data1
添加硬盘 不重启识别硬盘
echo “- - -” > /sys/class/scsi_host/host1/scan
5.LVM的移除
去除挂载
[root@yzq scsi_host]# umount /data1/
[root@yzq scsi_host]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 37G 5.2G 32G 14% /
devtmpfs 894M 0 894M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 11M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 182M 4.0K 182M 1% /run/user/42
tmpfs 182M 44K 182M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
移除逻辑卷
此时没有我们创建的/dev/vgname/lvname的信息了
[root@yzq scsi_host]# lvremove vgname /dev/vgname/lvname
Do you really want to remove active logical volume vgname/lvname? [y/n]: y
Logical volume "lvname" successfully removed
[root@yzq scsi_host]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID 0NcSf4-V8mX-e9uB-cUc7-xVco-mJ2S-KK83aL
LV Write Access read/write
LV Creation host, time localhost, 2022-06-29 00:29:53 +0800
LV Status available
# open 1
LV Size 36.99 GiB
Current LE 9470
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID 7UkhhQ-5bI3-7Baw-kOx3-XDNj-srOo-JCm6Us
LV Write Access read/write
LV Creation host, time localhost, 2022-06-29 00:29:53 +0800
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
移除卷组
[root@yzq scsi_host]# vgremove vgname
Volume group "vgname" successfully removed
[root@yzq scsi_host]# vgdisplay
--- Volume group ---
VG Name centos
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 <39.00 GiB
PE Size 4.00 MiB
Total PE 9983
Alloc PE / Size 9982 / 38.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID owo4jY-YI1r-c7wi-CXdc-8Dgz-fKp1-nN5a7Z
移除物理卷
[root@yzq scsi_host]# pvremove vgname /dev/sdb1 /dev/sdc1 /dev/sdd1
Device vgname not found.
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdc1" successfully wiped.
Labels on physical volume "/dev/sdd1" successfully wiped.
[root@yzq scsi_host]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <39.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 9983
Free PE 1
Allocated PE 9982
PV UUID hqa0EL-5o6e-02ce-dqbH-BggS-fP3n-QalXTK
二.磁盘配额
1、实现磁盘限额的条件
安装Linux内核支持
安装xfsprogs与quota软件包
2.作用
对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性
作用范围:针对指定的文件系统(分区)
限制对象:用户账号、组账号
限制类型:磁盘容量、文件数量
限制方法:软限制、硬限制
3.磁盘配额管理
启用文件系统的配额支持
检查是否安装xfsprogs和xfs_quota软件包,若安装是否最新
[root@yzq scsi_host]# yum -y install xfsprogs xfs_quota
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
local | 3.6 kB 00:00
软件包 xfsprogs-4.5.0-18.el7.x86_64 已安装并且是最新版本
没有可用软件包 xfs_quota。
无须任何处理
以配额功能的方式挂载文件系统
[root@yzq scsi_host]# mount -o usrquota,grpquota /dev/sdd1 /data1
[root@yzq scsi_host]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 37G 5.2G 32G 14% /
devtmpfs 894M 0 894M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 11M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 182M 4.0K 182M 1% /run/user/42
tmpfs 182M 44K 182M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sdd1 5.0G 33M 5.0G 1% /data1
或者进入vi编辑器修改
[root@yzq scsi_host]# cat /etc/fstab
/dev/sdd1 /data1 xfs defaults,usrquota,grpquota 0 0
[root@yzq scsi_host]#mount -a
编辑用户和组账号的配额设置
创建一个新用户lisi
[root@yzq scsi_host]# useradd lisi
[root@yzq scsi_host]# echo "123456" | passwd --stdin lisi
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
进行配额
[root@yzq ~]# xfs_quota -x -c 'limit -u bsoft=20M bhard=40M isoft=4 ihard=6 lisi' /data1
- x :表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
- c :表示直接调用管理命令
- u :指定用户账号对象
- g :指定组账号对象
bsoft :设置磁盘容量的软设置数值(默认单位kb)
bhard :设置磁盘容量的硬限制数值(默认单位kb)
isoft :设置磁盘文件数的软限制数值
ihard:设置磁盘文件数的硬限制数值
查看功能是否启用
[root@yzq ~]# quotaon -p /data1
group quota on /data1 (/dev/sdd1) is on
user quota on /data1 (/dev/sdd1) is on
验证磁盘配额功能
给与/data1目录所有权限
[root@yzq ~]# chmod 777 /data1
进入lisi这个用户,到/data目录下查看,没有东西
[root@yzq ~]# su lisi
[lisi@yzq root]$ cd /data1/
[lisi@yzq data1]$ ls
创建文件数量验证,限额成功
[lisi@yzq data1]$ touch {1..4}.txt
[lisi@yzq data1]$ ls
1.txt 2.txt 3.txt 4.txt
[lisi@yzq data1]$ touch 5.txt
[lisi@yzq data1]$ touch 6.txt
[lisi@yzq data1]$ touch 7.txt
touch: 无法创建"7.txt": 超出磁盘限额
[lisi@yzq data1]$ ls
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt
磁盘空间限额验证
[lisi@yzq data1]$ dd if=/dev/zero of=/data1/1.txt bs=10M count=1记录了1+0 的读入
记录了1+0 的写出
10485760字节(10 MB)已复制,0.0119834 秒,875 MB/秒
[lisi@yzq data1]$ ll
总用量 10240
-rw-rw-r--. 1 lisi lisi 10485760 7月 5 22:20 1.txt
[lisi@yzq data1]$ dd if=/dev/zero of=/data1/2.txt bs=10M count=4dd: 写入"/data1/2.txt" 出错: 超出磁盘限额
记录了4+0 的读入
记录了3+0 的写出
31457280字节(31 MB)已复制,0.0524935 秒,599 MB/秒
[lisi@yzq data1]$ ll
总用量 40960
-rw-rw-r--. 1 lisi lisi 10485760 7月 5 22:20 1.txt
-rw-rw-r--. 1 lisi lisi 31457280 7月 5 22:22 2.txt
[lisi@yzq data1]$ dd if=/dev/zero of=/data1/3.txt bs=10M count=2
dd: 写入"/data1/3.txt" 出错: 超出磁盘限额
记录了1+0 的读入
记录了0+0 的写出
0字节(0 B)已复制,0.00456607 秒,0.0 kB/秒
[lisi@yzq data1]$ touch {10..15}.txt
touch: 无法创建"10.txt": 超出磁盘限额
touch: 无法创建"11.txt": 超出磁盘限额
touch: 无法创建"12.txt": 超出磁盘限额
touch: 无法创建"13.txt": 超出磁盘限额
touch: 无法创建"14.txt": 超出磁盘限额
touch: 无法创建"15.txt": 超出磁盘限额
dd :一个设备转换的连续复制命令
“if=” :指定输入设备(或文件)
“of=” :指定输出设备(或文件)
bs :指定读取数据块的大小
count :指定读取数据块的数量
/dev/zero “零”设备文件,可以无限的提供空制符。常用来生成一盒特定大小的文件。
查看配额使用情况
查看所有可用分区的磁盘容量配额使用情况
[root@yzq data1]# xfs_quota -x -c 'report -aibh'
Blocks Inodes
User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
---------- --------------------------------- ---------------------------------
root 12K 0 0 00 [------] 4 0 0 00 [------]
lisi 40M 20M 40M 00 [6 days] 6 4 6 00 [6 days]
Group quota on /data1 (/dev/sdd1)
Blocks Inodes
Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
---------- --------------------------------- ---------------------------------
root 12K 0 0 00 [------] 4 0 0 00 [------]
lisi 40M 0 0 00 [------] 6 0 0 00 [------]
查看磁盘配额
repot【参数选项】
-u :对用户查看
-g :对组查看
-a :查看所有可用分区的配额使用报告
-b :查看磁盘容量
-i :产看文件数
总结
lvm quota(配额)
为什么做逻辑卷
动态调整磁盘容量,灵活,可以弹性伸缩
lvm创建思路
识别硬盘 --》【可选】划分分区–》定义物理卷pvcreate /dev/sdb1 /dev/sdc1–》定义卷组vgcreate–》定义lvm逻辑卷–》格式化–》挂载使用
lvm删除思路反过来