Linux中LVM與磁盤配額(內含詳細操做)(六)

知識結構:node

  • LVM概述bash

  • LVM的管理命令服務器

  • LVM的應用實例微信

  • 磁盤配額概述app

  • 磁盤配額管理ide




(一)LVM概述工具

邏輯卷管理(Logical Volume Manager)測試

  • 動態調整磁盤容量,從而提升磁盤管理的靈活性spa

  • /boot分區用於存放引導文件,不能基於LVM建立操作系統

  • 圖形界面管理工具——sysytem-config-lvm

LVM機制的基本概念

  • PV(物理卷)

  • VG(卷組)

  • LV(邏輯卷)

物理卷是 LVM 機制的基本存儲設備,一般對應爲一個普通分區或整個硬盤。建立物理卷時,會在分區或硬盤的頭部建立一個保留區塊,用於記錄 LVM 的屬性,並把存儲空間分割成默認大小爲 4MB 的基本單元(Physical Extent,PE),從而構成物理卷,物理卷通常直接使用設備文件名稱,如/dev/sdb一、/dev/sdb二、/dev/sdd 等。對用於轉換成物理卷的普通分區,建議先使用 fdisk 工具將分區類型的 ID 標記號改成「8e」。如果整塊硬盤,能夠將全部磁盤空間劃分爲一個主分區後再作相應調整。

微信截圖_20190820151006.png

卷組由一個或多個物理卷組成一個總體,即稱爲卷組,在卷組中能夠動態地添加或移除物理卷,許多個物理卷能夠分別組成不一樣的卷組,卷組的名稱由用戶自行定義。

微信截圖_20190820151006.png

邏輯卷創建在卷組之上,與物理卷沒有直接關係。對於邏輯捲來講,每個卷組就是一 個總體,從這個總體中「切出」一小塊空間,做爲用戶建立文件系統的基礎,這一小塊空間 就稱爲邏輯卷使用 mkfs 等工具在邏輯捲上建立文件系統之後,就能夠掛 載到 Linux 操做系統中的目錄下使用。

微信截圖_20190820151006.png

創建 LVM 分區管理機制的過程以下: 首先,將普通分區或整個硬盤建立爲物理卷;而後,將物理上比較分散的各物理卷的存儲 空間組成一個邏輯總體,即卷組;最後,基於卷組這個總體,分割出不一樣的數據存儲空 間,造成邏輯卷。邏輯卷纔是最終用戶能夠格式化並掛載使用的存儲單位。

(二)LVM的管理命令

主要命令

功能 物理卷管理 卷組管理 邏輯卷管理
Scan掃描
pvscan vgscan lvscan
Create創建 pvcreate vgcreate lvcreate
Display顯示 pvdisplay vgdisplay lvdisplay
Remove刪除 pvremove vgremove lvremove
Extend擴展 —— vgextend lvextend
Reduce減小 —— vgreduce lvreduce
pvcreate 設備名1 [設備名2 .. ..]
vgcreate 卷組名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 邏輯卷名 卷組名
lvextend -L +大小 /dev/卷組名/邏輯卷名

(三)LVM的應用實例

案例環境

公司準備在Internet中搭建郵件服務器(Centos7.3系統平臺),面向全國各地的員工及部分VIP客戶提供電子郵箱空間

需求描述

因爲用戶數量衆多,郵件存儲須要大量的空間,考慮到動態擴容的須要,計劃增長兩塊SCSI硬盤並構建LVM邏輯卷(掛載到「/mailbox」目錄下)專門用於存放郵件數據

實驗步驟

微信截圖_20190820151006.png

(1)關閉服務器主機,打開機箱,正確掛接兩塊 SCSI 新硬盤。 

(2)開啓服務器主機,並執行「fdisk -l」命令進行檢查,確認已識別新增的硬盤(sdb、 sdc)。 

(3)在新磁盤中進行分區,將每塊硬盤的全部空間劃分爲一個獨立的主分區,並將分區 類型更改成「8e」。完成分區後使用「fdisk -l」命令查看。

