邏輯卷管理器LVM

一、LVM邏輯卷管理

    lvm(Logical Volume Manage,邏輯卷管理)的重點在于可以彈性的調整filesystem的容量,而并非在于數據的存儲效率及安全上面。需要文件的讀寫效能或者是數據的可靠性是RAID所考慮的問題。LVM可以整合多個實體partition在一起,讓這些partitions看起來就像是個磁盤一樣。而且,還可以在未來新增或移除其他的實體partition到這個LVM管理磁盤中。如此一來,整個磁盤空間的使用上,相當的具有彈性。

1、允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小

2、允許在多個物理設備間重新組織文件系統

    1)將設備指定為物理卷

    2)用一個或者多個物理卷來創建一個卷組

    3)物理卷是用固定大小的物理區域(Physical Extent,PE)來定義的

    4)在物理卷上創建的邏輯卷,是由物理區域(PE)組成

    5)可以在邏輯卷上創建文件系統

二、邏輯卷概述

需要注意: ./boot分區用于存放引導文件,不能基于LVM創建

PV(物理卷)

PV物理卷就是指硬盤的分區或與邏輯上與磁盤分區具有相同功能的設備(如RAID),是基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。

VG(卷組)

LVM卷組類似于非LVM系統中的物理硬盤,其由物理卷組成??梢栽诰斫M上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。

LV(邏輯卷)

LVM的邏輯卷類似于非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)

如下圖所示:

就是將一些零碎的磁盤分區(PV)合成一個較大的磁盤(VG),然而在根據需要對這個較大的磁盤(VG)進行劃分成不同的小分區(LV),需要注意的是,這些小的分區(LV)是可以動態的擴展與縮小的,這就是LVM–邏輯卷管理

blob.png

需要注意的是LVM默認使用的是4MB的PE分區,而LVM中的VG最多僅能含有65534個PE,因此默認的LVM的VG會有4M*65534/(1024/G)=256G。我們可以在創建VG的時候通過設定PE的大小來決定VG的大小。

三、LVM更改文件系統的容量

LVM可以彈性的更改LVM的容量

通過交換PE來進行資料的轉換,將原來LV內的PE轉移到其他的設備中以降低LV的容量,或將其他設備中的PE加到LV中以加大容量

        VG、PE、LV之間的關系圖

blob.png

四、LVM管理工具

blob.png

pv管理工具

顯示pv信息

pvs:簡要pv信息顯示

pvdisplay

創建pv

pvcreate /dev/DEVICE

vg管理工具

顯示卷組

vgs

vgdisplay

創建卷組

vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

管理卷組

vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

刪除卷組

先做pvmove,再做vgremove

lv管理工具

顯示邏輯卷

lvs

Lvdisplay

創建邏輯卷

lvcreate-L #[mMgGtT] -n NAME VolumeGroup

刪除邏輯卷

lvremove/dev/VG_NAME/LV_NAME

重設文件系統大小

fsadm[options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

擴展和縮減邏輯卷

擴展邏輯卷

# lvextend-L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

# resize2fs /dev/VG_NAME/LV_NAME

縮減邏輯卷:

# umount/dev/VG_NAME/LV_NAME

# e2fsck -f /dev/VG_NAME/LV_NAME

# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

# lvreduce-L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

# mount

創建邏輯卷實例

創建物理卷

pvcreate /dev/sda3

為卷組分配物理卷

vgcreate vg0 /dev/sda3

從卷組創建邏輯卷

lvcreate -L 256M -n data vg0
mke2fs -j /dev/vg0/data
mount /dev/vg0/data /mnt/data

五、LVM應用實例

需求描述 :

    公司準備在Internet中搭建郵件服務器(RHEL5系統平臺),面向全國各地的員工及部分VIP客戶提供電子郵箱空間。由于用戶數量眾多,郵件存儲需要大量的空間,考慮到動態擴容的需要,計劃增加兩塊SCSI硬盤并構建LVM邏輯卷(掛載到“/mailbox”目錄下)專門用于存放郵件數據

推薦步驟: PV -> VG -> LV ->格式化,掛載使用文件系統

blob.png

1、轉化物理卷 

    使用fdisk命令規劃兩個分區,將類型設置為“8e” ./dev/sdb1、/dev/sdc1 

    使用pvcreate命令轉換上述分區為物理卷

blob.png

2. 創建卷組 

    使用vgcreate命令創建卷組mail_store 

        包括物理卷:/dec/sdb1、/dev/sdc1

blob.png

3. 創建邏輯卷 

    使用lvcreate命令創建邏輯卷 mail 

        從卷組mail_store上劃出60GB空間 

    使用mkfs命令創建ext4文件系統

blob.png

4、為邏輯卷擴容 

    使用lvextend命令為邏輯卷 mail擴充容量 

        從卷組 mail_store 上再劃出10GB給邏輯卷mail 

    使用resize2fs命令更新系統識別的文件系統大小

blob.png

六、邏輯卷管理器快照

1、快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝

2、對于需要備份或者復制的現有數據集臨時拷貝以及其它操作來說,快照是最合適的選擇。

3、快照只有在它們和原來的邏輯卷不同時才會消耗空間。

    1)在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間

    2)當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。

    3)快照中只含有原來的邏輯卷中更改的數據或者自生成快照后的快照中更改的數據

    4)建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了。也可以使用lvextend放大快照。

    快照就是將當時的系統信息記錄下來,就好像照相一般,若將來有任何數據改動了,則原始數據會被移動到快照區,沒有改動的區域則由快照區和文件系統共享。

