quota是啥?
quota是磁盘配额,主要为用户提供磁盘限额的(简单来说指定某个用户最多可以用多大的空间)。
quota的使用限制?
对EXT系列文件系统,quota仅能针对整个文件系统进行设计,无法对单一的目录进行磁盘配额;而在xfs的文件系统中,可以使用quota对目录进行磁盘配额,因此在进行磁盘配额前,一定要对文件系统进行检查。
核心必须支持quota,centos7默认支持quota功能。
只对一般用户有效,因为root拥有全部的磁盘空间。
若启用SELinux功能,不是所有的目录都能设定quota,默认quota仅能对/home进行设定。
quota使用范围?
xfs_quota命令介绍
lvm是Linux环境下对磁盘分区进行管理的一种机制,是在硬盘分区跟文件系统之间添加的逻辑层。
组成部分:
物理介质:硬盘分区、硬盘、RAID阵列 (物理层)
物理卷(PV):物理卷是lvm的基本存储逻辑快,但是和基本物理存储介质比较,却包含有与LVM相关的管理参数(相当于硬盘上标记了这个分区或者硬盘是lvm的)
卷组(VG):是由一个或者多个PV组成的。
逻辑卷(lv):是建立在VG之上的,可以在lv建立文件系统。
注意:
PE是pv里面的最小存储单位,默认是4MB,也可以手动指定 最大支持256GB
LE是lv中最小的存储单位,在同一VG中,大小和PE是相同的
优点:
1.使用卷组,使多个硬盘空间看起来像是一个大硬盘。
2.使用逻辑卷,可以跨多个硬盘空间分区
3.支持在线动态扩容,不需要重启机器
4.可以灵活调整逻辑卷大小,空间不够,加盘就是。
5.支持对lv,vg进行创建,删除,调整大小等操作,但是Linux文件大小也需要调整。
6.允许创建快照,可以用来保存文件系统备份。(等等百度一下)
RAID和LVM一起使用:
lvm是从软件层面上对硬盘进行管理,使其更好的利益硬盘资源,达到效益最大化。(在线扩容,数据备份)
RAID是从硬件层面上对硬盘进行管理,保障数据安全,提升硬盘使用性能。(传输速度,信息安全)
对于重要的数据,使用RAID来保护物理磁盘不会因为故障而中断业务,再用LVM用来实现对卷的良性管理,能更好的利用磁盘资源
相关参数
pv vg lv通用命令参数:scan 扫描 create 创建 display 显示 remove 移除
vg lv特有命令参数:extend k扩展 reduce 减少
用法:pvscan pvcreate pvdispaly pvremove vgscan lvscan等等
流程: pvcreate 创建 pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv 格式化-> mount 挂载*
[root@Rendering ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@Rendering ~]# pvs
/dev/sdb2 lvm2 --- 1.00g 1.00
[root@Rendering ~]# pvscan
PV /dev/sdb43 lvm2 [5.00 GiB]
Total: 4 [19.00 GiB] / in use: 0 [0 ] / in no VG: 4 [19.00 GiB]
[root@Rendering ~]# pvdisplay
"/dev/sdb4" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb4
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID wbKoUV-qetw-nulh-Bua9-27ME-qrNj-2aeOIA
[root@Rendering ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 10.00g 10.00g
/dev/sdb4 lvm2 --- 5.00g 5.00g
/dev/sdb5 lvm2 --- 3.00g 3.00g
/dev/sdc1 lvm2 --- 1.00t 1.00t
/dev/sdc2 lvm2 --- 1.00t 1.00t
/dev/sdc3 lvm2 --- <952.00g <952.00g
[root@Rendering ~]# vgcreate vg1 /dev/sdb2 /dev/sdb3
Volume group "vg1" successfully created
[root@Rendering ~]# vgcreate vg2 /dev/sdb4 /dev/sdb5
Volume group "vg2" successfully created
[root@Rendering ~]# vgcreate tg1 /dev/sdc1
Volume group "tg1" successfully created
[root@Rendering ~]# vgs
VG #PV #LV #SN Attr VSize VFree
tg1 1 0 0 wz--n- <1024.00g <1024.00g
vg1 2 0 0 wz--n- 10.99g 10.99g
vg2 2 0 0 wz--n- 7.99g 7.99g
[root@Rendering ~]# vgdisplay
--- Volume group ---
VG Name vg1
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 10.99 GiB
PE Size 4.00 MiB
Total PE 2814
Alloc PE / Size 0 / 0
Free PE / Size 2814 / 10.99 GiB
VG UUID dey2CE-EgUY-YdOz-21V1-XhhT-3jcg-JS3ERu
用法:lvcreate -n lv名 -L 大小 卷组 卷组下的设备
[root@Rendering ~]# lvcreate -n tg-hr -L 500G tg1 /dev/sdb2
[root@Rendering ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
tg-hr tg1 -wi-a----- 500.00g
[root@Rendering ~]# lvdisplay
--- Logical volume ---
LV Path /dev/tg1/tg-hr
LV Name tg-hr
VG Name tg1
LV UUID iCYGGl-fMGV-S1nV-lekf-DU63-YvYY-f3VWrZ
LV Write Access read/write
LV Creation host, time Rendering, 2018-11-17 00:21:23 +0800
LV Status available
# open 0
LV Size 500.00 GiB
Current LE 128000
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
[root@Rendering ~]# mkfs.xfs /dev/ig/ig-hr
[root@Rendering ~]# mkdir /ig-hr
[root@Rendering ~]# mount /dev/ig/ig-hr /ig-hr/
[root@Rendering ~]# echo "UUID="bf1f9060-f8b8-4432-b0e9-1a7392f8c333" /ig-hr xfs defaults 0 0">> /etc/fstab # 最好挂载目录吧 不知道怎么回事通过UUID进行挂载还失败了 /dev/ig/ig-hr /ig-hr
思路:新建lvm的过程:准备物理存储介质-》创建pv-》创建vg-》创建lv-》格式化文件系统,挂载。
那么在线扩容:就是当lv空间不足时,就找vg去划分空间过来,如果vg也没有剩余空间了,就找pv拿空间,如果pv没有了,只能加盘,新建pv。
#前置步骤(满足条件可以忽略):
[root@Rendering ~]# df -Th
/dev/mapper/QW-QW--HP xfs 49M 2.8M 46M 6% /QW-HP
现在:lvm QW-HP现在剩余2.8m空间,那么需要扩容300M
[root@Rendering ~]# vgs #查看当前vg是否有空间(lv不能跨vg扩容)
VG #PV #LV #SN Attr VSize VFree
QW 1 1 0 wz--n- 96.00m 44.00m
ig 1 1 0 wz--n- <1024.00g <224.00g
注:结果显示QW只剩余44m,已经不能满足我们的需求了,那么去查看是否还有剩余pv
[root@Rendering ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb2 vg1 lvm2 a-- 1020.00m 1020.00m
/dev/sdb3 vg1 lvm2 a-- <10.00g <10.00g
/dev/sdb4 vg2 lvm2 a-- <5.00g <5.00g
/dev/sdb5 vg2 lvm2 a-- <3.00g <3.00g
/dev/sdc1 tg1 lvm2 a-- <1024.00g <524.00g
/dev/sdc2 ig lvm2 a-- <1024.00g <224.00g
/dev/sdc3 QW lvm2 a-- 96.00m 44.00m
注意:没有多余的剩余pv了,那么只能从物理存储找空间或者其他的pv移除他那组加到我们需要扩容的vg中添加物理存储:
#准备物理存储介质
[root@Rendering ~]# echo "- - - " > /sys/class/scsi_host/host0/scan #刷新硬盘
[root@Rendering ~]# gdisk /dev/sdd
[root@Rendering ~]# lsblk
sdd 8:48 0 20G 0 disk
└─sdd1 8:49 0 500M 0 part
#vg扩容
[root@Rendering ~]# pvcreate /dev/sdd1
[root@Rendering ~]# vgextend QW /dev/sdd1
[root@Rendering ~]# vgs QW
VG #PV #LV #SN Attr VSize VFree
QW 2 1 0 wz--n- 592.00m 540.00m
#lv扩容
用法:lvextend -L 大小 -r lv对应设备(指定lv设备,会自动去lv设备对应的vg里面找空间来为当前lv增加空间)
[root@Rendering ~]# lvextend -L 300M -r /dev/QW/QW-HP # -L 300m是指定大小 -L +300是增加大小 -r重置文件系统(ext4、xfs都支持)
[root@Rendering ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
QW-HP QW -wi-ao---- 300.00m #扩容成功
注意:lvextend -L 300M /dev/QW/QW-HP 这样没加r的话还得自己重新去格式化文件系统
xfs格式:
[root@Rendering ~]# xfs_growfs /dev/QW/QW-HP #xfs_growfs只支持增大,动态扩容
ext4:
[root@Rendering ~]# resize2fs /dev/tg1/tg-hr #注意:会重新格式文件系统,先做好数据备份
总结:
增加卷组容量:vgextend 卷组名 pv设备
增加lv容量 :lvextend -L 大小 -r 新增的卷组设备目录 加-r就不用格式化文件系统 不加就得继续格式化文件系统 xfs是 xfs_greows ext4是 resize2fs
umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷-> vgremove vg 移出卷组-> pvremove 移出 pv->将fstab挂载信息清除
1.取消挂载逻辑卷
[root@Rendering ~]# umount /QW-HP/
2.删除lv (找到QW-HP设备的绝对路劲)
[root@Rendering ~]# lvremove /dev/QW/QW-HP
3.查看/QW-HP的卷组信息并且删除
[root@Rendering ~]# vgs
[root@Rendering ~]# vgremove QW
4.查看没有卷组的逻辑卷信息并且删除
[root@Rendering ~]# pvs
[root@Rendering ~]# pvremove /dev/sdc3
5./etc/fstab 删除对应挂载点信息
[root@Rendering ~]# yum install system-storage-manager #安装ssm软件包(默认没有安装)
[root@Rendering sdb1]# ssm list dev #列出当前设备所有信息
------------------------------------------------------------
Device Free Used Total Pool Mount point
------------------------------------------------------------
/dev/sda 20.00 GB PARTITIONED
/dev/sda1 500.00 MB /boot
/dev/sda2 2.00 GB SWAP
/dev/sda3 10.00 GB /
/dev/sdb 20.00 GB
/dev/sdb1 600.00 MB /sdb1
/dev/sdb2 19.41 GB 0.00 KB 19.41 GB qw
/dev/sdc 20.00 GB
/dev/sdc1 20.00 GB
/dev/sdd 2.93 TB
/dev/sdd1 952.00 GB 2.00 TB 2.93 TB qw
/dev/sde 3.00 TB
/dev/sde1 1024.00 GB 2.00 TB 3.00 TB qw
[root@Rendering sdb1]# ssm list pool = lvs #列出当前存储池
----------------------------------------------
Pool Type Devices Free Used Total
----------------------------------------------
qw lvm 3 1.95 TB 4.00 TB 5.95 TB
用法:ssm create -s lv大小 -n lv名称 --fstype lv文件系统类型 -p 卷组名 设备 挂载点
[root@Rendering sdb1]# ssm create -s 10G -n hp-hr --fstype xfs -p hp /dev/sdc1 /hp-hr #自动把设备变成 pv,创建 vg , lv ,格式化文件系统, 自动挂载 一步完成 写入/etc/fstab 还需要自己手动
[root@Rendering sdb1]# lvdisplay -m
--- Logical volume ---
LV Path /dev/qw/qw-hr
LV Name qw-hr
VG Name qw
LV UUID xTYEeE-CcM5-jeJo-RX53-bryv-lzgf-dWd3td
LV Write Access read/write
LV Creation host, time Rendering, 2018-11-18 19:08:56 +0800
LV Status available
# open 1
LV Size 2.00 TiB
Current LE 524288
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 0
Block device 253:0
--- Segments ---
Logical extents 0 to 524287:
Type linear
Physical volume /dev/sde1
Physical extents 0 to 524287
[root@Rendering sdb1]# df -Th /hp-hr/
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/hp-hp--hr xfs 10G 33M 10G 1% /hp-hr