LVM的配置與管理

邏輯卷 LVM: logical volume management

邏輯意義上將多塊塊設備組織起來當做一個設備來使用。

Abstract layer 抽象層:隱藏了底層的硬件細節,而輸出給用戶更高意義上的邏輯設備。

動態地擴大或者縮小磁盤空間。

版本:lvm lvm2普遍使用

PV Pysical Volume 物理卷,就是我們的實體磁盤或者分區 ,類似於/dev/sda2, /dev/sda3等等,由PE Physical Extends(物理磁盤塊,類似於chunk)組成。多個PV可以組合起來形成一個VG(卷組 Volume Group)。

PE (Physical Extend) 建立VG的時候指定的block塊大小,默認是4MB。一個VG最大可以容許65534個PE。

VG (Volume Group 卷組) 將一個或者多個PV組合起來形成一個大的磁盤。最大容量與PE有關,默認最大的LVM可達到256G。

在卷組的層次上,把多個底層不同的分區或者硬盤輸出給用戶空間,使得用戶看起來就像一個設備一樣,卷組可以增大或者縮減。

卷組類似於擴展分區,不能直接使用。需要在卷組的基礎上繼續構建一個層次,稱之爲LV

(Logical Volume 邏輯卷)

LV (Logical Volume 邏輯卷) 由VG分割出來,可以被系統使用。f

wps_clip_p_w_picpath-13137

PE,VG,LV的關係

wps_clip_p_w_picpath-7207

LV創建過程

常用命令:

顯示:pvdisplay vgdisplay lvdisplay

掃描:pvscan vgscan lvscan

創建:pvcreate vgcreate lvcreate

移除:pvremvoe vgremove lvremove

擴展:vgextend lvextend

縮減:vgreduce lgreduce

wps_clip_p_w_picpath-5383

創建一個LV的過程:

創建兩個分區:/dev/sda14 /dev/sda15

wps_clip_p_w_picpath-18282

創建物理卷:

[root@server27 ~]# pvcreate /dev/sda14

Physical volume "/dev/sda14" successfully created

[root@server27 ~]# pvcreate /dev/sda15

Physical volume "/dev/sda15" successfully created

[root@server27 ~]# pvdisplay

wps_clip_p_w_picpath-29606

創建卷組:

[root@server27 ~]# vgcreate myvg /dev/sda14

Volume group "myvg" successfully created

[root@server27 ~]# vgdisplay

wps_clip_p_w_picpath-5493

創建邏輯卷

[root@server27 ~]# lvcreate -L 100M -n lv1 myvg

Logical volume "lv1" created

-L 創建邏輯卷的大小

-n 邏輯卷的名字

myvg 在哪個卷組中創建

[root@server27 ~]# lvdisplay myvg

wps_clip_p_w_picpath-10864

下面就可以格式化,正常掛載使用了。

[root@server27 ~]# mkfs -t ext3 /dev/myvg/lv1

[root@server27 ~]# mount /dev/myvg/lv1 /lvm

[root@server27 ~]# cd /lvm

[root@server27 lvm]# ls

lost+found

[root@server27 lvm]# cp /etc/fstab ./

[root@server27 lvm]# ls

fstab lost+found

擴展邏輯卷:

PS: lvcreate -L 200M /dev/myvg/lv1 擴展到200M

lvcreate -L +200M /dev/myvg/lv1 在原有的基礎上再擴展200M

-l 指定PE的個數

[root@server27 lvm]# lvextend -l +25 /dev/myvg/lv1

Extending logical volume lv1 to 200.00 MB

Logical volume lv1 successfully resized

wps_clip_p_w_picpath-29304

沒有增大,怎麼回事?

邏輯卷的增大要分兩個步驟。默認情況下,剛創建完一個分區並格式化後,邏輯邊界和物理邊界一樣大,當使用lvextend只是將物理邊界給擴大了,邏輯邊界依然沒有變。此時需要將邏輯邊界也擴大一下,使用resizefs命令。

[root@server27 ~]# resize2fs -p /dev/myvg/lv1

resize2fs 1.39 (29-May-2006)

Filesystem at /dev/myvg/lv1 is mounted on /lvm; on-line resizing required

Performing an on-line resize of /dev/myvg/lv1 to 204800 (1k) blocks.

The filesystem on /dev/myvg/lv1 is now 204800 blocks long.

wps_clip_p_w_picpath-25318

wps_clip_p_w_picpath-24507

文件正常,不受影響。

先擴展VG,再擴展LV的操作:

[root@server27 lvm]# vgextend myvg /dev/sda15

Volume group "myvg" successfully extended

[root@server27 lvm]# vgdisplay

wps_clip_p_w_picpath-18388

