LVM邏輯卷管理

前言

    通常情況下,在操作系統上新建了一個分區并在此分區創建文件系統后,該文件系統的大小就固定了。假如要增加此文件系統的大小,我們不得不添加一塊硬盤并重新分區,創建文件系統,然后把原文件系統的數據完整復制過來。如果第二次分區時分配的空間太大,用不完又浪費該怎么辦呢?重復此前的流程又將花費大量的時間,有沒有更便捷的辦法呢?下面介紹的邏輯卷管理器就是解決這個問題的。

一、簡介

    LVM(Logical Volume Manager),譯為邏輯卷管理器。所謂卷(Volume),意味著可伸縮,我們可以彈性調整文件系統的容量大小,并且不會損壞數據。LVM是對磁盤管理的一種機制,是建立在硬盤和分區之上、文件系統之下的一個邏輯層;LVM的工作原理其實很簡單,它就是通過將底層的物理硬盤抽象的封裝起來將一個或多個底層塊設備組成一個邏輯的工具。

lvm.jpg

1、Physical Volume(PV),物理卷:創建分區時,標記分區類型為8e后,就可以將該分區做成物理卷供LVM使用了??梢杂萌我鈮K設備做成物理卷,單個分區、整塊硬盤、RAID設備都可以。

2、Volume Group(VG),卷組:顧名思義,就是將一個或多個PV組合為一個卷組,以PE為存儲單位。一個VG至少包含一個PV,VG可以創建多個。

3、Physical Extent(PE),物理區域:PE是整個LVM中可分配的最小存儲單元,大小在創建卷組時指定且確定后不能更改;同一卷組的PE大小需一致。新的PV加入卷組后,PE的大小會自動更改為原卷組PE的大小。

4、Logical Volume(LV),邏輯卷:建立在卷組的基礎上,卷組中空閑的PE可分配給LV使用,創建LV后可通過增加或減少PE來動態擴展和縮小空間大小。LV可以直接創建文件系統并掛載使用。兩種寫入模式:線性模式(linear)、交錯模式(triped)。

二、物理卷(PV)的常用管理命令

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

    示例1:創建3個PV

[root@qin ~]# parted /dev/sdb mklabel msdos
[root@qin ~]# parted /dev/sdb mkpart primary ext2 0G 10G
[root@qin ~]# parted /dev/sdb mkpart primary ext2 10G 20G
[root@qin ~]# parted /dev/sdb mkpart primary ext2 20G 30G
[root@qin ~]# pvcreate /dev/sdb{1..3}

    示例2:將PV1上的數據遷移到PV2,然后刪除該PV。

[root@qin ~]# pvmove /dev/sdb1 /dev/sdb2    #注意:兩個PV必須在同一卷組內
[root@qin ~]# pvremove /dev/sdb1     #刪除PV前要確保該PV沒有在任何卷組中

三、卷組(VG)的常用管理命令。

vgcreate    #創建卷組
    -l:設置可容納的LV最大數,默認為255
    -p:設置包含PV的最大數,默認為255
    -s:設置PE大小,默認為4M
vgextend    #擴展VG大小
vgdisplay   #顯示VG屬性信息
vgchange    #修改VG屬性信息
vgreduce    #縮減VG大小
vgremove    #刪除VG
vgscan      #搜索所有磁盤上的卷組
vgs         #顯示VG簡要信息
vgck        #檢查VG元數據

    示例1:創建一個卷組,要求PE大小為8M,名稱為Myvg,最大支持LV不能超過10個,包含的PV不能超過2個

[root@qin ~]# vgcreate -s 8M -l 10 -p 2 Myvg /dev/sdb{1,2}
[root@qin ~]# vgdisplay Myvg     #查看VG屬性信息驗證結果
  --- Volume group ---
  VG Name               Myvg     #VG名稱
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                10        #可以看到,支持最大LV數為10個
  Cur LV                0
  Open LV               0
  Max PV                2         #支持最大PV數為2個
  Cur PV                2
  Act PV                2
  VG Size               18.61 GiB
  PE Size               8.00 MiB    #PE大小
  Total PE              2382
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2382 / 18.61 GiB
  VG UUID               LdOZtc-4ccd-5ryh-Ux7V-O29f-CEhc-VVuuSF

    示例2:擴展Myvg大小

[root@qin ~]# vgextend Myvg /dev/sdb3    #由于此前定義了VG的最大PV數,無法擴展
  No space for '/dev/sdb3' - volume group 'Myvg' holds max 2 physical volume(s).
  Unable to add physical volume '/dev/sdb3' to volume group 'Myvg'.
