linux基礎之lvm操作流程

linux基礎之lvm基本操作流程
    LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4內核上實現,目前最新版本為:穩定版1.0.5,開發版 1.1.0-rc2,以及LVM2開發版。Linux用戶安裝Linux操作系統時遇到的一個常見的難以決定的問題就是如何正確地評估各分區大小,以分配合適的硬盤空間。普通的磁盤分區管理方式在邏輯分區劃分好之后就無法改變其大小,當一個邏輯分區存放不下某個文件時,這個文件因為受上層文件系統的限制,也不能跨越多個分區來存放,所以也不能同時放到別的磁盤上。而遇到出現某個分區空間耗盡時,解決的方法通常是使用符號鏈接,或者使用調整分區大小的工具,但這只是暫時解決辦法,沒有從根本上解決問題。隨著Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,用戶在無需停機的情況下可以方便地調整各個分區大小。
   

LVM模型

linux基礎之lvm操作流程

LVM模型

前言

      每個Linux使用者在安裝Linux時都會遇到這樣的困境:在為系統分區時,如何精確評估和分配各個硬盤分區的容量,因為系統管理員不但要考慮到當前某個分區需要的容量,還要預見該分區以后可能需要的容量的最大值。因為如果估 計不準確,當遇到某個分區不夠用時管理員可能甚至要備份整個系統、清除硬盤、重新對硬盤分區,然后恢復數據到新分區。
      雖然有很多動態調整磁盤的工具可以使用,例如PartitionMagic等等,但是它并不能完全解決問題,因為某個分區可能會再次被耗盡;另外一個方面這需要 重新引導系統才能實現,對于很多關鍵的服務器,停機是不可接受的,而且對于添加新硬盤,希望一個能跨越多個硬盤驅動器的文件系統時,分區調整程序就不能解 決問題。
     因此完美的解決方法應該是在零停機前提下可以自如對文件系統的大小進行調整,可以方便實現文件系統跨越不同磁盤和分區。幸運的是Linux提供的邏輯盤卷管理(LVM,LogicalVolumeManager)機制就是一個完美的解決方案。
     LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和 分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕松管理磁盤分區,如:將若干個磁盤分區連接為一個整塊的卷組 (volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),并進一步在邏輯卷組上創建文件系 統。管理員通過LVM可以方便的調整存儲卷組的大小,并且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當系統添加了新的磁盤,通過LVM管理員就不必將磁盤的 文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁盤即可。
      基本術語
      前面談到,LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來為文件系統屏蔽下層磁盤分區布局,提供一個抽象的存儲卷,在存儲卷上建立文件系統。首先我們討論以下幾個LVM術語:
      物理存儲介質(PhysicalStorageMedia)
      指系統的物理存儲設備:磁盤,如:/dev/hda、/dev/sda等,是存儲系統最底層的存儲單元。
      
物理卷(Physical Volume,PV)
      指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
     卷組(Volume Group,VG)
      類似于非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成??梢栽诰斫M上創建一個或多個LV(邏輯卷)。
     
邏輯卷(Logical Volume,LV)
     類似于非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)。
    物理塊(Physical Extent,PE)
    每一個物理卷PV被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。所以物理卷(PV)由大小等同的基本單元PE組成。
   
邏輯塊(Logical Extent,LE)

LVM抽象模型

linux基礎之lvm操作流程

LVM抽象模型
    邏輯卷LV也被劃分為可被尋址的基本單位,稱為LE。在同一個卷組中,LE的大小和PE是相同的,并且一一對應。
    圖所示LVM抽象模型,展示了PV、VG、LV三者之間關系:
    和非LVM系統將包含分區信息的元數據保存在位于分區的起始位置的分區表中一樣,邏輯卷以及卷組相關的元數據也是保存在位于物理卷起始處的VGDA(卷組描述符區域)中。VGDA包括以下內容:PV描述符、VG描述符、LV描述符、和一些PE描述符。
   系統啟動LVM時激活VG,并將VGDA加載至內存,來識別LV的實際物理存儲位置。當系統進行I/O操作時,就會根據VGDA建立的映射機制來訪問實際的物理位置。
   安裝
   首先確定系統中是否安裝了lvm工具:
   [root@wwwroot]#rpm –qa | grep lvm
   lvm-1.0.3-4
   如果命令結果輸入類似于上例,那么說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網絡下載或者從光盤裝LVMrpm工具包。

創建lvm邏輯卷

    一、準備分區或硬盤

   fdisk  進行分區  并更改system ID(t  -L)  8e(mbr分區表上的lvm)   15(gpt分區表上lvm)  
   二、.創建物理卷(pv)
   pvcreate  /dev/sd{b,c1}
    可以通過查看命令查看是否創建成功
    pvs 查看
    pvdisplay 查看詳細信息
    blkid
  三、創建卷組       
     vgcreate  vg0  -s 16M /dev/sd{b,c1}   
    pvdisplay  查看詳細信息
    vgs   查看卷組信息
    ll /dev/vg0  是沒有這個設備的
 四、創建邏輯卷
    lvcreate  -n  lv0  -l 1000  vg0
    -n  指定邏輯卷名稱
    -l  多少個pe個數

    -L  直接指定容量大小 

    lvs   查看邏輯卷

 五、格式化 創建文件系統
     mkfs.xfs /dev/vgo/lv0   格式化并創建為xfs文件系統
     mkfs.ext4 /dev/vgo/lv0   格式化并創建為ext4文件系統
六.手動掛載
     mkdir /mnt/lv0
     mount  /dev/vgho/lv0  /mnt/lv0  
七、配置成開機自動掛載
     vim  /etc/fstab
     UUID=”07a34e17-7833-4ec8-8846-c6b590e36fba”    /mnt/lv0  xfs   defaults 0 0 
     mount -o remount /mnt/lv0 
    mount

