Linux管理者-クォータ管理

CentOSディスククォータは両方とも有効にできます。システム管理者に警告し、ディスク容量を超える前にユーザーへのそれ以上のディスクストレージアクセスを拒否します。ディスクがいっぱいになると、ディスクの内容によっては、システム全体が回復するまで急停止する可能性があります。

CentOS Linuxでクォータ管理を有効にすることは、基本的に4ステップのプロセスです-

  • Step 1 − / etc / fstabでグループとユーザーのクォータ管理を有効にします。

  • Step 2 −ファイルシステムを再マウントします。

  • Step 3 −クォータデータベースを作成し、ディスク使用量テーブルを生成します。

  • Step 4 −クォータポリシーを割り当てます。

/ etc / fstabでクォータ管理を有効にする

まず、/ etc / fstabファイルをバックアップします-

[root@centosLocal centos]# cp -r /etc/fstab ./

これで、現在の作業ディレクトリに既知の作業/ etc / fstabのコピーがあります。

# 
# /etc/fstab 
# Created by anaconda on Sat Dec 17 02:44:51 2016 
# 
# Accessible filesystems, by reference, are maintained under '/dev/disk' 
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# 
/dev/mapper/cl-root        /         xfs     defaults                      0 0
UUID = 4b9a40bc-9480-4     /boot     xfs     defaults                      0 0

/dev/mapper/cl-home        /home     xfs     defaults,usrquota,grpquota    0 0

/dev/mapper/cl-swap        swap      swap    defaults                      0 0

ボリュームまたはラベルの/ etc / fstabのオプションセクションで、ユーザーとグループにクォータが適用される場所に次の変更を加えました。

  • usrquota
  • grpquota

ご覧のとおり、 xfsファイルシステム。xfsを使用する場合、追加の手動手順が必要になります。/home/と同じディスク上にあります。さらに調査すると、カーネルレベルのマウントオプションであるnoquotaに/が設定されていることがわかります。カーネルブートオプションを再構成する必要があります。

root@localhost rdc]# mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

[root@localhost rdc]#

XFSファイルシステムのカーネルブートオプションの再構成

このステップは、2つの条件下でのみ必要です-

  • クォータを有効にしているディスク/パーティションがxfsファイルシステムを使用している場合
  • カーネルが起動時に/ etc / fstabにnoquotaパラメーターを渡している場合

Step 1 − / etc / default / grubのバックアップを作成します。

cp /etc/default/grub ~/

Step 2/ etc / default / grubを変更します

これがデフォルトのファイルです。

GRUB_TIMEOUT=5 
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 
GRUB_DEFAULT=saved 
GRUB_DISABLE_SUBMENU=true 
GRUB_TERMINAL_OUTPUT="console" 
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 
GRUB_DISABLE_RECOVERY="true"

次の行を変更したい-

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv 
=cl/swap rhgb quiet rootflags=usrquota,grpquota"

Note−これらの変更を逐語的にコピーすることが重要です。grub.cfgを再構成した後、構成でエラーが発生した場合、システムは起動に失敗します。非実稼働システムでチュートリアルのこの部分を試してください。

Step 3 −作業中のgrub.cfgをバックアップします

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

新しいgrub.cfgを作成します

[root@localhost rdc]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ... 
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64 
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img 
Found linux image: /boot/vmlinuz-0-rescue-dbba7fa47f73457b96628ba8f3959bfd 
Found initrd image: /boot/initramfs-0-rescuedbba7fa47f73457b96628ba8f3959bfd.img 
done

[root@localhost rdc]#

リブート

[root@localhost rdc]#reboot

すべての変更が正確である場合、xfsファイルシステムにクォータを追加するための可用性がないはずです。

[rdc@localhost ~]$ mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
 
[rdc@localhost ~]$

私たちは、合格したUSRQUOTAGRPQUOTA GRUBを経由してパラメータを。

ここで、/ etc / fstabを再度編集して、同じ物理ディスク上の/ home以降に/を含めます。

/dev/mapper/cl-root/xfs
defaults,usrquota,grpquota        0 0

それでは、クォータデータベースを有効にしましょう。

[root@localhost rdc]# quotacheck -acfvugM

クォータが有効になっていることを確認してください。

[root@localhost rdc]# quotaon -ap 
group quota on / (/dev/mapper/cl-root) is on 
user quota on / (/dev/mapper/cl-root) is on 
group quota on /home (/dev/mapper/cl-home) is on 
user quota on /home (/dev/mapper/cl-home) is on 
[root@localhost rdc]#

ファイルシステムを再マウントします

パーティションまたはディスクがアクティブに起動されたパーティションから分離されている場合は、再起動せずに再マウントできます。ルートディレクトリ/で起動されたディスク/パーティションでクォータが構成されている場合は、オペレーティングシステムを再起動する必要がある場合があります。再マウントを強制して変更を適用すると、ファイルシステムを再マウントする必要性が異なる場合があります。

