從VMware ESXI主機在線擴容到虛擬機磁盤擴容

一、需求

虛擬機磁盤空間不足,需要擴容,ESXI主機未接存儲,且虛擬機磁盤模式均爲“厚置備延遲置零”,主機僅剩餘16GB存儲空間,無法滿足擴容需求,需要爲ESXI主機的磁盤組進行擴容。

操作過程:插入物理磁盤–>配置磁盤RAID–>ESXI存儲擴容–>虛擬機添加硬盤–>linux lvm擴容。

整個過程順利的話均可在不影響業務正常運行的情況下,在線完成,但仍建議,在業務閒時或的低峯期進行操作。以下爲詳細操作過程。

二、服務器RAID組擴容

本次擴容的服務器型號爲DELL Poweredge R730xd,RAID控制器爲PERC H330 Mini (嵌入式),支持實時配置。目前擁有兩塊2TB的物理磁盤,佈局爲RAID1。本次操作將額外插入兩塊2TB物理磁盤,再創建一個RAID1虛擬磁盤。

插入物理磁盤後,有兩種方式在線創建虛擬磁盤。

1、通過idrac8 web頁面創建虛擬磁盤

首先查看物理磁盤是否已經識別,依次點擊“存儲——物理磁盤”,定位新插硬盤。硬盤“狀況”如果爲“非RAID”,則需要點擊“存儲——物理磁盤——設置”,將硬盤轉換爲RAID模式,纔可以進一步操作。

依次點擊“存儲——虛擬磁盤——創建”,勾選物理磁盤,選擇“佈局”爲raid1,其餘配置使用默認配置即可。圖中已操作完成,無多餘物理磁盤,所以無法選擇。

idrac8操作界面

“應用操作模式”選擇“立即應用”,點擊“創建虛擬機磁盤”,即可開始raid創建,可在“作業隊列”中查看創建進度。

讀取策略將表示控制器在搜索數據時是否必須讀取虛擬磁盤連續扇區:

  • 自適應預讀 — 僅當兩條最新的讀取請求訪問磁盤的順序扇區時,控制器才啓動預讀。如果隨後的讀取請求訪問磁盤的隨機 扇區,則控制器將恢復爲使用不預讀策略。控制器將繼續評估讀取請求是否訪問磁盤的連續扇區,並在必要時啓動預讀。
  • 預讀 – 控制器在搜尋數據時讀取虛擬磁盤的順序扇區。如果將數據寫入虛擬磁盤的順序扇區,那麼預讀策略可以提高系統 性能。
  • 不預讀 – 選擇不預讀策略表示控制器不應使用預讀策略。

寫策略指定控制器是否在數據一進入高速緩存或寫入該磁盤後就發送寫請求完成信號。

  • 直寫 – 只有在數據寫入磁盤後控制器才發出寫入請求完成信號。直寫緩存提供比回寫緩存更高的數據安全性,因爲系統假 設數據僅在安全寫入磁盤後纔可用。
  • 回寫 — 在數據位於控制器緩存中但尚未寫入磁盤時,控制器即會發送寫入請求完成信號。回寫緩存可提供改進的性能,因 爲後續的讀取請求可以先從高速緩存然後再從磁盤快速檢索數據。但是,在發生系統故障時可能會發生數據丟失情況,從 而導致數據無法寫入磁盤。當操作假設磁盤上的數據可用時,其他應用程序也可能會遇到問題。
  • 強制回寫 — 不管控制器是否具有電池,都將啓用寫入高速緩存。如果控制器無電池且已使用強制回寫高速緩存,出現電源 故障時,可能發生數據丟失。

磁盤高速緩存策略適用於特定虛擬磁盤上的讀取。這些設置不影響預讀策略。

2、使用使用PowerEdge RAID控制器(PERC)命令行界面(CLI)實用程序PERCCLI創建RAID

這種方式通用性比較強,如果IDRAC中不支持創建虛擬磁盤(如果RAID控制器固件版本較低,則可能不支持,注意,升級RAID控制器固件版本需重啓服務器),或者新插入的磁盤在idrac中未顯示出來,則建議採用這種方式。

可參考鏈接:https://www.dell.com/support/article/zh-cn/sln283135/如何使用poweredge-raid控制器-perc-命令行界面-cli-實用程序管理raid控制器?lang=zh

下載適用於VMware的PERCCLI程序,下載鏈接爲:https://www.dell.com/support/home/cn/zh/cnbsd1/drivers/driversdetails?driverid=17ngt&oscode=xi67&productcode=poweredge-r730xd

下載PERCCli_VMWare_17NGT_A08_7.1020.tar.gz,解壓後得到:vmware-perccli_007.1020.vib

安裝方法爲:ESXI開啓SSH服務,通過SSH登錄ESXI後,上傳vmware-perccli_007.1020.vib,安裝命令爲:

