LVM

LinuxLVM(邏輯卷管理)    

         Linux系統安裝伊始,Linux用戶就會面臨一個問題:如何給系統各個分區分配足夠使用的磁盤空間。這個問題,當系統的存儲空間即將用盡時顯得尤爲棘手。解決的辦法通常是使用符號鏈接,或者一些調整分區大小的工具(如parted)對分區大小進行調整,但這只是一個暫時性的解決辦法,不久後,我們又會面臨同樣的問題。

         此外,每次這樣的更改,都需要對分區表進行修改,又要對機器進行關機重啓操作。這樣的話,會對服務器上正在跑的業務造成一定的損失。LVM(邏輯卷管理)能夠幫助我們解決這個問題。

        

         一、LVM簡介

   LVM Logical Volume Manager(邏輯卷管理)的簡寫,它將一個或多個硬盤的分區在邏輯上集合,相當於一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區添加其中,這樣可以實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。

         與傳統的磁盤與分區相比,LVM爲計算機提供了更高層次的磁盤存儲。它使系統管理員可以更方便的爲應用與用戶分配存儲空間。在LVM管理下的存儲卷可以按需要隨時改變大小或添加移除(可能需對文件系統工具進行升級)LVM也允許按用戶組對存儲捲進行管理,允許用戶使用更直觀的名稱("sales' 'development')代替物理磁盤名('sda''sdb')來標識存儲卷。

         因此,使用LVM主要是方便了對存儲系統的管理,增加了系統的擴展性。

        


         注:由四個磁盤分區可以組成一個很大的空間,然後在這些空間上劃分一些邏輯分區,當一個邏輯分區的空間不夠用的時候,可以從剩餘空間上劃分一些空間給空間不夠用的分區使用。

 

         二、LVM的基本術語

         LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建立文件系統。首先我們要清楚以下幾個術語所代表的含義:

         物理存儲介質(The physical media):

         指硬盤,如:/dev/hda1/dev/sda等,是存儲系統最底層的存儲單元。

 

         物理卷PVphysicalvolume):

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

 

         卷組VGVolume Group):

         LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。

 

         邏輯卷LVlogicalvolume):

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

 

         PEphysical extent):

         每一個物理卷被劃分爲大小相等的、稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB

 

         LElogical extent):

         邏輯卷也被劃分爲被稱爲LE(LogicalExtents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。

 

         簡單來說就是:

         PV是物理的磁盤分區

         VGLVM中的物理的磁盤分區,也就是說PV必須加入VG,可以將VG理解爲一個倉庫或者是幾個大的硬盤,一個VG中包含多個PV

         LV也就是從VG中劃分的邏輯分區

 

      

         注:每個PV有大小相等的PE組成(默認爲4M);每個LV有大小相等的LE組成(默認爲4M

 

         三、安裝LVM

         lsmod| grep dm_mod   #查看device-mapper模塊是否已經加載

 

         若出現以下輸出,即表明加載成功:

         dm_mod               63097  4 dm_mirror,dm_multipath,dm_raid45,dm_log

 

         否則,使用以下命令加載device-mapper模塊:

         modprobedm_mod

 

         yuminstall lvm2    #安裝LVM2

 

         四、創建和管理LVM

         1、創建分區

         fdisk  /dev/sdb                 #創建新分區,將整個磁盤都創建爲兩個個分區,分區號爲sdb1sdb2

         t                                             #更改分區類型爲8e

         w                                           #保存分區設置

         partprobe                            #使分區立即生效,否則需要重啓系統

 

         *LVM創建的大致過程

         從硬盤驅動器分區中創建物理卷(physicalvolumes-PV)

         從物理卷中創建卷組(volumegroups-VG)

         從卷組中創建邏輯卷(logicalvolumes-LV),並分派邏輯卷掛載點,其中只有邏輯卷纔可以寫數據。

 

         2、創建PV

         相關命令:

         pvcreate   創建PV

         pvscan    掃描PV

         pvdisplay   顯示PV

         pvremove  刪除PV

        

         pvcreate  /dev/sdb1   

         pvcreate  /dev/sdb2        #使用pvcreate進行轉換

         pvdisplay                               #查看創建好的pv

 

         3、創建VG(這裏我們的VG中目前只有/dev/sdb1,如果以後VG的空間使用完,我們可以在添加其他硬盤擴充VG

         相關命令:

         vgcreate    創建VG

         vgscan      掃描目前系統上是否有VG存在

         vgdispaly    顯示VG狀態

         vgextend    在目前的VG中添加pv,即擴展VG

         vgreduce    減小VG,即在目前的VG中移除pv

         vgchange    配置VG是否啓動(active

         vgremove   刪除VG

        

         vgcreate  VG0 /dev/sdb1  /dev/sdb2 …    #vgcreate 卷組名  物理卷1 物理卷2 …

         vgdisplay                                                                      #查看創建的VG狀態

         vgchange–ay VG0                                                    #激活卷組

 

         4、創建LV

         lvcreate  -L 800M  –n  LV1 VG0        #創建一個大小爲800M,名爲LV1的邏輯卷。其中L指定大小,n指定邏輯卷名稱,VG0表示從VG0卷組中劃分LV1

         lvdisplay                                                                       #查看創建的LV

 

         5LV格式化及掛載

         mkfs.ext4  /dev/VG0/LV1                                    

或者mkfs –text4  /dev/VG0/LV1                               #格式化LV1

         mkdir/mnt/lvm                                                          #創建邏輯卷掛載目錄

         mount/dev/VG0/LV1 /mnt/lvm                             #掛載

         df–Thl                                                                          #查看邏輯卷是否掛載上

 

         最好是將LV1寫入fstable文件中,放邊其在啓東市就能掛載。

eg/dev/VG0/LV1           /mnt/lvm          ext4          defaults          1       2

 

         到此,LVM的完整過程已經創建完畢。

 

 

         五、LVM容量調整

         下面的這些內容,纔是LVM真正強大的地方。LVM的容量調整可以再多個環節進行,無論是在PV卷,VG卷組還是LV上,都可以方便快速的進行容量調整。

         一般情況下,我們對LVM分區大小的調整,都是從VG的剩餘空間來擴展的。如果VG中沒有剩餘空間了,那麼我們要通過添加PVVG擴容。在沒有現成的PV時,我們需要通過添加硬盤來創建PV

 

         1、使用fdisk添加一塊物理分區,修改其分區類型爲8e

         fdisk  /dev/sdc

         n

         l                                                       #新建邏輯分區

         1                                                      #分區號設爲1

         t        8e                                      #分區類型更改爲8e

         w                                                     #寫入分區表

         partprobe                                     #重讀分區表

         mkfs.ext4  /dev/sdc1              #格式化

         partx/dev/sdc                             #查看當前硬盤的分區表及使用情況

 

         具體步驟,參見“創建和管理LVM”中的“創建分區”。

         這裏需要首先卸載掉原來掛載的LV1:

         umount  /dev/VG0/LV1

        

         2、添加物理卷(這裏假定新添加的物理分區爲/dev/sdc1

         pvcreate  /dev/sdc1

         pvscan                                                                       #瀏覽創建的物理卷,或者使用pvdisplay

 

         3、對卷組進行擴容

         vgdisplay

         vgextend  VG0 /dev/sdc1

        

 

         4、對原來的LV進行擴容

         這裏我們已經對卷組VG0擴容完畢,也就是說,VG0中已經有空閒的空間可以提供給LV進行擴容。

         lvdisplay

         lvextend  -L +500M  /dev/VG0/LV1                    #LV1擴容500M

         lvscan

         resize2fs  -f /dev/VG0/LV1                                      #使系統識別到更改容量後的系統

 

         mount  /dev/VG0/LV1 /mnt/lvm                            #對剛纔卸載掉的LV1進行重新掛載

 

 

         六、卸載LVM的方法

         如果不想使用LVM的話,可以卸載它, 卸載的方法與分區的刪除方法類似,就是最後創建的最先刪除。順序如下:
         先刪除LV
         再刪除VG
         最後PV
         以前的LVM的分區應用fdisk轉換成其它類型的文件系統,當普通分區使用。

 

eg1df

         2umount/mnt/lvm

         3lvremove  /dev/VG0/LV1                                                         #刪除邏輯卷

         4vgchange  –a n  VG0                                                                   #更改VG0爲休眠狀態

            vgremove VG0                                                                                   #刪除卷組

         5pvscan

      pvremove  /dev/sdb1   /dev/sdb2  /dev/sdc1

         6、使用fdisk修改磁盤的分區類型。一般的Linux文件系統類型爲83

 

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章