VM的創建和快照的使用

VM的創建和快照的使用 (LVM詳解)


標籤:Linux volume physical


LVM是邏輯盤卷管理(Logical VolumManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分LVM區管理的靈活性。前面談到,LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建立文件系統。物理卷(physical volume)物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。


120955447.jpg

121316782.jpg

創建一個LVM一般經過以下幾個步驟;
1.創建LVM分區類型:方法和創建其他一般分區的方式是一樣的,區別僅僅是LVM的分區類型爲8e。創建完分區以後用t修改分區類型爲8e

095444346.jpg

2.創建一個邏輯卷需要經過以下幾個步驟;

創建物理卷(PV)-->創建卷組(VG)-->創建卷組(LV)

3.創建物理卷
創建物理卷的命令爲pvcreate,利用該命令將希望添加到卷組的所有分區或者磁盤創建爲物理卷
用法:
pvcreate  /dev/sdb1(將單個分區創建爲物理卷)
pvdisplay /dev/sdb1  (查看創建的物理卷的詳細信息)pvs 也可以查看;


1

2

3

[root@station55 ~]# pvcreate /dev/sd{b,c}1

Physical volume "/dev/sdb1" successfully created

Physical volume "/dev/sdc1" successfully created


(上面的意思就是把我分區的sdb1和sdc1創建爲物理卷)


1

2

3

4

5

[root@station55 ~]# pvs

PV         VG   Fmt  Attr PSize  PFree

/dev/sda2  vg0  lvm2 a--  59.99g  7.99g

/dev/sdb1  myvg lvm2 a--  10.00g 10.00g

/dev/sdc1  myvg lvm2 a--  10.00g 10.00g


(查看剛創建的物理卷的簡要信息)

4 創建卷組
創建卷組的命令爲vgcreate
vgcreate VGNAME /dev/sdb1 vgcreate命令第一個參數是指定該卷組的邏輯名,後面參數是指定希望添加到該卷組的所有分區和磁盤,PE大小決定了邏輯卷的最大大小,4MB的PE決定了單個邏輯卷最大容量爲256GB,若希望使用大於256G的邏輯卷則創建卷組 時指定更大的PE。PE大小範圍爲8KB到512MB,並且必須總是2的倍數(使用-s指定)。
vgdisplay  查看卷組的信息;vgs也可以查看;


1

2

[root@station55 ~]# vgcreate myvg /dev/sd{b,c}1

Volume group "myvg" successfully created


(創建卷組myvg,把物理卷的sd{b,c}1加進來)


1

2

3

4

[root@station55 ~]# vgs

VG   #PV #LV #SN Attr   VSize  VFree

myvg   2   0   0 wz--n- 20.00g 20.00g

vg0    1   4   0 wz--n- 59.99g  7.99g


(查看剛創建的卷組的簡要信息)

5.創建邏輯卷
創建邏輯卷的命令;
lvcreate -L SIZE -n LV_NAME VG_NAME

lvdisplay 查看創建的詳細信息 vgs也可以查看;


1

2

[root@station55 ~]# lvcreate -L 10G -n mylv  myvg

Logical volume "mylv" created


(創建的大小爲10G 邏輯卷名字mylv,從myvg中添加)


1

2

3

4

5

6

7

[root@station55 ~]# lvs

LV   VG   Attr      LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

mylv myvg -wi-a---- 10.00g

root vg0  -wi-ao--- 20.00g

swap vg0  -wi-ao---  2.00g

usr  vg0  -wi-ao--- 10.00g

var  vg0  -wi-ao--- 20.00g


 (查看剛創建的邏輯卷的簡要信息)

創建好的LVM 的路徑保存在:

/dev/VG_NAME/LV_NAME
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/testvg-mylv


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[root@station55 ~]# lvdisplay /dev/myvg/mylv

--- Logical volume ---

LV Path                /dev/myvg/mylv

LV Name                mylv

VG Name                myvg

LV UUID                Yu0Ja1-uL3H-APbU-KFjj-Bmql-VwA9-FhBItY

LV Write Access        read/write

LV Creation host, time station55.magelinux.com, 2013-07-15 08:39:00 +0800

LV Status              available

# open                 0

LV Size                10.00 GiB

Current LE             2560

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:4


(查看創建的邏輯卷存放路徑的詳細信息)

6.創建文件系統

mke2fs -t  ext4    後面跟創建的LV的路徑。 

[root@station55 ~]# mke2fs -t ext4 /dev/myvg/mylv

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)


(格式化成功)

創建了文件系統以後,就可以加載並使用它:

mount  邏輯卷路徑   掛載點 

[root@station55 ~]# mount /dev/myvg/mylv /mnt/


如果希望系統啓動時自動加載文件系統,則還需要在/etc/fstab中添加內容

