我的服務器空間不夠用了,讓運維同事幫忙擴展下,他就把磁盤掛上去了就不管我了,還是得自己來nnd,上次主機電源壞了,md直接給個電源讓我自己裝。
https://blog.csdn.net/weixin_39919195/article/details/111267123
【前言】
干運維一年以來,已經遇到好幾次需要擴展目錄空間的情景,每次都是同事幫忙解決,這次花一點時間了解下。在某搜索引擎上查閱大量資料以及咨詢大佬的幫助下,有了點自己的小小的理解,如有不對,還請各位指出~
【相關名詞】
在進行步驟之前,先來了解幾個名詞,在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系統就不能用這個命令,可以看到已經更新了,至此,擴展就完成了