[root@localhost ~]#fdisk -l /dev/sdb /dev/sdc

微信截圖_20190820151006.png

(4)將/dev/sdb1 和/dev/sdc1 分區轉換爲物理卷

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1

微信截圖_20190820151006.png

(5)建立卷組mail_store

[root@localhost ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1

微信截圖_20190820151006.png

(6)建立邏輯卷-在 mail_store 卷組中建立一個名爲 mbox 的邏輯卷,容量設置爲 30GB

[root@localhost ~]# lvcreate -L +30G -n mbox mail_store

微信截圖_20190820151006.png

(7)格式化爲xfs文件系統,並掛載到/mailbox目錄

[root@localhost ~]# mkfs.xfs /dev/mail_store/mbox 格式化
...
[root@localhost ~]# mkdir /mailbox   建立掛載點目錄
[root@localhost ~]# mount /dev/mail_store/mbox /mailbox/  掛載
[root@localhost ~]# df -hT /mailbox  查看磁盤信息

微信截圖_20190820151006.png

微信截圖_20190820164300.png

(四)磁盤配額概述

實現磁盤限額的條件

  • 須要Linux內核支持

  • 安裝xfsprogs與quota軟件包

微信截圖_20190820170403.png

Linux磁盤配額的特色

  • 做用範圍:針對指定的文件系統(分區)

  • 限制對象:用戶帳號,組帳號

  • 限制類型:磁盤容量,文件數量

磁盤容量:限制用戶可以使用的磁盤數據塊(Block)大小,也就是限制磁盤空間大小,默認單位爲 KB。

文件數量:限制用戶可以擁有的文件個數。在 Linux 操做系統中,每個文件都有一個對應的數字標記,稱爲 i 結點(Inode)編號,這個編號在同一個文件系統內是惟一的,所以 xfs_quota 經過限制 i 結點的數量來實現對文件數量的限制。

  • 限制方法:軟限制,硬限制

軟限制:指定一個軟性的配額數值(如 480MB 磁盤空間、180 個文件),在固定的寬限期(默認爲七天)內容許暫時超過這個限制,但系統會給出警告信息。

硬限制:指定一個硬性的配額數值(如 500MB 磁盤空間、200 個文件),是絕對禁止用戶超過的限制值,當達到硬限制值時,系統也會給出警告並禁止繼續寫入數據。硬限制的配額值應大於相應的軟限制值,不然軟限制將失效。

(五)磁盤配額管理

微信截圖_20190820173107.png

把以前建立的 mbox 邏輯卷/dev/mail_store/mbox 掛載到/mailbox 目錄下,而後 在該文件系統中進行配置,以實現磁盤配額功能。

1,以支持配額功能的方式掛載文件系統

[root@localhost ~]# umount /mailbox/
[root@localhost ~]# mount -o usrquota,grpquota /dev/mail_store/mbox /mailbox/
[root@localhost ~]# mount | grep "mail_store"
/dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[root@localhost ~]# chmod 777 /mailbox/

微信截圖_20190820173107.png

若須要在每次開機後自動以支持配額功能的方式掛載該分區, 能夠將 「usrquota,grpquota」掛載參數寫入「/etc/fstab」文件中。

微信截圖_20190820173107.png

2,編輯用戶和組帳號的配額設置

使用xfs_quota命令編輯配額設置

xfs_quota -x -c 'limit -u bsoft=N bhard=N isoft=N ihard=N 用戶名' 掛載點

結合「limit」命令能夠設置磁盤容量,以及文件數的軟、 硬限制數值。

經常使用選項

  • -u:指定用戶配額設置

  • -g:指定用戶組配額設置

  • -x:啓動專家模式

  • -c:直接調用管理命令

限制字段

  • bsoft:設置磁盤容量的軟限制數值

  • bhard:設置磁盤容量的硬限制數值

  • isoft:設置磁盤文件數的軟限制數值

  • ihard:設置磁盤文件的硬限制數值

3,驗證磁盤配額功能

  • 切換到設置配額的分區(掛載分區)

  • 建立指定數量的文件:使用touch命令,或cp命令

  • 建立指定容量的文件:使用dd命令,或cp命令

實驗:設置zhangsan用戶軟限制10M硬限制容量30M,文件數量軟限制4硬限制6

1)測試超過文件數量和文件容量是是否能夠被寫入

