Linux學習-9.LVM邏輯卷管理器

1.LVM的概念和作用

LVM(Logical Volume Manager)邏輯卷管理是在Linux2.4內核以上實現的磁盤管理技術。LVM通過將底層的物理硬盤抽象的封裝起來,然後以邏輯卷的方式呈現給上層應用。

在LVM中,主要有三個概念:
在這裏插入圖片描述
物理卷(Physical Volume, PV): 物理卷可以是一個磁盤,也可以是磁盤中的一個分區,它爲LVM提供了存儲介質。
邏輯卷組(Logical Volume Group, LVG): 可以把邏輯卷組想象成一個存儲池,或者是邏輯硬盤。
邏輯卷(Logical Volume, LV): 可以將卷組劃分成若干個邏輯卷,相當於在邏輯硬盤上劃分出幾個邏輯分區,每個邏輯分區上都可以創建具體的文件系統。

2.LVM的部署

部署LVM時,需要逐個配置物理卷、卷組和邏輯卷。

功能/命令		物理卷管理		卷組管理			邏輯卷管理
掃描				pvscan			vgscan			lvscan
建立				pvcreate		vgcreate		lvcreate
顯示				pvdisplay		vgdisplay		lvdisplay
刪除				pvremove		vgremove		lvremove
擴展								vgextend		lvextend
縮小								vgreduce		lvreduce

a.創建物理卷

使用兩塊新硬盤/dev/sdb和/dev/sdc創建物理卷,使用pvs或者pvdisplay查看:

[root@shijie Desktop]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created
[root@shijie Desktop]# pvs
  PV         VG    Fmt  Attr PSize  PFree 
  /dev/sda2  rhel  lvm2 a--  19.51g     0 
  /dev/sdb   lvmvg lvm2 a--  20.00g 20.00g
  /dev/sdc   lvmvg lvm2 a--  20.00g 20.00g
[root@shijie Desktop]# pvdisplay /dev/sdb /dev/sdc

  "/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               wk2YIh-l5Hf-U59E-9Uas-We4n-si9s-wnozZE
   
  "/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               zfzxXh-WMXD-f7l3-eSVx-IZGs-2FAs-D9jtKB

b.創建卷組

使用物理卷/dev/sdb和/dev/sdc創建一個名稱爲lvmvg的卷組,使用vgs或者vgdisplay查看:

[root@shijie Desktop]# vgcreate lvmvg /dev/sdb /dev/sdc
  Volume group "lvmvg" successfully created
[root@shijie Desktop]# vgs
  VG    #PV #LV #SN Attr   VSize  VFree 
  lvmvg   2   0   0 wz--n- 39.99g 39.99g
  rhel    1   2   0 wz--n- 19.51g     0 
[root@shijie Desktop]# vgdisplay lvmvg
  --- Volume group ---
  VG Name               lvmvg
  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               IRlex8-TuEU-dydv-Ws1K-q7zg-635q-oOnyqy

vg卷組PE大小爲4MiB,這是PE的默認大小,PE是卷組的最小儲存單位,我們也可以用-s參數來修改,不過這隻能才創建卷組時使用,一旦卷組創建成功是沒法再去修改PE大小的。

c.創建邏輯卷

在剛剛創建的llvmvg卷組上創建邏輯卷lvmlv,使用-L參數設定邏輯卷大小,這個大小必須是設定的PE值的整數倍,如果不是它會分一個比設定的大一點的空間也就是向上去整數倍空間。也可以使用-l,後面跟的就是PE數量。像上個步驟中我們劃分的卷組PE值爲4MiB,數量爲10238,那劃分的邏輯卷大小就爲4x你劃分的數量MiB。

[root@shijie Desktop]# lvcreate -L 2G -n lvmlv lvmvg 
  Logical volume "lvmlv" created
[root@shijie Desktop]# lvcreate -l 500 -n lvmlv2 lvmvg
  Logical volume "lvmlv2" created
[root@shijie dev]# lvs
  LV     VG    Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  lvmlv  lvmvg -wi-a-----  2.00g                                             
  lvmlv2 lvmvg -wi-a-----  1.95g                                             
  root   rhel  -wi-ao---- 17.51g                                             
  swap   rhel  -wi-ao----  2.00g                                             
