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大??;然后刪除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

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

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

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

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

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

(0)
秦
上一篇 2015-05-04
下一篇 2015-05-04

相關推薦

  • Homework week-5 grep及find

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

    Linux干貨 2016-09-06
  • 推薦-Nginx Proxy模塊的應用之負載均衡

    Ngnix Proxy模塊的應用之負載均衡 Ngnix Proxy模塊的應用之負載均衡 Proxy 模塊介紹 實驗環境 配置Proxy Proxy 模塊介紹   在我之前的文章提到過,Nginx可以提供反向代理加速、基于應用層的負載均衡并能對后端服務器做健康狀態檢測。下面我們就動手操作一下,看如何實現上述功能。 實驗環境 主機名稱 主要功能 外網地址 內網地…

    Linux干貨 2016-03-27
  • 任務計劃和本地系統的默認郵件

    一、前言 二、本地mail的使用方法 三、at /batch 四、cron 五、小結   一、前言 linux 中執行任務計劃有三種命令:at ,batch ,cron.其中,at,batch 是一次性執行,而crontab,則是周期性執行; 作業執行完成后,會通過郵件通知給作業提交者;因此,以下就從郵件說起。 二、郵件服務 Centos ,默認會…

    Linux干貨 2015-05-13
  • 堡壘機-麒麟堡壘機動態口令使用手冊

      一.管理員部分 1.在其它-licenses菜單查看動態口令許可是否打開,如果未打開聯系廠商重新生成許可   2.找廠商生成密鑰文件,密鑰文件中包含令牌種子,在其它–動態令牌菜單將密鑰文件導入即可看到所有的令牌種子,每個令牌可以綁定給多個用戶     3.令牌綁定可以在 資源管理–…

    安全運維 2016-05-29
  • Shell腳本中select、函數總結

    描述: select控制語句基于Korn Shell中的控制結構 select語句首先顯示一個菜單,然后根據用戶的選擇給變量賦予相應的值,最后執行一系列命令。 語法: select varname [ in arg…] do    commands done 說明: select結構顯示arg項的菜單。加入忽略關鍵字in和參數…

    Linux干貨 2016-08-24
  • Linux系統程序包的安裝–RPM

           我們知道在操作系統上使用的程序都是有程序員通過開發工具得來的,程序員直接編寫的純文本的文件,我們稱之為源代碼,由于計算機識別的是二進制程序,因此在完成源代碼編寫之后,就必須要經過編譯,使之成為操作系統可以“看得懂”的二進制程序,這里的編譯是通過編譯器來進行的操作,編譯器的功能就是將源代碼程序“轉換”為二進…

    2017-04-23
欧美性久久久久