LVM邏輯卷管理器

LVM:

一、
Logical Volum Manager :邏輯卷管理器

LVM可以整合多個物理分區在一起,讓這些分區看起來是一個磁盤一樣,還可以在將來其他的物理

分區或將其從這個LVM管理的磁盤當中刪除!


物理卷(PV)id=8e ---> 卷組(Vg) --> 邏輯卷(Lv)    三層    


二、特點:

一個Vg至少包含一個物理卷。

邏輯卷可用

卷組大小由物理卷改變

邏輯卷大小改變,邊界改變,不影響裏面數據

邏輯卷可以縮減,邊界縮小,不影響裏面數據(有一定風險)

快照卷

邏輯卷有快照功能,保存原卷數據某一時刻的狀態

訪問快照是快照那一時刻數據的狀態

快照非常小。

快照剛剛創建時幾乎是空的。是訪問邏輯卷的一條路徑。

在線備份

在操作數據時備份數據不完整,損壞的。 可以使用快照。

PE: 物理盤區。--- check

三、LVM組成:

PV:物理卷,實際分區需要調整系統標示符(ID)成爲8e(LVM的識別符),調整system

ID可以利用fdisk

VG:卷用戶組,所謂的LVM大磁盤就是將許多PV整個成這個VG,VG就是LVM組合起來的大磁盤

LV:最終的VG還會被切成LV,Lv就是最後可以被格式化使用的類似分區!由於PE的大小是在格式化

分區是指定的固定大小,所以呢Lv的大小也是有PE的總數所決定的!

PE:物理擴展塊,LVM默認使用的4M的PE塊,LVM最多能使用65534個PE,,是lVM中最小的存儲塊,

PE有點像是文件系統的block大小,調整PE影響VG的最大容量!


四、實現流程:

fdisk(system ID改爲8e創建邏輯卷分區)--> 

pvcreat,pvscan(創建與查看物理卷)-->vgcreat,vgdisplay(以pv卷創建VG卷) -->

lvcreat,lvdisplay(從VG中切割出LV)--> mkfs,mount(格式化後掛載使用)

邏輯卷支持快照(snapshot),快照就是將當時的系統信息記錄下來,就好像照相功能一般,將來

若有任何數據改動了,則原始數據會被移動到快照區,沒有被改動的區域則由快照區與文件系統

共享,快照卷的大小取決於,數據改變大小和數據改變頻度!

五、命令參數:

PV參數:

pvscan(查詢當前系統上任何具有PV的磁盤)

pvcreate(將物理分區新建爲PV)

     前期準備是:fdisk /dev/sdb n p 1 t 8e w
 
  ..#n爲新建分區,p爲主分區,1爲sdb1卷標,t更改分區屬性,8e爲LVM默認的標識符,w保
 
  存當前的配置信息
 
  pvcreat /dev/sdb{1,2,3}
 
  pvscan
 
  pvdisplay
 
pvdisplay(顯示出目前系統上面的PV狀態)

pvremove(將PV屬性刪除,讓該分區不具有PV屬性)

VG參數:

vgcreate(新建VG的命令)

     -s 指定PE大小,單位可以是K M G T (大小寫均可)
 
     eg:vgcreat -s 16M myvg /dev/sdb{1,2}
  
      vgscan
   
   vgscan
   
   vgdisplay
   
 vgscan(查找當前系統上是否有VG的存在) vgdisplay(顯示當前系統上的VG狀態)
 
 vgextend(在VG內增加額外的PV)
 
        eg: vgextend myvg /dev/sdb3 #將sdb3擴展給myvg
  
      vgdisplay
   
 vgreduce(在VG內刪除PV)
 
 vgchange(設置VG是否啓動(active))
 
 vgremove(刪除一個VG)

LV參數:

