LVM2基本應用,擴展及縮減實現

LVM(Logical Volume Manager,邏輯卷管理)是CentOS6中常用的磁盤管理的工具。常用于CentOS6上,提供了分區的動態擴展、縮減等功能。目前的常用版本為LVM2。

結構:

LVM.png

一、物理卷

LVM的物理卷以分區為單位。通常情況下,會以一個硬盤一個分區的情況下進行容量擴展。

在分區之后,要使用fisk命令來改變分區的類型,LVM的磁盤類型的ID號為8e。

分區.png

這里使用sdb1到sdb3這三個分區來做lvm2的試驗。

fdisk_t_8e.png

分區完成后,通過partx來使新分區生效。

然后通過pvcreate來使分區轉換成物理卷??梢允褂胮vs以及pvdisplay來查看物理卷的狀況。

pvcreate.png

二、卷組

創建物理卷PV之后,可以使用vgcreate命令指定需要的分區來創建卷組VG。

需要注意的是,VG并不是只能創建一個的。

卷組(VG)相關的命令:

    vgcreate [-s [KkNmGgTtPpEe]] VG_name /dev/PVdevice    
    vgextend [-s [KkNmGgTtPpEe]] VG_name /dev/PVdevice
    vgreduce VG_name PhysicalDevicePath
    
		    #注意:-s用來指定PE的大小,也就是屬于LV的最小單位。如果不指定的話,默認值是4M,
		    #往后擴展的大小,例如+2G,系統都是按PE的大小,湊夠2G。
		    #由于lvm1的時候PE數量是有限制的,為65534個。所以4M*65534近似于256G。
		    #LVM2的時候這個限制就被擴大了,所以個人認為能用lvm2的時候就用lvm2吧。

創建之后同樣可以使用vgdisplay來查看邏輯卷的狀況。

vgdisplay_12.png

這里我們使用默認值,添加一個最簡單的卷組vg_bc,并使用vgdisplay來查看他的狀態。

我們可以大概的計算一個,2558*4M就是近似于10G。也就是卷組中sdb1和sdb2兩個物理卷的的大小。

同時,當VG的容量用滿的時候,可以通過vgextend來添加物理卷pv的方式進行擴容

vgextend_sdb123.png

三、邏輯卷

當創建好VG之后,我們可以將VG當做是一個可以調整大小的硬盤來使用。

而在VG上面,我們可以創建邏輯卷以進行使用。

lv管理工具:

lvs
lvdisplay
lvcreate -L [+] [KkNmGgTtPpEe] -n name VGname
    #-L指的是線性地填充pv,也就是填充滿了一個pv之后,再填充一個。

lvcreate.png

創建好lv之后,接著的步驟就是進行格式化和掛載了吧。

mkfs.png

我們嘗試往里面復制一個文件,并使用df來查看掛載好的文件夾的使用情況

-h選項為將容量顯示為可以為人類容易識別的形式。要不然就是按1k來顯示了。

df -h.png

擴展邏輯卷的步驟

lvextend -L size /dev/vgname/lvname
resize2fs /dev/vg_name/Lv_name
#需要注意的是,雖然擴展可以在線擴展。
#但是,但是!lv縮減的時候,要先卸載分區。
#因為可能的分區在線的時候,你需要縮減的部分,本來沒被使用但又剛好被使用等奇怪情況。[object Object]

擴展了lv的大小之后,別忘記resize一下ext系統。其實也就是告訴ext系統,你的分區改變了。lvextend.png

df-resize.png

我們可以看見,在擴展LV的時候resize2fs命令是動態在線的,并沒有影響已經使用的文件。

lv縮減的步驟

umount LVName
e2fsck -f LVName
resize2fs LVName Size
lvreduce -L Size LVname
Mount

lvreduce.png

注意:由于文件系統使用久了會有碎片。所以結構可能不是緊湊的,也就是說占用了文件系統5G。

當把文件夾剛好減少到5G,就很有可能造成文件損壞。所以這個功能在不需要的時候還是不要使用比較好。

四、快照

lvm2還提供快照功能儲存修改過的文件,可以幫助找回誤刪或者修改的文件。

lvcreate -L [KkNmGgTtPpEe] -p r -s -n NAME /dev/VG/LV
#而創建快照的命令跟lv創建類似,但是要注意的有兩點。
#-s代表snapshot,也就是快照,而最后一個跟的不是vg的名字,而是要創建快照的LV!!
#也就是說快照就基于lv的,并不是所有lv的舊文件都會往里面塞。

創建快照

