天天看點

LVM邏輯卷管理和磁盤配額LVM名詞磁盤配額

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": 超出磁盤限額
           

繼續閱讀