lvcreate(新建LV)

     -L 後面直接指定容量,單位可以爲K M G T,最小單位爲PE
 
  -l 後面跟的是PE的個數
 
  -n 後面跟的是LV的名稱
 
      eg:lvcreat -l 255 mylv mylv         #將myvg全部分配給mylv,PE共255個
  
      ll /dev/myvg/mylv
   
   lvdisplay
   
   mkfs -t ext3 /dev/myvg/mylv #(指定LV的全名)
   
   mkdir /mnt/lvm
   
   mount /dev/myvg/mylv /mnt/lvm
   
   df -lh
   
   cp -a /etc/* /mnt/lvm #測試一下可以lvm,複製一下試試
   
lvscan(查詢系統上面的LV)

lvdisplay(顯示系統上面的LV狀態)

lvextend(在LV裏面增加容量)

     pvcreat /dev/sdb4 #建立新的PV
 
  pvscan
 
  vgextend myvg /dev/sdb4 #加大VG利用vgextend
 
  vgdisplay
 
  lvresize -l +200 /dev/myvg/mylv #放大LV ,利用lvr
 
  esize
 
  lvdisplay
 
  df /mnt/lvm
 
  dumpe2fs /dev/myvg/mylv #查看原本文件系統中的superblock記錄情況
 
  resize2fs -f /dev/myvg/mylv #resize2fs的語法,-f強制進行操作
 
  resize2fs /dev/myvg/mylv #完整的將LV 的容量擴充到整個文件 系統
 
  df /mnt/lvm
 
  ll /mnt/lvm
 
lvreduce(在LV裏面減少容量)

     pvdisplay #顯示/dev/sdb中的容量大小,並嘗試計算文件系統縮小多少
 
  pvscan
 
  resize2fs /dev/myvg/mylv 2300M
 
  #直接降低文件系統的容量,這裏不能將2300M寫成2.3G ,這裏不能寫小數點
 
  umount /mnt/lvm
 
  resize2fs /dev/myvg/mylv 2300M
 
  e2fsck -f /dev/myvg/mylv
 
  resize2fs /dev/myvg/mylv 2300M
 
  mount /dev/myvg/mylv /mnt/lvm
 
  df /mnt/lvm
 
  lvresize -l -45 /dev/myvg/mylv #降低LV的容量,同時剩餘45個PE
 
  lvdisplay
 
  pvdisplay #確認/dev/sdb3是否都將PE刪除了
 
  pvmove /dev/sdb3 /dev/sdb5 #將sdb3中的PE移動到sdb5中去
 
  vgreduce myvg /dev/sdb3 #將sdb3從/dev/myvg中移除
 
  pvscan
 
  pvremove /dev/sdb3 #這裏就成功移除了 !
 
lvremove(刪除一個LV)

lvresize(對LV進行容量大小的調整)

     -L 後面直接指定容量,單位可以爲K M G T,最小單位爲PE
 
  -l 後面跟的是PE的個數

 

六、如何擴展卷:

一、lvextend

   -L 3G(擴展到3G)/+2G(或者加2G)  /dev/myvg/mylv
  
二、resize2fs  /dev/myvg/mylv

七、如何縮減卷:風險大

umount /dev/myvg/mylv

e2fsck -f /dev/myvg/mylv

resize2fs  /dev/myvg/mylv 2G

lvreduce -L 2G(-1G) /dev/myvg/mylv

mount /dev/myvg/mylv

八、怎麼實現卷快照:

snap_mulv 快照卷名

lvcreat -L 128M -s -p r -n snap_mylv /dev/myvg/mylv

#-L 128M指定大小 ;-p r 指定權限爲只讀 ;-n snap_mylv爲快照卷名稱; -s 創建快照

mkdir /backup   創建掛載點

mount /dev/myvg/snap_mylv /back/    掛載快照卷
九、例如:
# fdisk /dev/sdb

n  t 8e w

# partprobe

# mke2fs -j /dev/sdb5 /dev/sdb6 /dev/sdb7

# pvcreate /dev/sdb{5,6,7}

# pvdisplay /dev/sdb5  | pvs

 


# vgcreate myvg /dev/sdb5

# vgdisplay myvg  |  vgs

# vgextend myvg /dev/sdb6 /dev/sdb7

# vgs

# pvmove /dev/sdb5

# vgreduce myvg /dev/sdb5

 


# vgremove myvg

# vgcreate -s 16M myvg /dev/sdb6 /dev/sdb7   

# vgexteng -t myvg /dev/sdb5

 

# lvcreate -L 5G -n mylv myvg

# lvdispaly /dev/myvg/mylv  | lvs

 


# lvextend -L 8G(+3G) /dev/myvg/mylv

# resize2fs /dev/myvg/mylv 8G(+3G)


# umount /dev/myvg/mylv

# e2fsck -f /dev/myvg/mylv

# lvreduce -L 6G(-2G) /dev/myvg/mylv

# mount /dev/myvg/mylv /mnt

 

# lvcreate -L 2G -s -p r -n snap_mylv /dev/myvg/mylv

# lvreduce /dev/myvg/snap_mylv

 

 


 

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