磁盘配额quota
/etc/fstab记录的是当前系统挂载分区信息
/etc/mtab记录的是当前系统分区的文件系统信息,每当挂载或卸载都会读此文件
用途:
1.网络服务:wwwserver/mailserver/fileserver/个人空间限制
2.个人:每个用户家目录的空间限制
3.群组:
功能使用前提:
1.针对整个filesystem,不能针对目录而设,如:/dev/sda1
2.kernel需支持quota
3.只针对一般用户,因为root不受限
规范:
1.容量或档案数量限制(block或inode)
2.soft(警告)或是hard(强制)soft
3.当达到soft时,会在一段宽限时间里不断警告(grace time)默认7天,如果不清理空 间,7天过后soft值取代hard值
quotacheck [-avugfM] 挂载的分区
# 扫描文件系统并**建立quota记录文件**
-a扫描所有在/etc/mtab里支持quota的文件系统
-u针对用户扫描,建立aquota.user
-g针对群组扫描,建立aquota.group
-v显示过程
-f强制扫描,并写入新的quota配置文件
-M强制以rw的方式扫描
-----------------------------
quotacheck建立quota配置文件==>quotaon开启服务=>edquota编辑===>repquota查看设置情况统计
-----------------------------
$ quotacheck-avug
quotacheck: Cannotfindfilesystem to check or filesystem not mounted with quota option.
如果是上面显示的现在系统中无支持quota的文件系统。
需要添加:
mount-oremount,usrquota,grpquota /data------------->临时
或
vim/etc/fstab 中加入
--------------------------------
启动/关闭quota服务
quotaon [-avug] quotaoff [-aug] [/mount_point]
--------------------------------
编辑quota
edquota :编辑账号/群组的限量和宽限时间
-uusername
-ggroupname
-t修改宽限时间 ----------------》没法针对某一用户/群组设,只能统一设置
-p复制账号 -u新账号
如:#edquota -u test
soft 警告容量/数量 单位为KB
hard 强制容量/数量 单位为KB
-------------------------------
确认是否设置正确:针对用户或群组显示单一用户或群组的quota情况
quota [-uvs][username] quota[-gvs][groupname]
-u用户
-g群组
-v 用户或群组在各分区(或叫filesystem)的容量设置
-s 使用1024位倍数指定单位kB,MB,GB
eg:#quota -uvs test myquota myquota1
------------------------------
针对整个系统查看quota设置情况
repquota [-avugs]
-a搜索/etc/mtab报告所有的quota情况
-u显示用户的
-g显示群组的
-s 以m为单位显示
-----------------------------
通知用户自己磁盘用量超出了警告,通过邮件形式发出,用户可用mail命令查看
warnquota-------------> 配置文件为/etc/warnquota.conf
让系统自动发起warnquota,在如下文件添加
# vim /etc/cron.daily/warnquota
**0304** *** \* \* /usr/sbin/warnquota**
# chmod 755 /etc/cron.daily/warnquota
-------------------------------
直接设置quota也可以:
setquota-u|g 名称 【block_soft值】【block_hard值】【inode_soft值】 【inode_hard值】文件系统
# setquota -u test 100000 200000 /data
LVM(logical volume manager)逻辑滚动条管理员
注:如无pvcreate等命令需提前装lvm2包
作用:弹性解决磁盘分区(filesystem)扩容
做法:整合多个分区或磁盘成一个大的逻辑磁盘,之后lvm可对其进行增加或删除
pv:各实体分区或硬盘通过fdisk改变其系统标识符为8e(lvm标识)
• 通过pvcreate将分区或硬盘转成pv
vg:各pv组成一个大硬盘即vg
• PV1+PV2+......+PVn=VG>=65534PE=256GB
lv:将vg划分各个小lv,lv类似分区槽 /dev/pvname/lvname ----->lv的全名
pe:为组成lv的区块,默认每个4M,类似block
• nPE=LV
通过调节PE的个数,来调节LV大小,调节PV个数,来改变VG大小;
pvcreate pvdisplay(详细查看) pvscan (简要查看) pvremove
vgcreate vgdisplay vgscan vgextend vgreduce vgchange vgremove
lvcreate lvdisplay lvscan lvextend lvreduce lvremove lvresize
pvcreate 分区
vgcreate -s(pe大小size,可选单位M,G,T)vg名称 pv名称
lvcreate -L 容量 -n lv名 vg名
-l pe数
建立PV----------->**pvcreate [分区或硬盘]**
1.#fdisk /dev/sdb---->l----->t---->8e(lvm系统标识)----->#partprobe(刷新分区表从而不重启)
2.#pvcreate /dev/sdb---------->一次将5块盘一起创建PV
建立VG------------>vgcreate [-s number[M,G,T]] vgname pvname
-s指定pe大小,默认4MB
1.#vgcreate -s 4M vg01 /dev/sdb
建立LV ------------> **lvcreate 【-L/l number[m,g.t]】 【-n lvname】 vgname**
-L 后直接指定lv容量大小(为pe的整数倍) 如:-L 30G
-l 后接pe的个数(在建完vg后查看可得多少pe数)
1.#lvcreate -L 30G -n lv001 vg01 ----------->建的第一个lv分区,其他类似
格式化LV
#mk2fs -t ext4 /dev/vg01/lv001
挂载LV
# mount /dev/vg01/lv001 /mnt
or
#vim /etc/fstab (通过lvdisplay查看uuid挂载,费lvm可用blkid查看uuid)
or
#vim /etc/rc.d/rc.local
调节LV大小
1.加入空闲的实体分区或新加硬盘,通过fdisk改变其为lvm系统标识符8e
2.通过pvcreate将其转化成pv
3.通过vgcreate将组合好的pv转化成整体的vg组
4.通过resize2fs刷新system中的pvgroup组,从而达到增加vg的目的
增加LV大小-------》可在线进行扩容
(一) 先增加物理大小,后增加邏輯大小
1.增加实体分区或硬盘改变其文件系统(eg:加了一块10G的硬盘/dev/sda8)
2.pvcreate /dev/sda8
3.vgextend vg01 /dev/sda8 ------->从而增大vg即有多的pe未分配
增加卷的大小
4.lvresize -L 40G /dev/vg01/lv001 ------>将其加到逻辑分区lv001(原有30g) 上,改变lv大小记录
或
lvextend -L +10G /dev/vg01/lv001
注:此时只是在lvm改变了lv的参数,但文件系统中为改变
增加文件系统的大小记录
5.resize2fs /dev/vg01/lv001 ------>整理刷新改变文件系统记录
ressiz2fs 【 -f (强制resize动作) 】【装置名】【size如只增加部分容量 到此分区则需指定】
(二)
1.通过vgdisplay查看有多少未被分配的pe,从而将委分配的pe加入要扩充容量的lv
2.比照执行上面第4与第5步
减小LV大小------》不允许在线扩容
先減小**邏輯大小,后減小物理大小**
1.umount /dev/vg01/lv001
减小文件系统记录的大小
2.resize2fs /dev/vg01/lv001 5000M------>直接改变lv的大小如之前6GB,现改为 5GB)
减小lv的大小
3.resize2fs -L 5G /dev/vg01/lv001
或
lvreduce -L 5G /dev/vg01/lv001
4.mount /dev/vg01/lv001 /mnt
减小vg的大小-----将某一pv从vg中删掉
1.查看欲删之pv使用情况pvdisplay
2.将欲删之Delpv已使用的数据转移到vg中空闲的pv中(即将Delpv中的pe块做移转)
• pvmove Delpvname Freepvname
3.从vg中删除Delpv
• vgreduce vgname Delpvname
4.从pv中删除Delpv
• pvrmove Delpvname
LVM快照功能,建立快照区,将欲改变的数据的原始数据提前备份,以备后期还原。
只备份有被更改的数据,而未更改的还留在原来的地方。
因快照区域与LV分区共享没有被更改的PE块,故它们都在一个VG中,故vg需有空闲的用于存放被变动数据的原始数据。
快照创建:
lvcreate-l100-s-nlv001_snapshot /dev/vg01/lv001
• -l后接欲将vg中多少空闲的pe块数分配做快照
• -s 表示做快照
• -n 自定义快照名
可通过挂载快照比对发现与被快照的分区中数据一样
mount /dev/vg01/lv001_snapshot /tmp/snapshot
还原被改动过的分区到没改动前的状态:
1.因要删除原始分区的数据,删除也是一种改变,如果删除,原始分区的所有数据都会复制到快照区,可能造成快照区满载放不小,从而导致快照失效,故在删前,先打包备份快照到其他地方。
tar-jcv-f/tmp/backups/lvm.tar.bz2 /tmp/snapshot/*
umount /dev/vg01/lv001_snapshot
lvrmove /dev/vg01/lv001_snapshot
2.删除原始分区数据
umount /dev/vg01/lv001
mk2fs-text4 /dev/vg01/lv001
mount /dev/vg01/lv001 /mnt
3.解压包还原数据
tar-jxv -f/tmp/backups/lvm.tar.bz2 -C /mnt/
领取专属 10元无门槛券
私享最新 技术干货