[root@shijie Desktop]# lvdisplay /dev/lvmvg/lvmlv /dev/lvmvg/lvmlv2
  --- Logical volume ---
  LV Path                /dev/lvmvg/lvmlv
  LV Name                lvmlv
  VG Name                lvmvg
  LV UUID                iuAiCP-23uZ-1GLZ-8Ccn-Xazs-mEEY-v4cjkp
  LV Write Access        read/write
  LV Creation host, time shijie, 2020-05-16 03:37:11 +0800
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/lvmvg/lvmlv2
  LV Name                lvmlv2
  VG Name                lvmvg
  LV UUID                yEZEGP-IQiu-Qr36-wK09-Mwo6-0hos-V3yumg
  LV Write Access        read/write
  LV Creation host, time shijie, 2020-05-16 03:45:19 +0800
  LV Status              available
  # open                 0
  LV Size                1.95 GiB
  Current LE             500
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3        

d.格式化邏輯卷

[root@shijie Desktop]# mkfs.ext4 /dev/lvmvg/lvmlv
mke2fs 1.42.9 (28-Dec-2013)
文件系統標籤=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成                            
正在寫入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

e.掛載使用

[root@shijie Desktop]# mkdir dir
[root@shijie Desktop]# mount /dev/lvmvg/lvmlv ./dir/
[root@shijie Desktop]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/rhel-root     18G  3.1G   15G   18% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G   84K  2.0G    1% /dev/shm
tmpfs                    2.0G  8.9M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sr0                 3.5G  3.5G     0  100% /media/cdrom
/dev/sda1                497M  119M  379M   24% /boot
/dev/mapper/lvmvg-lvmlv  2.0G  6.0M  1.8G    1% /root/Desktop/dir

3.邏輯卷的擴容與縮小

a.擴容

先使用vgs查看lvmvg所剩空間是否充足,接着使用lvextend命令來對lvmlv進行擴容。-L參數和創建卷組的-L參數一個性質,後面都是直接跟大小,不過這裏要注意+3G是增加3G空間,如果不跟+是擴容到3G,同理如果使用-l參數後,後面跟的就是要增加多少PE值。

[root@shijie Desktop]# vgs
  VG    #PV #LV #SN Attr   VSize  VFree 
  lvmvg   2   2   0 wz--n- 39.99g 36.04g
  rhel    1   2   0 wz--n- 19.51g     0 
[root@shijie Desktop]# lvextend -L 3G /dev/lvmvg/lvmlv -r
  Extending logical volume lvmlv to 3.00 GiB
  Logical volume lvmlv successfully resized

[root@shijie Desktop]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/rhel-root     18G  3.1G   15G   18% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G   84K  2.0G    1% /dev/shm
tmpfs                    2.0G  8.9M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sr0                 3.5G  3.5G     0  100% /media/cdrom
/dev/sda1                497M  119M  379M   24% /boot
/dev/mapper/lvmvg-lvmlv  2.9G  6.0M  2.8G    1% /root/Desktop/dir

b.縮小

邏輯卷擴容可以在線操作但是縮小需要先卸載已掛載的邏輯卷。擴容邏輯卷我們是先擴大邏輯卷再擴大文件系統,而縮小邏輯卷就需要我們反着來,我們要先縮小文件系統,再去縮小邏輯卷。縮小文件系統前我們要先對文件系統做個掃描檢測,如果我們直接使用resize2fs系統會提示讓你先對文件系統進行檢測,這是爲了保護縮減文件系統時不對數據損害。

[root@shijie Desktop]# umount /dev/lvmvg/lvmlv
[root@shijie Desktop]# e2fsck -f /dev/lvmvg/lvmlv
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/lvmvg/lvmlv: 11/262144 files (0.0% non-contiguous), 34894/1048576 blocks
[root@shijie Desktop]# resize2fs /dev/lvmvg/lvmlv 2G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/lvmvg/lvmlv to 524288 (4k) blocks.
The filesystem on /dev/lvmvg/lvmlv is now 524288 blocks long.

[root@shijie Desktop]# lvreduce -L 2G /dev/lvmvg/lvmlv
  WARNING: Reducing active logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvmlv? [y/n]: y
  Reducing logical volume lvmlv to 2.00 GiB
  Logical volume lvmlv successfully resized
[root@shijie Desktop]# mount /dev/lvmvg/lvmlv ./dir/
[root@shijie Desktop]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/rhel-root     18G  3.1G   15G   18% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G   84K  2.0G    1% /dev/shm
tmpfs                    2.0G  8.9M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sr0                 3.5G  3.5G     0  100% /media/cdrom
/dev/sda1                497M  119M  379M   24% /boot
/dev/mapper/lvmvg-lvmlv  2.0G  6.0M  1.8G    1% /root/Desktop/dir
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章