quota 详解---quota 是什么

什么是quota

  简单的说就是限制用户对磁盘空间的使用量。

  因为Linux是多用户多任务的操作系统,许多人共用磁盘空间,为了合理的分配磁盘空间,于是就有了quota的出现。

quota的用途

显示磁盘使用情况和配额

quota的一般作用对象

(1)针对WWW server 
(2)针对mail server 

quota的限制

(1)仅能针对整个文件系统 
(2)需要kernel的支持 
(3)只对一般用户有效

quota的使用

  测试环境

    RHEL6.6(默认kernel已经支持quota功能)

    /dev/sdb1  供测试的文件系统

    用户组   myquota

    用户   quota1,quota2

  具体操作如下

重新挂/dev/sdb1文件系统,并添加usrquota,grpquota参数

 [root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1
 重新挂载后,/dev/sdb1这个分区就支持quota功能了

    [root@localhost ~]# mount | grep /dev/sdb1
    /dev/sdb1 on /mnt/test type ext4 (rw,usrquota,grpquota)
添加用户组和用户
[root@localhost ~]# groupadd myquota
[root@localhost ~]# useradd -g myquota quota1
[root@localhost ~]# useradd -g myquota quota2  
生成quota配置文件
    [root@localhost ~]# cd /mnt/test/

    [root@localhost test]# quotacheck -ug .  

    [root@localhost test]# ls

    aquota.group aquota.user lost+found 生成quota配置文件

启动quota功能

    [root@localhost test]# quotaon /dev/sdb1
    若要关闭 使用quotaoff命令

修改quota配置文件

配置文件内容如下

     Filesystem blocks soft hard inodes soft hard
    /dev/sdb1 0 0 0 0 0 0

需要修改的是soft/hard的值,单位是KB,soft为警告值,hard为最大值,当磁盘使用量在soft-hard之间,就会发出警告(默认倒计时7天),若超过警告时间,磁盘使用量依然在soft-hard 之间,则会禁止使用磁盘空间。

若修改blocks的soft/hard表示规定用户可以使用的磁盘空间大小(一般都是规定磁盘使用量)

若修改的是inodes的 soft/hard值,表示规定用户可以创建的文件个数. 

    [root@localhost test]# edquota -u quota1    -->修改针对quota1用户的配置        

    Disk quotas for user quota1 (uid 500):
      Filesystem                   blocks          soft            hard         inodes      soft     hard
      /dev/sdb1                         0          100000       200000           0            0          0

    [root@localhost test]# edquota -u quota2    -->修改针对quota2用户的配置

    Disk quotas for user quota2 (uid 501):
      Filesystem                   blocks       soft               hard        inodes     soft     hard
      /dev/sdb1                     0             100000        200000          0             0        0
  

    [root@localhost test]# edquota -g myquota  -->修改针对myquota组的配置

    Disk quotas for group myquota (gid 500):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/sdb1                    251200     100000     300000          3        0        0    

这样配置表示quota1,quota2用户最多使用200M的磁盘空间,超过100M就发出警告并进入倒计时,而myquota组最多使用300M的磁盘空间。

也就是说,虽然quota1,quota2都有200M的最大磁盘空间能使用权限,但他们都属于myquota组,他们的总量不得超过300M

修改权限

    [root@localhost test]# chmod 777 .
    [root@localhost test]# ll -d
    drwxrwxrwx. 3 root root 4096 823 09:36 .
    切换quota1用户,进行测试

    [root@localhost test]# su quota1
    [quota1@localhost test]$ dd if=/dev/zero of=bigfile1 bs=1M count=150
    sdb1: warning, user block quota exceeded.   -->警告

    记录了150+0 的读入
    记录了150+0 的写出
    157286400字节(157 MB)已复制,1.02545 秒,153 MB/秒

再写入一个大文件

    [quota1@localhost test]$ dd if=/dev/zero of=bigfile2 bs=1M count=150
    sdb1: write failed, user block limit reached.
    dd: 正在写入”bigfile2”: 超出磁盘限额 –>超过200M的部分就无法写入了
    记录了46+0 的读入
    记录了45+0 的写出
    47513600字节(48 MB)已复制,0.381467 秒,125 MB/秒

切换quota2用户
    [root@localhost test]# su quota2
    [quota2@localhost test]$ ls
    aquota.group  aquota.user  bigfile1  bigfile2  lost+found
    [quota2@localhost test]$ dd if=/dev/zero of=bigfile3 bs=1M count 50

    记录了50+0 的读入
    记录了50+0 的写出
    52428800字节(52 MB)已复制,0.410838 秒,128 MB/秒

修改警告时间
    [root@localhost test]$ edquota -t

    Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
       Filesystem             Block grace period     Inode grace period
       /dev/sdb1                     7days                          7days
查看quota1的quota信息
    [quota1@localhost test]$ quota -u quota1
    Disk quotas for user quota1 (uid 500): 
       Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
          /dev/sdb1  200000* 100000  200000   6days       2       0       0          -->已经进入警告的倒计时了
查询quota2的quota信息
    [root@localhost test]# quota -u quota2
    Disk quotas for user quota2 (uid 501): 
         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
        /dev/sdb1   51200  100000  200000               1       0       0       
查询myquota组的quota信息
    [root@localhost test]# quota -g myquota
    Disk quotas for group myquota (gid 500): 
         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
          /dev/sdb1  251200* 100000  300000   6days       3       0       0 

总结:


       quotacheck [ -gubcfinvdMmR ] [ -F quota-format ] -a | filesystem

         -a   检查所有/etc/mtab中挂在的文件系统

         -u  只检查用户的quota

         -g  只检查用户组的quota

      quota

        不使用任何参数,查询当前用户的quota信息

        -u  username  查询某用户的quota信息

        -g  groupname  查询某用户组的quota信息

      edquota

        -u username   编辑某用户的quota配置

        -g groupname  编辑某用户组的quota配置

        -t        编辑警告时间的配置

      还有一个综合查询命令是

      repquota

         -a 报告所有支持quota的文件系统

         -u 报告针对user的quota信息

         -g 包裹针对group的quota信息

      一般三个参数一起使用

      [root@localhost test]# repquota -aug
      *** Report for user quotas on device /dev/sdb1
      Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
      User            used    soft    hard  grace    used  soft  hard  grace
------------------------------------------------------
      root      --      20       0       0              2     0     0       
      quota1    +-  200000  100000  200000  6days       2     0     0       
      quota2    --   51200       0       0              1     0     0       


      *** Report for group quotas on device /dev/sdb1
      Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
      Group           used    soft    hard  grace    used  soft  hard  grace
-------------------------------------------------------
      root      --      20       0       0              2     0     0       
      myquota   +-  251200  100000  300000  7days       3     0     0   
<think>好的,用户想知道如何使用'openstack quota show'命令来查看OpenStack的配额信息。首先,我需要回忆一下相关的命令结构和参数。根据引用[2]中的帮助文档,'quota-show'命令用于列出租户或用户的配额,而对应的OpenStack客户端命令应该是'openstack quota show'。 用户可能需要查看特定项目或用户的配额,所以需要确定是否需要指定项目ID或用户ID。根据帮助信息,命令可能需要--project或--user参数来指定目标。例如,查看某个项目的默认配额可能需要使用'quota-defaults',但用户明确提到的是'show'子命令。 接下来,我需要考虑权限问题。执行该命令的用户是否有足够的权限,比如管理员权限,否则可能无法查看其他项目的配额。此外,是否需要安装特定的客户端组件,如引用[1]中提到的nova相关包,但用户可能已经安装好了。 然后,构造具体的命令示例。基本格式可能是'openstack quota show --project <project_id>',如果要查看用户的配额,则加上--user参数。同时,引用[3]说明配额是针对项目的资源限制,所以默认情况下可能只需要项目ID。 还需要提醒用户如何获取项目ID,比如使用'openstack project list'命令来列出所有项目。如果有错误,可能需要检查权限或参数是否正确。此外,用户可能需要了解各配额项的含义,如instances、cores等,引用[3]中的解释可以作为补充说明。 最后,确保命令语法正确,并给出示例,帮助用户正确执行。同时,考虑生成相关问题,如如何修改配额或查看默认配额,以提供更全面的帮助。</think>要查看OpenStack项目的配额信息,可通过`openstack quota show`命令实现。以下是具体步骤和示例: ### 1. 查看指定项目的配额 使用`--project`参数指定项目ID: ```bash openstack quota show --project <项目ID> ``` 输出示例: ``` +-----------------------------+-------+ | Field | Value | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | volumes | 10 | | gigabytes | 1000 | | networks | 3 | | ... | ... | +-----------------------------+-------+ ``` ### 2. 查看用户级配额(若单独配置) 若用户有独立配额,可叠加`--user`参数: ```bash openstack quota show --project <项目ID> --user <用户ID> ``` ### 3. 获取项目ID列表 若不确定项目ID,先执行: ```bash openstack project list ``` ### 关键参数说明 - 配额单位基于项目(project),涵盖虚拟机、CPU、内存等资源[^3] - 默认配额值由系统预定义,可通过`quota-update`修改[^2] - 需要管理员权限才能查看/修改其他项目的配额
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值