ディスククォータ


一、ディスク割り当てとは
ディスク割当額は文字通り1つのディスクに何額を配置するか、quotaは何額の限度額があるかという意味なので、総じてディスク領域の使用量を制限します.Linuxはマルチユーザマルチタスクのオペレーティングシステムなので、多くの人が共通のディスクスペースを持っています.例を挙げると/homeディレクトリは普通のユーザーの家のディレクトリを格納する場所です.私たちはhomeディレクトリに10 Gのスペースがあり、homeの下には3人のユーザーがいます.通常の区分では、一人当たり333 Mのスペースがあるはずです.しかし、中には自宅ディレクトリの下にオーディオファイルが多く格納されて8 Gのスペースを占めているユーザーがいて、他のユーザーには不公平に見えますが、ディスク容量の公平な割り当てを望む場合はquotaで実現します.
二、quotaのよくあるタイプと注意事項
(1)注意事項1.wwwサーバに対して、例えば個人のウェブページ空間の容量限度額.2.mail serverに対して、例えば個人のメールスペースを限度額にする.3.file serverの場合、例えば個人に対して最大の利用可能なネットワークハードディスク領域の限度額.ここでは、ハードディスク(HDD)の空き容量を制限する3つ目の注意点について説明します.コアはquotaをサポートする必要があります:Linuxコアはquotaをサポートする機能を持っていなければなりません.centos 7バージョンではシステムがquota機能をサポートしていますが、自分でコンパイルしたコアであれば、本当にquota機能をオンにしているかどうかに注意してください.そうしないと、後でやることは無駄になる可能性があります.2.ext 2のみに適用する.ext3.ext 4ファイルシステムは、ディレクトリには機能しません.マウントポイントはディレクトリですが、実際にはファイルシステムデバイスです.3.一般ユーザーとグループのみに有効:Linuxシステムではrootアイデンティティが特殊なため、これらの設定はrootには役に立たない.システム全体が他の管理者だからだろう.4.ユーザー・グループに対して使用される限度額とは、グループ内のすべてのメンバーが一緒に使用する限度額であり、個人が使用する限度額ではありません.
quotaのいくつかの構成inodeについて:ユーザーが確立できるファイルの数を制限するblock:inodeでもblockでもソフトウェア/hard、つまりソフト制限とハード制限があり、ユーザーのディスク容量を制限します(デフォルトはKB単位).ソフトウェア:これは最低容量の意味で、ユーザーの猶予期間内に彼の容量はこの値を超えることができますが、ハード制限を超えてはいけません.また、規定の猶予期間内にソフトウェア容量制限の下に容量を下げなければなりません.hard:これは最高の制限で、絶対に超えてはいけません.通常、hard値はソフトウェア値よりも高くなります.ユーザーがhard値を超えた場合、システムはユーザーのディスクの使用権限をロックします.grace time:これが前述の猶予時間です.この猶予時間は、ユーザーのディスク使用量がソフトウェアとhardの間にある場合にのみ発生します.これは、ディスク容量がhardに達すると、ユーザーのディスク使用権限がロックされるため、ユーザーがこの問題に気づかないことを心配するためにソフトウェアが設計されています.ディスクの使用量がソフトウェアを超えてhardに達すると、システムは警告しますが、ユーザーにディスクを自分で管理させる時間も与えられます.一般的には、予め設定された猶予時間は7日ですが、7日以内にディスクを管理しないと、ソフトウェア制限はhard制限に取って代わってquotaの制限になります.
三、quota限度額の操作デモ
1.quotaのインストールパッケージquotaはcentos 7にデフォルトでインストールされていますが、システムにrpmを使用してインストールできない場合は、rpm-q quotaquota-4.01-14にインストールします.el7.x86_642.まず、quotaがrootに対して無効であるため、一般ユーザーを作成します.プレゼンテーションとして一般ユーザーmyquota 1を作成し、プレゼンテーションするディスクがquotaを開くかどうかを確認します.ここでは/dev/sda 6パーティションを操作します.まず、/dev/sda 6がquotaを開くかどうかを確認します.
[root@localhost ~]# mount
/dev/sda6 on /disk2 type ext4 (rw,relatime,seclabel,data=ordered)

quotaが開いていないことがわかりますので、再マウントする必要があります.次回の起動も機能するように、/etc/fstabファイルにマウントします.
[root@localhost ~]# vim /etc/fstab
/dev/sda6       /disk2          ext4    defaults,usrquota,grpquota  0 0
#              ,         mount  ,        
[root@localhost ~]# mount -o remount /disk2
[root@localhost ~]# mount
/dev/sda6 on /disk2 type ext4 (rw,relatime,seclabel,quota,usrquota,grpquota,data=ordered)

これで、ディスク割り当てが開始されました.ディスク割当データベースの生成
[root@localhost disk2]# quotacheck -acgu
[root@localhost disk2]# ls
aquota.group  aquota.user  lost+found