擴展邏輯卷 

       一、擴展邏輯卷容量大小
               lvextend  -L 5G   /dev/vg0/lv0
               lvextend -r  -L 5G   /dev/vg0/lv0  同時擴展容量并更新擴展文件系統
                          5G  增加到5G  也就是算上原有的容量到5G
                         +5G  就是在原有的基礎上再增加5G
                   -l  多少個pe個數
                   -L  直接指定容量大小 
            lvextend    /dev/vg0/lv0  -l +100%FREE  剩余空閑空間全部用完
                 df -h  查看分區信息
    二、卷容量擴展后需要更新ext4文件系統的大小信息
           resize2fs  /dev/vg0/lv0
           resize2fs  同步ext系列文件系統
      如果是xfs文件系統:卷容量擴展后需要更新xfs文件系統的大小信息
          xfs_growfs /dev/vg0/lv0
          xfs_growfs 同步xfs文件系統
卷組擴
      1.磁盤變成物理卷
         pvcreate /dev/sdd
         pvs
     2.擴展卷組
        vgextend vg0 /dev/sdd
縮減邏輯卷
       縮減不支持在線,必須離線
        ext4可以縮減
        xfs 只能增長不能縮減

1.)因為縮減只能離線,所以必須把需要縮減的邏輯卷取消掛載
  umount  /mnt/lv0   卸載(取消掛載)
2.)縮減邏輯卷上的文件系統大?。╨vm上的文件系統)
  resize2fs /dev/vgo/lv0 5G   (操作這個步驟后會出現報錯提示,提示你需要先校驗文件系統后,再進行這一步操作)
     5G  縮減到5G  也就是在原有的空間熔煉上縮減到5G
     +5G  在原有的容量基礎基礎直接減去5G
e2fsck -f /dev/vg0/lv0  
      校驗文件系統
resize2fs /dev/vgo/lv0 5G 
       執行縮減文件系統操作
3.)縮減邏輯卷(lvm)
lvreduce -L 5G /dev/vg0/lv1
 注意:邏輯卷(lvm)縮減的大小要與文件系統上縮減的大小一致
            在做縮減前,做好把需要縮減的邏輯卷的數據做一下備份,避免導致文件丟失
4.)縮減完成后再進行掛載
mount -a     (如果掛載信息已經寫入到/etc/fstab文件中了,可以使用該命令,反之就手動掛載) 
mount /dev/vg0/lv1  /mnt/lv1  (手動掛載)
5.)查看縮減后的容量信息
   df -h

從卷組(vg)中移除單個物理卷pv(硬盤或者分區)

1)移動pv  sdb的空間,到其他卷組上去(空間搬移過去,數據也是一并移動過去)
     pvmove  /dev/sdb  
     pvmove 是表示移動某個pv上的空間到同一個卷組中其他成員上面去,至于其他成員是誰,這個系統會自動分配。  (pvmove 移動 遷移)
2)顯示遷移過后的物理卷信息
     pvdisplay
3) 把sdb從vg0卷組中移除
     vgreduce vg0 /dev/sdb    
4)把物理卷(pv) sdb刪除
    pvremove /dev/sdb       
5) 顯示其他物理卷信息
    pvdisplay  

邏輯卷刪除

 1) 取消邏輯卷(lvm)的掛載  
      umount /mnt/lv1  或者 umount /dev/vg0/lv1
 2)刪除取消掛載的邏輯卷(lvm)
      lvremove /dev/vg0/lv1
  3)顯示移除邏輯卷后的邏輯卷信息
       lvdisplay 
13.卷組刪除
1) 取消掛載該卷組上所有的邏輯卷lvm
   umount /dev/vg0/lv#
 2)刪除該卷組上所有取消的掛載邏輯卷(lvm)
      lvremove /dev/vg0/lv#
3)刪除卷組
    vgremove vg0     
4)顯示刪除卷組后其他的未刪除的卷組信息
       vgdisplay 或 vgs

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

(0)
花火花火
上一篇 2017-03-19 18:35
下一篇 2017-03-19 20:52

相關推薦

  • 給linux系統添加新的磁盤

    虛擬化環境中,我們經常會遇到需要增加磁盤容量的情況,通常有兩種方式,第一種是添加一塊新的硬盤,另一種是擴容原有磁盤,以下是添加新磁盤至linux系統的操作規范。注:具體磁盤信息可能有所不同。 ##查看新增加磁盤/dev/sdb的信息 [root@CentOS7 ~]# fdisk -l /dev/sdb   Disk /dev/sdb: 5368 …

    Linux干貨 2016-11-11
  • PXE批量部署linux操作系統

       前言    在實際生產環境中,有時候我們會碰到為幾十上百甚至上千臺服務器安裝Linux操作系統的需求,如果我們還是常規的去使用移動介質逐臺安裝,顯然是一件低效又令人抓狂的事情,那要安裝到何年何月???這對于我們追求高逼格形象的技術人員來講當然是不可以接受的,為此,pxe模式批量部署系統應運而生。   &n…

    Linux干貨 2015-05-23
  • bash腳本初探

                              (注)$@和$*的區別,以及$0..$n [root@ _6_ ~]# cat weizhi.sh  #!/bin/bash e…

    Linux干貨 2016-08-15
  • 馬哥教育網絡班第19期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; 2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之; 3、寫一個腳本  …

    Linux干貨 2016-08-08
  • Linux程序包管理

    軟件包管理   API:Application Programming Interface POSIX:Portable OS                程序源代碼–>預處理–…

    Linux干貨 2016-08-29
  • 計算機入門

    Linux入門 與 計算機

    Linux干貨 2018-02-07
欧美性久久久久