邏輯卷LVM

邏輯卷LVM

簡介

    在實際生產應用中,磁盤的分區的容量是固定不變的,當出現分區容量不足的情況,除了新加磁盤,還有沒有其他方法呢?
    邏輯卷(LVM)的概念就出現了,全稱叫Logical Volume Manager。它的作用是允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小。
    LVM最大的特點是可以對磁盤進行動態管理,在不會丟失原有磁盤數據的同時,又可以對邏輯卷大小進行調整,大大提高了磁盤管理的靈活性。
    LVM的實現原理:
邏輯卷LVM

邏輯卷的實現

    之前實驗我們創建了一個RAID-5,邏輯卷我們使用RAID設備、分區和磁盤來進行模擬

    1、創建PV:pvcreate
    [root@centos6 ~]#pvcreate /dev/md5 /dev/sdf /dev/sda6
    Physical volume “/dev/md5” successfully created
    Physical volume “/dev/sdf” successfully created
    Physical volume “/dev/sda6” successfully created
    查看:pvdisplay
    還可以使用命令pvs 和pvscan 查看簡略信息。
邏輯卷LVM

    2、創建vg:vgcreate
邏輯卷LVM

    創建完成后再看一下PV可以看到三塊物理卷被劃入到同一個卷組vg0中去了。

    3、創建Lv:lvcreate
    [root@centos6 ~]#lvcreate -n lv0 -L 8G vg0        <==-n是指定LV的名字,-L 指定要創建的邏輯卷的大小
    Logical volume “lv0” created.
    mkfs.ext4 /dev/vg0/lv0                                     <==創建文件系系統
    mount /dev/vg0/lv0 /mnt/lv0                             <==掛載,創建完畢。

