LVM邏輯卷管理和磁盤配額
- LVM名詞
-
- 先建立實體卷
- 磁盤配額
LVM用于動态調整磁盤容量,進而提高磁盤管理的靈活性
/boot分區用于存放引導檔案,不能基于LVM建立
LVM名詞
- PV 實體卷
- VG 卷組
- LV 邏輯卷
- PE 最小存儲單元,預設4M
LVM建立步驟
先建立PV,再建立VG,再建立LV,然後格式化,再挂載
先建立實體卷
[[email protected] ~]# pvcreate /dev/sdb /dev/sdc
WARNING: xfs signature detected on /dev/sdb at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb.
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
檢視是否建立成功
[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 20.00g 20.00g
/dev/sdc lvm2 --- 20.00g 20.00g
[[email protected] ~]# pvdisplay
"/dev/sdc" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID lsjdkt-cPyE-Ava7-xUpq-vkCd-BX02-AHpsOx
"/dev/sdb" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID hNj3Ws-5Mb7-eMd5-eI5j-2hXz-zPKj-mYY3lc
然後建立卷組
[[email protected] ~]# vgcreate vg01 /dev/sdb /dev/sdc
Volume group "vg01" successfully created
檢視是否建立成功
[[email protected] ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg01 2 0 0 wz--n- 39.99g 39.99g
[[email protected] ~]# vgdisplay
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID UdJX87-Rjfp-qVSo-rgya-KsSo-D2Sq-0kKEsc
然後建立邏輯卷并檢視
[[email protected] ~]# lvcreate -n lv01 -L 5G vg01
Logical volume "lv01" created.
[[email protected] ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg01 -wi-a----- 5.00g
[[email protected] ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg01/lv01
LV Name lv01
VG Name vg01
LV UUID ty3qO0-QFBl-w33J-7qeU-aDUR-ZcJ8-XBpgsX
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2021-05-11 19:11:35 +0800
LV Status available
# open 0
LV Size 5.00 GiB
Current LE 1280
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
當邏輯卷不夠用時可以擴容
[[email protected] ~]# lvextend -L +10G /dev/vg01/lv01
Size of logical volume vg01/lv01 changed from 5.00 GiB (1280 extents) to 15.00 GiB (3840 extents).
Logical volume vg01/lv01 successfully resized.
[[email protected] ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg01 -wi-a----- 15.00g
然後格式化挂載
[[email protected] ~]# mkfs.xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01 isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[[email protected] ~]# mkdir zhangsan
[[email protected] ~]# mount /dev/vg01/lv01 /zhangsan
[[email protected] ~]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/sda3 297G 4.1G 293G 2% /
devtmpfs 895M 0 895M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 11M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 174M 841M 18% /boot
tmpfs 182M 12K 182M 1% /run/user/42
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 15G 33M 15G 1% /zhangsan
如果還是不夠用的話可以再擴充
[[email protected] ~]# lvextend -L 20G /dev/vg01/lv01
Size of logical volume vg01/lv01 changed from 15.00 GiB (3840 extents) to 20.00 GiB (5120 extents).
Logical volume vg01/lv01 successfully resized.
[[email protected] ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg01 -wi-ao---- 20.00g
但是此時看磁盤卻還是沒變
[[email protected] ~]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/sda3 297G 4.1G 293G 2% /
devtmpfs 895M 0 895M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 11M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 174M 841M 18% /boot
tmpfs 182M 12K 182M 1% /run/user/42
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 15G 33M 15G 1% /zhangsan
這時需要用到調整擴充的指令,對應xfs類型
[[email protected] ~]# xfs_growfs /dev/vg01/lv01
meta-data=/dev/mapper/vg01-lv01 isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 3932160 to 5242880
然後檢視磁盤
[[email protected] ~]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/sda3 297G 4.1G 293G 2% /
devtmpfs 895M 0 895M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 11M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 174M 841M 18% /boot
tmpfs 182M 12K 182M 1% /run/user/42
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg01-lv01 20G 33M 20G 1% /zhangsan
删除邏輯卷,卷組和實體卷,先解除安裝再删除
[[email protected] ~]# umount /dev/vg01/lv01
[[email protected] ~]# lvremove /dev/vg01/lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
Logical volume "lv01" successfully removed
[[email protected] ~]# vgremove vg01
Volume group "vg01" successfully removed
[[email protected] ~]# pvremove /dev/sdb /dev/sdc
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
磁盤配額
将已挂載的硬碟重新挂載
[[email protected] ~]# mount -o remount.usrquota,grpquota /dev/sdb
mount: /dev/sdb 已經挂載或 /zhangsan 忙
/dev/sdb 已經挂載到 /zhangsan 上
[[email protected] ~]# mount -a
然後建立使用者的磁盤配額的配置檔案
[[email protected] ~]# quotacheck -cugv /dev/sdb
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/sdb [/zhangsan] done
quotacheck: Cannot stat old user quota file /zhangsan/aquota.user: 沒有那個檔案或目錄. Usage will not be subtracted.
quotacheck: Old group file name could not been determined. Usage will not be subtracted.
quotacheck: Checked 3 directories and 0 files
quotacheck: Old file not found.
[[email protected] ~]# ls /zhangsan/
aquota.user lost+found
建立zhangsan然後編輯配置檔案
[[email protected] ~]# useradd zhangsan
[[email protected] ~]# edquota -u zhangsan
Disk quotas for user zhangsan (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sdb 0 1024 2048 0 4 6
然後開啟磁盤配額
發現已經被限制
[[email protected] zhangsan]$ touch 1 2 3 4 5
sdb: warning, user file quota exceeded.
[[email protected] zhangsan]$ touch 1 2 3 4 5 6
[[email protected] zhangsan]$ touch 1 2 3 4 5 6 7
sdb: write failed, user file limit reached.
touch: 無法建立"7": 超出磁盤限額