磁盘配额在网站、邮件、文件等服务器常见,主要有针对用户、用户组、限制某一目录的的最大磁盘配额。

ext文件系统进能针对整个文件系统配额,xfs可以针对目录配额。配额和文件系统有关。

内核必须支持磁盘配额(CentOS7)。

SELinux下加入特殊权限,可能只能对/home进行配额

针对xfs

针对用户、用户组或个别目录(无法共存)的配额,配额关于容量限制和文件数量限制。,并分软限制和硬限制。

软限制soft在宽限时间grace time下超出并小于硬限制hard的情况下,发出警告。超过宽限时间则软限制的值取代硬限制,锁定使用权。

文件系统的类型查看:df -hT /home

写入参数到/etc/fstab中:vim /etc/fstab 在第四栏添加:usrquota,grpquota

针对配额的限制有:quota/usrquota/uquota针对用户账号   gquota/grpquota针对用户组  pquota/prjquota针对目录。

修改完文件后卸载,重新挂载。检查文件正误,确保系统正常。删除参数时,注销所有一般账户。重新挂载时,注销所有账户。

xfs_quota -x -c "命令如:print列出主机内文件系统参数,df挂载点信息,report磁盘配额,state文件状态"

列出文件系统支持:xfs_quota -x -c "print"

列出挂载点的文件使用情况:xfs_quota -x -c "df -h" /home

列出/home下所有用户的磁盘配额限制值:xfs_quota -x -c "report -ubih" /home

列出目前支持配额的系统是否启用了磁盘配额功能:xfs_quota -x -c "state"

Accounting计算功能,Enforcement实际磁盘配额功能。分用户、组、目录三部分

xfs_quota -x -c "命令如:limit实际限制选项(block inode name,名字为bsoft/bhard/isoft/ihard name),timer设置grace time"

设置用户myquota1的block限制值:xfs_quota -x -c "limit -u bosft=250M bhard=300M myquota1" /home

设置用户组的myquotagrp的block限制值:xfs_quota -x -c "limit -g bosft=950M bhard=1G myquotagrp" /home

设置block的grace time :xfs_quota -x -c "timer -ug -b 14days" /home

测试:xfs_quota -x -c "report -ugbih" /home;xfs_quota -x -c "state"

设置prjquota(针对目录的限制)

首先在/etc/fstab中取消针对用户组的限制然后加入针对目录的限制信息,然后卸载,挂载,重新查看配额状态

建立文件制定方案识别码和目录放在/etc/projects  建立方案名称和标识符在/etc/projid,内容标识码、目录、名称自定

如:echo "10:/home/myquota" >> /etc/projetcs ; echo "myquotaprj:10" >> /etc/projid

然后执行初始化方案:xfs_quota -x -c "project -s myquotaprj"

检查状态:xfs_quota -x -c "print";xfs_quota -x -c "report -pbih" /home;

设置配额限制:xfs_quota -x -c "limit -p bosft=450M bhard=500M myquotaprj" /home

然后检查状态。

配额管理

暂时取消磁盘配额的限制:disable,恢复正常:enable,完全关闭off(重新挂载才可再次启动磁盘配额,用于remove),删除配额限制:remove

如暂时取消用户的磁盘配额的限制:xfs_quota -x -c "disable -u" /home

恢复用户的(其它如 -g -p 在disable选项中):xfs_quota -x -c "disable -u" /home

等。

ext文件系统的配额方案参考:

http://cn.linux.vbird.org/linux_basic/0420quota_1.php

将邮箱和家目录的总和配额限制示例:不同的文件系统下

mv /var/spool/mail /home

ln -s /home/mail /var/spool/mail

然后对/home进行配额

RAID独立冗余磁盘阵列,将多个较小的磁盘组合成为较大的磁盘设备

RAID 0:等量模式,性能最佳:写入RAID时将文件根据chunk的大小切割好,依序写到各个磁盘,数据交错存放,每块磁盘负责的数据量降低,物理安全性降低。

