七、Linux磁盘管理(二)
一、磁盘阵列RAID
1.1 概述
RAID
:(Redundant Array of Independent Disk
)独立冗余磁盘阵列RAID
最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID
就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID
可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能,能够确保数据安全性,易于管理,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。
1.2 常见RAID级别
1.2.1 RAID0
- 至少需要两块磁盘
- 数据条带化分布到磁盘(如果说需要存储的数据是12345678,那么可能是1357存储在disk1上面,2468存储在disk2上面)
- 高的读写性能,100%高存储空间利用率
- 没有数据冗余性,一块磁盘故障,数据将无法恢复
- 应用于:对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储
1.2.2 RAID1
- 至少需要两块磁盘
- 数据镜像备份写到磁盘上(工作盘和镜像盘)
- 可靠性高,磁盘利用率为50%
- 一块磁盘故障,不会影响数据的读写
- 读性能可以,但写性能不佳
- 应用于:对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。
1.2.3 RAID5
- 至少需要3块磁盘
- 数据条带化存储在磁盘,读写性能好,磁盘利用率为
(n-1)/n
- 以奇偶校验(分散)做数据冗余
- 一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据(消耗性能)
- 是目前综合性能最佳的数据保护解决方案,兼顾了存储性能、数据安全和存储成本等各方面因素
- 适用于大部分的应用场景
1.2.4 RAID6
- 至少需要4块磁盘
- 数据条带化存储在磁盘,读取性能好,容错能力强
- 采用双重校验方式保证数据的安全性
- 如果2块磁盘同时故障,可以通过两个校验数据来重建两个磁盘的数据
- 成本要比其他等级高,并且更复杂
- 一般用于对数据安全性要求非常高的场合
1.2.5 RAID10
RAID10
是raid1+raid0
的组合- 至少需要4块磁盘
- 兼顾数据的冗余(
raid1
镜像)和读写性能(raid0
数据条带化) - 磁盘利用率为50%,成本较高
1.2.6 RAID01
RAID10
是raid0+raid1
的组合- 至少需要4块磁盘
- 兼顾数据的冗余(
raid1
镜像)和读写性能(raid0
数据条带化) - 磁盘利用率为50%,成本较高
1.2.7 总结
类型 | 读性能 | 写性能 | 可靠性 | 磁盘利用率 | 成本 |
---|---|---|---|---|---|
RAID0
|
最好 | 最好 | 最低 | 100% | 较低 |
RAID1
|
正常 | 两份数据 | 高 | 50% | 高 |
RAID5
|
近似RAID0
|
多了校验 |
介于RAID0 和RAID1 之间
|
(n-1)/n |
介于RAID0 和RAID1 之间
|
RAID6
|
近似RAID0
|
多了双重校验 |
大于RAID5
|
(n-2)/n |
大于RAID1
|
RAID10
|
等于RAID0
|
等于RAID1
|
高 | 50% | 最高 |
RAID01
|
等于RAID0
|
等于RAID1
|
高 | 50% | 最高 |
1.3 软硬RAID
1.3.1 软RAID
软
RAID
运行于操作系统底层,将SCSI
或者IDE
控制器提交上来的物理磁盘,虚拟成虚拟磁盘,再提交给管理程序来进行管理。软
RAID
有以下特点:占用内存空间
占用
CPU
资源如果程序或者操作系统故障就无法运行
现在企业很少用软
RAID
。
1.3.2 硬RAID
- 通过用硬件来实现RAID功能的就是硬
RAID
,独立的RAID卡
,主板集成的RAID
芯片都是硬RAID
。 RAID
卡就是用来实现RAID
功能的板卡,通常是由I/O
处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的。- 不同的
RAID
卡支持的RAID
功能不同。支持RAlD0、RAID1、RAID5、RAID10
不等。
1.4 组件RAID阵列
1.4.1 环境准备
- 添加一块磁盘(或者直接添加多块磁盘,不分区,直接使用)
- 将一个大容量磁盘(20G)分区,形成多个小分区
[root@server1 ~]# fdisk /dev/sdc
[root@server1 ~]# partprobe /dev/sdc
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 2G 0 part
sdc 8:32 0 20G 0 disk
├─sdc1 8:33 0 2G 0 part
├─sdc2 8:34 0 2G 0 part
├─sdc3 8:35 0 2G 0 part
├─sdc4 8:36 0 1K 0 part
├─sdc5 8:37 0 2G 0 part
├─sdc6 8:38 0 2G 0 part
├─sdc7 8:39 0 2G 0 part
├─sdc8 8:40 0 2G 0 part
├─sdc9 8:41 0 2G 0 part
├─sdc10 8:42 0 2G 0 part
└─sdc11 8:43 0 2G 0 part
sr0 11:0 1 973M 0 rom
- 安装mdadm工具
[root@server1 ~]# yum install -y mdadm
参数 | 作用 |
---|---|
-a
|
检测设备名称 |
-n
|
指定设备数量 |
-l
|
指定RAID 级别
|
-C
|
创建 |
-v
|
显示过程 |
-f
|
模拟设备损坏 |
-r
|
移除设备 |
-Q
|
查看摘要信息 |
-D
|
查看详细信息 |
-S
|
停止RAID 磁盘阵列
|
-x
|
指定热备盘数量 |
1.4.2 组建RAID0
# 创建raid0
[root@server1 ~]# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdc1 /dev/sdc2
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@server1 ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Thu Sep 2 23:25:16 2021Raid Level : raid0Array Size : 4188160 (3.99 GiB 4.29 GB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentUpdate Time : Thu Sep 2 23:25:16 2021State : clean Active Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Chunk Size : 512KConsistency Policy : noneName : server1:0 (local to host server1)UUID : 2e5a48fa:87654810:3460dfd6:1d4951d5Events : 0Number Major Minor RaidDevice State0 8 33 0 active sync /dev/sdc11 8 34 1 active sync /dev/sdc2# 格式化
[root@server1 ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=8, agsize=130944 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1047040, imaxpct=25= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0# 挂载
[root@server1 ~]# mkdir /mnt/mnt_md0
[root@server1 ~]# mount /dev/md0 /mnt/mnt_md0/# 测试
#复制终端,用于监测
[root@server1 ~]# yum install -y sysstat
[root@server1 ~]# iostat -m -d /dev/sdc[12] 3
[root@server1 ~]# dd if=/dev/zero of=/mnt/mnt_md0/bigfile bs=1M count=1024Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sdc1 156.00 0.00 77.84 0 233
sdc2 155.67 0.00 77.83 0 233Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sdc1 140.33 0.00 70.17 0 210
sdc2 140.33 0.00 70.17 0 210Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sdc1 45.33 0.00 22.67 0 68
sdc2 45.33 0.00 22.67 0 68# 永久保存RAID0信息
[root@server1 ~]# echo "/dev/md0 /mnt/mnt_md0 xfs defaults 0 0" >> /etc/fstab
1.4.3 组建RAID1
# 创建raid1
[root@server1 ~]# mdadm -C /dev/md1 -l 1 -n 2 /dev/sdc3 /dev/sdc5
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device. If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
Continue creating array? y #输入y,同意即可
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.# 查看状态信息
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sdc5[1] sdc3[0]2094080 blocks super 1.2 [2/2] [UU]md0 : active raid0 sdc2[1] sdc1[0]4188160 blocks super 1.2 512k chunksunused devices: <none>
[root@server1 ~]# mdadm -D /dev/md1
/dev/md1:Version : 1.2Creation Time : Thu Sep 2 23:43:43 2021Raid Level : raid1Array Size : 2094080 (2045.00 MiB 2144.34 MB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentUpdate Time : Thu Sep 2 23:43:54 2021State : clean Active Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Consistency Policy : resyncName : server1:1 (local to host server1)UUID : bc67728d:e1c60a3c:8d445c5d:67a55444Events : 17Number Major Minor RaidDevice State0 8 35 0 active sync /dev/sdc31 8 37 1 active sync /dev/sdc5# 格式化
[root@server1 ~]# mkfs.xfs /dev/md1
meta-data=/dev/md1 isize=512 agcount=4, agsize=130880 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=523520, 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# 挂载
[root@server1 ~]# mkdir /mnt/mnt_md1
[root@server1 ~]# mount /dev/md1 /mnt/mnt_md1
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/md0 xfs 4.0G 33M 4.0G 1% /mnt/mnt_md0
/dev/md1 xfs 2.0G 33M 2.0G 2% /mnt/mnt_md1# 测试(热插拔)
# 模拟数据
[root@server1 ~]# touch /mnt/mnt_md1/file{1..5}# 模拟故障
[root@server1 ~]# mdadm /dev/md1 -f /dev/sdc3
mdadm: set /dev/sdc3 faulty in /dev/md1
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sdc5[1] sdc3[0](F) F表示失效2094080 blocks super 1.2 [2/1] [_U] _表示有一块盘失效md0 : active raid0 sdc2[1] sdc1[0]4188160 blocks super 1.2 512k chunksunused devices: <none>
[root@server1 ~]# mdadm -D /dev/md1
/dev/md1:Version : 1.2Creation Time : Thu Sep 2 23:43:43 2021Raid Level : raid1Array Size : 2094080 (2045.00 MiB 2144.34 MB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentUpdate Time : Thu Sep 2 23:57:53 2021State : clean, degraded Active Devices : 1Working Devices : 1Failed Devices : 1Spare Devices : 0Consistency Policy : resyncName : server1:1 (local to host server1)UUID : bc67728d:e1c60a3c:8d445c5d:67a55444Events : 19Number Major Minor RaidDevice State- 0 0 0 removed1 8 37 1 active sync /dev/sdc50 8 35 - faulty /dev/sdc3# 移除失效盘
[root@server1 ~]# mdadm /dev/md1 -r /dev/sdc3
mdadm: hot removed /dev/sdc3 from /dev/md1
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sdc5[1]2094080 blocks super 1.2 [2/1] [_U]md0 : active raid0 sdc2[1] sdc1[0]4188160 blocks super 1.2 512k chunksunused devices: <none>
# 不影响读写数据
[root@server1 ~]# touch /mnt/mnt_md1/test1
[root@server1 ~]# ls /mnt/mnt_md1
file1 file2 file3 file4 file5 test1# 加入新磁盘(热插)
[root@server1 ~]# mdadm /dev/md1 -a /dev/sdc6
mdadm: added /dev/sdc6
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sdc6[2] sdc5[1]2094080 blocks super 1.2 [2/2] [UU]md0 : active raid0 sdc2[1] sdc1[0]4188160 blocks super 1.2 512k chunksunused devices: <none># 永久保存RAID1信息
[root@server1 ~]# echo "/dev/md1 /mnt/mnt_md1 xfs defaults 0 0" >> /etc/fstab
1.4.4 组建RAID5
# 创建RAID5(预留一块热备盘)
[root@server1 ~]# mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sdc{7,8,9,10}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdc9[4] sdc10[3](S) sdc8[1] sdc7[0]4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]md1 : active raid1 sdc6[2] sdc5[1]2094080 blocks super 1.2 [2/2] [UU]md0 : active raid0 sdc2[1] sdc1[0]4188160 blocks super 1.2 512k chunksunused devices: <none>
[root@server1 ~]# mdadm -D /dev/md5
/dev/md5:Version : 1.2Creation Time : Fri Sep 3 00:11:41 2021Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Fri Sep 3 00:11:54 2021State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1 热备盘Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : server1:5 (local to host server1)UUID : 0536fd77:e916c80b:f7e945cf:a4d4d0f2Events : 18Number Major Minor RaidDevice State0 8 39 0 active sync /dev/sdc71 8 40 1 active sync /dev/sdc84 8 41 2 active sync /dev/sdc93 8 42 - spare /dev/sdc10# 格式化
[root@server1 ~]# mkfs.ext4 /dev/md5# 挂载
[root@server1 ~]# mount /dev/md5 /mnt/mnt_md5
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/md0 xfs 4.0G 33M 4.0G 1% /mnt/mnt_md0
/dev/md1 xfs 2.0G 33M 2.0G 2% /mnt/mnt_md1
/dev/md5 ext4 3.9G 16M 3.7G 1% /mnt/mnt_md5# 测试
#模拟故障
[root@server1 ~]# mdadm /dev/md5 -f /dev/sdc7
mdadm: set /dev/sdc7 faulty in /dev/md5
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdc9[4] sdc10[3] sdc8[1] sdc7[0](F)4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU][root@server1 ~]# mdadm -D /dev/md5
/dev/md5:Version : 1.2Creation Time : Fri Sep 3 00:11:41 2021Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Fri Sep 3 00:19:14 2021State : clean Active Devices : 3Working Devices : 3Failed Devices : 1Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : server1:5 (local to host server1)UUID : 0536fd77:e916c80b:f7e945cf:a4d4d0f2Events : 37Number Major Minor RaidDevice State3 8 42 0 active sync /dev/sdc101 8 40 1 active sync /dev/sdc84 8 41 2 active sync /dev/sdc90 8 39 - faulty /dev/sdc7
# 移除失效盘
[root@server1 ~]# mdadm /dev/md5 -r /dev/sdc7
mdadm: hot removed /dev/sdc7 from /dev/md5
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdc9[4] sdc10[3] sdc8[1]4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU][root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdc9[4] sdc10[3] sdc8[1]4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
# 添加热备盘
[root@server1 ~]# mdadm /dev/md5 -a /dev/sdc3
mdadm: added /dev/sdc3
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdc3[5](S) sdc9[4] sdc10[3] sdc8[1]4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]# 永久保存RAID1信息
[root@server1 ~]# echo "/dev/md5 /mnt/mnt_md5 ext4 defaults 0 0" >> /etc/fstab
1.4.5 RAID停止与启动
# 停止(以RAID0为例)
[root@server1 ~]# umount /mnt/mnt_md0
[root@server1 ~]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0# 启动
[root@server1 ~]# mdadm -A /dev/md0 /dev/sdc[12]
mdadm: /dev/md0 has been started with 2 drives.
1.4.6 RAID删除
# 以RAID1为例
# 解挂
[root@server1 ~]# umount /dev/md1# 停止运行
[root@server1 ~]# mdadm --stop /dev/md1
mdadm: stopped /dev/md1# 删除/etc/fstab中的相关内容
[root@server1 ~]# vim /etc/fstab
#/dev/md1 /mnt/mnt_md1 ext4 defaults 0 0# 删除元数据
[root@server1 ~]# mdadm --zero-superblock /dev/sdc[56]
二、磁盘管理-逻辑卷
2.1 逻辑卷简介
LVM
逻辑卷管理,在物理设备上进行一层抽象,允许生成逻辑存储卷,相比物理存储管理更加灵活LVM
将存储虚拟化,不受限于物理存储,屏蔽硬件相关存储参数,不需要卸载文件系统进行调整卷大小或数据迁移
逻辑卷管理器是
Linux
系统用于对硬盘分区进行管理的一种机制理论性较强,创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。
建立在物理存储设备之上的一个抽象层,优点在于灵活管理
特点:
- 动态在线扩容(重点)
- 离线裁剪
- 数据条带化
- 数据镜像
- 灵活的容器可伸缩的存储池
- 方便的设备命令
2.2 工作原理
- 物理卷:
Physical Volume (PV)
,处于LVM
中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID
磁盘阵列 - 卷组:
Volume Group (VG)
,建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。一个LVM系统中可以只有一个卷组,也可以包含多个卷组 - 逻辑卷:
Logical Volume (LV)
,逻辑卷建立在卷组之上,并且逻辑卷在建立后可以动态地扩展或缩小空间,是最终用户使用的逻辑设备 - 物理区域 :
physical extent (PE)
,一个物理卷可被划分为多个PE
,具有唯一编号的PE
是能被LVM
寻址的最小单元。PE
的大小可指定,默认为4 MB
。PE
的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE
的大小是一致的。 - 逻辑区域:
logical extent (LE)
,一个逻辑卷可被划分为多个LE
,也是LVM
寻址的最小单元,在同一个卷组中,LE
的大小和PE
是相同的,并且一一对应。
2.3 逻辑卷管理
2.3.1 常用命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 |
pvscan
|
vgscan
|
lvscan
|
建立 |
pvcreate
|
vgcreate
|
lvcreate
|
显示 |
pvs
|
vgs
|
lvs
|
详细显示 |
pvdisplay
|
vgdisplay
|
lvdisplay
|
删除 |
pvremove
|
vgremove
|
lvremove
|
扩展 |
vgextend
|
lvextend
|
|
缩小 |
vgreduce
|
lvreduce
|
2.3.2 逻辑卷创建
- 物理设备——>物理卷(
pv
)——>卷组(vg
)——>逻辑卷(lv
)——>逻辑卷格式化——>挂载
# 物理设备:硬盘分区
[root@server1 ~]# fdisk /dev/sdb
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 973M 0 rom
[root@server1 ~]# partprobe /dev/sdb# 创建物理卷
[root@server1 ~]# pvcreate /dev/sdb1 /dev/sdb2Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdb2" successfully created.
[root@server1 ~]# pvsPV VG Fmt Attr PSize PFree/dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb1 lvm2 --- 1.00g 1.00g/dev/sdb2 lvm2 --- 2.00g 2.00g
[root@server1 ~]# pvdisplay /dev/sdb*"/dev/sdb2" is a new physical volume of "2.00 GiB"--- NEW Physical volume ---PV Name /dev/sdb2VG Name PV Size 2.00 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID ogYeQh-kmXp-SguX-IE5I-VY1T-HFSE-mgVzh2"/dev/sdb1" is a new physical volume of "1.00 GiB"--- NEW Physical volume ---PV Name /dev/sdb1VG Name PV Size 1.00 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID O0FhDl-4USu-DBGD-skhu-zFVA-rEiZ-JVC3T3# 创建卷组
[root@server1 ~]# vgcreate vg01 /dev/sdb1 /dev/sdb2Volume group "vg01" successfully created
[root@server1 ~]# vgsVG #PV #LV #SN Attr VSize VFreecentos 1 2 0 wz--n- <19.00g 0 vg01 2 0 0 wz--n- 2.99g 2.99g# 创建逻辑卷
[root@server1 ~]# lvcreate -n lv01 -L 2.5G vg01
选项说明:
-n:指定逻辑卷名称
-L:直接指定逻辑卷大小
-l:间接指定逻辑卷大小(加PE个数/卷组剩余空间(VFree)百分比)
[root@server1 ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot centos -wi-ao---- <17.00g swap centos -wi-ao---- 2.00g lv01 vg01 -wi-a----- 2.50g # 查看映射关系
[root@server1 ~]# ll /dev/vg01/lv01
lrwxrwxrwx 1 root root 7 8月 21 12:17 /dev/vg01/lv01 -> ../dm-2
[root@server1 ~]# ll /dev/mapper/vg01-lv01
lrwxrwxrwx 1 root root 7 8月 21 12:17 /dev/mapper/vg01-lv01 -> ../dm-2# 格式化
[root@server1 ~]# mkfs.ext4 /dev/vg01/lv01
[root@server1 ~]# blkid /dev/vg01/lv01
/dev/vg01/lv01: UUID="acc1fc83-a64c-4d60-9f32-955169625ac1" TYPE="ext4" # 挂载
[root@server1 ~]# mkdir /mnt/lv01
[root@server1 ~]# mount /dev/vg01/lv01 /mnt/lv01/
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 ext4 2.4G 7.5M 2.3G 1% /mnt/lv01
2.3.3 逻辑卷删除
# 解挂
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─vg01-lv01 253:2 0 2.5G 0 lvm /mnt/lv01
└─sdb2 8:18 0 2G 0 part └─vg01-lv01 253:2 0 2.5G 0 lvm /mnt/lv01
sr0 11:0 1 973M 0 rom
[root@server1 ~]# umount /dev/vg01/lv01# 删除逻辑卷
[root@server1 ~]# lvremove /dev/vg01/lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: yLogical volume "lv01" successfully removed# 删除卷组
[root@server1 ~]# vgremove vg01Volume group "vg01" successfully removed # 删除物理卷
[root@server1 ~]# pvremove /dev/sdb[12]Labels on physical volume "/dev/sdb1" successfully wiped.Labels on physical volume "/dev/sdb2" successfully wiped.
[root@server1 ~]# pvsPV VG Fmt Attr PSize PFree/dev/sda2 centos lvm2 a-- <19.00g 0
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 973M 0 rom
- 逻辑卷动态扩容
# 准备0.5G的逻辑卷
[root@server1 ~]# pvcreate /dev/sdb1Physical volume "/dev/sdb1" successfully created.
[root@server1 ~]# vgcreate vg01 /dev/sdb1Volume group "vg01" successfully created
[root@server1 ~]# lvcreate -n lv01 -L 0.5G vg01Logical volume "lv01" created.
[root@server1 ~]# ll /dev/vg01/lv01
lrwxrwxrwx 1 root root 7 8月 21 13:10 /dev/vg01/lv01 -> ../dm-2
[root@server1 ~]# ll /dev/mapper/vg01-lv01
lrwxrwxrwx 1 root root 7 8月 21 13:10 /dev/mapper/vg01-lv01 -> ../dm-2
[root@server1 ~]# mkfs.ext4 /dev/vg01/lv01
[root@server1 ~]# mount /dev/vg01/lv01 /mnt/lv01/
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 ext4 488M 780K 452M 1% /mnt/lv01# 查看/mnt/lv01属于哪个卷组
[root@server1 ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot centos -wi-ao---- <17.00g swap centos -wi-ao---- 2.00g lv01 vg01 -wi-ao---- 512.00m # 查看vg01的剩余空间
[root@server1 ~]# vgsVG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- <19.00g 0 vg01 1 1 0 wz--n- 1020.00m 508.00m
#卷组空间不够:先扩容卷组,再扩容逻辑卷
#卷组空间够用,只需要扩容逻辑卷# 扩容卷组:直接将其他物理卷加入该卷组(如果没有空闲物理卷,可以通过物理设备创建物理卷)
[root@server1 ~]# vgextend vg01 /dev/sdb2Physical volume "/dev/sdb2" successfully created.Volume group "vg01" successfully extended
[root@server1 ~]# vgsVG #PV #LV #SN Attr VSize VFreecentos 1 2 0 wz--n- <19.00g 0 vg01 2 1 0 wz--n- 2.99g 2.49g# 扩容逻辑卷
[root@server1 ~]# lvextend /dev/vg01/lv01 -L +2GSize of logical volume vg01/lv01 changed from 512.00 MiB (128 extents) to 2.50 GiB (640 extents).Logical volume vg01/lv01 successfully resized.
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 ext4 488M 780K 452M 1% /mnt/lv01# 同步文件系统
[root@server1 ~]# resize2fs /dev/vg01/lv01
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg01/lv01 is mounted on /mnt/lv01; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg01/lv01 is now 655360 blocks long.
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 ext4 2.5G 1.5M 2.4G 1% /mnt/lv01
2.3.4 逻辑卷实现条带化
- 条带化:把保存到逻辑卷的数据分成n等分,分别写到不同的物理卷,可以提高数据的读写效率;如果任何一个涉及到的物理卷出现故障,数据都会无法恢复。
# 创建分区
[root@server1 ~]# fdisk /dev/sdb
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 2G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 973M 0 rom # 刷新分区表(不成功,可以尝试重启)
[root@server1 ~]# partprobe /dev/sdb# 创建物理卷
[root@server1 ~]# pvcreate /dev/sdb[12]Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdb2" successfully created.
[root@server1 ~]# pvs /dev/sdb[12]PV VG Fmt Attr PSize PFree/dev/sdb1 lvm2 --- 2.00g 2.00g/dev/sdb2 lvm2 --- 2.00g 2.00g# 创建卷组
[root@server1 ~]# vgcreate vg01 /dev/sdb[12]Volume group "vg01" successfully created
[root@server1 ~]# vgs vg01VG #PV #LV #SN Attr VSize VFreevg01 2 0 0 wz--n- 3.99g 3.99g# 创建逻辑卷,实现条带化
[root@server1 ~]# lvcreate -n lv01 -l 100%free vg01 -i 2 /dev/sdb[12]Using default stripesize 64.00 KiB.Logical volume "lv01" created.
# 选项说明: -i:指定条带化的数量
[root@server1 ~]# pvs /dev/sdb[12]PV VG Fmt Attr PSize PFree/dev/sdb1 vg01 lvm2 a-- <2.00g 0 /dev/sdb2 vg01 lvm2 a-- <2.00g 0# 格式化
[root@server1 ~]# mkfs.xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01 isize=512 agcount=8, agsize=130800 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1046400, imaxpct=25= sunit=16 swidth=32 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2= sectsz=512 sunit=16 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0# 挂载
[root@server1 ~]# mkdir /mnt/lv01
[root@server1 ~]# mount /dev/vg01/lv01 /mnt/lv01# 测试
# 复制会话,用于监控
[root@server1 ~]# yum install -y sysstat.x86_64
[root@server1 ~]# iostat -m -d /dev/sdb[12] 3
# 选项说明:
# -d:查看磁盘
# -m:以什么速度显示,M/s
# 3:每隔3s显示一次
[root@server1 ~]# dd if=/dev/zero of=/mnt/lv01/dd_file bs=1M count=1000#监控显示
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sdb1 181.33 0.00 11.29 0 33
sdb2 180.33 0.00 11.27 0 33Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sdb1 731.33 0.00 45.58 0 136
sdb2 729.33 0.00 45.58 0 136
2.3.5 逻辑卷快照
- 快照大小远远小于逻辑卷实例大小,快照的空间也来自于卷组,当卷组的可用空间为0时,快照不能创建
# 环境:现打算为vg01-lv01逻辑卷拍摄快照,但卷组可用空间为0,拟采用sdb3扩容
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 2G 0 part
│ └─vg01-lv01 253:2 0 4G 0 lvm /mnt/lv01
├─sdb2 8:18 0 2G 0 part
│ └─vg01-lv01 253:2 0 4G 0 lvm /mnt/lv01
└─sdb3 8:19 0 1023M 0 part
sr0 11:0 1 973M 0 rom 创建物理卷
[root@server1 ~]# pvcreate /dev/sdb3Physical volume "/dev/sdb3" successfully created.# sdb3加入vg01卷组
[root@server1 ~]# vgextend vg01 /dev/sdb3Volume group "vg01" successfully extended
[root@server1 ~]# dmsetup ls --tree
vg01-lv01 (253:2)├─ (8:18)└─ (8:17)
centos-swap (253:1)└─ (8:2)
centos-root (253:0)└─ (8:2)# 拍摄快照
[root@server1 ~]# lvcreate -n lv01_snap -L 50M -s /dev/vg01/lv01Logical volume "lv01_snap" created.
[root@server1 ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot centos -wi-ao---- <17.00g swap centos -wi-ao---- 2.00g lv01 vg01 owi-aos--- 3.99g lv01_snap vg01 swi-a-s--- 50.00m lv01 0.15
[root@server1 ~]# dmsetup ls --tree
vg01-lv01_snap (253:5)├─vg01-lv01_snap-cow (253:4) #保存原卷改变前的数据│ └─ (8:19)└─vg01-lv01-real (253:3) #真实的逻辑卷(原卷)├─ (8:18)└─ (8:17)
vg01-lv01 (253:2)└─vg01-lv01-real (253:3)├─ (8:18)└─ (8:17)
centos-swap (253:1)└─ (8:2)
centos-root (253:0)└─ (8:2)# 快照自动扩容
[root@server1 ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 75#快照空间使用率(值设置为100,表示关闭自动扩容)
snapshot_autoextend_percent = 20 #快照使用率达到上述要求,自动扩容20%
- 生产环境下常使用快照备份
- 锁表–>创建快照–>解锁–>挂载快照–>备份到指定地方–>删除快照
三、扩容swap空间
3.1 添加磁盘扩容
- 流程:新建分区–>刷新分区表–>格式化–>激活
# 查看信息
[root@server1 ~]# free -htotal used free shared buff/cache available
Mem: 1.8G 147M 1.2G 9.6M 410M 1.5G
Swap: 2.0G 0B 2.0G
[root@server1 ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -2#新建分区(使用sdb2作为交换空间)
[root@server1 ~]# fdisk /dev/sdb
#欢迎使用 fdisk (util-linux 2.23.2)。# 更改将停留在内存中,直到您决定将更改写入磁盘。
# 使用写入命令前请三思。#命令(输入 m 获取帮助):n
Partition type:p primary (1 primary, 0 extended, 3 free)e extended
Select (default p): p
#分区号 (2-4,默认 2):
#起始 扇区 (4196352-10485759,默认为 4196352):
#将使用默认值 4196352
#Last 扇区, +扇区 or +size{K,M,G} (4196352-10485759,默认为 10485759):+2G
#分区 2 已设置为 Linux 类型,大小设为 2 GiB#命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
#正在同步磁盘。
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 2G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 973M 0 rom # 刷新分区表
[root@server1 ~]# partprobe /dev/sdb# 格式化
[root@server1 ~]# mkswap /dev/sdb2
#正在设置交换空间版本 1,大小 = 2097148 KiB
#无标签,UUID=ce1f363b-a131-41d0-9123-345978b1e95e
[root@server1 ~]# blkid /dev/sdb2
/dev/sdb2: UUID="ce1f363b-a131-41d0-9123-345978b1e95e" TYPE="swap" # 临时激活swap分区(swapoff临时关闭)
[root@server1 ~]# swapon /dev/sdb2
[root@server1 ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -2
/dev/sdb2 partition 2097148 0 -3# 永久激活
[root@server1 ~]# vim /etc/fstab
# 追加
/dev/sdb2 swap swap defaults 0 0
3.2 模拟大文件来扩容
3.2.1 dd命令
- 语法:
dd if=源文件 of=目标文件 bs=复制数据的大小 count=复制的个数
- 功能:一般结合吐零机生成一定大小的块设备文件
- 常用示例
# 1.备份设备文件
[root@server1 ~]# dd if=/dev/sr0 of=/centos7.6.iso
记录了1992704+0 的读入
记录了1992704+0 的写出
1020264448字节(1.0 GB)已复制,31.5341 秒,32.4 MB/秒# 2.模拟大文件
#/dev/zero 特殊设备,一般用来模拟一个大文件,源源不断的二进制的bit流;
[root@server1 ~]# dd if=/dev/zero of=/tmp/swap_file bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,2.74676 秒,391 MB/秒# 3.损坏系统盘(不要作死)
[root@server1 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=512
3.2.2 模拟大文件扩容
# 模拟大文件
[root@server1 ~]# dd if=/dev/zero of=/tmp/swap_file bs=1M count=1024
#记录了1024+0 的读入
#记录了1024+0 的写出
#1073741824字节(1.1 GB)已复制,2.74676 秒,391 MB/秒# 格式化
[root@server1 ~]# mkswap /tmp/swap_file
#正在设置交换空间版本 1,大小 = 1048572 KiB
#无标签,UUID=b2d34da8-3388-4094-9a83-af6a6fe40cf3# 激活
[root@server1 ~]# swapon -p 1 /tmp/swap_file
swapon: /tmp/swap_file:不安全的权限 0644,建议使用 0600。
[root@server1 ~]# chmod 0600 /tmp/swap_file # 查看
[root@server1 ~]# free -htotal used free shared buff/cache available
Mem: 1.8G 149M 72M 9.6M 1.6G 1.5
Swap: 5.0G 0B 5.0G
四、磁盘配额
作用:限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器…
案例要求:
- 创建3个用户
user1
,user2
,user3
,密码和用户名相同,初始组为usergrp
组。 - 3个用户都可以取得500M的磁盘使用空间,超过400M,给予提示。文件数量不能多于5个,超过3个,给予提示
- 创建3个用户
准备工作
# 创建分区sdb1
[root@server1 ~]# fdisk /dev/sdb
#命令(输入 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-10485759,默认为 2048):
#将使用默认值 2048
#Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+2G
#分区 1 已设置为 Linux 类型,大小设为 2 GiB
#命令(输入 m 获取帮助):w
Calling ioctl() to re-read partition table.
#正在同步磁盘。# 刷新分区表
[root@server1 ~]# partprobe /dev/sdb
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 2G 0 part
sr0 11:0 1 973M 0 rom # 格式化
[root@server1 ~]# mkfs.ext4 /dev/sdb1# 挂载
[root@server1 ~]# mkdir /mnt/mount_sdb1
[root@server1 ~]# mount /dev/sdb1 /mnt/mount_sdb1/
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /mnt/mount_sdb1# 创建用户
[root@server1 ~]# groupadd usergrp
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user01
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user02
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user03# 确保文件系统支持配额
[root@server1 ~]# mount |grep mount_sdb1
/dev/sdb1 on /mnt/mount_sdb1 type ext4 (rw,relatime,data=ordered
[root@server1 ~]# mount -o remount,usrquota,grpquota /mnt/mount_sdb1/
[root@server1 ~]# mount |grep mount_sdb1
/dev/sdb1 on /mnt/mount_sdb1 type ext4 (rw,relatime,quota,usrquota,grpquota,data=ordered)# 永久支持
[root@server1 ~]# vim /etc/fstab
/dev/sdb1 /mnt/mount_sdb1 ext4 defaults,usrquota,grpquota 0 0
quotacheck
命令- 主要参数
-a
:扫描所有在/etc/mtab
内含有quota
参数的文件系统-u
:针对用户扫描文件与目录的使用情况,会新建一个aquota.user
文件-g
:针对用户组扫描文件与目录的使用情况,会新增一个aquota.group
文件-v
:显示扫描过程的信息
- 主要参数
# 启动quota磁盘配额
[root@server1 ~]# yum install -y quota
[root@server1 ~]# quotacheck -avug
[root@server1 ~]# ll /mnt/mount_sdb1/
总用量 44
-rw------- 1 root root 7168 8月 21 12:12 aquota.group
-rw------- 1 root root 7168 8月 21 12:12 aquota.user
drwx------ 2 root root 16384 8月 21 12:06 lost+found
drwx------ 2 user01 usergrp 4096 8月 21 12:07 user01
drwx------ 2 user02 usergrp 4096 8月 21 12:07 user02
drwx------ 2 user03 usergrp 4096 8月 21 12:07 user03
[root@server1 ~]# quotaon -a# 编辑限额配置
[root@server1 ~]# edquota -u user01
Disk quotas for user user01 (uid 1001):Filesystem blocks soft hard inodes soft hard/dev/sdb1 16 409600 512000 4 8 10# 注:空间限制是以k为单位的。
[root@server1 ~]# edquota -p user01 -u user02
[root@server1 ~]# edquota -p user01 -u user03
soft
:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。hard
:又称硬限制,到达这个限制,就完全禁止任何写入以下三个为磁盘空间的限制设置:
blocks
:已使用空间,无需要设置soft
:用户空间使用限制,为软限制,需要设置hard
:用户空间使用限制,为硬限制,需要设置
以下三个为总文件个数的限制:
inodes
:已有文件总数,无需要设置soft
:文件总数限制,为软限制,需要设置hard
:文件总数限制,为硬限制,需要设置
查看和测试
# 查看限制情况
[root@server1 ~]# repquota -as
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7daysSpace limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20K 0K 0K 2 0 0
user01 +- 451M 400M 500M 7days 5 8 10
user02 -- 16K 400M 500M 5 8 10
user03 -- 16K 400M 500M 4 8 10 # 测试
[user01@server1 ~]$ dd if=/dev/zero of=bigfile bs=1M count=450
sdb1: warning, user block quota exceeded.
记录了450+0 的读入
记录了450+0 的写出
471859200字节(472 MB)已复制,7.2745 秒,64.9 MB/秒[user02@server1 ~]$ touch file{1..6}
sdb1: warning, user file quota exceeded.
[user02@server1 ~]$ touch file7
sdb1: write failed, user file limit reached.
touch: 无法创建"file7": 超出磁盘限额
七、Linux磁盘管理(二)相关推荐
- Linux 磁盘管理 二(Raid、LVM、Quota)
6-3.停止磁盘阵列(--stop) [root@localhost ~]# mdadm -S /dev/md0 mdadm: stopped /dev/md0 注意:停止磁盘阵列前要从文件系统umo ...
- Linux命令-磁盘管理(二)
Linux命令-磁盘管理(二) Linux mmount命令 Linux mmount命令用于挂入MS-DOS文件系统. mmount为mtools工具指令,可根据[mount参数]中的设置,将磁盘内 ...
- Linux磁盘管理——df、du、磁盘分区、格式化、挂载、LVM
2019独角兽企业重金招聘Python工程师标准>>> Linux磁盘管理 一. df命令 df命令参数功能:检查文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间 ...
- linux磁盘管理系列一:磁盘配额管理
磁盘管理系列 linux磁盘管理系列一:磁盘配额管理 http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...
- linux 磁盘管理上(分区操作,格式化文件,挂载和卸载)
一:检测并确认新磁盘,规划磁盘分区 首先加硬盘进去,fdisk -l 查看磁盘分区 device 分区的设备文件名称 boot 是否是引导分区.是 则有*表示 start ...
- linux 磁盘管理3板斧,Linux 磁盘管理的命令
Linux 磁盘管理 磁盘分区及挂载: 先查询系统的使用情况: 使用fdisk -l语句 查询结果: 进行磁盘的新建:***添加磁盘时系统必须处于关机状态** 在进行对系统磁盘的使用情况的查询 查 ...
- Linux用户管理(六)Linux磁盘管理
Linux磁盘管理 一.硬盘分区 1.外部存储器的表示方法 (1)硬盘 l IDE /dev/hdxy l SCSI/USB /dev/sdxy (2)软盘(/dev/fdx) ( ...
- linux磁盘相关命令,Linux磁盘管理常用操作命令
原标题:Linux磁盘管理常用操作命令 本文汇总了Linux磁盘管理基础知识.其中包括存储设备的挂载和卸载常用操作命令.自动挂载操作命令和磁盘分区操作命令等. 一.存储设备的挂载和卸载 存储设备的挂载 ...
- Linux系列教程——1 Linux磁盘管理、2 Linux进程管理、3 Linux系统服务、 4 Linux计划任务
文章目录 1 Linux磁盘管理 1.磁盘的基本概念 1.什么是磁盘 2.磁盘的基本结构 3.磁盘的预备知识 1.磁盘的接口类型 2.磁盘的基本术语 3.磁盘在系统上的命名方式 4.磁盘基本分区Fdi ...
- Linux磁盘管理4.12
Linux磁盘管理4.12 一 blockbitmap(区块对照表): 新增文件时会用到block.选择空的block来记录新文件的数据,block bitmap来帮助实现查询block中哪个是空的, ...
最新文章
- 在symfony2项目中100%提升doctrine的性能
- 进程、应用程序域、程序集、对象上下文区别与联系
- python数据分析与挖掘 | 挖掘建模
- 什么标签用于在表单中构建复选框_UI/UX笔记之如何设计好表单
- java输出 4 7什么意思_Java学习4_一些基础4_输入输出_16.5.7
- Program Remote Key For 2014 Ford Mustang Via SKP-900
- 使用dom4j来解析相关的xml字符串
- Java17,有史以来最快 JDK!
- VS2010插件 - NuGet
- 测试显卡风扇的软件,让噪音远离,显卡风扇转速调节
- LeetCode答案大全题(java版)
- Linux查看最后一页日志,linux常用查看文件或日志命令
- 遇到数学问题《深度学习》“花书”读不下去了吗?给你支个招
- MySQL大表优化方案
- 「程序猿 DD」星球活动第一期正式开启!
- Vue中native的用法
- 数学中蕴含的人生哲理
- 油罐清洗抽吸系统设计
- infer的用法_使用 Infer 进行代码扫描
- Prefix-Tuning: Optimizing Continuous Prompts for Generation
热门文章
- html常用文本标签
- 秘密福利偷偷分享!!!就此一天!!!过后删!!!
- node cheerio
- 读书笔记 之《Thinking in Java》(对象、集合)
- 23考研机械复试面试 常见问答问题汇总,机械本科知识专业面试最全攻略!!
- js使用iframe引入youtube视频到页面中播放,解决跨域播放
- 微信公众号如何做好日常维护?
- 论文笔记--Deep contextualized word representations
- 某计算机系的小周,某大学计算机系的小周现在是大二的学生,现在回想起自己在大一时大手大脚花钱还是 - 问答库...
- 对于load方法的理解