esxcli software vib install -v **/vmware-perccli-xxx.xxxx.xxxx.xxxx.vib --no-sig-check

安裝完成後perccli命令所在目錄爲:

cd /opt/lsi/perccli

查看物理磁盤信息(c0:Controller 0、eall:all Enclosure、sall:all Slot):

[root@localhost:/opt/lsi/perccli] ./perccli /c0/eall/sall show
CLI Version = 007.1020.0000.0000 July 1, 2019
Operating system = VMkernel 6.7.0
Controller = 0
Status = Success
Description = Show Drive Information Succeeded.


Drive Information :
=================

----------------------------------------------------------------------------
EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type 
----------------------------------------------------------------------------
32:0      0 Onln   0 1.818 TB SAS  HDD N   N  512B ST2000NM0023     U  -    
32:1      1 Onln   0 1.818 TB SAS  HDD N   N  512B ST2000NM0023     U  -    
32:3      3 JBOD   - 1.819 TB SAS  HDD N   N  512B ST2000NM0001     U  -    
32:4      4 JBOD   - 1.819 TB SAS  HDD N   N  512B ST2000NM0001     U  -    
----------------------------------------------------------------------------

EID=Enclosure Device ID|Slt=Slot No.|DID=Device ID|DG=DriveGroup
DHS=Dedicated Hot Spare|UGood=Unconfigured Good|GHS=Global Hotspare
UBad=Unconfigured Bad|Onln=Online|Offln=Offline|Intf=Interface
Med=Media Type|SED=Self Encryptive Drive|PI=Protection Info
SeSz=Sector Size|Sp=Spun|U=Up|D=Down|T=Transition|F=Foreign
UGUnsp=Unsupported|UGShld=UnConfigured shielded|HSPShld=Hotspare shielded
CFShld=Configured shielded|Cpybck=CopyBack|CBShld=Copyback Shielded
UBUnsp=UBad Unsupported|rbld=Rebuild

可以看到32:3、32:4兩塊磁盤處於JBOD(即Non-RAID硬盤)狀態,未關聯磁盤組。首先將硬盤設置爲RAID模式:

[root@localhost:/opt/lsi/perccli] ./perccli /c0/e32/s3 set good force
CLI Version = 007.1020.0000.0000 July 1, 2019
Operating system = VMkernel 6.7.0
Controller = 0
Status = Success
Description = Set Drive Good Succeeded.

[root@localhost:/opt/lsi/perccli] ./perccli /c0/e32/s4 set good force
CLI Version = 007.1020.0000.0000 July 1, 2019
Operating system = VMkernel 6.7.0
Controller = 0
Status = Success
Description = Set Drive Good Succeeded.

[root@localhost:/opt/lsi/perccli] ./perccli /c0/eall/sall show
CLI Version = 007.1020.0000.0000 July 1, 2019
Operating system = VMkernel 6.7.0
Controller = 0
Status = Success
Description = Show Drive Information Succeeded.


Drive Information :
=================

----------------------------------------------------------------------------
EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type 
----------------------------------------------------------------------------
32:0      0 Onln   0 1.818 TB SAS  HDD N   N  512B ST2000NM0023     U  -    
32:1      1 Onln   0 1.818 TB SAS  HDD N   N  512B ST2000NM0023     U  -    
32:3      3 UGood  - 1.818 TB SAS  HDD N   N  512B ST2000NM0001     U  -    
32:4      4 UGood  - 1.818 TB SAS  HDD N   N  512B ST2000NM0001     U  -    
----------------------------------------------------------------------------

EID=Enclosure Device ID|Slt=Slot No.|DID=Device ID|DG=DriveGroup
DHS=Dedicated Hot Spare|UGood=Unconfigured Good|GHS=Global Hotspare
UBad=Unconfigured Bad|Onln=Online|Offln=Offline|Intf=Interface
Med=Media Type|SED=Self Encryptive Drive|PI=Protection Info
SeSz=Sector Size|Sp=Spun|U=Up|D=Down|T=Transition|F=Foreign
UGUnsp=Unsupported|UGShld=UnConfigured shielded|HSPShld=Hotspare shielded
CFShld=Configured shielded|Cpybck=CopyBack|CBShld=Copyback Shielded
UBUnsp=UBad Unsupported|rbld=Rebuild

設置完成後即可創建raid,創建raid1的命令爲:

[root@localhost:/opt/lsi/perccli] ./perccli /c0 add vd r1 size=all drives=32:3,32:4
CLI Version = 007.1020.0000.0000 July 1, 2019
Operating system = VMkernel 6.7.0
Controller = 0
Status = Success
Description = Add VD Succeeded.

可使用如下命令查看虛擬磁盤初始化過程:

[root@localhost:/opt/lsi/perccli] ./perccli /c0/vall show init
CLI Version = 007.1020.0000.0000 July 1, 2019
Operating system = VMkernel 6.7.0
Controller = 0
Status = Success
Description = None


