磁盘配额(Quota)与高级文件系统管理

Quota

quota一般用途
        WWW服务显示每个人网页容量
        mail服务限制每个人邮件容量
        file服务限制每个人网络存储容量
        针对群组限制磁盘容量
        针对用户限制磁盘容量
        EXT:使用link方式限制目录配额
        XFS:针对目录限制磁盘容量
使用限制
1、EXT文件系统类型下仅对整个文件系统有效,XFS可以针对目录限制
2、内核支持quota
3、仅对一般使用者有效,root无效
4、启用selinux,则并非所有目录都能设置quota


XFS的quota
1、可针对群组、用户和目录限制
2、容量限制和文件数量限制
        限制inode数量:文件数量限制
        限制block数量:容量限制
        告警阈值(soft)和限制阈值(hard)
                限制阈值(soft):被限制者不可能超过的使用量,超过则锁定用户磁盘使用
                告警阈值(hard):被限制者超过该阈值后,每次登录都会给予警告,并在宽限时间过后锁定用户磁盘使用
                宽限时间(grace time):达到soft且未达到hard,会给予一定时间的警告,超过该时间磁盘使用容量仍不低于soft,则直接锁定用户磁盘使用,即将soft转变成hard

EXT

挂载文件系统,使文件系统(挂载点)支持quota
mount -o remount,usrquota,grpquota 文件系统(挂载点)
如果需要开机启动就生效,在/etc/fstab中的挂载参数添加usrquota,grpquota

quota记录文件(注意selinux的影响)
quotacheck:扫描文件系统并建立quota记录文件
quotacheck [-avugfM] [挂载点]
        -a:扫描所有在/etc/mtab内,含有quota支持的文件系统,加上该参数则挂载点参数可以省略
        -v:显示扫描过程
        -u:针对用户扫描使用情况,在文件系统(挂载点)下会建立aquota.user
        -g:针对群组扫描使用情况,在文件系统(挂载点)下会建立aquota.group
        -f:强制扫描文件系统,并写入新的quota记录文件(危险)
        -M:强制以读写方式扫描文件系统,特殊情况下使用

quota启动、关闭与设置

启动
quotaon [-avug]
quotaon [-vug] [挂载点]
        -a:根据/etc/mtab的文件系统设置启动,若省略该参数则要添加文件系统(挂载点)参数
        -v:显示启动过程
        -u:针对用户启用
        -g:针对群组启用

关闭
quotaoff [-a]
quotaoff [-ug] [挂载点]
参数意义同上

设置
edquota [-u 用户] [-g 群组]
edquota -t
edquota -p 参考范例 -u 新用户
        -u:要设置quota的用户
        -g:要设置quota的群组
        -t:修改宽限时间
        -p:参考范例,根据该范例设置新用户的quota

quota报表
用户或群组报表
quota [-uvs] [账户]
quota [-gvs] [群组]
        -s:使用1024为倍数来指定单位,易读?

文件系统报表
repquota -a [-vugs]        

warnquota:超额警告信息
超过soft则通过email发送警告信息
配置文件/etc/warnquota.conf
手动执行命令warnquota

setquota:直接通过指令设置quota
语法严格
setquota [-u|-g] 名称 block(soft) block(hard) inode(soft) inode(hard) 文件系统(挂载点)

通过将文件夹移动到可以quota的文件系统下面,在通过link方式链接到原本的位置,可以实现对文件夹的限额

XFS

xfs_quota

 

逻辑卷管理(LVM)

逻辑卷的创建

LVM可以弹性调整文件系统容量
PV(physical volume),实体卷
实际分区或者磁盘调整系统识别码为8e,通过pvcreate转化成PV

VG(volume group),卷群组
VG是通过LVM将PV组合成的大磁盘,322位Linux,VG<=65534*PE,64位无限制

PE(physical extent),实体范围区块
LVM最小的存储区块,默认使用4MB的PE区块,类似于block

LV(logical volume),逻辑卷
LV类似于分区,LV的大小是PE的整数倍

 

 

PV的创建与移除
先将磁盘识别码调整为8e,gdisk fdisk
pvcreate:将实体分区或磁盘创建成为PV
pvscan:搜索系统里面的PV磁盘
pvdisplay:显示目前系统上的PV状态
pvremove:将PV属性移除

VG的创建与移除
vgcreate:创建VG
vgscan:搜索系统里面的VG
vgdisplay:显示目前系统上的VG状态
vgextend:VG内增加PV,扩大VG容量
vgreduce:VG内移除PV,减小VG容量
vgchange:设置VG是否启动
vgremove:删除VG
vgcreate [-s N[mgt]] VG名称 PV名称
        -s:PE的大小,单位m、g、t。默认4MB

LV的创建与移除
lvcreate:创建LV
lvscan:搜索系统里面的LV
lvdisplay:显示目前系统上的LV状态
lvextend:扩大LV容量
lvreduce:减小LV容量
lvremove:删除LV
lvresize:调整LV容量,增加为+,减少为-
lvcreate [-L N[mgt]] [-n LV名称] VG名称
lvcreate [-l N] [-n LV名称] VG名称
        -L:容量,单位为m、g、t。大小为PE整数倍,否则系统自行计算最相近的容量
        -l:PE个数
        -n:LV名称

LV创建完后,就可以进行文件系统的创建了

LVM thin Vloume
可以先创建一个可以实际使用多少才分配多少容量的磁盘容量存储池(thin pool),再由这个存储池去产生一个指定容量的LV设备(大小可以超过现有实际容量)
lvcreate --type thin
创建后如何增加实际容量???通过扩容LV???

 

LV容量调整

扩容条件:
1、VG有剩余容量
2、LV将VG加入扩容
3、文件系统扩容,该步骤后才能在系统中看到实际扩容效果

EXT4

容量扩大、支持在线扩容
1、修改分区或磁盘的系统识别码为8e
2、pvcreate创建pv
3、vgextend将PV加入VG
4、lvresize将新加入的PV内的PE加入LV
5、resize2fs将文件系统刷新扩容


容量缩小、不支持在线缩容
1、卸载LV
2、resize2fs将文件系统容量缩小至特定容量,容量仅支持整数
3、lvresize将缩小容量对应的PE数量从LV移除
4、pvdisplay确认需要移除的目标分区/磁盘对应的PV是否有数据占用,如果有,通过pvmove将目标分区/磁盘对应的PV的PE移到其他PV
5、vgreduce从VG移除目标分区/磁盘对应的PV
6、pvremove移除目标分区/磁盘对应的PV

XFS

不支持容量缩小,支持在线扩容
lvresize:LV扩容
xfs_growfs:文件系统扩容

LVM的LV磁盘快照

磁盘快照snapshot

快照区与被快照区的LV必须在同一个VG上面

快照区创建
lvcreate -s|--snapshot

通过快照还原
备份快照区格式化现有数据区
还原快照备份文件到原本的数据区

LVM关闭

卸载LVM文件系统
使用lvremove移除LV
使用vgchange -a n VG让VG不激活
使用vgremove移除VG
使用pvremove移除PV
使用fdisk/gdisk修改系统识别码(不为8e)

 

 

你可能感兴趣的:(centos学习,鸟哥的Linux私房菜)