目录
一、LVM
1.1 lvm简介
LVM(Logical Volume Manager)逻辑卷管理,是一种逻辑卷管理器,是Linux系统中的一个重要的存储管理技术。
- 1.lvm打破了磁盘空间分区只能单个挂载,单个使用的限制。
- 2.lvm打破了磁盘大小的限制,可以进行扩容。
- 3.打破了磁盘分区要求必须是连续的空间限制。
LVM扩容:能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的基本概念。
/boot/分区用于存放引导文件,不能基于LVM创建。
热备份:不停机备份,实时备份,有多少备份多少。
冷备份:停机备份,只能备份当前的数据,开机之后新的数据不能再备份
物理卷(Physical Volume,PV):就是真正的物理硬盘或分区。
卷组(Volume Group,VG):将多个物理卷合起来就组成了卷组,组成同一个卷组的物理卷,可以是同一块硬盘的不同分区,也可以是不同硬盘上的不同分区。
逻辑卷(Logical Volume,LV):卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据。我们可以把逻辑卷想象为分区。
物理扩展(Physical Extend,PE):PE 是用来保存数据的最小单元,
数据实际上都是写入 PE 当中的。PE 的大小是可以配置的,默认是 4MB。
1.2 LVM管理命令
1.3 LVM删除顺序
- 先从逻辑卷删除,如果已挂载,先解挂载。
- 删除组卷
- 删除物理卷
1.4 创建逻辑卷LVM
1.4.1 添加三块硬盘
[root@localhost ~]# partprobe
part probe强制刷新内核缓存表,如果刷新不成功,只能reboot重启。
1.4.2 创建分区
使用fdisk命令分别创建sdb1、sdc1、sdd1三个不同硬盘的分区
[root@localhost ~]# fdisk
用法:
fdisk [选项] <磁盘> 更改分区表
fdisk [选项] -l <磁盘> 列出分区表
fdisk -s <分区> 给出分区大小(块数)
选项:
-b <大小> 扇区大小(512、1024、2048或4096)
-c[=<模式>] 兼容模式:“dos”或“nondos”(默认)
-h 打印此帮助文本
-u[=<单位>] 显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
-v 打印程序版本
-C <数字> 指定柱面数
-H <数字> 指定磁头数
-S <数字> 指定每个磁道的扇区数
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x79e9602a 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x1b423504 创建新的 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):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x43c6d648 创建新的 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):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
sdd 8:48 0 20G 0 disk
└─sdd1 8:49 0 20G 0 part
sr0 11:0 1 4.2G 0 rom /mnt
1.4.3 建立物理卷
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 dev/sdd1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdd1" successfully created.
[root@localhost ~]#
1.4.4 建立卷组zkr
[root@localhost ~]# vgcreate zkr /dev/sdb1 /dev/sdc1 /dev/sdd1
Volume group "zkr" successfully created
[root@localhost ~]# vgdisplay zkr
--- Volume group ---
VG Name zkr
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size <59.99 GiB
PE Size 4.00 MiB
Total PE 15357
Alloc PE / Size 0 / 0
Free PE / Size 15357 / <59.99 GiB
VG UUID WM1JeW-GcqT-1Z3m-9fBO-nKPL-Q84R-PZiQH6
1.4.5 建立逻辑卷ky29
[root@localhost ~]# lvcreate -L 10G -n ky29 zkr
Logical volume "ky29" created.
[root@localhost ~]# lvdisplay /dev/zkr/ky29
--- Logical volume ---
LV Path /dev/zkr/ky29
LV Name ky29
VG Name zkr
LV UUID j4rrZB-h9AH-FmDe-EZbP-Puao-e4uz-h2PE5P
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-05-08 18:13:41 +0800
LV Status available
# open 0
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
1.4. 6 创建文件管理系统
[root@localhost ~]# mkfs.xfs /dev/zkr/ky29
meta-data=/dev/zkr/ky29 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, 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
1.4.7 进行挂载
[root@localhost /]# vim /etc/fstab
##/dev/zkr/ky29 /data xfs defaults 0 0
[root@localhost /]# mount -a
[root@localhost /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 4.5G 46G 9% /
devtmpfs 977M 0 977M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 9.1M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 5.0G 161M 4.9G 4% /boot
tmpfs 199M 12K 199M 1% /run/user/42
tmpfs 199M 0 199M 0% /run/user/0
/dev/mapper/zkr-ky29 10G 33M 10G 1% /data
1.5 LVM扩容
[root@localhost /]# lvextend -L +10G /dev/zkr/ky29 -r
Size of logical volume zkr/ky29 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
Logical volume zkr/ky29 successfully resized.
meta-data=/dev/mapper/zkr-ky29 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2621440, 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 2621440 to 5242880
[root@localhost /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 4.5G 46G 9% /
devtmpfs 977M 0 977M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 9.1M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 5.0G 161M 4.9G 4% /boot
tmpfs 199M 12K 199M 1% /run/user/42
tmpfs 199M 0 199M 0% /run/user/0
/dev/mapper/zkr-ky29 20G 33M 20G 1% /data
-r 表示直接生效,无需刷新
二、磁盘配额
2.1 实现磁盘限额条件
- 需要Linux内核支持
- 安装xfsprogs与quota软件
2.2 Linux磁盘限额特点
作用范围:针对指定的文件系统(分区)
限制对象:用户账户、组账号
限制类型:磁盘容量、文件数量
限制方法:软限制、硬限制
2.3 命令实现
2.3.1 查看相关软件是否安装
[root@localhost /]# rpm -q xfsprogs quota
xfsprogs-4.5.0-12.el7.x86_64
quota-4.01-14.el7.x86_64
2.3.2 接触相关挂载
[root@localhost ~]# umount -lf /dev/zkr/ky29 /data/
2.3.3 以支持配额功能的方式挂载文件系统
[root@localhost ~]# mount -o usrquota,grpquota /dev/zkr/ky29 /data/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 4.5G 46G 9% /
devtmpfs 977M 0 977M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 9.1M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 5.0G 161M 4.9G 4% /boot
tmpfs 199M 12K 199M 1% /run/user/42
tmpfs 199M 0 199M 0% /run/user/0
/dev/mapper/zkr-ky29 20G 33M 20G 1% /data
2.3.4 创建用户
[root@localhost ~]# useradd zkr
[root@localhost ~]# passwd zkr
更改用户 zkr 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
2.3.5 编辑用户的配额限制.
2.3.6 测试一下
[zkr@localhost data]$ dd if=/dev/zero of=/data/123.txt bs=10M count=12
dd: 写入"/data/123.txt" 出错: 超出磁盘限额
记录了11+0 的读入
记录了10+0 的写出
104857600字节(105 MB)已复制,0.189577 秒,553 MB/秒
[zkr@localhost data]$
[zkr@localhost data]$ ll -h
总用量 100M
-rw-rw-r--. 1 zkr zkr 100M 5月 8 23:35 123.txt
已超出磁盘限额!
[zkr@localhost data]$ ls
123.txt
[zkr@localhost data]$ rm -rf 123.txt
[zkr@localhost data]$ touch 1 2 3 4 5 6
touch: 无法创建"6": 超出磁盘限额
[zkr@localhost data]$ ls
1 2 3 4 5
已超出磁盘限额!
2.3.7 解除限额