雲主機使用的愈來愈多,如今幾乎沒有不使用雲主機的,常常會碰到須要升級硬盤存儲的操做,直接添加磁盤,或動態在原有的分區上擴容,所使用的方案大體有以下:
一、基於lvm格式 在線動態擴容
二、非lvm格式擴容
接下來咱們就結合生產經常使用兩種擴容方案及實踐linux
這裏引用鳥哥說明
LVM 的重點在於『能夠彈性的調整 filesystem 的容量!』而並不是在於效能與數據保全上面。 須要文件的讀寫效能或者是數據的可靠性,請參考前面的 RAID 小節。 LVM 能夠整合多個實體 partition 在一塊兒, 讓這些 partitions 看起來就像是一個磁碟同樣!並且,還能夠在將來新增或移除其餘的實體 partition 到這個 LVM 管理的磁碟當中。 如此一來,整個磁碟空間的使用上,實在是至關的具備彈性啊! 既然 LVM 這麼好用,那就讓咱們來試試centos
什麼是 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, 卷軸羣組app
所謂的 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 的最大容量喔!ide
Logical Volume, LV, 邏輯卷軸工具
最終的 VG 還會被切成 LV,這個 LV 就是最後能夠被格式化使用的相似分割槽的咚咚了!那麼 LV 是否能夠隨意指定大小呢? 固然不能夠!既然 PE 是整個 LVM 的最小儲存單位,那麼 LV 的大小就與在此 LV 內的 PE 總數有關。 爲了方便使用者利用 LVM 來管理其系統,所以 LV 的裝置檔名一般指定爲『 /dev/vgname/lvname 』的樣式!測試
如下是lvm原理圖:
ui
說了這麼多的原理,貌似仍是有點蒙,接下來搞點實踐~翻譯
公司辦公室有一套vmwa私有云羣,給開發,測試提供虛擬機作環境,常常會有磁盤空間不足,接下來就給一臺機器系統磁盤/分區 30G擴容到50G
首先在vmware集羣中編輯-->將磁盤擴容到50G 如圖:cdn
接下來到虛擬機上操做步驟以下:
步驟:
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分區,如何是好?
前提也是針對現有分區進行擴容
第一步也是在vmware集羣或雲平臺上給物理機添加磁盤再經過工具在線擴容,可能須要重啓
安裝工具:
yum install -y cloud-utils
擴容前檢測分區,如下是xfs格式化的避ext4使用e2fsck 工具
xfs_repair -f /dev/sda
growpart /dev/sda 1
xfs_growfs /dev/sda1
更多參考請點這裏請添加連接描述
在擴容前,最好是備份好重要資料,以防不測