Llinux 磁盘配额的搭建和常规问题解答
1?磁盤配額的使用限制
?
僅針對整個分區:磁盤配額實際運行時,是針對“整個分區”進行限制的,例如,如果/dev/hda5載入在/home下,那么,在/home下面的所有目 錄都會受到限制。只對一般身份用戶有效:并不是所有在Linux上的賬號都可以設置磁盤配額,例如root就不能設置磁盤配額,因為他擁有整個系統所有的 數據。
?
?
2?磁盤配額的步驟
?
(1)?啟動分區配額功能
(2)?生成配額信息文件
(3)?設置用戶和組配額
(4)?啟動磁盤配額服務
?
?
3?磁盤配額的具體實現
?
首先確認package已經安裝
[root@51ou.com ~]# rpm -q quota
quota-3.13-1.2.5.el5
確認內核支持quota磁盤配額。
[root@51ou.com ~]# grep CONFIG_QUOTA/boot/config-`uname -r`
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y
?
插上一塊新硬盤為5G大小隨后進入系統
Fdisk–l查看硬盤信息,因為是第二塊硬盤所以標明/dev/sdb為5G
Fdisk–cu /dev/sdb編輯第二塊硬盤為其創建分區
Command(m for help):m如果是第一次使用的話點擊m查看整個菜單的詳細信息
其中的詳細內容就不在此一一解釋,后續會單獨出一片文檔講解磁盤的的使用
Command? (m for help) :n??進行分區
Commandaction
?????? E??extended
?????? P??partition (1-4)
P ?選擇P進行分區選擇
Partitionnumber (1-4):1?選擇分區號,如果是新硬盤第一次創建的話選擇1,如果老硬盤之前分區了幾次依次往后推,不能超過4,連按兩下enter
Lastsector, +sectors or +size{K,M,G} :+G?為分區添加多大的空間G一定要大寫
Command(m for help ):p將之前的配置信息打印出來
Command(m for help ):w將之前配置的信息保存
Partx–a /dev/sdb ?重新加載下磁盤
Mkfs.ext4/dev/sdb1選擇相應的分區號進行格式話,如果不格式話的話,不能進行掛載
Df –h使用命令查看下系統中的掛載情況
Mkdir/mnt/quota我這邊創建一個文件當做掛載地點
Mount/dev/sdb1 /mnt/quota
Df –h再次使用命令查看下掛載情況
Mount查看下掛載信息最后一行可以看到/dev/sdb1 on /mnt/quota type ext4 (rw)
Vim/etc/fstab將掛載信息寫入其中,進行開機自動掛載,在最后一行寫入
/dev/sdb1?????? /mnt/quota???? ext4???defaults,usrquota,grpquota? 1 2
Mount–o remount /mnt/quota不在重啟服務器的前提下使用重新掛載分區
Mount?查看下最后一行的信息是否改變?/dev/sdb1 on /mnt/quota type ext4?(rw,usrquota,grpquota)出現了這樣的信息才說明掛載成功了
Quotacheck–cumg? /mnt/quota ?這個命令的主要目的是掃描某個磁盤的配額空間,它會針對分區進行掃描,并且,由于該磁盤持續欲行,可能掃描過程中文件會增加,造成磁盤配額掃描錯誤,因 此,當使用quotacheck時,該磁盤將“自動被設置為只讀扇區”;掃描完畢后,掃描所得的磁盤空間結果會寫入該區最頂端(aquota.user與 aquota.group)
-c?代表創建
-m?代表強制執行
-u?針對用戶進行掃描文件及目錄,會建立aquota.user
-g?針對組進行掃面文件及目錄,會建立aquota.group
注意如果出現了
quotacheck: Cannot create new quotafile/mnt/quota/aquota.user.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
quotacheck: Cannot create new quotafile /mnt/quota/aquota.group.new: Permissiondenied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
出現以上問題是你的權限不足,此時的原因是SElinux?建議你進行關閉,使用以下命令進行關閉
Setenforce0
Quotaon–a將所有的磁盤分區都開啟
Useraddlwh?創建用戶lwh
Passwdlwh為lwh創建密碼
Edquota–u lwh?將lwh這個用戶進行磁盤配額
Disk quotas for user lwh (uid 501):
Filesystem??? blocks???soft?? hard?? inodes??soft??? hard??? (為其創建10M的硬設置,3個文件軟限制和4個文件硬限制)
/dev/sdb1?????? 5??????0??? 10240?????????? 3????? 4
Soft?是其軟限制如果超過了軟限制會有一個提示信息,如果在7天之內沒有將空間降到軟限制以下就不允許其使用
Hard?是其硬限制,如果到達硬限制則無法繼續使用
Edquota–t修改提示天數
Filesystem ?Block grace period ??Inode grace period
/dev/sdb1?? ?7days???????????? ?7days
inode與block使用說明
磁盤配額限制空間使用的方法有兩種,即分別對inode和block進行限制。磁盤配額可以限定用戶在分區中使用的空間大小(blocks),也可以限定 用戶可以在分區中最多創建的文件數(inodes),需要注意的是,只要用戶所創建的文件超過他可以使用的inode數額,即使這些文件是空的,他再次創 建文件的行為也將被限制。
此處說明一下inode的概念。在Linux中創建一個文件,系統就為該文件分配一個惟一的inode?,文件的inode用于訪問文件的屬性。也就是 說,Linux系統中每個文件都要對應一個inode,通俗點說Linux內核不認識字母,所以用戶要有UID、用戶組要有GID、進程要有PID……, 文件要有inode?,一旦inode丟失文件將無法被訪問。
?
在測試的過程中必須在其掛載的位子進行測試
?
現在測試block
?
Cd/mnt/quota
Chmod757 /mnt/quota??給quota的文件添加其他用戶寫的權限,或則你這后面切換到其用戶中無法寫入文件
Sulwh
Touchluowenhao
Ddif=/dev/sdb1? of=luowenhao bs=1024kcount=20480 ????命令將生成一個固定大小的文件。其中“if”表示輸入,偽設備/dev/zero不斷生成字符串“0”,初始化文件;“of”表示輸出,此例為在 用戶當前?目錄下生成文件“quotatest”;“bs”為“block size”指定數據塊大小,單位設定為“1024k”即1MB;“count”為總計生成的文件(“quotatest”)大小,若“bs”為1MB,則 “10240000”為10000GB。
會出現以下提示
Sdb1: write failed,user block limitreached.
Dd:?正在寫入“luowenhao”:超出磁盤限額
?
現在測試inode
?
Cd/mnt/quota
Sulwh
Touch 1
Touch2
Touch3
Touch4??當創建完4文件系統提示sdb1:warning, userfile quota exceeded.
Touch5??當創建5文件時提示sdb1:write? failed,user file limit reached. Touch :“無法創建5”超出磁盤限額
?
?
重啟服務器過程中出現以下的一些問題的解決辦法
?
give root password for maintenance? ??當linux系統被強行關閉或者重新啟動,電腦的檔案系統便有可能受損,系統會自動檢查并修復檔案系統,當檔案系統未能自動修復,畫面便會出現上述訊息。
?
在服務器啟動的過程中出現以上的報錯信息,查看failed那一行出現的報錯提示?我這之前出現過,在搭建quota時在/etc/fstab添加了LABLE=/dev/sdb1開機自動掛載的命令導致服務器啟動的過程中系統不能自動加載。
?
常規的修復方法
?
Giveroot password for maintenance
(ortype Control-D to continue):輸入密碼后?出現了:
(Repairfilesystem)1 #
E2fsck–y /devsdb1選中之前出現的錯誤的分區進行修復
系統即會自動修復并于畫面顯示修復進度
完成后按exit,在reboot進行系統重啟
?
終極暴力方法
?
Giveroot password for maintenance
(ortype Control-D to continue):輸入密碼后?出現了:
(Repairfilesystem)1 #
進入/etc/fstab中將LABLE一行刪除,但是此時你進入的/etc/fstab時文件會提示當前你只有read-only(讀的權限)因此導致你刪除完后使用wq!強制保存也是不行的,只能q!退出后。使用下面的終極殺招
Mount–w –o remount /
Mount/dev/sdb1?? /mnt/quota ?這里必須記住,之前在搭建quota時使用的是哪個分區而且掛載在那個路徑下我這是/mnt/quota
Vim/etc/fstab現在可以進入其中將LABLE這一行進行刪除保存退出
Reboot?就可以進行重啟
轉載于:https://blog.51cto.com/vmware51/1605429
總結
以上是生活随笔為你收集整理的Llinux 磁盘配额的搭建和常规问题解答的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装debian的zabbix-agen
- 下一篇: Linux学习笔记 1 环境变量 2 v