[root@qin ~]# vgchange -p 3 Myvg    #修改VG屬性
[root@qin ~]# vgextend Myvg /dev/sdb3    #擴展VG成功

    示例3:縮減Myvg大?。蝗缓髣h除Myvg

[root@qin ~]# vgreduce Myvg /dev/sdb2    #注意:把PV移出卷組時要保證該PV數據已遷移或未使用
[root@qin ~]# vgchange -an Myvg        #標記Myvg為不可用狀態
[root@qin ~]# vgremove Myvg        #不論VG包含多少PV都可刪除,前提是該VG上沒有任何LV,如果有就需要先刪除LV

四、邏輯卷(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
lvdisplay   #顯示LV屬性信息
lvscan      #搜索所有磁盤上的邏輯卷
lvs         #顯示LV簡要信息

    示例1:創建一個LV,要求大小為10G,名稱為lv001,指定卷組為Myvg。

[root@qin ~]# lvcreate -L 10G -n lv001 Myvg

    示例2:擴展lv001的大小,要求增加5G空間大小

#方法一:
[root@qin ~]# lvextend -L +5G /dev/Myvg/lv001
#方法二:
[root@qin ~]# lvextend -L 15G /dev/Myvg/lv001

    示例3:縮減lv001的大小,要求減少8G空間大小

[root@qin ~]# lvreduce -L -8G /dev/Myvg/lv001    #注意,縮減前需確保LV為卸載狀態

    示例4:刪除lv001

[root@qin ~]# lvchange -an /dev/Myvg/lv001     #標記lv001為不可用狀態
[root@qin ~]# lvremove /dev/Myvg/lv001

    示例5:對lv001創建一個快照卷

[root@qin ~]# lvcreate -L 10G -n lv001_snap -p r -s /dev/Myvg/lv001    #必須跟目標邏輯卷在同一卷組中

五、實驗:在線擴容和離線縮減邏輯卷的大小。

    1、查看當前系統掛載及邏輯卷的相關信息。

lvm.png

    2、縮減/data的空間大小,并驗證查看。

lvreduce.png

注意:縮減邏輯卷大小前必須先縮減文件系統的大小,而且要強制檢查文件系統

      縮減不能少于已經存儲的所有數據空間的大小

22.jpg

33.png

3、擴展邏輯卷大小

    先查看當前LV大小,卷組可用空間,文件系統大小

44.png

    然后擴展邏輯卷大小

55.png

    最后擴展文件系統大小

66.png

總結:

    LVM的添加順序:PV–>VG–>LV

    LVM的刪除順序:LV–>VG–>PV

    邏輯卷可在線擴展,但必須離線縮減

    縮減很危險,不到萬不得已不要執行縮減操作?。?!

    擴展邏輯卷后文件系統也要擴容

    縮減邏輯卷前要先縮減文件系統

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

(0)
秦
上一篇 2015-05-04 14:45
下一篇 2015-05-04 18:05

相關推薦

  • N25-第五周

    – 1     顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;     grep "^[[:space:]]\+" /boot/grub/grub.conf2 顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的…

    Linux干貨 2017-01-02
  • linux基礎學習第十天(文件查找與壓縮)

    2016-08-12 授課內容: shell的流程控制 文件查找和壓縮 shell的流程控制: 過程式編程語言: 順序執行 選擇執行 循環執行(未講) 順序執行: if語句: 單分支 if 判斷條件; then 條件為真的分支代碼 fi 雙分支 if 判斷條件; then 條件為真的分支代碼 else 條件為假的分支代碼 fi 多分支 if CONDITIO…

    Linux干貨 2016-08-15
  • bash

    bash 配置文件   按生效范圍劃分:存在兩類;     全局配置:            /etc/profile       &nbs…

    Linux干貨 2015-04-15
  • 文本處理工具之AWK

    概述:     在之前的文章中,我們介紹過文本處理三劍客的grep、sed,本篇就簡要說明下awk的用法。主要是圍繞常見的一些用法進行展開,分為以下幾個部分:     1、awk的基礎語法     2、awk的進階語法  &nbs…

    Linux干貨 2016-09-20
  • Linux如何進行分區和目錄管理

    第七周作業   1、創建一個10G分區,并格式為ext4文件系統: 1、要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包括acl; ~]# mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1 2、掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,縣不更新…

    2017-09-18
  • N26-博客作業-week14

    系統的INPUT和OUTPUT默認策略為DROP; 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機; 配置系統INPUT和OUTPUT默認策略為DROP# iptables -P INPUT DROP# iptables -P OUTPU…

    Linux干貨 2017-06-22
欧美性久久久久