2021-05-12 14:32:11
LVM邏輯卷管理LVM PV VG LV 理解
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,他是磁碟管理的一種工具,就目前基本上所有作業系統均支援,LVM是建立在硬碟和分割區之上的一個邏輯層,來提高磁碟分割區管理的靈活性。通過LVM系統管理員可以輕鬆管理磁碟分割區,如:將若干個磁碟分割區連線為一個整塊的捲組(volume group),形成一個儲存池。管理員可以在捲組上隨意建立邏輯卷組(logical volumes),並進一步在邏輯卷組上建立檔案系統。管理員通過LVM可以方便的調整儲存卷組的大小,並且可以對磁碟儲存按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“DBdata”和“DBSoft”,而不是使用物理磁碟名“sda”和“sdb”或”hda”和”hdb”。而且當系統新增了新的磁碟,通過LVM管理員就不必將磁碟的檔案移動到新的磁碟上以充分利用新的儲存空間,而是直接擴充套件檔案系統跨越磁碟即可,架構可以參考如下圖:
1、基本概念介紹
物理儲存媒介(The physical media)
這裡指系統的儲存裝置:硬碟,如:/dev/hda、/dev/sda等等,是儲存系統最低層的儲存單元。
物理卷(PV physical volume)
物理捲就是指硬碟分割區或從邏輯上與磁碟分割區具有同樣功能的裝置(如RAID),是LVM的基本儲存邏輯塊,但和基本的物理儲存媒介(如分割區、磁碟等)比較,卻包含有與LVM相關的管理引數。
卷組(VG Volume Group)
LVM捲組類似於非LVM系統中的物理硬碟,其由物理卷組成。可以在捲組上建立一個或多個“LVM分割區”(邏輯卷),LVM捲組由一個或多個物理卷組成。
邏輯卷(LV logical volume)
LVM的邏輯卷類似於非LVM系統中的硬碟分割區,在邏輯卷之上可以建立檔案系統(比如/home或者/usr等)。
PE(physical extent)
每一個物理卷被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM定址的最小單元。PE的大小是可設定的,預設為4MB。
LE(logical extent)
邏輯卷也被劃分為被稱為LE(Logical Extents) 的可被定址的基本單位。在同一個捲組中,LE的大小和PE是相同的,並且一一對應。
首先可以看到,物理卷(PV)被由大小等同的基本單元PE組成。
一個捲組由一個或多個物理卷組成:
從上圖可以看到,PE和LE有著一一對應的關係。邏輯卷建立在捲組上。邏輯卷就相當於非LVM系統的磁碟分割區,可以在其上建立檔案系統。
下圖是磁碟分割區、捲組、邏輯卷和檔案系統之間的邏輯關係的示意圖:
和非LVM系統將包含分割區資訊的後設資料儲存在位於分割區的起始位置的分割區表中一樣,邏輯卷以及捲組相關的後設資料也是儲存在位於物理捲起始處的VGDA(捲組描述符區域)中。VGDA包括以下內容: PV描述符、VG描述符、LV描述符、和一些PE描述符 。
系統啟動LVM時啟用VG,並將VGDA載入至記憶體,來識別LV的實際物理儲存位置。當系統進行I/O操作時,就會根據VGDA建立的對映機制來存取實際的物理位置。
2、LVM建立和管理
1)虛擬機器新增兩塊磁碟,並識別為sdb和sdc
2)建立PV,使用sdb和sdc
[root@localhost ~]
# pvcreate /dev/sdb
Physical volume
"/dev/sdb"
successfully created
[root@localhost ~]
# pvcreate /dev/sdc
Physical volume
"/dev/sdc"
successfully created
[root@localhost ~]
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2
vg00 lvm2 a-- 7.80g 0
/dev/sdb
vgzx lvm2 a-- 8.00g 8.00g
/dev/sdc
vgzx lvm2 a-- 8.00g 8.00g
3)建立VG,使用剛建立的兩個PV
[root@localhost ~]
# vgcreate vgzx /dev/sdb /dev/sdc
Volume group
"vgzx"
successfully created
[root@localhost ~]
# vgs
VG
#PV #LV #SN Attr VSize VFree
vg00 1 2 0 wz--n- 7.80g 0
vgzx 2 0 0 wz--n- 15.99g 15.99g
4)建立LV,在剛建立的VG上建立兩個LV
[root@localhost ~]
# lvcreate -L 2G -n lvzx01 vgzx
Logical volume
"lvzx01"
created.
[root@localhost ~]
# lvcreate -L 2G -n lvzx02 vgzx
Logical volume
"lvzx02"
created.
[root@localhost ~]
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data vg00 -wi-ao---- 5.85g
swap vg00 -wi-ao---- 1.95g
lvzx01 vgzx -wi-a----- 2.00g
lvzx02 vgzx -wi-a----- 2.00g
5)使用剛建立的LV建立檔案系統並掛載到作業系統
[root@localhost ~]# mkfs.ext4 /dev/vgzx/lvzx01
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block
size
=4096 (log=2)
Fragment
size
=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved
for
the super
user
First
data block=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
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks
and
filesystem accounting information: done
This filesystem will be automatically checked every 35 mounts
or
180 days, whichever comes
first
. Use tune2fs -c
or
-i
to
override.
[root@localhost ~]# mkfs.ext4 /dev/vgzx/lvzx02
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block
size
=4096 (log=2)
Fragment
size
=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved
for
the super
user
First
data block=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
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks
and
filesystem accounting information: done
This filesystem will be automatically checked every 20 mounts
or
180 days, whichever comes
first
. Use tune2fs -c
or
-i
to
override.
[root@localhost ~]# mkdir /orasoft
[root@localhost ~]# mkdir /oradata
[root@localhost ~]# mount /dev/mapper/vgzx-lvzx01
mount: can't find /dev/mapper/vgzx-lvzx01
in
/etc/fstab
or
/etc/mtab
[root@localhost ~]# mount /dev/mapper/vgzx-lvzx01 /oradata/
[root@localhost ~]# mount /dev/mapper/vgzx-lvzx02 /orasoft/
[root@localhost ~]# df -h
Filesystem
Size
Used Avail Use% Mounted
on
/dev/mapper/vg00-data
5.7G 1.9G 3.6G 34% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 190M 36M 145M 20% /boot
/dev/mapper/vgzx-lvzx01
2.0G 3.0M 1.9G 1% /oradata
/dev/mapper/vgzx-lvzx02
2.0G 3.0M 1.9G 1% /orasoft
如果想掛載隨機啟動需要修改/etc/fastab檔案。
6)擴充套件LV
[root@localhost ~]# lvextend -L +2G /dev/mapper/vgzx-lvzx01
Size
of
logical volume vgzx/lvzx01 changed
from
2.00 GiB (512 extents)
to
4.00 GiB (1024 extents).
Logical volume lvzx01 successfully resized
[root@localhost ~]# lvextend -L +3G /dev/mapper/vgzx-lvzx02
Size
of
logical volume vgzx/lvzx02 changed
from
2.00 GiB (512 extents)
to
5.00 GiB (1280 extents).
Logical volume lvzx02 successfully resized
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta%
Move
Log Cpy%Sync
Convert
data vg00 -wi-ao
---- 5.85g
swap vg00 -wi-ao
---- 1.95g
lvzx01 vgzx -wi-ao
---- 4.00g
lvzx02 vgzx -wi-ao
---- 5.00g
[root@localhost ~]# df -h
Filesystem
Size
Used Avail Use% Mounted
on
/dev/mapper/vg00-data
5.7G 1.9G 3.6G 34% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 190M 36M 145M 20% /boot
/dev/mapper/vgzx-lvzx01
2.0G 3.0M 1.9G 1% /oradata
/dev/mapper/vgzx-lvzx02
2.0G 3.0M 1.9G 1% /orasoft
7)擴充套件檔案系統resize2fs
從上面可以看出,LV分別做了擴充套件,但在作業系統上還沒有顯示為擴充套件
[root@localhost ~]# resize2fs /dev/mapper/vgzx-lvzx01
resize2fs 1.41.12 (17-May-2010)
Filesystem
at
/dev/mapper/vgzx-lvzx01
is
mounted
on
/oradata;
on
-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an
on
-line resize
of
/dev/mapper/vgzx-lvzx01
to
1048576 (4k) blocks.
The filesystem
on
/dev/mapper/vgzx-lvzx01
is
now 1048576 blocks long.
[root@localhost ~]# resize2fs /dev/mapper/vgzx-lvzx02
resize2fs 1.41.12 (17-May-2010)
Filesystem
at
/dev/mapper/vgzx-lvzx02
is
mounted
on
/orasoft;
on
-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an
on
-line resize
of
/dev/mapper/vgzx-lvzx02
to
1310720 (4k) blocks.
The filesystem
on
/dev/mapper/vgzx-lvzx02
is
now 1310720 blocks long.
[root@localhost ~]# df -h
Filesystem
Size
Used Avail Use% Mounted
on
/dev/mapper/vg00-data
5.7G 1.9G 3.6G 34% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 190M 36M 145M 20% /boot
/dev/mapper/vgzx-lvzx01
3.9G 4.0M 3.7G 1% /oradata
/dev/mapper/vgzx-lvzx02
4.9G 4.0M 4.7G 1% /orasoft
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-05/143724.htm
相關文章