見出し画像

【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制限:ユーザーがクォータを超えた場合にファイルの作成または書き込みが禁止される制限





よろしければサポートお願いします!よりいい情報を発信します。