雲主機磁盤存儲動態擴容(LVM)方案

一、場景

雲主機使用的越來越多,現在幾乎沒有不使用雲主機的,經常會碰到需要升級硬盤存儲的操作,直接添加磁盤,或動態在原有的分區上擴容,所使用的方案大致有如下:
1、基於lvm格式 在線動態擴容
2、非lvm格式擴容
接下來我們就結合生產常用兩種擴容方案及實踐

二、LVM在線動態擴容

1、lvm原理概述

這裏引用鳥哥說明
LVM 的重點在於『可以彈性的調整 filesystem 的容量!』而並非在於效能與數據保全上面。 需要文件的讀寫效能或者是數據的可靠性,請參考前面的 RAID 小節。 LVM 可以整合多個實體 partition 在一起, 讓這些 partitions 看起來就像是一個磁碟一樣!而且,還可以在未來新增或移除其他的實體 partition 到這個 LVM 管理的磁碟當中。 如此一來,整個磁碟空間的使用上,實在是相當的具有彈性啊! 既然 LVM 這麼好用,那就讓我們來試試

什麼是 LVM: PV, PE, VG, LV 的意義
LVM 的全名是 Logical Volume Manager,中文可以翻譯作邏輯卷軸管理員。之所以稱爲『卷軸』可能是因爲可以將 filesystem 像卷軸一樣伸長或縮短之故吧!LVM 的作法是將幾個實體的 partitions (或 disk) 透過軟件組合成爲一塊看起來是獨立的大磁碟 (VG) ,然後將這塊大磁碟再經過分割成爲可使用分割槽 (LV), 最終就能夠掛載使用了。但是爲什麼這樣的系統可以進行 filesystem 的擴充或縮小呢?其實與一個稱爲 PE 的項目有關! 底下我們就得要針對這幾個項目來好好聊聊!
Physical Volume, PV, 實體卷軸

我們實際的 partition 需要調整系統識別碼 (system ID) 成爲 8e (LVM 的識別碼),然後再經過 pvcreate 的命令將他轉成 LVM 最底層的實體卷軸 (PV) ,之後才能夠將這些 PV 加以利用! 調整 system ID 的方是就是透過 fdisk 啦!
Volume Group, VG, 卷軸羣組

所謂的 LVM 大磁碟就是將許多 PV 整合成這個 VG 的東西就是啦!所以 VG 就是 LVM 組合起來的大磁碟!這麼想就好了。 那麼這個大磁碟最大可以到多少容量呢?這與底下要說明的 PE 有關喔~因爲每個 VG 最多僅能包含 65534 個 PE 而已。 如果使用 LVM 默認的參數,則一個 VG 最大可達 256GB 的容量啊!(參考底下的 PE 說明)
Physical Extend, PE, 實體延伸區塊
LVM 默認使用 4MB 的 PE 區塊,而 LVM 的 VG 最多僅能含有 65534 個 PE ,因此默認的 LVM VG 會有 4M*65534/(1024M/G)=256G。 這個 PE 很有趣喔!他是整個 LVM 最小的儲存區塊,也就是說,其實我們的文件數據都是藉由寫入 PE 來處理的。 簡單的說,這個 PE 就有點像文件系統裏面的 block 大小啦。 這樣說應該就比較好理解了吧?所以調整 PE 會影響到 VG 的最大容量喔!

Logical Volume, LV, 邏輯卷軸

最終的 VG 還會被切成 LV,這個 LV 就是最後可以被格式化使用的類似分割槽的咚咚了!那麼 LV 是否可以隨意指定大小呢? 當然不可以!既然 PE 是整個 LVM 的最小儲存單位,那麼 LV 的大小就與在此 LV 內的 PE 總數有關。 爲了方便使用者利用 LVM 來管理其系統,因此 LV 的裝置檔名通常指定爲『 /dev/vgname/lvname 』的樣式!

以下是lvm原理圖:
雲主機磁盤存儲動態擴容(LVM)方案

說了這麼多的原理,貌似還是有點蒙,接下來搞點實踐~

2、實踐

公司辦公室有一套vmwa私有云羣,給開發,測試提供虛擬機做環境,經常會有磁盤空間不足,接下來就給一臺機器系統磁盤/分區 30G擴容到50G
首先在vmware集羣中編輯-->將磁盤擴容到50G 如圖:

雲主機磁盤存儲動態擴容(LVM)方案
接下來到虛擬機上操作步驟如下:
步驟:
1)、格式化新添加的磁盤空間(也可以是單獨一塊新磁盤)
2)、添加修改分區爲8e格式
3)、刷新分區
4)、創建pv ( pvcreate)
5)、擴展VG
6)、lv擴容

實際操作如下:
fdisk -l /dev/sdb
n
p
2
t
8e
w

不重啓顯示新分區信息
partx -a /dev/sdb2

創建新pv
pvcreate /dev/sdb2
擴展現有VG Name
vgextend vg_daemon6 /dev/sdb2
lv擴容:
#lvextend -L +20G /dev/vg_daemon6/LogVol00 # 注意 /dev/vg_daemon6/LogVol00 是通過df -TH 查詢得到 的文件系統路徑
Size of logical volume vg_daemon6/LogVol00 changed from 32.20 GiB (14321 extents) to 50.80 GiB (25649 extents).
Logical volume LogVol00 successfully resized.

刷新分區信息:
ext4:
#resize2fs /dev/mapper/vg_daemon6-LogVol00
xfs:
xfs_growfs /dev/mapper/centos-root

以上是基於lvm擴容,有時間服務器並沒有基於lvm分區,如何是好?

3、擴容方法二

前提也是針對現有分區進行擴容
第一步也是在vmware集羣或雲平臺上給物理機添加磁盤再通過工具在線擴容,可能需要重啓

安裝工具:
yum install -y cloud-utils
擴容前檢測分區,以下是xfs格式化的避ext4使用e2fsck 工具
xfs_repair -f /dev/sda
growpart /dev/sda 1
xfs_growfs /dev/sda1
更多參考請點這裏請添加鏈接描述

結束語:

在擴容前,最好是備份好重要資料,以防不測

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