2021-05-12 14:32:11
LVM邏輯卷管理設定
前言
Logical Volume Manager (LVM),邏輯卷管理LVM是一個多才多藝的硬碟系統工具,無論在Linux或者其他類似的系統,都是非常的好用。傳統分割區使用固定大小分割區,重新調整大小十分麻煩,但是LVM可以建立和管理“邏輯”捲,而不是直接使用物理硬碟,可以讓管理員彈性的管理邏輯卷的擴大縮小,操作簡單,而不損壞已儲存的資料。可以隨意將新的硬碟新增到LVM,以直接擴充套件已經存在的邏輯卷,LVM並不需要重新啟動就可以讓核心知道分割區的存在。文章詳細記錄在PV/VG/LV中3個階段的建立/新增/擴充套件/減小/刪除等實戰操作步驟,方便自己回顧一些基礎用法,也希望能夠幫助大家更好的理解LVM的原理。
LVM是一個非常給力的工具,用來建立和管理可變大小的分割區
LVM基本組成
LVM利用Linux核心的device-mapper來實現儲存系統的虛擬化(系統分割區獨立於底層硬體)。 通過LVM,你可以實現儲存空間的抽象化並在上面建立虛擬分割區(virtual partitions),可以更簡便地擴大和縮小分割區,可以增刪分割區時無需擔心某個硬碟上沒有足夠的連續空間, without getting caught up in the problems of fdisking a disk that is in use (and wondering whether the kernel is using the old or new partition table) and without having to move other partition out of the way. LVM是用來方便管理的,不會提供額外的安全保證。 However, it sits nicely with the other two technologies we are using.
LVM的基本組成塊(building blocks)如下:
物理卷Physical volume (PV) :可以在上面建立卷組的媒介,可以是硬碟分割區,也可以是硬碟本身或者回環檔案(loopback file)。物理卷包括一個特殊的header,其餘部分被切割為一塊塊物理區域(physical extents)。 Think of physical volumes as big building blocks which can be used to build your hard drive.
捲組Volume group (VG) :將一組物理捲收集為一個管理單元。Group of physical volumes that are used as storage volume (as one disk). They contain logical volumes. Think of volume groups as hard drives.
邏輯卷Logical volume (LV) :虛擬分割區,由物理區域(physical extents)組成。A "virtual/logical partition" that resides in a volume group and is composed of physical extents. Think of logical volumes as normal partitions.
物理區域Physical extent (PE) :硬碟可供指派給邏輯卷的最小單位(通常為4MB)。A small part of a disk (usually 4MB) that can be assigned to a logical Volume. Think of physical extents as parts of disks that can be allocated to any partition.
優點
比起正常的硬碟分割區管理,LVM更富於彈性:
-
使用卷組(VG),使眾多硬碟空間看起來像一個大硬碟。
-
使用邏輯卷(LV),可以建立跨越眾多硬碟空間的分割區。
-
可以建立小的邏輯卷(LV),在空間不足時再動態調整它的大小。
-
在調整邏輯卷(LV)大小時可以不用考慮邏輯卷在硬碟上的位置,不用擔心沒有可用的連續空間。It does not depend on the position of the LV within VG, there is no need to ensure surrounding available space.
-
可以線上(online)對邏輯卷(LV)和捲組(VG)進行建立、刪除、調整大小等操作。LVM上的檔案系統也需要重新調整大小,某些檔案系統也支援這樣的線上操作。
-
無需重新啟動服務,就可以將服務中用到的邏輯卷(LV)線上(online)/動態(live)遷移至別的硬碟上。
-
允許建立快照,可以儲存檔案系統的備份,同時使服務的下線時間(downtime)降低到最小。
這些優點使得LVM對伺服器的管理非常有用,對於桌面系統管理的幫助則沒有那麼顯著,你需要根據實際情況進行取捨。
LVM
#新建
fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
#主分割區
p
#分割區號
Partition number (1-4): 1
#回車用預設的1
First cylinder (1-1044, default 1):
#大小
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044):
#改變型別
Command (m for help): t
Selected partition 1
#LVM 的分割區程式碼
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
#儲存
w
#退出
q
#檢視建立完後的分割區
fdisk -l
Disk /dev/sda: 96.6 GB, 96636764160 bytes
255 heads, 63 sectors/track, 11748 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008cbaf
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 11749 93858816 8e Linux LVM
Disk /dev/sdb: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x16396101
Device Boot Start End Blocks Id System
/dev/sdb1 1 26108 209712478+ 8e Linux LVM
#建立物理卷(PV)
pvcreate /dev/sdb1
pvscan
PV /dev/sdb1 VG vg_data lvm2 [200.00 GiB / 30.00 GiB free]
PV /dev/sda2 VG VolGroup lvm2 [89.51 GiB / 1.51 GiB free]
Total: 2 [289.50 GiB] / in use: 2 [289.50 GiB] / in no VG: 0 [0 ]
pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg_data
PV Size 200.00 GiB / not usable 1.34 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 51199
Free PE 7679
Allocated PE 43520
PV UUID c9js6G-WP93-ug9b-9aXe-unnZ-doWQ-AkzOKf
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroup
PV Size 89.51 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 22914
Free PE 386
Allocated PE 22528
PV UUID bFne0f-RnL8-vut2-AcKr-fr9k-VfeG-C8OHSR
#刪除物理卷
pvremove /dev/sdb1
#建立卷組(VG)
vgcreate vg_data /dev/sdb1
vgcreate vg_data /dev/hda{6,7,8}
#擴充套件VG
vgextend vg_data /dev/hda9
#檢視VG資訊
vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg_data" using metadata type lvm2
Found volume group "VolGroup" using metadata type lvm2
vgdisplay
--- Volume group ---
VG Name vg_data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 200.00 GiB
PE Size 4.00 MiB
Total PE 51199
Alloc PE / Size 43520 / 170.00 GiB
Free PE / Size 7679 / 30.00 GiB
VG UUID EQhiUt-Waj1-F3V2-cwej-2joz-oC3P-JMSFui
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 5
Open LV 5
Max PV 0
Cur PV 1
Act PV 1
VG Size 89.51 GiB
PE Size 4.00 MiB
Total PE 22914
Alloc PE / Size 22528 / 88.00 GiB
Free PE / Size 386 / 1.51 GiB
VG UUID i0qDld-uOz4-P1BS-2gN8-2vhj-5gdc-DnHfa4
#刪除VG
vgremove vg_data
#建立邏輯卷(LV)
lvcreate -L 20g -n lv_Oracle vg_data
lvcreate -l 100%FREE -n lv_oracle vg_data
#檢視LV
lvscan
ACTIVE '/dev/vg_data/lv_oracle' [20.00 GiB] inherit
ACTIVE '/dev/VolGroup/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/VolGroup/lv_home' [10.00 GiB] inherit
lvdisplay
--- Logical volume ---
LV Path /dev/vg_data/lv_oracle
LV Name lv_oracle
VG Name vg_data
LV UUID P3jVXt-92Lp-QElD-ddl8-lW4r-okz7-n8fdXD
LV Write Access read/write
LV Creation host, time capdb, 2016-03-17 17:12:43 +0800
LV Status available
# open 1
LV Size 20.00 GiB
Current LE 5120
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:5
#格式化邏輯卷
mkfs -t ext4 /dev/vg_data/lv_oracle
mkfs.ext4 /dev/vg_data/lv_oracle
#掛載邏輯卷
mkdir /oracle
#修改fstab
vi /etc/fstab
/dev/vg_data/lv_oracle /oracle ext4 dafualts 0 0
#測試lv是否可以掛載
mount -a
mount /dev/vg_data/lv_oracle /oracle
df -h
#刪除邏輯卷
fuser -m /oracle
umount /oracle
lvremove /dev/vg_data/lv_oracle
LVM擴充套件
LVM特點就是支援線上動態擴容,如果為了穩妥也可以先umount
#檢視Free PE / Size可用空間
vgdisplay
--- Volume group ---
VG Name vg_data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 200.00 GiB
PE Size 4.00 MiB
Total PE 51199
Alloc PE / Size 43520 / 170.00 GiB
Free PE / Size 7679 / 30.00 GiB
VG UUID EQhiUt-Waj1-F3V2-cwej-2joz-oC3P-JMSFui
#設定邏輯卷的大小
lvresize -L 40g /dev/vg_data/lv_oracle
lvresize -L +20g /dev/vg_data/lv_oracle
#檢查磁碟錯誤,等待時間較長可以考慮跳過
e2fsck -f /dev/vg_data/lv_oracle
#更新檔案系統資訊
resize2fs /dev/vg_data/lv_oracle
#檢查邏輯卷狀態
lvdisplay vg_data
LVM縮減
注意減少的大小,實施前umount邏輯卷
#解除安裝LV
umout /oracle
#檢查磁碟錯誤
e2fsck -f /dev/vg_data/lv_oracle
#縮小檔案系統,更新檔案系統資訊
resize2fs /dev/vg_data/lv_oracle 10g
#減少LV大小
lvresize -L 10g /dev/vg_data/lv_oracle
lvresize -L -30g /dev/vg_data/lv_oracle
#檢查邏輯卷大小
lvdisplay
df -h
擴充套件卷組
步驟和建立VG類似
#建立一個2GB分割區sdc1,型別為LVM(8e)
fdisk /dev/sdc
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
#建立一個物理卷 /dev/sdc1
pvcreate /dev/sdc1
#增加到已存在的捲組
vgextend vg_data /dev/sdc1
#驗證卷組大小
vgdisplay
刪除捲組
#解除安裝邏輯卷
umount /oracle
#刪除邏輯卷
lvremove /dev/vg_data/lv_oracle
#取消啟用卷組
vgchange -a n vg_data
#刪除捲組
vgremove vg_data
#刪除物理卷
pvremove /dev/sdb1
pvremove /dev/hda{6,7,8}
#普通磁碟型別是83
fdisk /dev/sdb
t 83
lvchange
在做HA共用儲存時需要配合lvchange啟用lv
lvscan
lvchange -a y /dev/vg_data/lv_oradata
命令總結
任務 | PV 階段 | VG 階段 | LV 階段 |
---|---|---|---|
搜尋 (scan) | pvscan | vgscan | lvscan |
建立 (create) | pvcreate | vgcreate | lvcreate |
列出 (display) | pvdisplay | vgdisplay | lvdisplay |
擴充套件 (extend) | vgextend | lvextend (lvresize) | |
減少 (reduce) | vgreduce | lvreduce (lvresize) | |
刪除 (remove) | pvremove | vgremove | lvremove |
改變容量 (resize) | lvresize | ||
改變屬性 (attribute) | pvchange | vgchange | lvchange |
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-12/138373.htm
相關文章