VD Operation Status :
===================

-----------------------------------------------------------
VD Operation Progress% Status          Estimated Time Left 
-----------------------------------------------------------
 0 INIT      -         Not in progress -                   
 1 INIT      -         Not in progress -                   
-----------------------------------------------------------

磁盤創建完成後需關注後臺初始化過程(此過程影響磁盤性能):

[root@localhost:/opt/lsi/perccli] ./perccli /c0/vall show bgi

後臺初始化 (BGI) 率:在 PERC 控制器上,冗餘虛擬磁盤的後臺初始化會在虛擬磁盤創建後 0 到 5 分鐘內自動開始。冗餘虛擬磁盤的後臺初始化會準備虛擬磁盤以維持冗餘數據並提高寫入性能。例如,RAID 5 虛擬磁盤的後臺初始化操作完成後,奇偶校驗信息已初始化。RAID 1 虛擬磁盤的後臺初始化操作完成後,物理磁盤將進行鏡像。 後臺初始化過程有助於控制器識別和糾正今後冗餘數據可能發生的問題。在這方面,後臺初始化過程與檢查一致性過程類似。應 允許後臺初始化運行直至完成。如果取消,後臺初始化會在 0 到 5 分鐘內自動重新啓動。後臺初始化正在運行時,某些進程 (比如讀和寫操作)可以執行。創建虛擬磁盤等其他進程無法與後臺初始化同時運行。這些過程會造成後臺初始化取消。 後臺初始化率(可配置爲 0% 到 100%)代表專用於運行後臺初始化任務的系統資源的百分比。爲 0% 時,後臺初始化對於控 制器具有最低優先級,需要最長的時間才能完成,且對系統性能的影響最小。後臺初始化率爲 0% 不表示後臺初始化已停止或 暫停。爲 100% 時,後臺初始化爲控制器的最高優先級。後臺初始化時間最短,並且是對系統性能的影響最小的設置。

以及一致性檢查:

[root@localhost:/opt/lsi/perccli] ./perccli /c0/vall show cc

檢查一致性:檢查一致性任務可以驗證冗餘(奇偶校驗)信息的準確性。此任務僅適用於冗餘虛擬驅動器。如果需要,檢查一致性任務可重建冗餘數據。當虛擬磁盤處於“失敗的冗餘”狀態時,執行檢查一致性可能讓虛擬磁盤返回到就緒狀態。 檢查一致性率(可配置爲 0% 到 100%)代表專用於運行檢查一致性任務的系統資源的百分比。爲 0% 時,檢查一致性對於控制器具有最低優先級,需要最長的時間才能完成,且對系統性能的影響最小。檢查一致性率爲 0% 不表示此過程已停止或暫 停。爲 100% 時,檢查一致性爲控制器的最高優先級。檢查一致性時間最短,並且是對系統性能的影響最大的的設置。

以上爲服務器磁盤擴容過程

三、VMware ESXI 6.7存儲擴容

此過程在web頁面操作即可。

依次點擊“存儲——數據存儲”,選中需要擴容的存儲,點擊“增加容量”,“創建類型”選擇“向現有VMFS數據存儲添加數據區”,下一步下一步即可,此過程支持實時配置,不影響業務正常運行。(“選擇設備”步驟可用來驗證虛擬磁盤創建成功與否,注意看可選的設備與你的預期是否相同)

此過程不贅述。

四、爲虛擬機添加硬盤

此過程在web頁面操作即可。

依次點擊要擴容的虛擬機,“編輯”——“添加硬盤”,硬盤類型可根據實際需要選擇。簡單來說,ESXI硬盤類型的選擇可按照如下原則進行:

  • 磁盤空間不富餘,磁盤讀寫性能要求不高——選擇“精簡置備”
  • 磁盤空間充足,磁盤讀寫性能要求一般——選擇“厚置備-延遲置零”
  • 磁盤空間充足,磁盤讀寫性能要求較高,操作時間充足——選擇“厚置備置零”(厚置備置零過程耗時很長)

五、Linux lvm擴容

已CentOS7爲例,爲/home目錄擴容。

查看新增磁盤名稱(例如爲/dev/sdb):

fdisk -l

添加分區:

fdisk /dev/sdb
輸入n,增加分區
選擇p,增加主分區,依次回車
輸入t,選擇8e
輸入w,寫入分區表

創建物理卷,並加入卷組:

pvcreate /dev/sdb1 ---創建物理卷
vgdisplay ---查看VG Name
vgextend vg_name /dev/sdb1 ---爲卷組增加容量 

邏輯卷擴容:

lvextend -l +100%FREE /dev/mapper/centos-home

重新加載邏輯卷:

xfs_growfs /dev/mapper/centos-home
或
resize2fs /dev/mapper/centos-home
---根據文件系統類型選擇,Centos7默認爲xfs

此過程可在線完成,不影響業務正常運行。

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