縮減邏輯卷:在不影響文件使用的前提下,對邏輯卷空間的縮減。

先縮減邏輯邊界 再縮減物理邊界

fsck file system check 文件系統一致性檢查

先卸載:

[root@server27 lvm]# umount /lvm

umount: /lvm: device is busy

umount: /lvm: device is busy

[root@server27 ~]# fuser -km /dev/myvg/lv1

/dev/myvg/lv1: 10854c

[root@server27 ~]# umount /lvm

文件系統一致性檢查

[root@server27 ~]# e2fsck -f /dev/myvg/lv1

wps_clip_p_w_picpath-22770

縮減邏輯邊界

[root@server27 ~]# resize2fs /dev/myvg/lv1 100M

resize2fs 1.39 (29-May-2006)

Resizing the filesystem on /dev/myvg/lv1 to 102400 (1k) blocks.

The filesystem on /dev/myvg/lv1 is now 102400 blocks long.

[root@server27 ~]# lvreduce -L 100M /dev/myvg/lv1

WARNING: Reducing active logical volume to 100.00 MB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce lv1? [y/n]: y

Reducing logical volume lv1 to 100.00 MB

Logical volume lv1 successfully resized

wps_clip_p_w_picpath-22988

wps_clip_p_w_picpath-18769

數據未受影響

Q:如果刪除的PV上有數據呢?

pvmove 移動數據到其他物理卷中

PS:pvrmove 移除物理卷

[root@server27 ~]# pvmove /dev/sda14

/dev/sda14: Moved: 60.0%

/dev/sda14: Moved: 100.0%

[root@server27 ~]# vgreduce myvg /dev/sda14

Removed "/dev/sda14" from volume group "myvg"

[root@server27 ~]# pvdisplay

wps_clip_p_w_picpath-14455

wps_clip_p_w_picpath-13850

數據正常,未受影響

將/dev/sda14移除,再顯示一下PV已經看不到了。

[root@server27 lvm]# pvremove /dev/sda14

Labels on physical volume "/dev/sda14" successfully wiped

[root@server27 lvm]# pvdisplay

Snapshot 快照

快照就是將當時的系統信息記錄下來,就好像照相記錄一般! 未來若有任何資料更動了,則原始資料會被搬移到快照區,沒有被更動的區域則由快照區與檔案系統共享。

wps_clip_p_w_picpath-3933

左圖爲最初建置系統快照區的狀況,LVM 會預留一個區域 (左圖的左側三個 PE 區塊) 作爲資料存放處。 此時快照區內並沒有任何資料,而快照區與系統區共享所有的 PE 資料, 因此你會看到快照區的內容與檔案系統是一模一樣的。 等到系統運作一陣子後,假設 A 區域的資料被更動了 (上面右圖所示),則更動前系統會將該區域的資料移動到快照區, 所以在右圖的快照區被佔用了一塊 PE 成爲 A,而其他 B 到 I 的區塊則還是與檔案系統共享!

快照區與被快照的 LV 必須要在同一個 VG 上頭。

備份工具:dump - ext2/3 filesystem backup

-level# 指定備份級別 0---9 0完全備份 1---9 增量備份:只備份上一次比此次級別低的到這一刻爲止的內容

-f 把備份的結果保存到的位置

-u 在每次成功備份之後,將備份信息更新到/etc/dumpdates 文件中。

恢復工具:

restore

-r 重建文件系統

-f file 從文件中恢復,可以是一個特殊設備例如 /dev/st0(磁帶設備)或者/dev/sda1或者是一個普通文件

創建一個快照卷:

[root@server27 lvm]# lvcreate -L 10M -s -n snap_lv1 /dev/myvg/lv1

Rounding up size to full physical extent 12.00 MB

Logical volume "snap_lv1" created

[root@server27 lvm]# lvdisplay

wps_clip_p_w_picpath-12987

創建之後就可以掛載了

[root@server27 lvm]# mkdir /snap

[root@server27 lvm]# mount -o ro /dev/myvg/snap_lv1 /snap

[root@server27 lvm]# cd /snap/

[root@server27 snap]# ls

fstab lost+found

PS:當改變的數據超過10M時,快照就會發生崩潰的情況。

對快照備份:

[root@server27 snap]# dump -0u -f /tmp/lv1.backuo /snap

恢復

[root@server27 lvm]# restore -rf /tmp/lv1.backuo

[root@server27 lvm]# ls

fstab lost+found restoresymtable

PS:redo 重做日誌,undo 撤銷重做

事務:把多個語句放在一起當做整體來執行。

undo.log保證數據永遠處於一致。

本文出自 “諸葛草廬” 博客,請務必保留此出處http://lyp0909.blog.51cto.com/508999/503582

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章