[rdc@localhost ~]$ df 
Filesystem              1K-blocks     Used      Available      Use%     Mounted on
/dev/mapper/cl-root     22447404      4081860   18365544       19%         /
devtmpfs                903448        0         903448         0%          /dev
tmpfs                   919308        100       919208         1%          /dev/shm
tmpfs                   919308        9180      910128         1%          /run
tmpfs                   919308        0         919308         0%          /sys/fs/cgroup
/dev/sda2               1268736       176612    1092124        14%         /boot
/dev/mapper/cl-var      4872192       158024    4714168        4%          /var
/dev/mapper/cl-home     18475008      37284     18437724       1%          /home
tmpfs                   183864        8         183856         1%          /run/user/1000

[rdc@localhost ~]$

ご覧のとおり、LVMボリュームが使用されています。したがって、再起動するのは簡単です。これにより、/ homeが再マウントされ、/ etc / fstab構成の変更がアクティブな構成にロードされます。

クォータデータベースファイルの作成

CentOSは、/ homeのディスククォータを処理できるようになりました。フルクォータサポートを有効にするには、quotacheck コマンド。

クォータチェックは2つのファイルを作成します-

  • aquota.user
  • aquota.group

これらは、クォータが有効なディスク/パーティションのクォータ情報を格納するために使用されます。

以下は、一般的なクォータチェックスイッチです。

スイッチ アクション
-u ユーザー割り当てを確認します
-g グループクォータをチェックします
-c クォータを有効にするには、ファイルシステムごとにクォータを有効にする必要があります
-v 詳細な出力を表示します

ユーザーごとのクォータ制限を追加する

このために、edquotaコマンドを使用し、その後にユーザー名-を続けます。

[root@localhost rdc]# edquota centos

Disk quotas for user centos (uid 1000):  
Filesystem                   blocks       soft       hard     inodes     soft     hard 
/dev/mapper/cl-root              12          0          0         13        0        0  
/dev/mapper/cl-home            4084          0          0        140        0        0

各列を見てみましょう。

  • Filesystem −これは、適用されるユーザーのファイルシステムクォータです。

  • blocks −ユーザーが各ファイルシステムで現在使用しているブロックの数

  • soft−ソフト制限のブロックを設定します。ソフト制限により、ユーザーは特定の期間のクォータを実行できます

  • hard−ブロックをハード制限に設定します。ハード制限は、合計許容クォータです

  • inodes −ユーザーが現在使用しているiノードの数

  • soft −ソフトiノード制限

  • hard −ハードiノード制限

ユーザーとしての現在の割り当てを確認するには-

[centos@localhost ~]$ quota 
Disk quotas for user centos (uid 1000):  
Filesystem             blocks     quota      limit grace    files   quota   limit   grace 
/dev/mapper/cl-home    6052604    56123456   61234568       475     0       0       [centos@localhost ~]$

以下は、ハードクォータ制限を超えたときにユーザーに表示されるエラーです。

[centos@localhost Downloads]$ cp CentOS-7-x86_64-LiveKDE-1611.iso.part ../Desktop/

cp: cannot create regular file ‘../Desktop/CentOS-7-x86_64-LiveKDE-
1611.iso.part’: Disk quota exceeded

[centos@localhost Downloads]$

ご覧のとおり、このユーザーのディスククォータの範囲内にあります。ソフトリミット警告を設定しましょう。このように、ユーザーはクォータ制限が期限切れになる前に事前に通知されます。経験から、エンドユーザーが仕事に就くときに苦情があり、実際に仕事に取り掛かるには45分かけてファイルをクリアする必要があります。

管理者として、クォータの使用状況を確認できます。 repquota コマンド。

[root@localhost Downloads]# repquota  /home  
                    Block limits                            File limits  
User            used     soft     hard     grace       used     soft     hard     grace 
----------------------------------------------------------------------------------------
root      --       0         0        0                   3        0        0        
centos    -+ 6189824  56123456 61234568                 541      520      540      6days 

[root@localhost Downloads]#

ご覧のとおり、ユーザーのCentOSはハードブロックの割り当てを超えており、/ homeのディスク容量を使用できなくなりました。

-+は、ファイルシステムでハードクォータを超えたことを示します。

クォータを計画するときは、少し計算する必要があります。管理者が知っておく必要があるのは、システムに何人のユーザーがいるのかということです。ユーザー/グループ間で割り当てる空き容量はどれくらいですか?ファイルシステムのブロックを構成するバイト数はいくつですか?

空きディスク領域に関連するブロックの観点からクォータを定義します。最悪のシナリオで残る、ファイルシステムに空き領域の「安全な」バッファを残すことをお勧めします。すべてのクォータを同時に超えます。これは特に、ログを書き込むためにシステムによって使用されるパーティションにあります。