ここでのパラメータは、それぞれ-aのすべてのパーティション(割り当てがサポートされている)-cが-uユーザ-gグループ4を作成することを意味する.ディスク割り当ての開始[root@localhost disk2]# quotaon -a // 5.ディスク割り当てファイルの編集
[root@localhost ~]# edquota myquota1
Disk quotas for user myquota1 (uid 1002):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                         0          0          0          0        0        0
  /dev/sda6                         0       5120      10240          1        5       10

ここでは/dev/sda 6のユーザmyquota 1に対する空間ソフトリミットが5 M、ハードリミットが10 M、作成ファイル数ソフトリミットが5ハードリミットが10
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
  /dev/sda6                     5days                 6hours

edquota-tがディスクを開く制限日の猶予変更時間は、日、時間、分、秒単位で猶予期間を設定できます.デフォルトは7日間ですが、ここでは/dev/sda 6ディスク領域の制限の猶予期間は5日間ですが、ファイル数の制限の猶予期間は6時間しかありません.6.テスト
myquota 1ユーザーに切り替えて、まず自分の限度額を見てみましょう.
[myquota1@localhost disk2]$ quota
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6       0    5120   10240               1       5      10        

そして効果をテストします
[myquota1@localhost disk2]$ touch file2
[myquota1@localhost disk2]$ dd if=/dev/zero of=file2 bs=1M count=2
[myquota1@localhost disk2]$ dd if=/dev/zero of=file3 bs=1M count=2
[myquota1@localhost disk2]$ dd if=/dev/zero of=file4 bs=1M count=2
sda6: warning, user block quota exceeded.
2+0 records in
2+0 records out
2097152 bytes (2.1 MB) copied, 0.00488266 s, 430 MB/s

file 4の作成時に警告が表示されたので、割当状況を見てみましょう[myquota1@localhost disk2]$ quota
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6    6144*   5120   10240   4days       4       5      10    
#                  6144KB      ,  6144    * ,     4 ,         ,          ,           
[myquota1@localhost disk2]$ touch file{5,6}
sda6: warning, user file quota exceeded.
[myquota1@localhost disk2]$ quota
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6    6144*   5120   10240   4days       6*      5      10   06:00
#                       ,inode       * ,        6   。           

現在の状況では、最大4つのファイルを作成することができ、最大4 Mのスペースがあります.次に、テストを続け、使用スペースを拡大し続けます.
[myquota1@localhost disk2]$ dd if=/dev/zero of=file7 bs=1M count=3
3+0 records in
3+0 records out
3145728 bytes (3.1 MB) copied, 0.00578637 s, 544 MB/s
[myquota1@localhost disk2]$ dd if=/dev/zero of=file8 bs=1M count=3
sda6: write failed, user block limit reached.
dd: error writing ‘file8’: Disk quota exceeded
2+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00451473 s, 232 MB/s
#                       ,         。
[myquota1@localhost disk2]$ ll
total 10272
-rw-------. 1 root     root        7168 Mar  3 01:25 aquota.group
-rw-------. 1 root     root        7168 Mar  3 01:25 aquota.user
-rw-rw-r--. 1 myquota1 myquota1       0 Mar  3 01:44 file1
-rw-rw-r--. 1 myquota1 myquota1 2097152 Mar  3 17:04 file2
-rw-rw-r--. 1 myquota1 myquota1 2097152 Mar  3 17:05 file3
-rw-rw-r--. 1 myquota1 myquota1 2097152 Mar  3 17:05 file4
-rw-rw-r--. 1 myquota1 myquota1       0 Mar  3 17:15 file5
-rw-rw-r--. 1 myquota1 myquota1       0 Mar  3 17:15 file6
-rw-rw-r--. 1 myquota1 myquota1 3145728 Mar  3 17:21 file7
-rw-rw-r--. 1 myquota1 myquota1 1048576 Mar  3 17:21 file8
drwx------. 2 root     root       16384 Mar  3 00:57 lost+found

file 8も作成に成功しましたが、1 Mのデータしかありません.実際のアプリケーションでは3 Mのデータファイルで1 Mだけコピーしても使用できません.このとき、私たちのスペースの限度額は最高に達しました.ファイルの数の限度額がまだ達していないので、空のファイルを作成し続けることができます.
[myquota1@localhost disk2]$ touch file9
[myquota1@localhost disk2]$ quota
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6   10240*   5120   10240   4days       9*      5      10   05:49

file 9も正常に作成されましたが、ファイルの作成数が1つしか残っていません.11個作成できるかどうか試してみましょう.
[myquota1@localhost disk2]$ touch file10
[myquota1@localhost disk2]$ touch file11
sda6: write failed, user file limit reached.
touch: cannot touch ‘file11’: Disk quota exceeded
[myquota1@localhost disk2]$ ls
aquota.group  file1   file2  file4  file6  file8  lost+found
aquota.user   file10  file3  file5  file7  file9