blob.png

    由于快照區與原本的LV共用很多PE的區塊,因此快照去與被快照的LV必須要要在同一個VG上!系統恢復的時候的文件數量不能高于快照區的實際容量。

使用LVM快照

為現有邏輯卷創建快照

#lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data

掛載快照

#mkdir -p /mnt/snap
#mount -o ro /dev/vg0/snap-data /mnt/snap

刪除快照

#umount /mnt/databackup
#lvremove /dev/vg0/databackup

七、小試牛刀

1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄

創建兩個LVM分區

blob.png

轉化為物理卷

blob.png

創建卷組,把PE大小改為16MB

blob.png

創建大小為5G的邏輯卷testlv

blob.png

格式化LVM邏輯卷

blob.png

在vim /etc/fstab永久掛載LVM邏輯卷

blob.png

掛載成功

blob.png

2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄

blob.png

blob.png

3、擴展testlv至7G,要求archlinux用戶的文件不能丟失

blob.png

blob.png

blob.png

4、收縮testlv至3G,要求archlinux用戶的文件不能丟失

blob.png

blob.png

5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照的功能

blob.png

blob.png

blob.png

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

(1)
xiaoqingxiaoqing
上一篇 2016-09-02 08:47
下一篇 2016-09-02 08:47

相關推薦

  • 第十周 N21 總有刁民想害朕

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)   加電-MBR-GRUB-/sysinit-init X 對應的服務-/etc/rc.d     MBR        讀取分區表     GRUB      &…

    Linux干貨 2016-09-26
  • 安裝CentOS 6.9與CentOS7.3

    今天學習了如何安裝CentOS6.9與CentOS7.3. 安裝CentOS6.9 首先打開虛擬機如下如所示: 然后點擊創建新的虛擬機: 選擇典型,然后點擊下一步: 一般會選擇稍后安裝操作系統,然后點擊下一步 客戶機操作系統有很多,因為今天只安裝CentOS 所以選擇Linux 版本則選擇CentOS 64 位 (因為CentOS7以上沒有32位版本,只有C…

    2017-07-14
  • Linux文本處理三劍客之一grep

            終于又到了一周一篇博客的日子 在這學習已經三周了,慢慢養成了寫博客的好習慣,也慢慢的懂得了怎么寫博客。這周給我印象最深刻的就是正則表達式,原本打算要寫前幾天所學的內容,但是昨天學到正則表達式讓我有點懵,所以我今天會用一天的時間去給大家詳細講解正則表達式,爭取讓那些和我一樣困解的人能夠豁然開朗,也正是因為…

    2017-07-29
  • N21沉舟第十周作業

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) 2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;   (1) 為硬盤新建兩個主分區;并為其安裝grub;   (2) 為硬盤的第一個主分區提供內核和ramdisk文件; 為第二個分區提供rootfs;   (3) 為rootfs提供…

    Linux干貨 2016-09-10
  • 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件

    在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。 ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S) ~]# tree /tmp 查看輸出結果 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。 …

    Linux干貨 2016-11-06
  • 往死里苦練腳本啊啊啊啊啊啊啊~~~~~~~~~~~~~~~~

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #腳本內容 [root@centos script]# cat week9_title1.sh  #!/bin/bash #Author …

    Linux干貨 2017-02-16
欧美性久久久久