7.擴展VG
首先準備好一個PV;

[root@station55 ~]# pvcreate /dev/sdc2

Physical volume "/dev/sdc2" successfully created


使用vgextend命令即可完成擴展;
vgextend VG_NAME /PATH/TO/PV 


[root@station55 ~]# vgextend myvg /dev/sdc2

Volume group "myvg" successfully extended


8.縮減VG
確定要移除的PV;
將此PV上的數據轉移至其它PV;

[root@station55 ~]# pvmove /dev/sdb1

/dev/sdb1: Moved: 0.3%

/dev/sdb1: Moved: 64.6%

/dev/sdb1: Moved: 100.0%


(轉移sdb1的數據到別的磁盤上)

從卷組中將此PV移除;

[root@station55 ~]# vgreduce myvg  /dev/sdb1

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


9.擴展邏輯卷
 確定擴展多大?
 確定當前邏輯卷所在的卷組有足夠的空閒空間;
 擴展:

1.1物理邊界

lvextend -L [+]SIZE /path/to/lv

[root@station55 ~]# lvextend -L +3G /dev/myvg/mylv

Extending logical volume mylv to 13.00 GiB

Logical volume mylv successfully resized

(給邏輯卷加3個G)


1.2邏輯邊界
   resize2fs /path/to/lv

[root@station55 ~]# resize2fs /dev/myvg/mylv

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/myvg/mylv is mounted on /mnt; on-line resizing required

old desc_blocks = 1, new_desc_blocks = 1

Performing an on-line resize of /dev/myvg/mylv to 3407872 (4k) blocks.

The filesystem on /dev/myvg/mylv is now 3407872 blocks long.



文件系統檢測:
 e2fsck   /path/to/device


[root@station55 ~]# e2fsck /dev/myvg/mylv

e2fsck 1.41.12 (17-May-2010)

/dev/myvg/mylv: clean, 11/851968 files, 92640/3407872 blocks

  (意思就是堅持沒有問題 clean)


10.縮減邏輯卷
 確定縮減爲多大?前提是:至少能容納原有的所有數據。
 縮減:
1、卸載並強行檢測文件系統;
   e2fsck -f 路徑

[root@station55 ~]# e2fsck -f /dev/myvg/mylv

e2fsck 1.41.12 (17-May-2010)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/myvg/mylv: 11/851968 files (0.0% non-contiguous), 92640/3407872 blocks


2、邏輯邊界

resize2fs /path/to/device SIZE

[root@station55 ~]# resize2fs /dev/myvg/mylv 10G

resize2fs 1.41.12 (17-May-2010)

The filesystem is already 2621440 blocks long.  Nothing to do!


(提示已經縮減至10G)

3、物理邊界
   lvreduce -L [-]SIZE /path/to/lv

[root@station55 ~]# lvreduce -L -3G /dev/myvg/mylv

WARNING: Reducing active logical volume to 10.00 GiB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

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

Reducing logical volume mylv to 10.00 GiB

Logical volume mylv successfully resized


(警告縮減有風險,輸入y提示縮減成功)

11.快照卷創建:
 生命週期爲整個數據時長;在這段時長內,數據的增長量不能超出快照卷大小;
 快照卷應該是隻讀的;
 跟原卷在同一卷組內;
 lvcreate 
  -s : 快照卷;
  -p r: 限制快照卷爲只讀訪問

 lvcreate -L SIZE -s -p r -n LV_NAME /path/to/lv


[root@station55 ~]# lvcreate -L 50M -s -p r -n kuaizhao /dev/myvg/mylv

Rounding up size to full physical extent 52.00 MiB

Logical volume "kuaizhao" created


(創建快照成功,用lvs可以看到快照卷的信息)

創建完後快照卷就可以掛在查看了


[root@station55 ~]# mount /dev/myvg/kuaizhao /media/

mount: block device /dev/mapper/myvg-kuaizhao is write-protected, mounting read-only


(提示掛在爲只讀模式)

12.移除邏輯卷:
lvremove /path/to/lv

[root@station55 ~]# lvremove /dev/myvg/mylv

Do you really want to remove active logical volume mylv? [y/n]: y

Logical volume "mylv" successfully removed


(移除邏輯捲成功,移除mylv前先把快照給移除命令和移除邏輯卷一樣)

13.移除卷組:
 vgremove VG_NAME

[root@station55 ~]# vgremove myvg

Volume group "myvg" successfully removed


(移除搞定)

14.移除物理卷;


[root@station55 ~]# pvremove /dev/sdc1

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

(移除搞定)

總結

       根據上面的討論可以看到,LVM具有很好的可伸縮性,使用起來非常方便。可以方便地對卷組、邏輯卷的大小進行調整,更進一步調整文件系統的大小。  


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