【Linux】 ファイルの容量制限
Disk Quota
ディスク容量をユーザーあるいは、グループごとに制限する
作業ログ
設定例
事前インストール
quotaパッケージ
Linuxシステムでディスク容量のクオータ制限を設定するために必要なツールやライブラリが含まれている。
[root@localhost ~]# yum search quota # Ver確認
-------------------------------------------------------------
quota-warnquota.x86_64 : Send e-mail to users over quota
quota.x86_64 : System administration tools for monitoring users' disk usage
texlive-csquotes.noarch : Context sensitive quotation facilities
Name and summary matches only, use "search all" for everything.
-------------------------------------------------------------
[root@localhost ~]# yum install quota
-------------------------------------------------------------
インストール中 : 1:quota-4.01-19.el7.x86_64 1/1
検証中 : 1:quota-4.01-19.el7.x86_64 1/1
インストール:
quota.x86_64 1:4.01-19.el7
完了しました!
-------------------------------------------------------------
もしインストールができなければ、「yum update」などを行い最新状態にする。
パーティションの作成
必要に応じてパーティションを作成する。既存のファイルシステムを変更する時は必ずアンマウントすること。
[root@localhost ~]# fdisk /dev/sda
-------------------------------------------------------------
コマンド (m でヘルプ): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p):
Using default response p
パーティション番号 (3,4, default 3):
最初 sector (21000001-22339583, 初期値 21000192):
初期値 21000192 を使います
Last sector, +sectors or +size{K,M,G} (21000192-22339583, 初期値 22339583): 22000000
Partition 3 of type Linux and of size 488.2 MiB is set
コマンド (m でヘルプ): t
パーティション番号 (1-3, default 3):
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
コマンド (m でヘルプ): p
Disk /dev/sda: 11.4 GB, 11437867008 bytes, 22339584 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000adae3
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 21000000 9450400+ 8e Linux LVM
/dev/sda3 21000192 22000000 499904+ 8e Linux LVM
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。
-------------------------------------------------------------
# パーティションテーブルの再読み込み
[root@localhost ~]# partprobe /dev/sda
LVMの作成
ボリューム作成時に「successfully created」が表示されることの確認を行う。目的に合わせてボリュームの名前やサイズを変更すること。
[root@localhost ~]# pvcreate /dev/sda3
-------------------------------------------------------------
Physical volume "/dev/sda3" successfully created. # 成功の表示を確認
-------------------------------------------------------------
[root@localhost ~]# vgcreate vgname /dev/sda3
-------------------------------------------------------------
Volume group "vgname" successfully created
-------------------------------------------------------------
[root@localhost ~]# lvcreate -L 1M -n lvname vgname
-------------------------------------------------------------
Logical volume "lvname" created.
-------------------------------------------------------------
[root@localhost ~]# mkfs.ext4 /dev/vgname/lvname
-------------------------------------------------------------
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
1024 inodes, 4096 blocks
204 blocks (4.98%) reserved for the super user
First data block=1
Maximum filesystem blocks=4194304
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
-------------------------------------------------------------
LVMの詳細
マウント
マウントポイントを指定する。それに合わせて「/etc/fstab」12行目のように記載する。
「usrquota,grpquota」は、ファイルシステムに対してユーザークォータとグループクォータを有効にするオプションで、ユーザーごとやグループごとにディスク使用量を制限する設定ができるようになる。
[root@localhost ~]# mount /dev/vgname/lvname /tmp
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# vi /etc/fstab
-------------------------------------------------------------
9 /dev/mapper/centos-root / xfs defaults 0 0
10 UUID=5185b8bf-ae47-4ae7-bb10-9e67bdf18158 /boot xfs defaults 0 0
11 /dev/mapper/centos-swap swap swap defaults 0 0
12 /dev/sda3 /tmp ext4 defaults,usrquota,grpquota 0 1
-------------------------------------------------------------
クォータの再読み込み
# quotasを再マウント
[root@localhost ~]# mount -o remount /tmp
# ファイルシステム上に存在するユーザーおよびグループの使用量を調べ、
# 新しいクォータファイルを作成する
[root@localhost ~]# quotacheck -cug /tmp
# クォータ機能を有効にする
[root@localhost ~]# quotaon /tmp
quotacheckは、ファイルシステムのクォータ情報を更新するためのユーティリティ。
-cオプションは、新しいクォータファイルを作成する
-uオプションは、ユーザーごとのクォータ情報を調べる
-gオプションは、グループごとのクォータ情報を調べる
容量制限の設定
# 適当なユーザーを作成
[root@localhost ~]# useradd test
[root@localhost ~]# passwd test
-------------------------------------------------------------
ユーザー test のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
-------------------------------------------------------------
# ディスク使用量の編集
[root@localhost ~]# edquota -u test /tmp
edquota: user /tmp does not exist.
-------------------------------------------------------------
Disk quotas for user test (uid 1000):
2 Filesystem blocks soft hard inodes soft hard
3 /dev/mapper/vgname-lvname 0 0 0 0 0 0
~
-------------------------------------------------------------
適当なユーザーやグループを作成または指定する。
edquotaはディスク使用量のクォータを編集するために使用される。
書式:edquota [-u or -g] [ユーザーまたはグループ] [ファイルシステム]
クォータはブロック数、および inode 数でファイル容量の制限がされている。
soft制限:ユーザーがクォータを超えた場合に警告が表示される制限
hard制限:ユーザーがクォータを超えた場合にファイルの作成または書き込みが禁止される制限
よろしければサポートお願いします!よりいい情報を発信します。