天天看點

Linux邏輯卷管理(LVM)詳細教程

測試環境:RHEL5.3;硬碟8G,1000M一個分區分成6個

一、建立邏輯卷的步驟:

1)通過pvcreate指令将linux分區處理成實體卷(PV);

2)通過vgcreate指令将建立好的實體卷處理成卷組(Vg);

3)通過lvcreate指令将卷組分成若幹個邏輯卷(Lv);

之後我們可以對邏輯卷進行格式化,挂載,删除等操作,我們可以動态的調整邏輯卷的大小,并且該操作不會影響我們在邏輯卷(Lv)上的資料。

二、實體卷建立管理操作:

1)pvcreate建立實體卷:( 把普通Linux分區變成實體卷)

格式:pvcreate /dev/sdb{1,2,3...}

———————————————————————————————

[root@station1 ~]# [root@station1 ~]# pvcreate /dev/sdb{1,2,3,5,6,7}

Physical volume "/dev/sdb3" successfully created

Physical volume "/dev/sdb5" successfully created

Physical volume "/dev/sdb6" successfully created

Physical volume "/dev/sdb7" successfully created

————————————————————————————————

2)pvscan檢視實體卷資訊:會顯示所有實體卷的情況。

格式:pvscan

[root@station1 ~]# pvscan

PV /dev/sdb1 lvm2 [964.81 MB]

PV /dev/sdb2 lvm2 [964.84 MB]

PV /dev/sdb3 lvm2 [964.84 MB]

PV /dev/sdb5 lvm2 [964.81 MB]

PV /dev/sdb6 lvm2 [964.81 MB]

PV /dev/sdb7 lvm2 [964.81 MB]

Total: 6 [5.65 GB] / in use: 0 [0 ] / in no VG: 6 [5.65 GB]

3)pvdisplay檢視各個實體卷的詳細參數:

格式:pvdisplay [/dev/sdb{1,2,3...}] 不跟參數則顯示所有的實體卷資訊

[root@station1 ~]# pvdisplay /dev/sdb1

"/dev/sdb1" is a new physical volume of "964.81 MB"

--- NEW Physical volume ---

PV Name /dev/sdb1

VG Name

PV Size 964.81 MB

Allocatable NO

PE Size (KByte) 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID FKaYKk-d46E-KHCQ-WRnn-jUUE-Cd1d-mM8mPN

————————————————————————————————————

4)pvremove删除實體卷:當實體卷裡的擴充快沒有被使用時可以删除。

格式:pvremove /dev/sdb5

——————————————————————————————

PV /dev/sdb7 VG vg1 lvm2 [960.00 MB / 960.00 MB free]

PV /dev/sdb1 VG vg0 lvm2 [964.00 MB / 964.00 MB free]

PV /dev/sdb2 VG vg0 lvm2 [964.00 MB / 964.00 MB free]

PV /dev/sdb3 VG vg0 lvm2 [964.00 MB / 964.00 MB free]

Total: 6 [5.65 GB] / in use: 4 [3.76 GB] / in no VG: 2 [1.88 GB]

[root@station1 ~]# pvremove /dev/sdb5

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

Total: 5 [4.70 GB] / in use: 4 [3.76 GB] / in no VG: 1 [964.81 MB]

三、卷組的建立管理:

1)vgcreate建立卷組:

格式:vgcreate [-s <8M|16M|...>] vg0 /dev/sdb{1,2,3...}

-s:指定擴充塊(PE)的大小,預設為4MB;(相當與磁盤上的簇,擴充邏輯卷的基本機關。 後面的值可以是8M 16M 32M 64M .....最多65532個擴充塊。

vg0:新建立的卷組的名字。

/dev/sdb{1,2,3...}:需要的實體卷可以寫多個;

[root@station1 ~]# vgcreate vg0 /dev/sdb{1,2,3}

Volume group "vg0" successfully created

2)vgdisplay檢視各個卷組的詳細參數:

格式:vgdisplay /dev/vg0

[root@station1 ~]# vgdisplay /dev/vg0

--- Volume group ---

VG Name vg0

System ID

Format lvm2

Metadata Areas 3

Metadata Sequence No 1

VG Access read/write

VG Status resizable

Cur PV 3

Act PV 3

VG Size 2.82 GB

PE Size 4.00 MB //擴充快大小 預設4MB

Total PE 723

Alloc PE / Size 0 / 0

Free PE / Size 723 / 2.82 GB

VG UUID w4q8ET-UBLY-rHwg-2ZVv-NOw4-dd1e-1ABr2f

[root@station1 ~]# vgcreate -s 16M vg1 /dev/sdb{5,6,7}

Volume group "vg1" successfully created

[root@station1 ~]# vgdisplay /dev/vg1

VG Name vg1

VG Size 2.81 GB

PE Size 16.00 MB //指定擴充塊大小為16MB

Total PE 180

Free PE / Size 180 / 2.81 GB

VG UUID x97eh2-JYxW-4Ygh-5axx-TquS-0vxR-YdFyJ1

———————————————————————————————————

3)vgscan檢視卷組的資訊:

格式:vgsacn

[root@station1 ~]# vgscan

Found volume group "vg1" using metadata type lvm2

Found volume group "vg0" using metadata type lvm2

