LVM 管理linux磁碟

huangdazhu發表於2015-08-17

一、LVM 簡介

  LVM(Logical Volume Manager)是一個應用於Linux的核心的邏輯卷管理器,是Linux環境下對磁碟進行分割槽管理的一種機制。先介紹幾個有關LVM的名詞
   1、PV(物理卷)可以是一個磁碟,一個分割槽。由PE(物理盤區)組成,多個PV可以組成一個VG(卷組).
   2、VG(卷組)多個物理卷組成的一個組,但是卷組不可以直接使用,需要在上面創LV(邏輯卷)才可以使用。VG上可以建立多個LV。
   3、PE(物理盤區)就像我們之前學習的磁碟的block塊,預設是4MB。
   4、LV(邏輯卷) 是建立在卷組之上的一個可用空間。有物理邊界和邏輯邊界兩種邊界。

二、相關命令介紹

 1、物理卷PV
      pvcreate   建立pv               例:pvcreate /dev/sda1
      pvs        檢視pv資訊           例:直接在命令列裡輸入pvs
      pvdisplay  檢視pv詳細資訊       例:pvcreate /dev/sda1
      pvmove     將pv資料移動到其他pv 例:pvmove /dev/sda1 /dev/sda4
      pvremove   將pv刪除             例:pvremove /dev/sda1
 2、卷組VG
    2.1 建立、檢視、刪除vg
      vgcreate   建立vg               例:vgcreate myvg  /dev/sda{m,n}
      vgs        檢視vg資訊           例:直接在命令列裡輸入vgs
      vgdisplay  檢視vg詳細資訊       例:vgdisplay myvg
      vgremove   將vg刪除             例:vgremove myvg
   2.2 擴充套件vg
首先準備好一個PV;
   然後使用vgextend命令即可完成擴充套件;
   格式: vgextend VG_NAME /PATH/TO/PV
         vgextend myvg /dev/sdb2 擴充套件myvg卷組,把/dev/sda2加進去
   2.3 縮減vg
      1)確定要移除的PV;
  2)將此PV上的資料轉移至其它PV;
 pvmove /path/to/pv
  3)從卷組中將此PV移除;
    格式:vgreduce VG_NAME /PATH/TO/PV
  vgreduce myvg /dev/sdb2 縮減myvg卷組,把/dev/sda2去掉
 3  邏輯卷LV
    3.1 建立、檢視、刪除lv
      lvcreate   建立lv               例:lvcreate lv1 /dev/myvg
      lvs        檢視lv資訊           例:直接在命令列裡輸入lvs
      lvdisplay  檢視lv詳細資訊       例:vgdisplay lv1
      lvremove   將lv 移除            例:lvremove  /dev/myvg/lv1 
   3.2  擴充套件lv

確定擴充套件多大

   確定當前邏輯卷所在的卷組有足夠的空閒空間;

    擴充套件:
1、物理邊界
lvextend -L [+]SIZE /path/to/lv
2、邏輯邊界
resize2fs /path/to/device
3.3  縮減lv
確定縮減的大小,但前提是至少能容納原有的所有資料。
縮減:
1)解除安裝並強行檢測檔案系統;
e2fsck -f 
2)邏輯邊界
resize2fs /path/to/device SIZE
3)物理邊界
lvreduce -L [-]SIZE /path/to/lv
 4、快照卷
1) 生命週期為整個資料時長;在這段時長內,資料的增長量不能超出快照卷大小;
2) 快照卷應該是隻讀的;
3) 跟原卷在同一卷組內;
    lvcreate
         -L    指定快照卷的大小
         -s    建立快照卷
         -p r  建立的快照卷為只讀訪問
    格式:
        lvcreate -L SIZE -s -p r -n LV_NAME /path/to/lv

三、lv之示例

1、建立一個分割槽


複製程式碼
程式碼如下:

[root@stau11 ~]# fdisk -l //檢視分割槽的情況 
[root@stau11 ~]# fdisk /dev/sda //進行分割槽 
Command (m for help): n //n為新增一個分割槽,p檢視分割槽 
First cylinder (2898-10443, default 2898): //按【Enter】鍵決定 
Using default value 2898 //起始柱面選擇預設 值 
Last cylinder or +size or +sizeM or +sizeK (289810443, default 10443): +2G // 給2G的大小 
Command (m for help): t //更改分割槽型別 
Partition number (1-5): 5 //選著分割槽 
Hex code (type L to list codes): l //分割槽型別列表 
Hex code (type L to list codes):8e //將新新增的分割槽標註成lvm 
Command (m for help): p //檢視分割槽表 
/dev/sda5 2756 2999 1959898+ 8e Linux LVM 
Command (m for help): w //儲存 
[root@localhost ~]# partprobe /dev/sda //是系統識別分割槽(代替重啟) 
[root@localhost ~]# mkfs.ext3 /dev/sda5 //格式化新新增的分割槽


2、PV的建立


複製程式碼
程式碼如下:

[root@localhost ~]# pvcreate /dev/sda5 //建立pv 
Writing physical volume data to disk "/dev/sda5"
Physical volume "/dev/sda5" successfully created 
[root@localhost ~]# pvs //檢視當前pv的資訊 
PV VG Fmt Attr PSize PFree 
/dev/sda5 lvm2 a-- 1.87G 1.87G 


