CentOS LVM擴展已有磁盤

【前言】

       幹運維一年以來,已經遇到好幾次需要擴展目錄空間的情景,每次都是同事幫忙解決,這次花一點時間瞭解下。在某搜索引擎上查閱大量資料以及諮詢大佬們的幫助下,有了點自己的小小的理解,如有不對,還請各位指出~

【相關名詞】

       在進行步驟之前,先來了解幾個名詞,在Linux存儲系統中,有以下概念名詞:

物理存儲介質:

       系統的物理存儲設備,也就是常說的磁盤/硬盤,在linux系統中查看標識如:/dev/sda、/dev/hda等。

物理卷(Physical Volume,PV):

       是具體的硬盤分區,在linux系統中查看標識如:/dev/sda1、/dev/sda2等,是lvm的基本存儲單元,可以理解爲加了lvm相關管理參數的物理存儲介質。

物理塊(PE):

       物理卷pv中可以分配的最小存儲單元,PE的大小可以指定,默認爲4MB

卷組(Volume Group,VG):

       顧名思義,物理卷的組合,由一個或多個物理卷組成,類似與windows中的物理硬盤。卷組(VG)就好比一個櫃子,物理卷(PV)就是這個櫃子的抽屜。

邏輯卷(Logical Volume,LV):

       可以類比爲windows中的c盤、d盤這樣子,具體在linux中的標識就是各個目錄,比如:/、/home、/data。我們現在用的CentOS的文件系統就基本是建立在這個之上的。

邏輯塊(LE):

       邏輯卷LV中可以分配的最小存儲單元,在同一個卷組中LE和PE是相同的,並且一一對應

邏輯卷管理(Logical Volume Manager,LVM):

       Linux環境中介於底層硬盤和文件系統中間的一種管理機制。它的原理就是通過對物理硬盤進行封裝爲物理卷(pv),添加到一個資源池--卷組(vg),然後再劃分各個邏輯卷(lv)提供給上層應用。如此一來,上層應用是通過邏輯卷對底層物理硬盤進行操作,這樣做的好處在於,可以靈活的增加/縮減空間。

       爲什麼說能靈活的增加/縮減空間呢?如果上層應用是直接對接物理硬盤的,你一個盤滿了,那麼要怎麼達到擴展空間的目的呢?最先想到的是不是換個大點的物理硬盤,然後把文件拷貝到新盤去?如果說文件不大還好說,如果文件是幾個TB,那怎麼辦?好,就算幾個TB,你可以等,那如果是幾個PB呢?怎麼解決?還是用拷貝的方式?很顯然不是很現實,這個時候lvm的優勢就展現出來了,我只需要將新增的物理硬盤添加進卷組(VG),然後再給需要擴展的盤添加空間就可以了,是不是省去了拷貝這麼個步驟呢?

       在別人博客借個圖,如下圖描述了整個lvm的大致架構流程,更好理解點。

 

       那麼你會好奇了,我要如何進行這個空間的擴展/縮減呢?接下來就是具體的擴展內容了。

 簡潔步驟見文末,以下爲詳細講解步驟

【lvm擴展已有磁盤】

       首先給虛擬機添加一塊新的硬盤,這裏我加了個10G的硬盤

1、查看新增硬盤是否成功,如下圖可以看到新增了個/dev/sdb盤

fdisk -l

2、創建硬盤分區

fdisk /dev/sdb

3、改變分區格式

4、查看是否分區成功

fdisk -l

可以看到已經出現了/dev/sdb1,但是此時還並未真正成爲一個pv,需要進行下一步。

5、創建pv

pvcreat /dev/sdc1

6、查看確認pv創建成功

pvdisplay

7、查看現有的vg

vgdisplay

這裏我需要擴展根目錄所在的vg,即圖中vg名爲centos

8、擴展vg

vgextend centos /dev/sdb1

9、查看vg是否擴展成功

vgdisplay

可以看到Free PE 已經變爲10G了。

10、查看你想要擴展的目錄的lv路徑

lvdisplay

這裏我準備擴展根目錄,如圖路徑爲/dev/centos/root

11、擴展lv

lvextend -l +100%free /dev/centos/root

通過vgdisplay查看vg的free pe已經變爲0了,alloc pe也由原來的50G變爲60G了,但是這時候還需要最後一步

12、刷新格式xfx格式文件系統大小

xfs_growfs /dev/centos/root

這裏需要根據你的格式來用不同的命令,如果不是xfs系統就不能用這個命令,可以看到已經更新了,至此,擴展就完成了

簡潔版本: 

1、分區
[root@VM171-test-ng_proxy ~]# fdisk /dev/sdb 
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xb5ab0716.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

2、創建pv
[root@VM171-test-ng_proxy ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.

3、擴展vg
[root@VM171-test-ng_proxy ~]# vgextend centos /dev/sdb1 
  Volume group "centos" successfully extended

4、擴展lv
[root@VM171-test-ng_proxy ~]# lvextend -l +100%free /dev/centos/root 
  Size of logical volume centos/root changed from 46.99 GiB (12030 extents) to 56.99 GiB (14590 extents).
  Logical volume centos/root successfully resized.

5、刷新xfs文件系統
[root@VM171-test-ng_proxy ~]# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3079680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=12318720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6015, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12318720 to 14940160

        在文末要再次感謝各位大佬耐心給我講解相關的知識點~

 

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