—————————————————————————————————

4)vgreduce縮小卷組:把實體卷重卷組中删除。

格式:vgreduce vg0 /dev/sdb3

——————————————————————————————————

[root@station1 ~]# vgreduce vg0 /dev/sdb3

Removed "/dev/sdb3" from volume group "vg0"

4)vgextend擴充卷組:把某個實體卷添加到卷組中。

格式:vgextend vg0 /dev/sdb2 将實體卷/dev/sdb2添加到vg0卷組

[root@station1 ~]# vgextend vg0 /dev/sdb3

Volume group "vg0" successfully extended

5)vgremove删除卷組:

格式:vgremove /dev/vg1

PV /dev/sdb5 VG vg1 lvm2 [960.00 MB / 960.00 MB free]

PV /dev/sdb6 VG vg1 lvm2 [960.00 MB / 960.00 MB free]

Total: 6 [5.64 GB] / in use: 6 [5.64 GB] / in no VG: 0 [0 ]

[root@station1 ~]# vgremove /dev/vg1

Volume group "vg1" successfully removed

Total: 6 [5.65 GB] / in use: 3 [2.82 GB] / in no VG: 3 [2.83 GB]

四、邏輯卷的建立及管理:

1)lvcreate建立邏輯卷指令:

格式1:lvcreate -L 512M -n data vg0

-L 512M:設定邏輯卷的大小為512M。

-n data:設定邏輯卷的名字為data ;表示法:/dev/卷組名/data

vg0 :設定是有那個卷組生成的邏輯卷。

[root@station1 ~]# lvcreate -L 1000M -n data vg0

Logical volume "data" created

//建立一個容量為1000MB的邏輯卷data

格式2:lvcreate -l 32 -n data vg0

-l 32:生成的邏輯卷使用32個擴充塊,邏輯卷大小=32*PE(預設4M)則為128M

-n data:邏輯卷的名字;

[root@station1 ~]# lvcreate -l 32 -n data128 vg0

Logical volume "data128" created

//建立一個32個擴充塊,容量為32*4=128MB的邏輯卷data128

2)格式化邏輯卷:

mkfs.ext3 /dev/vg0/data mke2fs -j /dev/vg0/data

3)lvsacn檢視邏輯卷的資訊:

¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬——————————————————————————————————

[root@station1 ~]# lvscan

ACTIVE '/dev/vg0/data' [1000.00 MB] inherit

4)lvdisplay檢視邏輯卷的具體參數:

[root@station1 ~]# lvdisplay /dev/vg0/data

--- Logical volume ---

LV Name /dev/vg0/data

LV UUID 9Od1nq-cHmY-MlrL-vgXW-7Kam-pAfU-Qc8mal

LV Write Access read/write

LV Status available

# open 0

LV Size 1000.00 MB

Current LE 250

Segments 2

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:0

3)增大邏輯卷大小:

lvextend指令:增大邏輯卷大小

格式:lvextend -L +100M /dev/vg0/data

[root@station1 ~]# lvextend -L +1000M /dev/vg0/data

Extending logical volume data to 1.95 GB

Logical volume data successfully resized

resize2fs /dev/vg0/data 使上面增加的立即生效。

[root@station1 ~]# resize2fs /dev/vg0/data

resize2fs 1.39 (29-May-2006)

Resizing the filesystem on /dev/vg0/data to 512000 (4k) blocks.

The filesystem on /dev/vg0/data is now 512000 blocks long.

ACTIVE '/dev/vg0/data' [1.95 GB] inherit

4)減少邏輯卷大小:

lvreduce指令:減少邏輯卷大小

格式:Lvreduce -L -100M /dev/vg0/data

[root@station1 ~]# lvreduce -L -1000M /dev/vg0/data

WARNING: Reducing active logical volume to 1000.00 MB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

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

Reducing logical volume data to 1000.00 MB

resize2fs: Bad magic number in super-block while trying to open /dev/vg0/data

Couldn't find valid filesystem superblock.

ACTIVE '/dev/vg0/data128' [128.00 MB] inherit

5)lvremove删除邏輯卷:

格式:lvremove /dev/卷組名/邏輯卷名

[root@station1 ~]# lvremove /dev/vg0/data128

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

Logical volume "data128" successfully removed

五、LVM的快照:

1)快照的建立:

Lvcreate -l 64 -s -n databackup /dev/vg0/data

-l 64:之前我們已經說過了這裡是 64個擴充塊,總容量=64*單擴充塊大小

-n databackup:生成的快照的名字。

/dev/vg0/data:源邏輯卷名字。

[root@station1 ~]# lvcreate -L 1000M -s -n databackup /dev/vg0/data

Logical volume "databackup" created

ACTIVE Original '/dev/vg0/data' [1000.00 MB] inherit

ACTIVE Snapshot '/dev/vg0/databackup' [1000.00 MB] inherit

2)快照的删除:

lvremove /dev/vg0/databackup

[root@station1 ~]# lvremove /dev/vg0/databackup

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

Logical volume "databackup" successfully removed

六、總結:

建立邏輯卷的順序:Linux分區---實體卷---卷組---邏輯卷

删除邏輯卷的順序:邏輯卷---卷組----實體卷---Linux分區

繼續閱讀