Linux-admin-quota-management

提供:Dev Guides
移動先:案内検索

Linux Admin-クォータ管理

CentOSディスククォータは両方とも有効にできます。ディスク容量を超える前に、システム管理者に警告し、ユーザーへのディスクストレージアクセスを拒否します。 ディスクがいっぱいになると、ディスクの内容に応じて、システム全体が回復するまで悲鳴を上げることがあります。

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

  • *ステップ1 *-/etc/fstabでグループとユーザーのクォータ管理を有効にします。
  • *ステップ2 *-ファイルシステムを再マウントします。
  • *ステップ3 *-クォータデータベースを作成し、ディスク使用量テーブルを生成します。
  • *ステップ4 *-クォータポリシーを割り当てます。

===/etc/fstabでクォータ管理を有効にします

まず、/etc/fstab filenをバックアップします-

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

現在、現在の作業ディレクトリに_known working_/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ファイルシステムを使用している場合
  • カーネルがブート時にnoquotaパラメーターを/etc/fstabに渡すとき
  • ステップ1 *-/etc/default/grubのバックアップを作成します。
cp/etc/default/grub ~/
  • ステップ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"

to

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

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

  • ステップ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 ~]$

_usrquota_および_grpquota_パラメーターをgrub経由で渡しました。

ここで、/etc/fstab_を再度編集して、同じ物理ディスク/homeon_から/を含めます。

/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 コマンドを実行する必要があります。

quotacheckは2つのファイルを作成します-

  • aquota.user
  • aquota.group

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

一般的なquotacheckスイッチは次のとおりです。

Switch Action
-u Checks for user quotas
-g Checks for group quotas
-c Quotas should be enabled for each file system with enables quotas
-v Displays verbose output

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

このために、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

各列を見てみましょう。

  • ファイルシステム-適用されるユーザーのファイルシステムのクォータです
  • 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_のディスクスペースを使用できなくなりました。

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

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

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