LVM的擴展

    前提:為了驗證動態擴容對數據不影響,我們先拷貝點資料到/mnt/lv0
    cp /etc/* /mnt/lv0
    1、查看卷組有沒有空間
    [root@centos6 ~]#vgs
    VG   #PV #LV #SN Attr   VSize  VFree
    vg0    3   1   0 wz–n- 16.97g 8.97g                        <==還有將近9G的空間
    2、指定擴展的大小
    [root@centos6 ~]#lvextend -L +5G  /dev/vg0/lv0    <==注意:這里指定大小的時候,如果不寫“+”,就是指將LV的空間加到多少,有了“+”就是加多少
    Size of logical volume vg0/lv0 changed from 8.00 GiB (2048 extents) to 13.00 GiB (3328 extents).
    Logical volume lv0 successfully resized.
    [root@centos6 ~]#vgs
    VG   #PV #LV #SN Attr   VSize  VFree
    vg0    3   1   0 wz–n- 16.97g 3.97g            <==VG卷組還剩4G
    [root@centos6 ~]#lvs
    LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
    lv0  vg0  -wi-ao—- 13.00g                        <==LV0的大小變成13=8+5
    這個注意:現在新增空間雖然加到LV0上去了,但是df -h依然顯示原來的容量,因為新增的空間上并沒有創建文件系統,所以導致系統無法識別。
    3、resize2fs /dev/vg0/lv0                         <==同步文件系統,df -h才可以擴容后的大小。查看數據并未丟失。

    上面的情況是卷組VG有剩余空間,萬一卷組也沒有空間了呢?這時候就需要添加VG
    1、pvcreate /dev/sdg
    2、vgextend vg0 /dev/sdg                               <==把/dev/sdg擴展到vg0,這個時候就可以個需要擴容的LV擴容了。

LV的縮減

    注意:xfs的文件系統無法縮減
    1、umount /mnt/lv0                                       <==取消掛載
    2、fsck -f /dev/vg0/lv0                                   <==檢查文件系統,必須要做的
    3、resize2fs /dev/vg0/lv0 5G                           <==縮減文件系統
    4、lvreduce -L 5G /dev/vg0/lv0                        <==這里的大小必須和第三步縮減的文件系統大小一致
    5、mount /dev/vg0/lv0  /mnt/lv0/                    <==重新掛載

VG、PV的縮減

    1、umount /mnt/lv0/                                      <==取消掛載
    2、pvmove /dev/sdg                                      <==移除空間,確保卷組中有足夠空間放/dev/sdg的空間
    3、vgreduce vg0 /dev/sdg                              <==將/dev/sdg從vg0中移除
    4、pvremove /dev/sdg                                    <==從物理卷中刪除

LVM快照

    前提:寫入測試數據
    [root@centos6 lv0]#cp /etc/fstab f1
    [root@centos6 lv0]#cp /etc/fstab f2
    [root@centos6 lv0]#cp /etc/fstab f3

創建快照

    1、lvcreate -n lv0-snapshot -s -L 100M -p r /dev/vg0/lv0 
    -n lv0-snapshot:指定一個快照名字
    -s:s表示快照
    -L 100M:指定大小
    -p r:指定只讀屬性
    /dev/vg0/lv0:對哪個設備做快照
    2、mount /dev/vg0/lv0-snapshot /mnt/snap/        <==掛載
    [root@centos6 ~]#cd /mnt/snap/
    [root@centos6 snap]#ls
    f1  f2  f3  lost+found
    [root@centos6 snap]#cd /mnt/lv0/
    [root@centos6 lv0]#ls
    f1  f2  f3  lost+found                                          <==此時快照中還沒有數據
    3、修改和刪除原來LV中的數據,會講舊的數據推送到/mnt/snap/,并且只保留舊數據。新創建數據不會推送。

還原

    1、取消掛載
    [root@centos6 ~]#umount /mnt/lv0
    [root@centos6 ~]#umount /mnt/snap
    2、[root@centos6 ~]#lvconvert –merge /dev/vg0/lv0-snapshot         <==拿快照合并數據,合并完快照的邏輯卷消失了。
    Merging of volume lv0-snapshot started.
    lv0: Merged: 100.0%
    Merge of snapshot into logical volume lv0 has finished.
    Logical volume “lv0-snapshot” successfully removed
    3、再次掛載mount /dev/vg0/lv0 /mnt/lv0/,發現數據恢復。

LVM刪除

    1、lvremove /dev/vg0/lv0 
    2、vgremove /dev/vg0
    3、pvremove   /dev/md5 /dev/sda6  /dev/sdf /dev/sdg
    注意:創建的時候是從PV-VG-LV,刪除的時候過程相反。

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

(0)
eleveneleven
上一篇 2017-08-12 16:39
下一篇 2017-08-12 16:52

相關推薦

  • Linux Sysadmin–part4

    一、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) A.POST加電自檢 主板在接通電源后,系統首先由POST程序來對內部各個設備進行檢查,自檢中如發現有錯誤,將按兩種情況處理:對于嚴重故障(致命性故障)則停機,此時由于各種初始化操作還沒完成,不能給出任何提示或信號;對于非嚴重故障則給出提示或聲音報警信號,等待用戶處理。 B.BIOS…

    2017-10-10
  • Liunx獲取信息幫助與man文檔章節的劃分

    首先要判斷命令的類型,可用 type COMMAND 來判斷命令 如果顯示結果為(….是 shell內嵌)即為shell內嵌命令,如需獲取幫助,使用 help COMMAND 即可; 下圖的例子是pwd是shell內嵌命令 內部命令屬于Shell的一部分,所以并沒有單獨對應的系統文件,只要Shell解釋器被運行,內部指…

    2017-07-02
  • Linux用戶與權限管理

    由于Linux是多用戶、多任務系統,出于一些需要,當我們創建的文件希望對一部分用戶開放,對一部分用戶隱藏的時候應該怎么辦呢?這樣的話,就需要涉及到Linux系統中對用戶以及對文件權限的管理。 一、相關文件 在Linux中,一切配置文件都是以文本文檔的方式來保存的,同樣用戶的信息也保存在系統的一些文件中,其位置為/etc/passwd。此文件只有root用戶具…

    Linux干貨 2016-08-05
  • IoC/DIP其實是一種管理思想

    關于IoC的的概念提出來已經很多年了,其被用于一種面象對像的設計。我在這里再簡單的回顧一下這個概念。我先談技術,再說管理。 話說,我們有一個開關要控制一個燈的開和關這兩個動作,最常見也是最沒有技術含量的實現會是這個樣子: 然后,有一天,我們發現需要對燈泡擴展一下,于是我們做了個抽象類: 但是,如果有一天,我們發現這個開關可能還要控制別的不單單是燈泡的東西,我…

    Linux干貨 2016-08-15
  • nginx負載均衡搭建

    組 網絡拓撲圖 nginx負載均衡服務器搭建 首先準備三臺機器 主機A(nginx負載均衡器) 主機B 主機C 主機A需兩塊網卡(一塊外網,一塊內網) 主機B和主機C各一塊 (各一塊內網的IP,如果主機B C和主機A內網網卡在一個網段就不需要配置網關地址了。 規劃好網絡后,nginx負載主機分別ping下各rs主機是否可通 主機A打開核心轉發功能 #echo…

    Linux干貨 2017-05-17
  • DNS從入門到管理(一)

    DNS從入門到管理(一) DNS概念 DNS三步法 反向解析 主從DNS服務器的實現 子域授權 智能DNS 壓力測試與DNS排錯 DNS概述 DNS(Domain NameSystem,域名系統),域名和IP地址相互映射的一個分布式數據庫,通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析。而DNS的主要作用,就是域名解析,將主機名解析成IP地址?!?/p>

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