RAID 1:镜像模式,完整备份:同一个数据完整保存在两个磁盘上面。硬盘容量降低一半,写入时写入到各个磁盘。

RAID 10:四块磁盘分为两组,组成两组RAID1,两组RAID1组成一组RAID0。

RAID 5:性能和数据备份的均衡考虑,写入方式同RAID0,但写入了奇偶校验值,磁盘容量减少一块磁盘。支持一块磁盘数据数据损坏的自动恢复情况。需要计算奇偶校验,性能受到影响。

RAID 6:同RAID 5,使用两块磁盘的容量作为奇偶校验,支持两块磁盘的数据恢复。

Spare Disk:热备份磁盘:磁盘损坏时,热备份磁盘替代损坏磁盘,自动数据恢复,并移除损坏磁盘。

硬件磁盘阵列通过磁盘阵列卡来完成,软件磁盘阵列通过软件模拟磁盘阵列。

CentOS提供的mdadm软件支持RAID0 RAID1 RAID5 热备份磁盘等。

硬件磁盘阵列的设备名称为:/dev/sd[a-p]。软件模拟的磁盘名称为:/dev/mdx

使用gdisk工具在gpt分区下创建5个分区测试:假设加入的为sdb{1,2,3,4,5}

创建RAID5 chunk=256K 使用4个磁盘,一个热备份磁盘:

mdadm --create /dev/md0 --auto=yes --level=5 --chunk=256K --raid-devices=4 --spare-device=1 /dev/sdb{1,2,3,4,5}

检查创建结果:mdadm --detail /dev/md0

通过文件检查磁盘阵列的情况:cat /proc/mdstat#中括号的数字表示RAID顺序,S表示热备份U代表正常

格式化stripe(chunk)容量为256KB su=256k容量为4-1,sw=3数据宽度su*3:mkfs.xfs -f -d su=256k,sw=3 -r extsize=768k /dev/md0

挂载和查看:mkdir /srv/raid;mount /dev/md0 /srv/raid; df -hT /srv/raid/

设置磁盘错误:mdadm --manage /dev/md0 --fail /dev/sdb1

删除出错的磁盘:mdadm --manage /dev/md0 --remove /dev/sdb1

添加新的磁盘:mdadm --manage /dev/md0 --add /dev/sdb1

开机自启RAID并挂载:

修改配置文件:vim /etc/mdadm.conf  ;: -r !mdadm --detail /dev/md0 | grep -i uuid

设置添加自动挂载并观察是否完成挂载:vim /etc/fstab; : -r  ! blkid /dev/md0;umount /dev/md0;mount -a ;df -hT /srv/raid

关闭RAID:卸载,覆盖metadata,停止,覆盖RAID数据,检查。

如:umount /srv/raid ; vim /etc/fstab删除数据; dd if=/dev/zero of=/dev/md0 bs=1M count=50;

mdadm --stop /dev/md0;cat /proc/mdstat;vim /etc/mdadm.conf 删除数据

LVM(逻辑卷管理器),弹性调整文件系统容量,整合物理分区,删除或增加物理分区

物理卷PV  实际分区调整系统标识符为8E,通过pvcreate创建物理卷PV

卷组VG    LVM组合形成的大磁盘

物理拓展块PE  LVM的最小存储单元。现今使用64位系统和LVM2功能,突破了卷组的大小

逻辑卷 LV  逻辑卷,设备名通常为/dev/vgName/lvName

弹性修改文件系统容量的方案为调整LV中的PE数量

数据写入LV中分线性模式liner(按顺序使用分区容量,建议),交错模式triped(数据拆分,交错写入分区,数据损坏风险大,性能好)

pvscan扫描硬盘中的PV

创建PV,使用其他的卷:pvcreate /dev/sdb{6,7,8,9}

查找:pvscan,显示PV状态:pvdisplay /dev/sdb9,查看分配情况,pvremove让分区不具有PV属性

创建VG:vgcreate -s 16M bai /dev/sdb{6,7,8}#-s后加PE大小

显示各种信息:vgscan;pvscan;vgdisplay bai

增加VG:vgextend bai /dev/sdb9;vgdisplay bai

