1. 程式人生 > >磁碟管理——LVM的建立與管理(Linux)

磁碟管理——LVM的建立與管理(Linux)

不以物喜不以己悲,生活不會突變,你要做的只是耐心和積累。

 認識LVM

LVM(邏輯卷管理器),所謂邏輯就是不是真實存在的實物,是想象出來的。LVM有什麼用呢?我們普通的磁碟分割槽或者磁碟陣列部署完之後再想去修改分割槽的大小就不容易了。換句話說,當用戶想隨著實際需求動態調整分割槽大小,會受到硬碟“靈活性”的限制,這時候就需要一種可以動態調整磁碟分割槽大小的技術,LVM技術誕生,LVM 技術是在硬碟分割槽和檔案系統之間添加了一個邏輯層,它提供了一個抽象的卷組,可以把多塊硬碟進行卷組合並。這樣一來,使用者不必關心物理硬碟裝置的底層架構和佈局,就可以實現對硬碟分割槽的動態調整。LVM技術架構如圖所示:

 

為了能更好的理解LVM,通過一個之前看過的蒸饅頭的例子來說明。小明家裡蒸饅頭,但麵粉不夠,然後去兩鄰居家借了些麵粉(也就是硬碟或者分割槽),來蒸饅頭吃。首先需要把這些麵粉(物理卷PV揉成一個大的麵糰VG(卷組)),然後再把大的麵糰分割成一個個小饅頭(LV(邏輯卷)),而且每個小饅頭使用的麵粉量都是一勺(PE(基本單元))。

 部署LVM的常用命令

功能/命令 物理卷管理(PV) 卷組管理(VG) 邏輯卷管理(LV)
掃描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
顯示 pvdisplay vgdisplay lvdisplay
刪除 pvremove vgremove lvremove
擴充套件   vgextend lvextend(lvresize)
縮小   vgreduce lvreduce(lvresize)

LVM 建立過程演示

百聞不如一見,看書不如實驗,實踐是檢驗真理的唯一標準。

1.安裝LVM管理工具

yum -y install lvm2

2.檢視建立LVM卷的硬碟或者分割槽

lvmdiskscan

3.建立PV(物理卷),新增2塊硬碟(至少需要一個硬碟或者分割槽,這裡用兩塊硬碟來演示),讓新新增的兩塊硬碟裝置支援 LVM 技術

[[email protected] ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created

4.建立VG(卷組),“storage”為卷組名

[[email protected] ~]# vgcreate storage /dev/sdb /dev/sdc
Volume group "storage" successfully created
[[email protected] ~]# vgdisplay //顯示卷組狀態
--- Volume group ---
VG Name storage
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 KUeAMF-qMLh-XjQy-ArUo-LCQI-YF0o-pScxm1
………………省略部分輸出資訊………………

5.建立LV(邏輯卷),切割出一個約為 150MB 的邏輯卷裝置,“vo”為邏輯卷名。

[[email protected] ~]# lvcreate -n vo -L 150M storage
Logical volume "vo" created
[[email protected] ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/vo
LV Name vo
VG Name storage
LV UUID D09HYI-BHBl-iXGr-X2n4-HEzo-FAQH-HRcM2I
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 01:22:54 -0500
LV Status available
# open 0
LV Size 148.00 MiB
Current LE 37
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
………………省略部分輸出資訊………………

6.把生成好的邏輯捲進行格式化,然後掛載使用。

[[email protected] ~]# mkfs.ext4 /dev/storage/vo
[[email protected] ~]# mkdir /linuxprobe   //建立掛載目錄
[[email protected] ~]# mount /dev/storage/vo /linuxprobe     //掛載

7.檢視掛載狀態,並寫入到配置檔案,使其永久生效。

[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 140K 914M 1% /dev/shm
tmpfs 914M 8.8M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-vo 145M 7.6M 138M 6% /linuxprobe
[[email protected] ~]# echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /
etc/fstab

邏輯卷的擴容和縮容

提示:xfs格式的磁碟,只能擴不能縮

說明:“-r”引數的含義是:檢查硬碟完整性,並重置硬碟容量。

增加大小
lvresize -L +100M -r /dev/storage/vo
lvextend -L +100M -r /dev/storage/vo

減小大小
lvresize -L -100M -r /dev/storage/vo
lvreduce -L -100M -r /dev/storage/vo

刪除LVM

LVM 的刪除步驟:
1.先解除安裝lv
umount /linuxprobe

2.刪除lv
lvremove /dev/storage/vo

3.刪除vg
vgremove /dev/storage

4.刪除pv
pvremove /dev/sdb /dev/sdc

或者直接vgremove /dev/storage,再pvremove /dev/sdb /dev/sdc