3、VG的建立


複製程式碼
程式碼如下:

[root@localhost ~]# vgcreate vg0 /dev/sda5 //vg0為當前vg的名 
Volume group "vg0" successfully created 
[root@localhost ~]# vgs //檢視vg的資訊 
VG #PV #LV #SN Attr VSize VFree 
vg0 1 0 0 wz--n- 1.87G 1.87G


4、lv的建立


複製程式碼
程式碼如下:

[root@localhost ~]# lvcreate -L 500M -n lv01 vg0 
Logical volume "lv01" created 
[root@localhost ~]# lvs //檢視lv的資訊 
LV VG Attr LSize Origin Snap% Move Log Copy% Convert 
lv01 vg0 -wi-a- 500.00M 
You have mail in /var/spool/mail/root 
[root@localhost ~]# mkfs.ext3 /dev/vg0/lv01 //格式化 


lvm的使用

5、lv的增大


複製程式碼
程式碼如下:

[root@localhost ~]# lvextend -L +300M /dev/vg0/lv01 //(原來lv大小500M ,拉伸分割槽到 800M) Extending logical volume lv01 to 800.00 MB 
Logical volume lv01 successfully resized 
[root@localhost ~]# resize2fs /dev/vg0/lv01 //拉伸檔案系統 
[root@localhost ~]# lvs 
LV VG Attr LSize Origin Snap% Move Log Copy% Convert 
lv01 vg0 -wi-ao 800.00M //大小變成了800M


6、lv的減小


複製程式碼
程式碼如下:

# umount /dev/vg0/lv01 //解除安裝邏輯卷/dev/vg0/lv01 
# df -h //檢視 
# e2fsck -f /dev/vg0/lv01 //磁碟校驗 
# resize2fs /dev/vg0/lv01 500M //回縮檔案系統到 500M 
# lvreduce -L 500M /dev/vg0/lv01 //回縮分割槽到 500M 
WARNING: Reducing active logical volume to 500.00 MB 
THIS MAY DESTROY YOUR DATA (filesystem etc.) 
Do you really want to reduce lv01? [y/n]: y 
# lvs 
LV VG Attr LSize Origin Snap% Move Log Copy% Convert 
lv01 vg0 -wi-a- 500.00M //此時已變成500M大小 
# mount /dev/vg0/lv01 /mnt/lv01 //重新掛載分割槽 
# df -h //檢視 
# ls /mnt/lv01 //檢視檔案


四、lvm的系統快照

1、掛載lvm


複製程式碼
程式碼如下:

[root@localhost ~] # mount /dev/vg0/lv01 /mnt/lv01 
[root@localhost ~]# cd /mnt/lv01 
[root@localhost lv01]# touch {a,b,c}{a,b,c} 
[root@localhost lv01]# ls 
aa ab ac ba bb bc ca cb cc lost+found lv.file restoresymtable 


2、為lvm建立快照


複製程式碼
程式碼如下:

[root@localhost lv01]# lvcreate -L 64M -s -n lv-backup /dev/vg0/lv01 
Logical volume "lv-backup" created 


3、掛載快照


複製程式碼
程式碼如下:

[root@localhost lv01]# mkdir /mnt/lv-backup 
[root@localhost mnt]# mount -o ro /dev/vg0/lv-backup /mnt/lv-backup/ 


4、備份快照


複製程式碼
程式碼如下:

[root@localhost tmp]# dump -0u -f /tmp/lv-backup.dump /mnt/lv-backup/ //備份 
DUMP: Date of this level 0 dump: Sun Nov 11 14:53:31 2012
DUMP: Dumping /dev/mapper/vg0-lv--backup (/mnt/lv-backup) to /tmp/lv-backup.dump 


5、刪除快照


複製程式碼
程式碼如下:

[root@localhost tmp]# umount /mnt/lv-backup/ 
[root@localhost tmp]# lvremove /dev/vg0/lv-backup 
Do you really want to remove active logical volume lv-backup? [y/n]: y 
Logical volume "lv-backup" successfully removed 


6、清空/dev/vg0/lv01下得內容


複製程式碼
程式碼如下:

[root@localhost tmp]# umount /mnt/lv01 
[root@localhost tmp]# mkfs.ext3 /dev/vg0/lv01 
mke2fs 1.39 (29-May-2006) 
Filesystem label= 
OS type: Linux 


7、lvm的關閉


複製程式碼
程式碼如下:

[root@localhost ~]# umount /mnt/lv01 
[root@localhost ~]# lvremove /dev/vg0/lv01 //刪除lv 
Do you really want to remove active logical volume lv01? [y/n]: y 
Logical volume "lv01" successfully removed 
[root@localhost ~]# vgchange -a n vg0 //使vg0不具有active標誌 
0 logical volume(s) in volume group "vg0" now active 
[root@localhost ~]# vgremove vg0 //刪除vg 
Volume group "vg0" successfully removed 
[root@localhost ~]# pvremove /dev/sda5 //刪除pv 
Labels on physical volume "/dev/sda5" successfully wiped 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28869493/viewspace-1773779/,如需轉載,請註明出處,否則將追究法律責任。

相關文章