删除VG中的PV:vgreduce,设置VG是否启动vgchange,删除一个VG:vgremove

创建LV:lvcreate -L 2G -n baiLv bai#-l 以PE数量参考为大小

显示lvscan,状态lvdisplay,增加移除减少调整:lvextend,lvreduce,lvremove,lvresize

lv作为设备,使用全名。

然后格式化,mkfs.xfs /dev/bai/baiLv

创建挂载目录mkdir /srv/lvm,挂载mount /dev/bai/baiLv /srv/lvm,使用df -hT /srv/lvm。

ext系统支持放大和缩小容量,xfs只用xfs_growfs命令扩大文件系统。

扩大:lvresize -L +500M /dev/bai/baiLv

查看:lvscan

实际情况:df -hT /srv/lvm

xfs_growfs /srv/lvm

xfs_info /srv/lvm,显示增加了agcount数量,并增加了区块数量

使用LVM thin Volume动态调整磁盘使用率

从VG中的剩余容量取出500M作为thin pool设备(磁盘容量存储池):lvcreate -L 500M -T bai/baiPool;lvdisplay /dev/bai/baiPool;lvs bai#查看VG信息

产生一个10G的lv设备:lvcreate -V 10G -T bai/baiPool -n baiThin;lvs bai#查看

转化文件系统并挂载:mkfs.xfs /dev/bai/baiThin ; mkdir /srv/thin;mount /dev/bai/baiThin /srv/thin ;df -hT /srv/thin ;lvs bai

LVM的LV磁盘快照:

开始时快照区和系统区共享所有的PE数据,系统区修改前会将原始数据移动到快照区,快照区去掉系统区PE修改过的块。

查看剩余的PE数量:vgdisplay bai

创建baiLv的快照区:lvcreate -s -l  26 -n baiSnap /dev/bai/baiLv;lvdisplay /dev/bai/baiSnap#查看快照容量等

然后挂载;到/srv/snap;;;

做了修改以后,进行还原:

xfsdump -l 0 -L lvm1 -f /home/lvm.dump /srv/snap#备份

卸载umount /srv/snap,删除/dev/bai/baiSnap

卸载umount /srv/lvm

格式化:mkfs.xfs /dev/bai/baiLv

重新挂载:mount /dev/bai/baiLv /srv/lvm

还原:xfsrestore -f /home/lvm.dump -L lvm1 /srv/lvm

ll /srv/lvm

LVM的关闭:

卸载系统上面的 LVM 文件系统 (包括快照与所有 LV);
使用 lvremove 移除 LV ;
使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
使用 vgremove 移除 VG:
使用 pvremove 移除 PV;
最后,使用 fdisk 修改 ID

umount /srv/lvm /srv/thin /srv/snap

lvremove /dev/bai/baiThin /dev/bai/baiPool /dev/bai/baiLv

vgchange -a n bai

vgremove bai

pvremove /dev/vda{6,7,8,9}

