逻辑卷(LVM):它是Linux环境下对磁盘分区进行管理的一种机制,它是建立在物理存储设备之上的一个抽象层,优点在于灵活管理。
特点:
真实的物理设备创建过程
物理卷(Physical Volume,PV)
物理卷是底层真正提供容量,存放数据的设备,它可以是整个硬盘、硬盘上的分区等。
卷组(Volume Group, VG)
卷组建立在物理卷之上,它由一个或多个物理卷组成。即把物理卷整合起来提供容量分配。
一个LVM系统中可以只有一个卷组,也可以包含多个卷组。
逻辑卷(Logical Volume, LV)
逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是最终用户使用的逻辑设备。逻辑卷创建之后,其大小可以伸缩。
物理区域 PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可指定,默认为4 MB。 PE的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE的大小是一致的。
4MB=4096kb=4096kb/4kb=1024个block
注意:
创建过程:
用fdisk
对磁盘进行分区
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 2G 0 part
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
├─sdb6 8:22 0 2G 0 part
└─sdb7 8:23 0 2G 0 part
通过pvcreate
命令来创建物理卷
[root@lamp ~]# pvcreate /dev/sdb1 /dev/sdb2
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
通过pvs
查看物理卷,详细查看pvdisplay [设备]
[root@lamp ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 --- 2.00g 2.00g
/dev/sdb2 lvm2 --- 2.00g 2.00g
# 详细查看
[root@lamp ~]# pvdisplay /dev/sdb1
"/dev/sdb1" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 6nfyXO-5VFf-Wh8H-vu3r-byxX-4AIa-mSNrYP
创建卷组命令:vgcreate [卷组名] [物理卷路径]
[root@lamp ~]# vgcreate vg01 /dev/sdb1 /dev/sdb2
Volume group "vg01" successfully created
查看卷组信息命令:vgs
,详细查看vgdisplay
那么卷组VG的大小就等于sdb1+sdb2
[root@lamp ~]# vgs vg01
VG #PV #LV #SN Attr VSize VFree
vg01 2 0 0 wz--n- 3.99g 3.99g
[root@lamp ~]# vgdisplay vg01
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE 1022
Alloc PE / Size 0 / 0
Free PE / Size 1022 / 3.99 GiB
VG UUID cfaFGf-tB6g-IYgK-SVPc-JWeE-Uom8-Rk6CJ
使用lvcreate
创建逻辑卷
命令:lvcreate -n [逻辑卷名] -L [逻辑卷大小] [指定从哪个卷组创建]
常用选项:
-n
:指定逻辑卷名字-L
:指定逻辑卷大小-l
:通过PF或者百分比指定逻辑卷大小注意:逻辑卷的大小不能超过卷组的大小
[root@lamp ~]# vgs vg01
VG #PV #LV #SN Attr VSize VFree
vg01 2 0 0 wz--n- 3.99g 3.99g
[root@lamp ~]# lvcreate -n lv01 -L 2.5G vg01
Logical volume "lv01" created.
[root@lamp ~]# vgs vg01
VG #PV #LV #SN Attr VSize VFree
vg01 2 1 0 wz--n- 3.99g 1.49g
在操作系统层面映射两个地方:
[root@lamp ~]# ll /dev/mapper/vg01-lv01
lrwxrwxrwx 1 root root 7 Jul 24 17:06 /dev/mapper/vg01-lv01 -> ../dm-2
[root@lamp ~]# ll /dev/vg01/lv01
lrwxrwxrwx 1 root root 7 Jul 24 17:06 /dev/vg01/lv01 -> ../dm-2
查看逻辑卷信息:
通过命令:lvdisplay [逻辑卷完整路径]
[root@lamp ~]# lvdisplay /dev/vg01/lv01
--- Logical volume ---
LV Path /dev/vg01/lv01
LV Name lv01
VG Name vg01
LV UUID 9z7lEI-L2eP-MlLd-c3rv-t1z9-2Zc9-K3rCng
LV Write Access read/write
LV Creation host, time lamp, 2022-07-24 17:06:22 +0800
LV Status available
# open 0
LV Size 2.50 GiB
Current LE 640
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
示例:创建大小为200M的逻辑卷lv02;每个PE为4M,-l100指定100个PE,大小为400M
[root@lamp ~]# lvcreate -n lv02 -l100 vg01
Logical volume "lv02" created.
# 一个
[root@lamp ~]# lvs /dev/vg01/lv02
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv02 vg01 -wi-a----- 400.00m
示例:
创建大小为剩余卷组vg01空间的50%的逻辑卷lv03
当前卷组大小为1.1G,50%就是564M左右
通过-l50%free
选项指定大小为卷组的50%大小
[root@lamp ~]# vgs vg01
VG #PV #LV #SN Attr VSize VFree
vg01 2 2 0 wz--n- 3.99g 1.10g
[root@lamp ~]# lvcreate -n lv03 -l50%free vg01
Logical volume "lv03" created.
[root@lamp ~]# lvs /dev/vg01/lv03
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv03 vg01 -wi-a----- 564.00m
命令:mkfs.[类型] [逻辑卷完整路径]
[root@lamp ~]# mkfs.xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01 isize=512 agcount=4, agsize=163840 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=655360, 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@lamp ~]# blkid /dev/vg01/lv01
# 通过 blkid查看设备有信息说明查看成功
/dev/vg01/lv01: UUID="6e86c1ba-d4fb-4d32-a5b7-8a4b2164eba9" TYPE="xfs"
创建一个挂载点(目录)
[root@lamp ~]# mkdir /u01
[root@lamp ~]# mount /dev/vg01/lv01 /u01
[root@lamp ~]# lsblk
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 2G 0 part
│ └─vg01-lv01 253:2 0 2.5G 0 lvm /u01
├─sdb2 8:18 0 2G 0 part
│ ├─vg01-lv01 253:2 0 2.5G 0 lvm /u01
│ ├─vg01-lv02 253:3 0 400M 0 lvm
│ └─vg01-lv03 253:4 0 564M 0 lvm
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
├─sdb6 8:22 0 2G 0 part
└─sdb7 8:23 0 2G 0 part
sr0 11:0 1 4.3G 0 rom
示例:将/u01
目录动态扩容到4G
思路:
通过命令查看目录/u1
属于哪个卷组
[root@lamp ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 2.5G 33M 2.5G 2% /u01
[root@lamp ~]# lvs /dev/vg01/lv01
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg01 -wi-ao---- 2.50g
vg01
的卷组空间已经不足我扩容2G
[root@lamp ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg01 2 3 0 wz--n- 3.99g 564.00m
[root@lamp ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 2G 0 part
│ └─vg01-lv01 253:2 0 2.5G 0 lvm /u01
├─sdb2 8:18 0 2G 0 part
│ ├─vg01-lv01 253:2 0 2.5G 0 lvm /u01
│ ├─vg01-lv02 253:3 0 400M 0 lvm
│ └─vg01-lv03 253:4 0 564M 0 lvm
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
├─sdb6 8:22 0 2G 0 part
└─sdb7 8:23 0 2G 0 part
[root@lamp ~]# pvcreate /dev/sdb5
Physical volume "/dev/sdb5" successfully created.
[root@lamp ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg01 lvm2 a-- <2.00g 0
/dev/sdb2 vg01 lvm2 a-- <2.00g 564.00m
/dev/sdb5 lvm2 --- 2.00g 2.00g
[root@lamp ~]#
用vgextend
命令实现卷组扩容
[root@lamp ~]# vgextend vg01 /dev/sdb5
Volume group "vg01" successfully extended
[root@lamp ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 vg01 lvm2 a-- <2.00g 0
/dev/sdb2 vg01 lvm2 a-- <2.00g 564.00m
/dev/sdb5 vg01 lvm2 a-- <2.00g <2.00g
注意:
正常情况下,应该先将/dev/sdb5物理设备创建为物理卷再加入到卷组中;如果直接加入卷组,系统会自动帮你将其做成物理卷
从2.5G扩容到4G
lvextend -L 4G /dev/vg01/lv01
lvextend -L +1.5G /dev/vg01/lv01
[root@lamp ~]# lvs /dev/vg01/lv01
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg01 -wi-ao---- 2.50g
[root@lamp ~]# lvextend -L 4G /dev/vg01/lv01
Size of logical volume vg01/lv01 changed from 2.50 GiB (640 extents) to 4.00 GiB (1024 extents).
Logical volume vg01/lv01 successfully resized.
[root@lamp ~]# lvs /dev/vg01/lv01
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg01 -wi-ao---- 4.00g
但是检查发现实际容量并没有改变
[root@lamp ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 2.5G 33M 2.5G 2% /u01
先查看文件系统类型
[root@lamp ~]# mount | grep lv01
/dev/mapper/vg01-lv01 on /u01 type xfs (rw,relatime,attr2,inode64,noquota)
如果是ext4
就用:resize2fs [逻辑卷路径]
同步文件系统
如果是xfs
就用:xfs_growfs [逻辑卷路径]
同步文件系统
[root@lamp ~]# xfs_growfs /dev/vg01/lv01
meta-data=/dev/mapper/vg01-lv01 isize=512 agcount=4, agsize=163840 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=655360, 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 655360 to 1048576
# 同步之后就 正常了
[root@lamp ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 4.0G 33M 4.0G 1% /u01
创建物理卷:pvcreate
pvcreate /dev/sdb1
创建卷组:vgcreate
vgcreate vg01 /de/sdb1
创建逻辑卷:lvcreate
lvcreate -n lv01 -L 1G vg01 # 指定为1G
lvcreate -n lv01 -l 100 vg01 # 指定为100*PE大小
lvcreate -n lv01 -l 100%free vg01 #指定为卷组剩余大小
删除逻辑卷:lvremove
lvremove /dev/vg01/lv01
删除卷组:vgremove
vgremove vg01
说明:卷组里的物理卷没有被使用才可以直接删除卷组
删除物理卷:pvremove
pvremove /dev/sdb1
扩容卷组:vgextend
vgextend vg01 /dev/sdb2
扩容逻辑卷:lvextend
lvextend /dev/vg01/lv01 -L +2G
同步文件系统:
resize2fs /dev/vg01/lv01
把保存到逻辑卷的数据分成n等分,分别写到不同的物理卷,可以提高数据的读写效率;这就是条带化。
如果任何一个涉及到的物理卷出现故障,数据都会无法恢复。
准备好一个磁盘,两个分区
sdc 8:32 0 20G 0 disk
├─sdc1 8:33 0 2G 0 part
└─sdc2 8:34 0 2G 0 part
把sdc1和sdc2都创建为物理卷
命令:pvcreate /dev/sdc[12]
[root@lamp ~]# pvcreate /dev/sdc[12]
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdc2" successfully created.
[root@lamp ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdc1 lvm2 --- 2.00g 2.00g
/dev/sdc2 lvm2 --- 2.00g 2.00g
创建卷组名为vg02,并把物理卷sdc1和sdc2加入到卷组中
命令:vgcreate vg02 /dev/sdc[12]
[root@lamp ~]# vgcreate vg02 /dev/sdc[12]
Volume group "vg02" successfully created
[root@lamp ~]# pvs /dev/sdc[12]
PV VG Fmt Attr PSize PFree
/dev/sdc1 vg02 lvm2 a-- <2.00g <2.00g
/dev/sdc2 vg02 lvm2 a-- <2.00g <2.00g
命令:lvcreate -n lv01 -L 1G vg02 -i 2 /dev/sdc1 /dev/sdc2
-i
:给出条带化的数量vg02
中创建一个名为lv01
的逻辑卷,这个逻辑卷有条带化功能,分别把数据分成2等份分别写到sdc1
和sdc2
中[root@lamp ~]# lvcreate -n lv01 -L 1G vg02 -i 2 /dev/sdc1 /dev/sdc2
Using default stripesize 64.00 KiB.
Logical volume "lv01" created.
# lv01逻辑卷大小为1G
[root@lamp ~]# lvs /dev/vg02/lv01
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg02 -wi-a----- 1.00g
可以看到sdc1
和sdc2
都少了500M的空间,也就是各自分配了500M给lv01
逻辑卷
[root@lamp ~]# pvs /dev/sdc[12]
PV VG Fmt Attr PSize PFree
/dev/sdc1 vg02 lvm2 a-- <2.00g <1.50g
/dev/sdc2 vg02 lvm2 a-- <2.00g <1.50g
[root@lamp ~]# mkfs.xfs /dev/vg02/lv01
[root@lamp ~]# mount /dev/vg02/lv01 /u2
测试
iostat命令可以监控磁盘的使用情况
安装:yum -y install sysstat
使用iostat命令监控:iostat -m -d /dev/sdc[12] 2
-d
:查看磁盘-m
:什么速度显示,每M秒2
:每隔2秒显示模拟写数据,往lv01
的挂载目录/u2
写1000M的数据
命令:dd if=/dev/zero of=/u2/test bs=1M count=1000
[root@lamp ~]# pvs /dev/sdc[12]
PV VG Fmt Attr PSize PFree
/dev/sdc1 vg02 lvm2 a-- <2.00g <1.50g
/dev/sdc2 vg02 lvm2 a-- <2.00g <1.50g
对某个逻辑卷的数据做镜像,起到数据备份的作用
当前环境
├─sdc5 8:37 0 3G 0 part
└─sdc6 8:38 0 3G 0 part
[root@lamp ~]# pvcreate /dev/sdc[56]
[root@lamp ~]# pvs /dev/sdc[56]
PV VG Fmt Attr PSize PFree
/dev/sdc5 lvm2 --- 3.00g 3.00g
/dev/sdc6 lvm2 --- 3.00g 3.00g
[root@lamp ~]# vgextend vg02 /dev/sdc[56]
Volume group "vg02" successfully extended
[root@lamp ~]# vgs vg02
VG #PV #LV #SN Attr VSize VFree
vg02 6 1 0 wz--n- 13.97g 12.97g
[root@lamp ~]# lvcreate -n lv02 -L 2G vg02 -m 1 /dev/sdc[56]
Logical volume "lv02" created.
-m
:给出镜像个数,1表示1个镜像
创建2G镜像逻辑卷后,sdc5和sdc6各自少了2G
[root@lamp ~]# pvs /dev/sdc[56]
PV VG Fmt Attr PSize PFree
/dev/sdc5 vg02 lvm2 a-- <3.00g 1016.00m
/dev/sdc6 vg02 lvm2 a-- <3.00g 1016.00m
[root@lamp ~]# mkfs.xfs /dev/vg02/lv02
[root@lamp u2]# mount /dev/mapper/vg02-lv02 /u2
在/u2
:目录创建文件
[root@lamp u2]# touch /u2/file{1..4}
[root@lamp u2]# mkdir /u2/dir{1..4}
损坏一个磁盘(sdc5),测试数据是否在第二个物理卷中
[root@lamp u2]# dd if=/dev/zero of=/dev/sdc5 bs=1M count=100
再次查看物理卷发现有一个unknown Device
[root@lamp u2]# pvs
/dev/sdc6 vg02 lvm2 a-- <3.00g 1016.00m
[unknown] vg02 lvm2 a-m <3.00g 1016.00m
将损坏的磁盘从卷组中移除
命令:vgreduce vg02 --removemissing --force
将vg02
卷组中损坏的磁盘移除,也就是损坏的sdc5
再次查看挂载点/u2
数据依然存在
[root@lamp u2]# ls
dir1 dir2 dir3 dir4 file1 file2 file3 file4
注意:挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据
给vg02卷组下的的逻辑卷lv02
创建快照
[root@lamp u2]# lvcreate -L 128M -s -n lv02_snap /dev/vg02/lv02
Logical volume "lv02_snap" created.
[root@lamp u2]# lsblk
vg02-lv02_rmeta_0 253:6 0 4M 0 lvm
└─vg02-lv02-real 253:11 0 2G 0 lvm
├─vg02-lv02 253:10 0 2G 0 lvm /u2
└─vg02-lv02_snap 253:13 0 2G 0 lvm
挂载快照到/mnt/lv02_snap/
如果是xfs文件系统:mount -o nouuid,ro /dev/vg02/lv02_snap /mnt/lv02_snap/
如果是ext4文件系统:mount -o ro /dev/vg02/lv02_snap /mnt/lv02_snap/
扫描快照
[root@lamp mnt]# lvscan
ACTIVE Original '/dev/vg02/lv02' [2.00 GiB] inherit
ACTIVE Snapshot '/dev/vg02/lv02_snap' [128.00 MiB] inherit
[root@lamp mnt]# dmsetup ls --tree
vg02-lv02_snap (253:13)
├─vg02-lv02_snap-cow (253:12) 保存原卷改变前的数据
│ └─ (8:33)
└─vg02-lv02-real (253:11) 真实的逻辑卷(原卷)
├─vg02-lv02_rimage_1 (253:9)
│ └─ (8:38)
├─vg02-lv02_rmeta_1 (253:8)
│ └─ (8:38)
├─vg02-lv02_rimage_0 (253:7)
└─vg02-lv02_rmeta_0 (253:6)
[root@lamp mnt]# lvs /dev/vg02/lv02_snap
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv02_snap vg02 swi-aos--- 128.00m lv02 1.58
[root@lamp mnt]# dd if=/dev/zero of=/u2/test bs=1M count=50
# Data% 发生变化
[root@lamp mnt]# lvs /dev/vg02/lv02_snap
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv02_snap vg02 swi-aos--- 128.00m lv02 40.80
对比快照和原卷数据
[root@lamp lv02_snap]# ls
dir1 dir2 dir3 dir4 file1 file2 file3 file4
[root@lamp lv02_snap]# ls /u2/
dir1 dir2 dir3 dir4 file1 file2 file3 file4 test
修改配置文件:vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 80 # 1396行
snapshot_autoextend_percent = 20 # 1409行
//当快照使用到80%时,自动扩容20%;当snapshot_autoextend_threshold = 100表示关闭自动扩容
磁盘配额的作用就是,限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器…
让文件系统支持配额
临时启用
[root@lamp ~]# mount -o rw,usrquota,grpquota /dev/vg01/lv01 /u01
[root@lamp ~]# mount | grep vg01
/dev/mapper/vg01-lv01 on /u01 type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
永久启动
修改配置文件vim /etc/fstab
/dev/vg01/lv01 /u01 xfs defaults,usrquota,grpquota 0 0
注意: 建议停用SELinux
安装quota:yum -y install quota
[root@lamp ~]# quotacheck -cug /u1
[root@lamp ~]# ll /u1
total 32
-rw------- 1 root root 6144 Jul 25 15:03 aquota.group
-rw------- 1 root root 6144 Jul 25 15:03 aquota.user
drwx------ 2 root root 16384 Jul 25 15:02 lost+found
quotaon -a //启动所有分区的磁盘配额
为test用户设置配额
命令:edquota -u stu1
Disk quotas for user test (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/vg01-lv01 0 10240 15360 0 3 5
soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
hard:又称硬限制,到达这个限制,就完全禁止任何写入
以下三个为磁盘空间的限制设置:
blocks:已使用空间,无需要设置
soft:用户空间使用限制,为软限制,需要设置
hard:用户空间使用限制,为硬限制,需要设置
以下三个为总文件个数的限制:
inodes:已有文件总数,无需要设置
soft:文件总数限制,为软限制,需要设置
hard:文件总数限制,为硬限制,需要设置
测试
[root@lamp ~]# chmod 777 /u1
[root@lamp ~]# su test
[test@lamp root]$ cd /u1
[test@lamp u1]$ touch file{1..10}
dm-2: warning, user file quota exceeded.
dm-2: write failed, user file limit reached.
touch: cannot touch ‘file6’: Disk quota exceeded
touch: cannot touch ‘file7’: Disk quota exceeded
touch: cannot touch ‘file8’: Disk quota exceeded
touch: cannot touch ‘file9’: Disk quota exceeded
touch: cannot touch ‘file10’: Disk quota exceeded
# 只能创建5个文件(硬性设置)
[test@lamp u1]$ ll
total 32
-rw------- 1 root root 7168 Jul 25 15:03 aquota.group
-rw------- 1 root root 7168 Jul 25 15:03 aquota.user
-rw-rw-r-- 1 test test 0 Jul 25 15:27 file1
-rw-rw-r-- 1 test test 0 Jul 25 15:27 file2
-rw-rw-r-- 1 test test 0 Jul 25 15:27 file3
-rw-rw-r-- 1 test test 0 Jul 25 15:27 file4
-rw-rw-r-- 1 test test 0 Jul 25 15:27 file5
drwx------ 2 root root 16384 Jul 25 15:02 lost+found
[test@lamp u1]$
大小,超过10M就会警告(软性设置),不能超过15M
[test@lamp u1]$ dd if=/dev/zero of=/u1/file1 bs=1M count=13
dm-2: warning, user block quota exceeded.
13+0 records in
13+0 records out
13631488 bytes (14 MB) copied, 0.021021 s, 648 MB/s
[test@lamp u1]$ dd if=/dev/zero of=/u1/file1 bs=1M count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.007817 s, 671 MB/s
# setquota -u username block软限制 block硬限制 inode软限制 inode硬限制 分区
# setquota -u jack 80000 100000 15 20 /dev/sda2
# quota jack
# edquota -p testtom robin user1 user2 user3
将test的配额方案复制给后面所有用户
查看单个用户的配额: # quota jack
查看所有用户的配额: # repquota -a
注意:
1、不需要手动执行quotacheck命令对xfs文件系统进行检查,它会在mount的时候自动执行
2、不需要在xfs文件系统的根下生成quota数据文件
查看swap空间大小命令:free -m
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 2G 0 part
│ └─vg01-lv01 253:2 0 1G 0 lvm /u1
├─sdb2 8:18 0 2G 0 part
└─sdb3 8:19 0 2G 0 part
格式化为swap文件系统
[root@lamp ~]# mkswap /dev/sdb3
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=7c2ca810-0ad7-4879-b4d4-045797c4958d
[root@lamp ~]# blkid /dev/sdb3
/dev/sdb3: UUID="7c2ca810-0ad7-4879-b4d4-045797c4958d" TYPE="swap"
[root@lamp ~]# swapon /dev/sdb3
[root@lamp ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2
/dev/sdb3 partition 2097148 0 -3
dd命令可以复制块设备文件
[root@server ~]# dd if=/dev/sr0 of=/rhel6.iso
[root@server ~]# dd if=/dev/sda1 of=/tmp/bak.boot
[root@server ~]#
[root@server ~]# dd if=/dev/zero of=/dev/sda1 bs=1M count=100 //不要执行
if=源文件
of=目标文件
bs=复制数据的大小
count=复制的个数
注意:
1. 一般可以使用dd命令做块设备文件的备份
2. /dev/zero 特殊设备,一般用来模拟一个大文件,源源不断的二进制的bit流;
/dev/null 空设备,类似黑洞
步骤:
1. 使用dd命令模拟大文件
# dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024
2. 格式化大文件
[root@server ~]# mkswap /tmp/swapfile
3.激活大文件
[root@server ~]# swapon -p 1 /tmp/swapfile
-p:指定优先级,数字越大优先级越高,0-32767
4. 查看
[root@server ~]# swapon -s
Filename Type Size Used Priority
/tmp/swapfile file 1048568 0 1
如果开机自动挂载,需要修改文件:/etc/fstab
/swap_file swap swap defautls,pri=1 0 0