snapshot.png

使用lvs,可以看出my_lvm3_snapshot是my_lvm3的快照。

snapshot1.png

lvm上的快照 snapshot
	通過快照分區訪問源數據,
	沒改變的訪問原inode,改變了的文件則訪問儲存在快照上的文件。
	要訪問某時間點的就訪問儲存在快照上的文件。

snashot.png

我們把/etc/httpd文件夾復制到lvm1里面。

并為lvm1創建一個快照my_snapshot2_lvm2_2,并將快照掛載到/media/snapshot2上。

snapshot_2.png

此時我們echo 0覆蓋到lvm1的httpd.conf下面,再查看快照上的httpd.conf。

我們會發現,快照上的文件并沒有改變。

lvdisplay.png

使用lvdisplay來查看快照的狀態

lv-size是被快照的lv的容量,而COW-table-size則是快照的實際容量.

COW(Copy On Wirte,寫時復制)

與快照相關閱讀的擴展閱讀:快照的常見類型

關于快照的數據恢復:

截取自鳥哥的私房菜:
為什么要備份呢?為什么不可以直接格式化lv然后將快照直接復制給lv上呢? 
    要知道 vbirdss 其實是 vbirdlv 的快照,因此如果你格式化整個lv 時,原本的文件系統所有數據都會被搬移到快照。
    那如果 vbirdss 的容量不夠大 (通常也真的不夠大),那么部分數據將無法復制到 vbirdss 內,數據當然無法全部還原??!
    所以才要在上面表格中制作出一個備份文件的!了解乎?

示例:

    tar -jcv -f /backups/lvm.tar.bz2 *

與RAID的異同:

相同點:

以分區為單位,將多個分區通過軟件的方式整合成一個統一單位。

通常的環境下,一般以一個硬盤一個分區的方式進行容量擴展。

例如,LVM將分區轉化為物理卷,再將物理卷(PV)加入卷組(VG)這個整體中進行管理。而后,再創建邏輯卷(LV)。

而RAID同樣地以分區為單位,通過軟件或者硬件的方式整合成一個MD設備。然后將MD設備當成一個普通的硬盤一樣使用。

不同點:

常用的RAID方式中,1,5,6提供冗余功能。磁盤損壞的情況下,損壞的文件部分可以通過計算得出。

LVM不提供冗余功能,文件壞了就是壞了。但是無論RAID或者LVM,都要注意好備份。

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

(0)
菠菜菠菜
上一篇 2016-02-24
下一篇 2016-02-27

相關推薦

  • 8月11日shell編程腳本及課后作業

    shell腳本編程 本章內容 編程基礎 腳本基礎格式 變量 運算 條件測試 流程控制 函數 數組 高級字符串操作 高級變量 配置用戶環境 編程基礎 程序:指令+數據    程序編程風格:       過程式:以指令為中心,數據服務于指令   &nbs…

    Linux干貨 2016-08-15
  • 系統管理之磁盤管理(一)

    磁盤結構 一.概論 1.操作系統的組成部分: 硬件: 根據馮諾依曼體系,計算機的組成:    運算,控制器:cpu    存儲器:主存(ram);       io設備:      &nbs…

    Linux干貨 2016-08-30
  • 馬哥教育網絡20期+第六周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; :%s/^[[:space:]]/#&/ 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白…

    Linux干貨 2016-07-07
  • MySQL架構

    1.MySQL整體邏輯架構 我們先下圖看看MySQL整體邏輯架構(MySQL’s Logical Architecture)                       圖1  第一層,即最上一層,所包含的服務并不是MySQL所獨有的技術?!?/p>

    Linux干貨 2015-04-13
  • Apache配置壓縮優化時報錯——undefined symbol: inflateEnd

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1345264    圣誕都過了,好久沒來51發博文了。最近一直在忙考試和其他一些私人事務,感覺長期不發博文,有點不好。不是不發,實在是最近…

    Linux干貨 2016-08-15
  • linux基礎之磁盤管理

    linux基礎之磁盤管理 學習linux,數據維護和管理是重中之重,而數據大部分存放在硬盤當中,因此,熟練掌握磁盤的使用和管理是運維人員的基礎要求。那么,linux系統包括哪些知識點呢? 下面,我們就詳細闡述下Linux中磁盤的分區、格式化,以及一些磁盤的高級用法:磁盤配額、RAID陣列和LVM 一、硬盤 隨著技術的進步,人類社會的不斷發展。硬盤也經歷了幾代…

    Linux干貨 2017-03-19
欧美性久久久久