邏輯卷(LVM)管理實例詳解

LVM基本術語

下面是LVM需要了解的基本術語:

 

 物理卷(PV physical volume: 它可以是物理硬盤上的分區,也可以是整塊物理硬盤;

 卷組(VG volume group: 建立在物理卷之上,一個卷組至少包括一個物理卷,可以動態增刪物理卷;

 邏輯卷(LV logical volume:建立在卷組之上,卷組中未分配的空間可以用來建立邏輯卷,并且可以動態調整大小直到用完卷組空間,系統中的多個邏輯卷可以屬于同一個卷組,也可以屬于不同卷組(卷組是物理卷容器,它又被不同邏輯卷動態占用著,就好像一塊物理硬盤被分割成不同的區域一樣);

 物理區域(PE physical extend: PEPV中可以用于分配的最小儲存單元,一旦確定大小不能更改,同一VG中的所有PVPE大小要一致;

 邏輯區域(LE logical extend: LELV中可以用來分配的最小存儲單元,LE的大小取決于LV所在卷中的PE大?。?/span>

卷組描述區域(VGDA volume group descriptor area):VGDA在建立物理卷時建立,用于描述PV本身,所屬VG,VG中的LV,以及LV中的PE大小等等;

 

試驗環境介紹:

操作系統:CentOS7;

硬盤:/dev/sda(系統所在硬盤)、/dev/sdb20G)、/dev/sdc20G

使用/dev/sdb、/dev/sdc這兩塊硬盤完成下面的實驗;

如何創建LVM

創建LVM步驟:創建物理卷(PV->將物理卷加入卷組(VG->使用卷組創建邏輯卷(LV->格式化邏輯卷->掛載使用

如何創建PV

#LVM的創建必須使用root權限,如果沒有給硬盤分區,可以直接使用硬盤號將其創建為PV,將sdbsdc這兩塊硬盤創建成PV

[root@localhost ~]# pvcreate /dev/sd{b,c}
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created

#查看剛創建好的PV

[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sda2  vg0  lvm2 a--u 59.99g  7.99g
  /dev/sdb        lvm2 ---- 20.00g 20.00g
  /dev/sdc        lvm2 ---- 20.00g 20.00g

PV創建好了就可以創建VG了。

如何創建VG

#sdbsdc這兩塊已經創建成PV的硬盤劃分到vg0這個卷組池中,vg0是自定義的名稱,代表一個卷組池(同樣,如果硬盤已經分區,請攜帶分區號)

[root@localhost ~]# vgcreate vg1 /dev/sd{b,c}
  Volume group "vg1" successfully created

#查看VG池

[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg0    1   4   0 wz--n- 59.99g  7.99g
  vg1    2   0   0 wz--n- 39.99g 39.99g

創建好卷組池就能從池中劃分容量給邏輯卷(LV)了。

如何創建LV

#從卷組vg0中拿出10G,分配給lv0,其中-n后面是lv自定義名稱,-L后面跟需要從vg0中分配給lv0的大小以及從哪個VG分配

[root@localhost ~]# lvcreate -n lv0 -L 10G vg1
  Logical volume "lv0" created.
[root@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0  -wi-ao---- 20.00g                                                    
  swap vg0  -wi-ao----  2.00g                                                    
  usr  vg0  -wi-ao---- 10.00g                                                    
  var  vg0  -wi-ao---- 20.00g                                                    
  lv0  vg1  -wi-a----- 10.00g

創建好lv后就可以格式化它。

文件系統格式化

#創建好的lv所在目錄是"/dev/卷組名稱/邏輯卷名稱",所以本例就是/dev/vg0/lv0,將它格式化成ext4文件系統

[root@localhost ~]# mkfs.ext4 /dev/vg1/lv0

格式化完成后就能掛載使用它了

掛載和使用

#將lv0掛載到/web目錄下(不一定非要掛載到/web才能使用,請根據實際情況掛載到其他目錄)

[root@localhost ~]# mkdir /web
[root@localhost ~]# mount /dev/vg1/lv0 /web/
如何擴充和縮小LVM

只要卷組(VG)中有空余空間,就能將其增加到對應邏輯卷(LV)中;或將對應邏輯卷(LV)中的某些分區刪除,讓其成為卷組(VG)中的空余空間。

如何擴充LV

#首先確保VG池中有足夠的VFree空間可供使用(VSize是這個VG的總大小,VFree是還剩下多少空間可以劃分,PV是這個VG包含多少個物理卷,LV是這個VG以及劃分了多少個邏輯卷)

[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg0    1   4   0 wz--n- 59.99g  7.99g
  vg1    2   1   0 wz--n- 39.99g 29.99g

#給lv0增加5G的大小

[root@localhost ~]# lvextend -L +15G /dev/vg1/lv0
  Size of logical volume vg1/lv0 changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
  Logical volume lv0 successfully resized.

#更新lv0大小(必須)

[root@localhost ~]# resize2fs /dev/vg1/lv0

#查看,lv0被擴充到了15G

[root@localhost ~]# df -h /dev/vg1/lv0 
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv0   25G   28M   24G   1% /mnt
如何擴充VG

如果此時我們的VG池容量不夠,可以給計算機添加一塊物理硬盤,先將它創建成PV,之后將它放入VG池即可,請看下面的實例:

#新增加一塊硬盤sdd(20G),將它創建成PV后劃分到vg0下,此時vg0的容量將增加sdd硬盤的大小

[root@localhost ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created
[root@localhost ~]# vgextend vg1 /dev/sdd
  Volume group "vg1" successfully extended
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg0    1   4   0 wz--n- 59.99g  7.99g
  vg1    3   1   0 wz--n- 59.99g 34.99g
如何縮小LV

注意:縮小LV大小有一定風險,可能造成數據丟失,如果不是必要,最好不要縮小它:

#縮小邏輯卷之前,如果此邏輯卷已經掛載,必須先卸載,以lv1為例

[root@localhost ~]# umount /web

#首先對lv0進行檢查

[root@localhost ~]# e2fsck -f /dev/vg1/lv0

#然后縮小文件系統,本例將lv0從15G縮小到10G大小

[root@localhost ~]# resize2fs /dev/vg1/lv0 10G

#最后將lv0縮小5G,縮小有風險,請慎用

[root@localhost ~]# lvreduce -L -5G /dev/vg1/lv0

WARNING: Reducing active logical volume to 20.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv0? [y/n]: y
  Size of logical volume vg1/lv0 changed from 25.00 GiB (6400 extents) to 20.00 GiB (5120 extents).
  Logical volume lv0 successfully resized.

#重新掛載使用

[root@localhost ~]# mount /dev/vg1/lv0 /web/
如何縮小VG

縮小VG比縮小LV稍微安全一點,確保這個要被移除的分區或者硬盤沒有被使用后,可以用下面的命令將它從VG池中去除:

#將sdc這塊硬盤從vg0中移除

root@localhost ~]# vgreduce vg1 /dev/sdd
  Removed "/dev/sdd" from volume group "vg1"
如何創建LVM備份(快照)

注意:邏輯卷的備份是放在和邏輯卷同一個卷組中的,也需要占用卷組的大小,所以卷組的大小不夠備份就不會成功:

[root@localhost ~]# lvcreate -L 10G -s -n lv0bk /dev/vg1/lv0 
  Logical volume "lv0bk" created.
[root@localhost vg1]# ls
lv0  lv0bk

#快照保存了創建時,對應邏輯卷所有數據,路徑"/dev/vg0/lv0back",如果lv0的數據被破壞,只需要將快照文件掛載到某個目錄,然后將其中的數據完整拷貝到lv0即可將lv0恢復到快照創建時的狀態

[root@localhost vg1]# lvs
  LV    VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert                                                  
  lv0   vg1  owi-a-s--- 10.00g                                                    
  lv0bk vg1  swi-a-s--- 10.00g      lv0    0.00
如何刪除LVM

刪除LVM的步驟:如果邏輯卷已掛載,需要先卸載->刪除邏輯卷(LV)->刪除卷組(VG)->刪除物理卷(PV)。

如何刪除LV

#卸載lv1

[root@localhost vg1]# umount /dev/vg1/lv0

#刪除lv0,如果lv0存在快照,會詢問是否刪除快照

[root@localhost vg1]# lvremove /dev/vg1/lv0
Do you really want to remove active logical volume lv0bk? [y/n]: y
  Logical volume "lv0bk" successfully removed
Do you really want to remove active logical volume lv0? [y/n]: y
  Logical volume "lv0" successfully removed

如何刪除VG

[root@localhost vg1]# vgremove vg1
  Volume group "vg1" successfully removed

如何刪除PV

[root@localhost vg1]# pvremove /dev/sd{b,c}
  Labels on physical volume "/dev/sdb" successfully wiped
  Labels on physical volume "/dev/sdc" successfully wiped

 

原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/42259

(0)
M20_heM20_he
上一篇 2016-09-01 08:50
下一篇 2016-09-01 08:50

相關推薦

  • 關于生命中的根

    關于生命中的根    擦干心中的血和淚痕    留住我們的根 關于生命中的根 鴻蒙初辟,萬物生于根 尋根之旅 根就是根 我即為根 路在何方 鴻蒙初辟,萬物生于根    自linux老祖Torvalds創根之始至今,根一直為linux之本,而FHS(Filesystem Hierarchy Stand…

    Linux干貨 2016-10-27
  • Linux的哲學思想和文件系統

    Linux的哲學思想 Linux是一個自由的操作系統,其內部也有著自己獨特的一些特定的規則,就是我們所說的關于Linux的哲學思想。 Linux系統的哲學思想 1.一切皆文件:Linux系統把幾乎所有的系統資源全部都抽象為文件形式,包括硬件設備,甚至通信的接口都是以文件形式存在的。 2.Linux系統是由許許多多的小程序組成的,這些小程序的功能性單一,組合這…

    Linux干貨 2016-11-01
  • Linux基礎系列(用戶,組管理)

       Linux是一個多用戶操作系統多任務的分時操作系統,平時的日常使用離不開用戶登錄以及用戶組的管理,熟練管理用戶和用戶組,會提升我們的工作效率。   Linux用戶管理:   Linux包括系統管理員,普通用戶。普通用戶又分為系統用戶和登錄用戶。系統用戶一般不會登陸系統,其shell類型一般為/etc/nologi…

    Linux干貨 2016-08-04
  • 第一天作業

    一、計算機的組成部分         現代計算機的組成是根據馮.諾依曼體系,包括5大部件存儲器、控制器、運算器、輸入設備和輸出設備。             1.存儲器包括內部存儲器和外部存儲器;內部存儲器包括內部硬盤、內存、緩存等,外部存儲器包括移動硬盤、光…

    Linux干貨 2016-08-15
  • 馬哥教育網絡班21第五周練習作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost ~]# grep "^[[:space:]]\+" /boot/grub2/grub.cfg   2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空…

    Linux干貨 2016-08-08
  • linux文件管理類命令匯總及幾個通配的查找事例

    linux文件管理類命令匯總 1.文本文件查看類命令:cat,tac,more,less,tail,head cat(tac): 正向(反向)顯示 cat [OPTION]… [FILE]…                -E:顯示行結束符$ -n:對顯示出的每一行進行編…

    Linux干貨 2016-09-24

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-01 15:26

    文章操作性強,同時建議對邏輯卷的工作原理進行簡介,同時也能通過作圖來展示自己對lvm的理解。

欧美性久久久久