細述LVM

 前言:

    LVM(Logical Volume Manager)是基于內核的一種邏輯卷管理器,LVM適合于管理大存儲設備,并允許用戶動態調整文件系統大小。此外,LVM的快照功能可以幫助我們快速備份數據。LVM為我們提供了邏輯概念上的磁盤,使得文件系統不再關心底層物理磁盤的概念。

看圖識LVM

    

RJY6[NG2X]{LIBOO~LFJWNN.png

使用LVM創建邏輯卷需要我們提前了解以下幾個概念:

    PE:Physical Ex

        LVM默認使用4MB的PE塊,他是整個LVM最小的存儲單元,也就是說,我們的文件數據都是由寫入PE來處理的。簡單的說,這個PE就是有點像文件系統里面的block大小。

    PV:Physical Volume 物理卷

        物理卷是LVM的最底層概念,是LVM的邏輯存儲塊,物理卷與磁盤分區是邏輯的對應關系。LVM提供了命令工具可以將分區轉換為物理卷,通過組合物理卷可以生成卷組。

    VG:Volume Group 卷組

        卷組是LVM邏輯概念上的磁盤設備,通過將單個或多個物理卷組合成后生成卷組。卷組的大小取決于物理卷的容量以及個數。

    LV:Logical Volume 邏輯卷

        邏輯卷就是LVM邏輯意義上的分區,我們可以指定從卷組中提取多少容量來創建邏輯卷,最后對邏輯卷格式化并掛載使用。

 

PV常用命令: 

            pvcreate    #創建一個PV物理卷
            pvchange    #修改PV的屬性
            pvresize    #調整一個PV的大小
            pvremove    #刪除一個PV
            pvmove      #移動PE到指定物理卷
            pvscan      #搜索所有磁盤上的物理卷
            pvs         #顯示PV的簡要信息
            pvdisplay   #顯示PV的屬性信息

VG常用命令:

            vgcreate    #創建卷組
                -l:設置此卷組可容納的LV最大數,默認為255
                -p:設置此卷組包含PV的最大數,默認為255
                -s:設置此卷組PE大小,默認為4M
            vgextend   #擴展VG大小
            vgchange   #修改VG屬性信息
            vgreduce   #縮減VG大小
            vgremove   #刪除VG
            vgscan    #搜索所有磁盤上的卷組
            vgs      #顯示VG簡要信息
            vgdisplay  #顯示VG屬性信息
            vgck        #檢查VG元數據
LV常用命令:
            lvcreate    #創建LV分區
                -l:設置LV大小,以PE為單位
                -L:設置LV大小,以字節為單位
                -n:設置LV名稱
                -p:設置LV權限讀寫權限,默認為可讀可寫
                -s:設置一個快照卷,對一個已存在的LV做快照
            lvextend    #擴展LV大小
            lvreduce    #縮減LV大小
            lvchange    #修改LV屬性信息
                -ay:標記LV為可用狀態
                -an:標記LV為不可用狀態
            lvremove    #刪除LV
            lvscan      #搜索所有磁盤上的邏輯卷
            lvs         #顯示LV簡要信息
            lvdisplay   #顯示LV屬性信息

實戰演習:

[root@server ~]# fdisk -l | grep ^/de

/dev/sda1   *           1          64      512000   83  Linux

/dev/sda2              64        2611    20458496   8e  Linux LVM

/dev/sdb1               1          14      112423+  83  Linux

/dev/sdb2              15          80      530145   83  Linux

/dev/sdc1               1         654     5253223+  8e  Linux LVM

/dev/sdd1               1         654     5253223+  8e  Linux LVM

/dev/sde1               1         654     5253223+  8e  Linux LVM

創建PV:

[root@server ~]# pvcreate /dev/sd{c,d,e}1

  Physical volume "/dev/sdc1" successfully created

  Physical volume "/dev/sdd1" successfully created

  Physical volume "/dev/sde1" successfully created

[root@server ~]#

查看創建的PV

[root@server ~]# pvs            #查看PV的簡要信息

  PV         VG       Fmt  Attr PSize  PFree

  /dev/sda2  VolGroup lvm2 a--  19.51g    0 

  /dev/sdc1           lvm2 ---   5.01g 5.01g

  /dev/sdd1           lvm2 ---   5.01g 5.01g

  /dev/sde1           lvm2 ---   5.01g 5.01g

[root@server ~]#
[root@server ~]# pvdisplay             #查看PV詳細信息
  --- Physical volume ---  
  "/dev/sde1" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---            #新PV
  PV Name               /dev/sde1            #物理卷名稱
  VG Name               
  PV Size               5.01 GiB                #物理卷大小
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               VREiVr-2Jr5-jNM8-EoKo-Agxw-oypN-kyUrXI
   
[root@server ~]#

 創建VG:

[root@server ~]# vgcreate -s 2M myvg /dev/sdc1 /dev/sdd1

  Volume group "myvg" successfully created

[root@server ~]#

查看VG:

 [root@server ~]# vgs

  VG       #PV #LV #SN Attr   VSize  VFree 

  VolGroup   1   2   0 wz--n- 19.51g     0 

  myvg       2   0   0 wz--n- 10.02g 10.02g        #新建的VG,名稱:myvg,大小10G

[root@server ~]#
[root@server ~]# vgdisplay 

  --- Volume group ---

  VG Name               myvg            #卷組名

  System ID             

  Format                lvm2

  Metadata Areas        2

  Metadata Sequence No  1

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                2

  Act PV                2

  VG Size               10.02 GiB        #卷組大小

  PE Size               2.00 MiB        #PE大小2M

  Total PE              5128

  Alloc PE / Size       0 / 0   

  Free  PE / Size       5128 / 10.02 GiB        #剩余容量

  VG UUID               W0FnIa-Z5Th-XRaM-EfcZ-HWeF-Jdee-jVTVyT

擴展myvg大?。?/strong>

[root@server ~]# vgextend myvg /dev/sde1

  Volume group "myvg" successfully extended

縮減myvg大?。?/strong>

[root@server ~]# vgreduce myvg /dev/sde1

  Removed "/dev/sde1" from volume group "myvg"

 創建LV:

[root@server ~]# lvcreate -L +6G -n mylv myvg                創建大小為6G,名稱為mylv的邏輯卷!卷組為myvg
  Logical volume "mylv" created
[root@server ~]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 17.57g                                                    
  lv_swap VolGroup -wi-ao----  1.94g                                                    
  mylv    myvg     -wi-a-----  6.00g                           #大小6G                         
[root@server ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/myvg/mylv        #邏輯卷mylv的路徑
  LV Name                mylv                        #邏輯卷名稱mylv
  VG Name                myvg                      #基于myvg卷組
  LV UUID                EXKn5D-lVzU-JdlO-GYoo-CYpz-y20L-xn5cI5
  LV Write Access        read/write
  LV Creation host, time server.lili.com, 2015-06-10 17:47:02 +0800
  LV Status              available
  # open                 0
  LV Size                6.00 GiB
  Current LE             3072
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
 
[root@server ~]# mkfs.ext4 /dev/myvg/mylv        #格式化LV
 
[root@server ~]# mkdir /data        #創建掛載路徑
[root@server ~]# mount /dev/myvg/mylv /data/        #掛載mylv
 
[root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      5.8G   12M  5.5G   1% /data        #大小為6G的/data

這樣我們就成功的創建了我們的邏輯卷!可是隨著業務的增加!data目錄不夠用了,我們就可以擴展mylv的大小,可在線擴展。

擴展mylv: 

[root@server ~]# lvextend -L +1G -n /dev/myvg/mylv         #擴展物理邊界增加1G
  Size of logical volume myvg/mylv changed from 6.00 GiB (3072 extents) to 7.00 GiB (3584 extents).
  Logical volume mylv successfully resized
 [root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      5.8G   12M  5.5G   1% /data            #仍然為6G        #邏輯卷沒增加
[root@server ~]# resize2fs /dev/myvg/mylv         #擴展邏輯邊界。        注:只對ext文件系統使用。這里也可以指定擴展邏輯邊界大小,默認物理邊界大小。
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /data; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv to 1835008 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 1835008 blocks long.
[root@server ~]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 17.57g                                                    
  lv_swap VolGroup -wi-ao----  1.94g                                                    
  mylv    myvg     -wi-a-----  7.00g           
 [root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      6.8G   14M  6.5G   1% /data        #大小為7G了

縮減:

縮減的順序應該與創建時的順序相反,也就是卸載文件系統、刪除邏輯卷、刪除卷組、刪除物理卷??s減很危險,不到萬不得已千萬別縮減??s減需離線。

縮減步驟:

1、先確定縮減后的目標大??;并確保對應的每一步邏輯卷大小中有足夠的空間可容納原有所有數據;

2、先制裁文件系統,并要執行強制檢測

3、縮減邏輯邊界

4、縮減物理邊界

[root@server ~]# umount /data/
[root@server ~]# e2fsck -f /dev/myvg/mylv        # 強制檢測
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/myvg/mylv: 11/458752 files (0.0% non-contiguous), 65023/1835008 blocks
 
[root@server ~]# resize2fs /dev/myvg/mylv 2G        # 縮減邏輯邊界至2G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 524288 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 524288 blocks long.
 
[root@server ~]# lvreduce -L 2G /dev/myvg/mylv         # 縮減物理邊界至2G
  WARNING: Reducing active logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y            # 確認,后果自負
  Size of logical volume myvg/mylv changed from 7.00 GiB (3584 extents) to 4.00 GiB (2048 extents).
  Logical volume mylv successfully resized
[root@server ~]# mount /dev/myvg/mylv /data/        # 重新掛載
[root@server ~]# df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      1.9G  9.0M  1.8G   1% /data        # 2G大小

 

創建快照卷:

    快照卷是對邏輯卷進行的,因此必須跟目標邏輯卷在同一個卷組中,無須指明卷組。需確保剩余卷組可容納快照。

lvcreate
-L :大小
-n: 名稱
-s:快照
-p r:只讀
[root@server ~]# fuser /data/        # 創建快照卷時盡量避免有訪問時創建快照!

/data/:               8640c          # 有訪問
[root@server ~]# mount -o remount,ro /dev/myvg/mylv /data/ && lvcreate -L 1G -n mylv-snap -p r -s /dev/myvg/mylv && mount -o remount,rw /dev/myvg/mylv /data/       
# 先以只讀方式掛載邏輯卷&&然后創建快照&&然后在以讀寫方式掛載邏輯卷
  Logical volume "mylv-snap" created
[root@server ~]# mkdir /snap        # 創建掛載點
[root@server ~]# mount /dev/myvg/mylv-snap /snap/        # 掛載快照
mount: block device /dev/mapper/myvg-mylv--snap is write-protected, mounting read-only    #只讀

卸載快照卷:

[root@server ~]# umount /snap/        # 卸載

[root@server ~]# lvremove /dev/myvg/mylv-snap     # 移除快照

Do you really want to remove active logical volume mylv-snap? [y/n]: y    # 確認

  Logical volume "mylv-snap" successfully removed

 

好了!以上皆為個人學習總結!如有錯誤和遺落,還望指點??!

原創文章,作者:水蒸氣,如若轉載,請注明出處:http://www.www58058.com/5210

(0)
水蒸氣水蒸氣
上一篇 2015-06-15
下一篇 2015-06-15

相關推薦

  • N26-第一周博客作業

    1.描述計算機的組成及其功能 完整的計算機系統由硬件和軟件兩部分組成。 現在大部分的計算機為馮諾依曼體系,主要有五個組成部分:運算器、控制器、存儲器、輸入設備、輸出設備,以下為詳細描述。(計算機的CPU由運算器、控制器和一二三層緩存等構成) 運算器:對數據進行算術運算和邏輯運算(對數據進行加工處理) 控制器:分析指令,控制協調輸入、輸出操作對內存的訪問。 存…

    Linux干貨 2017-01-02
  • N25第八周博客作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;     在線的主機使用綠色顯示;     不在線的主使用紅色顯示; #!/bin/bash trap ‘mytrap’ INT mytra…

    Linux干貨 2017-02-26
  • 8.9_Linux文本處理三劍客之sed和文本編輯利器vim的使用

    本文處理三劍客之sed的使用   什么是sed? Stream EDitor(簡稱sed), 行編輯器,一次只讀一行,只處理一行,不對源文件做處理,至輸出到屏幕上。 sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩…

    Linux干貨 2016-08-11
  • 磁盤分區,raid,lvm,腳本編程_第七周練習

    Q1:創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@promote ~]# fdisk /dev/sdb        &n…

    Linux干貨 2016-12-24
  • 通過虛擬機制作RAID5

    制作RAID5的過程,包括制作RAID5的制作,增加和刪除RAID

    2017-12-10
  • lvs

    Lvs 一、lvs集群的類型:4類工作模式 1.1、lvs-nat 特點:通過將請求報文中的目標地址和目標端口修改為挑選出的某RS的RIP和PORT實現轉發。 客戶端訪問lvs集群服務,此時報文的源地址為cip,目標地址為vip,通過lvs進行dnat轉發后端服務器主機,此時,報文的源地址為cip,目標地址為rip;后端主機響應時,報文源地址為rip,目標地…

    Linux干貨 2016-10-30
欧美性久久久久