别人的Linux私房菜(15)磁盘配额与高级文件系统管理的更多相关文章

  1. 别人的Linux私房菜(12)正则表达式与文件格式化处理

    vi gerp awk sed支持正则表达式   cp ls不支持,只能使用bash本身的通配符 正则表达式分为基础正则表达式和拓展正则表达式 使用正则表达式注意语系的影响 http://cn.lin ...

  2. liniux备忘录-磁盘配额与进阶文件系统管理

    知识 磁盘配额Quota 可以限制磁盘的使用容量,可以对用户.群组磁盘的最大使用容量. 磁盘配额Quota的使用限制 只能针对整个文件系统. 核心必须支持Quota. 自行编译的核心需要注意 Quot ...

  3. 别人的Linux私房菜(8)Linux磁盘与文件系统管理

    虚拟机的磁盘通常为:/dev/vd[a-p] LVM和软件磁盘阵列 software RAID可以将一个分区格式化为多个文件系统或者多个分区格式化为一个文件系统. 索引式文件系统中:如ext2.ext ...

  4. 别人的Linux私房菜(3)主机规划与磁盘分区

    磁盘阵列:RAID.将数个硬盘整合成为在操作系统看来是一个硬盘. Linux对笔记本电脑的支持:https://www.linux-laptop.net/ 几乎所有硬件设备存放于/dev/目录. SC ...

  5. 鸟哥的linux私房菜之磁盘与文件系统管理

    superblock:记录了该文件系统的整体信息包括inode/block的总量,使用量,剩余量以及文件系统的格式与相关信息. inode:记录档案的属性,一个档案占用一个inode,同事记录此档案所 ...

  6. 别人的Linux私房菜(17)进程管理与SELinux初探

    程序在磁盘中,通过用户的执行触发.触发事件时,加载到内存,系统将它定义成进程,给予进程PID,根据触发的用户和属性,给予PID合适的权限. PID和登陆者的UID/GID有关.父进程衍生出来的进程为子 ...

  7. 别人的Linux私房菜(9)文件与文件系统的压缩

    www网站利用文件压缩技术进行数据传输,提升网络带宽. 压缩命令gzip与显示zcat.zmore.zless.zgrep -c将压缩的数据显示到屏幕上 -d解压缩 -v显示原文件/压缩文件的压缩比等 ...

  8. 别人的Linux私房菜(4)安装CentOS7

    linux磁盘分区参考: 添加磁盘分区(总30G). BIOS boot 2MB 系统自定义文件系统 分区格式为主要分区 /boot 1GB  文件系统为xfs  主要分区 / 10GB 文件系统为x ...

  9. 别人的Linux私房菜(22)软件安装:源代码与Tarball

    执行make,会在当前目录查找makefile文本文件(记录了源代码如何编译的详细信息). 内核相关的函数信息放置在/usr/lib./usr/lib64里. 在Tarball(一般为xxx.tar. ...

随机推荐

  1. yml使用

    yml: value: 可以用单引号或者双引号引起来,这样就不会出现内容中特殊字符含义. yml中   key:value ,如果value是数字需要和前面的冒号隔一个空格,否则获取不到value

  2. 沙箱机制(Sandboxie)

    一.沙箱是什么? 沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序都是独立的,而且不会对现有的系统产生影响. 二.沙箱的应用 (1)搭建测试环境.沙箱的应用只能访问自己的应用访问目录,而不 ...

  3. 搭建redis-sentinel(哨兵机制)集群

    redis怎么才能做到高可用 对于redis主从架构,slave可以对应多个本身可以保障高可用,但是对于一个master节点,如果宕机,整个缓存系统就无法进行写的操作,显然整个系统会无法做到高可用 s ...

  4. 项目需求分析与建议-NABCD模型

    N(Need 需求) 首先我们的创意解决了现有阶段学校查空余教师的问题,充分解决了同学们上自习却找不到教室的苦衷,同时也会适当的拓展一些适当的学习计时功能或者每日一语等等,来帮助同学们来控制好学习时间 ...

  5. TZOJ 2519 Regetni(N个点求三角形面积为整数总数)

    描述 Background Hello Earthling. We're from the planet Regetni and need your help to make lots of mone ...

  6. vcpkg custom triplet

    需求是要弄一个用 pip 发布的python 包,使用 boost-python 桥接 原C++代码,发布时不想带 boost-python 的运行时库,因此需要弄静态的 boost-python库, ...

  7. Populate screen data automatically

    field zz_test-uname. module populate_record on chain-request. module populate_record input. ztlo_tes ...

  8. gitlab 与 jenkins 关联

    一.搭建 gitlab :https://www.cnblogs.com/carriezhangyan/p/10729158.html 二.搭建jenkins :https://www.cnblogs ...

  9. laravel5增删改查

    路由规则: 数据库配置: config/database.php laravel5/.env 控制器: 表单: 展示页面: 修改页面:

  10. Bootstrap+PHP表单验证实例

    简单实用的Bootstrap+PHP表单验证实例,非常适合初学者及js不熟悉者,还有ajax远程验证 js验证表单 1 $(document).ready(function() { 2 $('#def ...