设为首页 收藏本站
查看: 401|回复: 0

[经验分享] Llinux 磁盘配额的搭建和常规问题解答

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-19 11:13:30 | 显示全部楼层 |阅读模式
        1 磁盘配额的使用限制

        仅针对整个分区:磁盘配额实际运行时,是针对“整个分区”进行限制的,例如,如果/dev/hda5载入在/home下,那么,在/home下面的所有目录都会受到限制。只对一般身份用户有效:并不是所有在Linux上的账号都可以设置磁盘配额,例如root就不能设置磁盘配额,因为他拥有整个系统所有的数据。


        2 磁盘配额的步骤

        (1) 启动分区配额功能
        (2) 生成配额信息文件
        (3) 设置用户和组配额
        (4) 启动磁盘配额服务


        3 磁盘配额的具体实现

        首先确认package已经安装
       
        [root@51ou.com ~]# rpm -q quota
        quota-3.13-1.2.5.el5

        确认内核支持quota磁盘配额。
        [root@51ou.com ~]# grep CONFIG_QUOTA/boot/config-`uname -r`
        CONFIG_QUOTA=y
        CONFIG_QUOTACTL=y

        插上一块新硬盘为5G大小随后进入系统
        Fdisk–l查看硬盘信息,因为是第二块硬盘所以标明/dev/sdb为5G
        Fdisk–cu /dev/sdb编辑第二块硬盘为其创建分区
        Command(m for help):m如果是第一次使用的话点击m查看整个菜单的详细信息
        其中的详细内容就不在此一一解释,后续会单独出一片文档讲解磁盘的的使用
        Command  (m for help) :n  进行分区
        Commandaction
               E  extended
               P  partition (1-4)
        P  选择P进行分区选择
        Partitionnumber (1-4):1 选择分区号,如果是新硬盘第一次创建的话选择1,如果老硬盘之前分区了几次依次往后推,不能超过4,连按两下enter
        Lastsector, +sectors or +size{K,M,G} :+G 为分区添加多大的空间G一定要大写
        Command(m for help ):p将之前的配置信息打印出来
        Command(m for help ):w将之前配置的信息保存
        Partx–a /dev/sdb  重新加载下磁盘
        Mkfs.ext4/dev/sdb1选择相应的分区号进行格式话,如果不格式话的话,不能进行挂载
        Df –h使用命令查看下系统中的挂载情况
        Mkdir/mnt/quota我这边创建一个文件当做挂载地点
        Mount/dev/sdb1 /mnt/quota
        Df –h再次使用命令查看下挂载情况
        Mount查看下挂载信息最后一行可以看到/dev/sdb1 on /mnt/quota type ext4 (rw)
        Vim/etc/fstab将挂载信息写入其中,进行开机自动挂载,在最后一行写入
        /dev/sdb1       /mnt/quota     ext4   defaults,usrquota,grpquota  1 2
        Mount–o remount /mnt/quota不在重启服务器的前提下使用重新挂载分区
        Mount 查看下最后一行的信息是否改变 /dev/sdb1 on /mnt/quota type ext4 (rw,usrquota,grpquota)出现了这样的信息才说明挂载成功了
        Quotacheck–cumg  /mnt/quota  这个命令的主要目的是扫描某个磁盘的配额空间,它会针对分区进行扫描,并且,由于该磁盘持续欲行,可能扫描过程中文件会增加,造成磁盘配额扫描错误,因此,当使用quotacheck时,该磁盘将“自动被设置为只读扇区”;扫描完毕后,扫描所得的磁盘空间结果会写入该区最顶端(aquota.user与aquota.group)
        -c 代表创建
        -m 代表强制执行
        -u 针对用户进行扫描文件及目录,会建立aquota.user
        -g 针对组进行扫面文件及目录,会建立aquota.group
        注意如果出现了
        quotacheck: Cannot create new quotafile/mnt/quota/aquota.user.new: Permission denied
        quotacheck: Cannot initialize IO on new quotafile: Permission denied
        quotacheck: Cannot create new quotafile /mnt/quota/aquota.group.new: Permissiondenied
        quotacheck: Cannot initialize IO on new quotafile: Permission denied
        出现以上问题是你的权限不足,此时的原因是SElinux 建议你进行关闭,使用以下命令进行关闭
        Setenforce0
        Quotaon–a将所有的磁盘分区都开启
        Useraddlwh 创建用户lwh
        Passwdlwh为lwh创建密码
        Edquota–u lwh 将lwh这个用户进行磁盘配额
        Disk quotas for user lwh (uid 501):
        Filesystem    blocks   soft   hard   inodes  soft    hard    (为其创建10M的硬设置,3个文件软限制和4个文件硬限制)
        /dev/sdb1       5      0    10240           3      4
        Soft 是其软限制如果超过了软限制会有一个提示信息,如果在7天之内没有将空间降到软限制以下就不允许其使用
        Hard 是其硬限制,如果到达硬限制则无法继续使用
        Edquota–t修改提示天数
        Filesystem  Block grace period   Inode grace period
        /dev/sdb1    7days              7days
        inode与block使用说明
        磁盘配额限制空间使用的方法有两种,即分别对inode和block进行限制。磁盘配额可以限定用户在分区中使用的空间大小(blocks),也可以限定用户可以在分区中最多创建的文件数(inodes),需要注意的是,只要用户所创建的文件超过他可以使用的inode数额,即使这些文件是空的,他再次创建文件的行为也将被限制。
        此处说明一下inode的概念。在Linux中创建一个文件,系统就为该文件分配一个惟一的inode ,文件的inode用于访问文件的属性。也就是说,Linux系统中每个文件都要对应一个inode,通俗点说Linux内核不认识字母,所以用户要有UID、用户组要有GID、进程要有PID……,文件要有inode ,一旦inode丢失文件将无法被访问。

        在测试的过程中必须在其挂载的位子进行测试

        现在测试block

        Cd/mnt/quota
        Chmod757 /mnt/quota  给quota的文件添加其他用户写的权限,或则你这后面切换到其用户中无法写入文件
        Sulwh
        Touchluowenhao
        Ddif=/dev/sdb1  of=luowenhao bs=1024kcount=20480     命令将生成一个固定大小的文件。其中“if”表示输入,伪设备/dev/zero不断生成字符串“0”,初始化文件;“of”表示输出,此例为在用户当前 目录下生成文件“quotatest”;“bs”为“block size”指定数据块大小,单位设定为“1024k”即1MB;“count”为总计生成的文件(“quotatest”)大小,若“bs”为1MB,则“10240000”为10000GB。
        会出现以下提示
        Sdb1: write failed,user block limitreached.
        Dd: 正在写入“luowenhao”:超出磁盘限额

        现在测试inode

        Cd/mnt/quota
        Sulwh
        Touch 1
        Touch2
        Touch3
        Touch4  当创建完4文件系统提示sdb1:warning, userfile quota exceeded.
        Touch5  当创建5文件时提示sdb1:write  failed,user file limit reached. Touch :“无法创建5”超出磁盘限额


        重启服务器过程中出现以下的一些问题的解决办法

        give root password for maintenance    当linux系统被强行关闭或者重新启动,电脑的档案系统便有可能受损,系统会自动检查并修复档案系统,当档案系统未能自动修复,画面便会出现上述讯息。

        在服务器启动的过程中出现以上的报错信息,查看failed那一行出现的报错提示 我这之前出现过,在搭建quota时在/etc/fstab添加了LABLE=/dev/sdb1开机自动挂载的命令导致服务器启动的过程中系统不能自动加载。

        常规的修复方法

        Giveroot password for maintenance
        (ortype Control-D to continue):输入密码后 出现了:
        (Repairfilesystem)1 #
        E2fsck–y /devsdb1选中之前出现的错误的分区进行修复
        系统即会自动修复并于画面显示修复进度
        完成后按exit,在reboot进行系统重启

        终极暴力方法

        Giveroot password for maintenance
        (ortype Control-D to continue):输入密码后 出现了:
        (Repairfilesystem)1 #
        进入/etc/fstab中将LABLE一行删除,但是此时你进入的/etc/fstab时文件会提示当前你只有read-only(读的权限)因此导致你删除完后使用wq!强制保存也是不行的,只能q!退出后。使用下面的终极杀招
        Mount–w –o remount /
        Mount/dev/sdb1   /mnt/quota  这里必须记住,之前在搭建quota时使用的是哪个分区而且挂载在那个路径下我这是/mnt/quota
        Vim/etc/fstab现在可以进入其中将LABLE这一行进行删除保存退出
        Reboot 就可以进行重启


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-41063-1-1.html 上篇帖子: linux下的/etc/passwd和/etc/shadow详解 下篇帖子: linux软件安装rpm、srpm,yum功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表