星期二, 10月 07, 2014

2014IT鐵人賽-22-Disk Quota 磁碟配額

2014IT鐵人賽-22-Disk Quota 磁碟配額


今天一樣使用 EasyCloud  雲端簡單龍的帳戶, 那就登入 https://gemini.nchc.org.tw/ 來開始練習openSUSE 基礎指令吧.


今天練習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 步驟
  1. /etc/fstab 加上usrquota grpquota參數
  2. 使用mount -o remount 重新掛載使其生效
  3. 使用quotacheck 初始化quota ( 該file system 會出現aquota.useraquota.group 檔案)
  4. 使用quotaon 啟用該file system的quota
  5. 使用edquota 編輯quota 設定
  6. 使用 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 的分割區加入 quotamount_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 <啟動/homequota>
#quotaon -pa <請觀察 資訊>


#chkconfig boot.quota --list
#chkconfig boot.quota on <設定開機啟動quota >
#chkconfig boot.quota --list


編輯使用者的 quota
#edquota max <編輯maxquota>
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 ~

沒有留言: