萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> linux下磁盤管理之利器 lvm使用介紹

linux下磁盤管理之利器 lvm使用介紹

一、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 //回縮文件系
copyright © 萬盛學電腦網 all rights reserved