file 10の作成に成功し、file 11の作成時に警告が表示されたことがわかります.file 11が作成に成功していないことを確認してから、猶予時間まで削除しないとどうなるかをテストします.まず、いくつかのファイルを削除して、彼のファイル数がハード制限を超えないようにしますが、ソフト制限を超えています.
[myquota1@localhost disk2]$ rm -f file{7,8,9,10}
[myquota1@localhost disk2]$ quota
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6    6144*   5120   10240   4days       6*      5      10   05:25
[myquota1@localhost disk2]$ touch test1
[myquota1@localhost disk2]$ ls
aquota.group  file1  file3  file5  lost+found
aquota.user   file2  file4  file6  test1

いくつかのファイルを削除した後、ファイルを作成することができます.次に、時間を変更して、猶予時間を過ぎてどうなるかを見てみましょう.まずrootアイデンティティに切り替えて時間を変更します
[root@localhost ~]# date 
Sat Mar  3 18:45:25 CST 2018
[root@localhost ~]# date -s 2018-03-04
Sun Mar  4 00:00:00 CST 2018
[root@localhost ~]# clock -w
[root@localhost ~]# su - myquota1
Last login: Sat Mar  3 18:37:37 CST 2018 on pts/0
[myquota1@localhost ~]$ cd /disk2
[myquota1@localhost disk2]$ ls
aquota.group  file1  file3  file5  lost+found
aquota.user   file2  file4  file6  test1
[myquota1@localhost disk2]$ quota
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6    6144*   5120   10240   4days       7*      5      10    none
[myquota1@localhost disk2]$ touch test2
sda6: write failed, user file quota exceeded too long.
touch: cannot touch ‘test2’: Disk quota exceeded
[myquota1@localhost disk2]$ ls
aquota.group  file1  file3  file5  lost+found
aquota.user   file2  file4  file6  test1

時間変更後の猶予時間がnoneになっているのがわかります.私たちはこの時すでに7つのファイルを作成しました.本来のソフト制限は5、ハード制限は10ですが、私たちは今ファイルを作成できません.これは猶予日を超えるとソフト制限がハード制限になり、この時ユーザーはディスクをクリーンアップしなければなりません.
[myquota1@localhost disk2]$ rm -rf file{1,2,3,4,5,6}
[myquota1@localhost disk2]$ ls
aquota.group  aquota.user  lost+found  test1
[myquota1@localhost disk2]$ quota
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6       0    5120   10240               1       5      10  

ディスクをクリーンアップした後、*番号がなくなり、猶予時間もなくなりました.
同様に,ユーザグループに対する限度額設定とユーザに対する設定の方法は,dequota userがedquotaグループになっただけである.ただし、単一のメンバーではなく、ユーザー全体のグループの制限です.
四、quotaの実用命令
quotaの効果をテストした後、いくつかのquotaの実用的なコマンドを話します.edquotaでファイルを編集せずにコマンド構成を直接使用
[myquota1@localhost disk2]$ quota
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6       0    5120   10240               1       5      10       
[myquota1@localhost disk2]$ exit
logout
[root@localhost ~]#  setquota myquota1 20480 40960 50 100 /dev/sda6
[root@localhost ~]# quota myquota1
Disk quotas for user myquota1 (uid 1002): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6       0   20480   40960               1      50     100                 

setquota使用形式:setquota user blocks制限inode制限ファイルシステムsetquota myquota 1 2048040960 50 100/dev/sda 62.ディスク割り当てプロファイルを複数のユーザーにコピー
[root@localhost ~]# edquota -p myquota1  myquota2
[root@localhost ~]# quota myquota2
Disk quotas for user myquota2 (uid 1003): none
[root@localhost ~]# quota -v myquota2 
Disk quotas for user myquota2 (uid 1003): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda6       0   20480   40960               0      50     100        
      /dev/sdb1       0       0       0               0       0       0       

コピーコマンドはeqquota-p user 1 user 2 user 3のためにuser 1のディスク限度額設定をuser 2,user 3にコピーする.ここで注意したいのは、コピーが完了したばかりでquota user 2では割当状況が表示されないことです.-vパラメータ(システムに接続されているすべてのストレージデバイスのスペース制限を表示する)を追加するか、制限ディレクトリに切り替えてファイルを作成してquotaで情報を表示する必要があります.3.ディスク割当レポートの表示
[root@localhost ~]# repquota -a
*** Report for user quotas on device /dev/sda6
Block grace time: 5days; Inode grace time: 06:00
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              2     0     0       
myquota1  --       0   20480   40960              1    50   100       
myquota2  --       0   20480   40960              1    50   100       

*** 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      --      13       0       0              2     0     0  

4.ディスククォータをオフにする
[root@localhost ~]# quotaoff -a
[root@localhost ~]# repquota -a
*** Report for user quotas on device /dev/sda6
Block grace time: 5days; Inode grace time: 06:00
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              2     0     0       
myquota1  --       0   20480   40960              1    50   100       
myquota2  --       0   20480   40960              1    50   100       

*** 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      --      13       0       0              2     0     0       

quotaoff-aは、すべてのディスク割り当てをオフにするか、quotaoffの後に指定されたパーティションと指定されたパーティション割り当てをオフにすることができます.