[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=10M bhard=30M isoft=4 ihard=6 zhangsan' /mailbox/  設置配額
[root@localhost ~]# su - zhangsan     切換到zhangsan用戶
[zhangsan@localhost ~]$ cd /mailbox/   切換到/mailbox目錄
[zhangsan@localhost mailbox]$ touch demo{1..5}.txt  建立五個文件
[zhangsan@localhost mailbox]$ ls
demo1.txt  demo2.txt  demo3.txt  demo4.txt  demo5.txt
[zhangsan@localhost mailbox]$ touch demo6.txt   建立第六個文件
[zhangsan@localhost mailbox]$ touch demo7.txt   建立第七個文件失敗
touch: 沒法建立"demo7.txt": 超出磁盤限額

微信截圖_20190820173107.png

[zhangsan@localhost mailbox]$ dd if=/dev/zero of=/mailbox/demo1.txt bs=1M count=20  從/dev/zero複製20M數據到demo1.txt中
記錄了20+0 的讀入
記錄了20+0 的寫出
20971520字節(21 MB)已複製,0.0824487 秒,254 MB/秒
[zhangsan@localhost mailbox]$ ll
總用量 20480
-rw-rw-r--. 1 zhangsan zhangsan 20971520 8月  20 18:54 demo1.txt
[zhangsan@localhost mailbox]$ dd if=/dev/zero of=/mailbox/demo2.txt bs=1M count=20  在複製20M到demo2.txt中超出限額因此只複製10M
dd: 寫入"/mailbox/demo2.txt" 出錯: 超出磁盤限額
記錄了11+0 的讀入
記錄了10+0 的寫出
10485760字節(10 MB)已複製,0.059165 秒,177 MB/秒
[zhangsan@localhost mailbox]$ touch demo3.txt   再建立新的文件也顯示超額
touch: 沒法建立"demo3.txt": 超出磁盤限額

微信截圖_20190820185830.png

結論:超額設置只要一條知足了超額另外一個條件就沒法執行


2)設置用戶的磁盤配額後可以使用「xfs_quota -c 'quota -uv zhangsan' /mailbox/「命 令查看用戶 zhangsan 的磁盤容量限制。結果輸出後」Quota」字段對應的是軟限制,「Limit」 字段對應的是硬限制

[root@localhost ~]# xfs_quota -x -c 'quota -uv zhangsan' /mailbox/

微信截圖_20190820193841.png

3)結合」-i「選項能夠查看 zhangsan 用戶的磁盤文件數限制

[root@localhost ~]# xfs_quota -x -c 'quota -i -uv zhangsan' /mailbox/

微信截圖_20190820193916.png


4,查看配額使用狀況

xfs_quota -x -c 'report 選項' 掛載點

report經常使用選項

  • -a:能夠查看全部可用分區的配額使用狀況

  • -i:查看磁盤容量

  • -b:文件輸出報告

  • -u:指定帳號

  • -g:指定組

[zhangsan@localhost mailbox]$ su - root  切換回root
密碼:
上一次登陸:二 8月 20 18:23:57 CST 2019從 192.168.109.10pts/1 上
[root@localhost ~]# xfs_quota -x -c 'report -abi'  查看配額的使用狀況

微信截圖_20190820192950.png

總結:

如何使用邏輯卷建立邏輯卷,限制磁盤配額和管理也是Linux中不可或缺的技能

謝謝閱讀!!!

相關文章
相關標籤/搜索