2014IT鐵人賽-22-Disk Quota 磁碟配額
今天練習Disk Quota 磁蝶配額吧
筆記部份:
練習完建立 file system 之後, 接下來我們就要思考, 如果日後要開放服務, 那要如何控管使用者的用量? 這個時候就要使用 disk quota 來幫忙
Disk quota 介紹
- Per file system basic: 針對file system來計算
- 對象: user使用者(usrquota) /group群組(grpquota)
- 標的: block ( 使用空間大小) / inode( 建立檔案的數量 )
- soft limit --> warning警告
- hard limit --> deadline
- grace time --> 寬限期(default 7 days)
設定diskquota 步驟
- 在/etc/fstab 加上usrquota 或 grpquota參數
- 使用mount -o remount 重新掛載使其生效
- 使用quotacheck 初始化quota ( 該file system 會出現aquota.user或aquota.group 檔案)
- 使用quotaon 啟用該file system的quota
- 使用edquota 編輯quota 設定
- 使用 chkconfig boot.quota on 設定開機啟用quota
若執行 #quotacheck 指令找不到該指令, 則使用#yast -i quota 安裝quota 套件即可解決
現在的kernel 支援 journaled quota, 故 lab 的時候採取 usrjquota 與 grpjquota
如果是 在/etc/fstab 使用 mount option 為 usrquota 或是 grpquota 會出現以下訊息
# quotacheck -ugv /data/
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sda3 [/data] done
quotacheck: Cannot stat old user quota file: 沒有此一檔案或目錄
quotacheck: Cannot stat old group quota file: 沒有此一檔案或目錄
quotacheck: Cannot stat old user quota file: 沒有此一檔案或目錄
quotacheck: Cannot stat old group quota file: 沒有此一檔案或目錄
quotacheck: Checked 3 directories and 2 files
quotacheck: Old file not found.
quotacheck: Old file not found.
開始練習吧
Lab:
- 限制使用者max在 /home可使用空間4MB~5MB
- 新增一個群組 hr, 並限制 hr 群組使用者在 /home 的使用空間為 4MB~5MB
#groupadd hr <新增 hr 群組>
# useradd -g hr -m hruser1 <新增以 hr 為主要群組使用者 hruser1>
# useradd -g hr -m hruser2 <新增以 hr 為主要群組使用者 hruser2>
針對 /home 的分割區加入 quota的mount_option
#vi /etc/fstab
修改<加入usrjquota 及 grpjquota參數>
/dev/sda3 /home ext3 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 2
#mount | grep home <請觀察 /home>
#mount -o remount /home <重新掛載使其生效>
#mount | grep home <請觀察 /home>
#ls /home <請觀察 /home>
#quotacheck -ugv /home <建立DB>
#ls /home <請觀察 /home 目錄下差異>
#quotaon -pa <請觀察 資訊>
#quotaon -ug /home <啟動/home的quota>
#quotaon -pa <請觀察 資訊>
#chkconfig boot.quota --list
#chkconfig boot.quota on <設定開機啟動quota >
#chkconfig boot.quota --list
編輯使用者的 quota
#edquota max <編輯max的quota>
Filesystem blocks soft hard inodes soft hard
/dev/sda3 xxxxx 4096 5120 xxxxxx 0 0
#edquota -g hr <編輯 hr 群組的 quota>
Disk quotas for group hr (gid 1003):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 xxxx 4096 5120 xxxxxx 0 0
測試 使用者max quota
#su - max
>quota <查看自己的quota>
>dd if=/dev/zero of=big2 bs=1M count=3 <請建立檔案測試, 3M,4M 5M>
>ls -hl
>exit <請登出>
測試 群組hr quota
#su - hruser1
>quota -g <查看群組的quota>
> dd if=/dev/zero of=big2 bs=1M count=2 <請建立檔案測試, 3M,4M 5M>
>exit <請登出>
# su - hruser2
>quota -g <查看群組的quota>
> dd if=/dev/zero of=big2 bs=1M count=2 <請建立檔案測試, 3M,4M 5M>
>exit <請登出>
#repquota /home <列出/home quota的狀況>
#edquota -p max user1 user2 <套用使用者max 的quota>
#repquota /home <列出/home quota的狀況>
Notes:
如果是 在/etc/fstab 使用 mount option 為 usrquota 或是 grpquota 會出現以下訊息
# quotacheck -ugv /data/
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sda3 [/data] done
quotacheck: Cannot stat old user quota file: 沒有此一檔案或目錄
quotacheck: Cannot stat old group quota file: 沒有此一檔案或目錄
quotacheck: Cannot stat old user quota file: 沒有此一檔案或目錄
quotacheck: Cannot stat old group quota file: 沒有此一檔案或目錄
quotacheck: Checked 3 directories and 2 files
quotacheck: Old file not found.
quotacheck: Old file not found.
目前的 Kernel 已經支援 journaled quota, 故 lab 的時候採取 usrjquota 與 grpjquota
Option Lab: 使用 YaST 方式設定 Disk Quota
#yast2 disk
請取消剛剛設定的 Fstab 選項 ( 啟用配額支援)
觀察相關設定
#mount | grep home <請觀察 /home>
#quotaon -pa
使用 YaST 設定 quota
#yast2 disk
請編輯該分割區的 fstab 選項( 啟用配額支援)
觀察相關設定
#mount | grep home <請觀察 /home>
#quotaon -pa <請觀察資訊>
#cat /etc/fstab <請觀察資訊>
設定使用者 quota
#yast2 users
請選取使用者 → 點選編輯
在YaST 視窗內, 於插件 標籤內,點選 啟動
請設定 使用者 quota 限制
點選 確定 → 點選 確定
完成 quota 設定
觀察相關設定
#repquota /home <列出/home quota的狀況>
Fun with Day 22 ~
沒有留言:
張貼留言