摘要:磁盤擴容是實際業務場景中經常面臨的需求。如何在保障數據有效性的前提下進行服務器虛擬磁盤擴容,是系統運維管理者關注的核心問題。文章通過對虛擬化服務器磁盤容量擴展的實際業務場景需求進行分析,搭建了相應的實驗環境,實現了多種模式下不同業務場景的虛擬磁盤擴容測試。實驗結果顯示,虛擬化服務器磁盤擴容在Linux和Windows操作系統環境下均可實現,且可以確保數據的有效性和完整性,滿足實際業務需求。研究發現,虛擬化服務器可以通過新增獨立磁盤、使用LVM擴展,以及直接在原磁盤上擴大容量等方式進行磁盤擴容,這些方法在Linux和Windows操作系統上均可完成,能夠有效解決業務場景中磁盤容量不足的問題。
關鍵詞:虛擬化;服務器;磁盤擴容
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2024)23-0063-04
開放科學(資源服務)標識碼(OSID)
隨著信息技術的迅猛發展,業務數據不斷增加。在信息系統運行過程中,初期磁盤空間分配不足,后期業務不斷增長,導致磁盤容量不能滿足實際需求的情況時有發生。虛擬化服務器磁盤空間擴容,是指利用虛擬化技術實現服務器計算、存儲、網絡等資源的虛擬化,當虛擬化服務器磁盤存儲空間不足時,通過新增磁盤或擴展存儲容量來增加存儲空間的過程。該方法可減少業務系統停機時間,滿足實際業務應用需求,減少資源浪費。這一模式隨著服務器虛擬化技術的廣泛應用于實際業務中而產生,成為一種新的實際業務需求。
1 虛擬化服務器技術
1.1 虛擬化技術
虛擬化技術是指計算機組件在虛擬的基礎硬件資源上運行[1],從邏輯上對硬件資源進行整合。通過虛擬化技術,可以在一臺物理服務器上創建并運行多個相互獨立的虛擬服務器,優化分配物理資源,提高服務器硬件資源的利用率。虛擬化服務器是一種虛擬計算機系統,虛擬計算機也稱為“虛擬機”(VM) ,它是一種嚴密隔離且內含操作系統和應用的軟件容器。每個虛擬機是完全獨立的[2]。通過將多臺虛擬機放置在一臺計算機上,可在一臺物理服務器或“主機”上運行多個操作系統和應用。
1.2 虛擬化服務器的分類
服務器虛擬化(Server Virtualization) [3]使多個虛擬化服務器操作系統在同一臺主機上同時運行,進一步發揮計算機的硬件性能。服務器虛擬機分為兩大類:
1) 寄生架構型。在一個已存在的操作系統上安裝虛擬化軟件,然后利用虛擬化軟件創建和管理虛擬機,如常見的VirtualBox[4]、WorkStation[5]等。其優點是宿主操作系統可以提供對硬件設備的必要支持。
2) 原生架構型。基于硬件的虛擬化軟件架構,常見的有KVM、VMware ESXi、XEN等[6]。
1.3 服務器虛擬化的特性與分類
服務器虛擬化可以分為存儲虛擬化、網絡虛擬化和計算虛擬化等。服務器虛擬化的主要特性有獨立性、共享性和封裝性:
1) 獨立性。在資源使用過程中可以分配一定的物理資源空間,實現物理硬件設備的隔離。
2) 共享性。多個虛擬主機可以共享底層物理資源,實現資源的最大化利用。
3) 封裝性。可以對虛擬主機進行完整的存檔,以文件形式封裝,形成一個個完整的數據包,從而在整體上保證虛擬主機的完整性。
2 虛擬化服務器磁盤擴容
虛擬化服務器磁盤擴容是指虛擬機虛擬磁盤容量增大的過程與實現。
2.1 磁盤擴容分類
在具體的業務需求過程中,磁盤擴容總體分為2種:
1) 在原有磁盤上增加空間。此擴容方式分為兩種模式,一種是在原磁盤空間上直接擴大磁盤容量,另一種是劃分一塊虛擬磁盤,在邏輯層面完成原磁盤空間擴容,在系統用戶層面看到的是在一個邏輯卷下,而實際是劃分了兩塊虛擬磁盤。
2) 新分配獨立磁盤空間。此方式是磁盤和邏輯卷都是獨立的,用戶系統層面看到的是另外的邏輯卷。
2.2 實驗操作系統選取
在實際業務場景應用過程中,服務器操作系統主要采用Linux和Windows兩種類型。根據開放數據中心委員會(ODCC) 發布的《國產服務器操作系統發展報告(2023年)》調查表明,2022年,在中國所有的裝機量中,Linux服務器操作系統市場占有率達到79.6%,且保持不斷增長,Windows操作系統市場占有率為19.9%,以Unix為代表的小眾服務器市場為0.5%[7]。因此,本文選取Linux中常用的CentOS 7.9和Windows 2008兩種操作系統作為實驗的操作系統來驗證虛擬硬盤擴容實際的可行性和有效性。
2.3 實驗結果檢測方法
磁盤擴容的目的是在不損壞現有系統文件和數據的前提下進行,需要保證擴容后系統內數據的完整性和有效性。本文采用在安裝有操作系統的虛擬主機上安裝MySQL 8.0和SQL Server 2012兩種類型的數據庫,同時存儲有常用文件作為對象,對擴容效果的有效性進行檢測。
2.4 實驗環境準備
本次實驗以VMware ESXi 6.7版本為服務器虛擬化的基礎平臺,在此基礎上分別建立三臺虛擬主機,安裝有Windows 2008和CentOS 7.9兩個版本操作系統。其中兩臺安裝了Windows 2008操作系統,一臺安裝CentOS 7.9操作系統。三臺虛擬主機的初期配置均為4核CPU、40 GB硬盤和16 GB內存。在其中一臺Windows 2008操作系統上安裝了SQL Server 2012,在另一臺Windows 2008主機上放置了約4 GB的常用文檔文件。在CentOS 7.9的服務器上安裝了MySQL 8.0版本數據庫。
3 虛擬磁盤擴容實現的關鍵技術
3.1 新增獨立磁盤擴容模式
新增獨立磁盤擴容模式,是指對虛擬主機新增一塊虛擬磁盤,獨立分配卷,最終形成一個獨立目錄或磁盤的擴展形式。這種方式大多應用于文件存放空間不夠的情況。具體實現步驟是以添加新設備方式新增硬盤。實驗以添加新設備方式分別給實驗中的三臺主機添加一塊20 GB的硬盤并進行連接。
1) 在Windows操作系統中的實現。進入操作系統,打開服務器管理器。依次選擇磁盤管理,選中要添加的磁盤,右鍵選擇“聯機”,然后右鍵選擇“初始化磁盤”。初始化完成后,右鍵選擇“新建簡單卷”,依次點擊“下一步”即可完成磁盤的添加操作。
2) 在Linux操作系統中的實現。進入操作系統,進入命令行。掃描新硬件設備,進行磁盤分區處理,格式化分區,最后創建掛載點并掛載分區并設置開機自動掛載。具體操作命令如下:
1. # echo "- - -" > /sys/class/scsi_host/host0/scan # 掃描硬盤
2. # fdisk -l # 查看新硬盤
3. # lsblk # 查看磁盤分區
4. # fdisk /dev/sdb # 創建磁盤分區
5. # lsblk # 查看磁盤分區
6. # mkfs.ext4 /dev/sdb1 # 格式化磁盤分區
7. # mkdir /mnt/mynewdisk # 創建掛載點
8. # mount /dev/sdb1 /mnt/mynewdisk # 掛載磁盤分區
9. # vi /etc/fstab # 設置開機自動掛載
10. # df -Th # 顯示磁盤分區情況
其中,mynewdisk為本設置的分區掛載點。在磁盤分區過程中分別選擇新建主分區形式,在開機自動掛載的配置過程中須根據實際配置的掛載點進行添加。
通過上述步驟即可在兩種系統中實現新增獨立硬盤的擴容目標。
3.2 以LVM方式擴容模式
LVM(Logical Volume Manager) 邏輯卷管理是建立在物理磁盤和分區之上的一個邏輯層,通過它可以將若干個磁盤分區連接為一個整塊的卷組,形成一個存儲池[8]。
1) 在Windows操作系統中的實現。采用增加一塊硬盤方式進行邏輯擴容,系統會提示將選定的基本磁盤轉換為動態磁盤,并且無法從這些磁盤上啟動已安裝的操作系統。因此,不支持系統安裝盤C盤的多塊盤動態邏輯擴容。C盤作為系統引導啟動盤不能是動態盤,若對C盤采取此方式擴容,將會導致系統無法啟動,損壞系統文件,存在極大的風險。因此,Windows操作系統下新增獨立磁盤擴容方式只能在非C盤使用,具體實現步驟如下:
① 選擇新分配的磁盤,點擊右鍵進行聯機;
② 選擇存放有數據的容量不夠的磁盤,如E盤;
③ 右鍵單擊后選擇“擴展卷”,點擊“下一步”;
④ 選擇可用的磁盤2,點擊“加入”;
⑤ 依次點擊“下一步”,最終完成操作。
實現效果如圖1所示,原E盤從10 GB擴容到20 GB,且原來存儲在E盤中的數據未丟失。
2) 在Linux操作系統下的實現。Linux操作系統允許用戶在不重新分區或重新格式化磁盤的情況下,動態地調整磁盤空間。可以通過創建物理卷、擴展物理卷,并將其增加到指定分區的方式,實現邏輯卷上的磁盤擴容。具體在Linux操作系統中實現的操作命令如下:
1. echo "- - -" > /sys/class/scsi_host/host0/scan # 掃描硬盤
2. fdisk -l # 查看新硬盤
3. lsblk # 查看磁盤分區
4. pvdisplay # 查看物理卷信息
5. pvcreate /dev/sdb # 創建物理卷
6. vgdisplay # 顯示物理卷組信息
7. vgextend centos /dev/sdb # 擴展物理卷
8. lvextend -l +100%FREE /dev/mapper/centos-root # 擴展卷到指定分區
9. xfs_growfs /dev/mapper/centos-root # 擴展xfs文件系統
10. df -Th # 顯示磁盤分區情況
通過上述步驟,可以在Linux系統中以LVM方式實現磁盤擴容。
3.3 在原磁盤上擴容模式
1) 在Windows操作系統中的實現。在關機情況下,給需要增加磁盤容量的磁盤增大容量,然后開機進入操作系統,進入服務器管理器。依次選擇磁盤管理,在對應的磁盤中可以看到分配出來的容量。選擇需要擴容的邏輯卷,右鍵選擇“擴展卷”,點擊“下一步”,選擇對應的空間大小后,即可完成操作。
2) 在Linux操作系統中的實現。在原磁盤上進行擴容也是一種常見的增大磁盤空間的方式。這不僅可以保持原有系統運行目錄不變,還可以擴大磁盤容量空間。具體實現命令如下:
1. echo "- - -" > /sys/class/scsi_host/host0/scan # 掃描硬盤
2. fdisk -l # 查看新硬盤
3. lsblk # 查看磁盤分區
4. fdisk /dev/sda # 創建磁盤分區
5. partprobe # 重新讀取分區表
6. pvdisplay # 查看物理卷信息
7. pvcreate /dev/sda3 # 創建物理卷
8. vgdisplay # 顯示物理卷組信息
9. vgextend centos /dev/sda3 # 擴展物理卷
10. lvextend -l +100%FREE /dev/mapper/centos-root # 擴展卷到指定分區
11. xfs_growfs /dev/mapper/centos-root # 擴展xfs文件系統
12. df -Th # 顯示磁盤分區情況
在原磁盤上進行擴容的過程中,需要操作系統內核重新讀取分區表。因此,在此過程中,需要執行partprobe命令進行分區表重讀。
通過上述步驟,可以在兩個系統中直接在原磁盤上實現擴容。
4 虛擬磁盤擴容效果測驗
4.1 操作系統磁盤擴容檢測
針對操作系統磁盤擴容的檢測主要在于業務系統應用過程中,Windows操作系統C盤空間不足或Linux根目錄下容量不夠的情況。通過安裝有操作系統的磁盤擴容實驗,可檢測擴容后操作系統的有效性。
Windows操作系統針對系統盤只支持采用在原磁盤擴容增長的方式進行擴容,其他增加額外磁盤和邏輯卷擴展的方式不支持。擴容前后的磁盤情況見圖2所示。系統運行情況正常,達到了系統擴容所需的效果。
Linux操作系統在原系統硬盤上直接將原來只有15 GB的磁盤擴容增加到30 GB,且系統結構不發生變化。通過擴容發現,原來系統目錄結構未發生變化,系統運行正常,達到了預期的擴容不影響系統正常運行的效果。具體擴容效果圖見圖3所示。
4.2 安裝數據庫的磁盤擴容檢測
針對安裝和存放有數據庫系統和文件的磁盤擴容,可以有效檢測擴容后數據庫的數據和系統的有效性。本次實驗主要針對MySQL和SQL Server 2012兩種數據庫所在磁盤擴容情況進行檢測。
1) 對安裝有SQL Server 2012數據庫的磁盤進行擴容測試。原來數據庫中有168張表,占用磁盤容量空間為36.1 MB,日志文件為768 KB,所在磁盤容量為35 GB,所在磁盤為D盤。對存儲有數據庫的磁盤進行擴容,增加5 GB的容量,磁盤總容量變成40 GB。再對數據庫表張數和數據庫中的數據進行對比發現,前后無損壞和丟失。數據庫所占空間仍然是36.1 MB,日志文件為768 KB。數據庫在磁盤擴容后運行正常,由此可得出,安裝了SQL Server 2012數據庫的磁盤擴容后數據未丟失,磁盤容量增大了。
2) 對安裝了MySQL數據庫的磁盤進行擴容測試。數據庫存放文件路徑在/var/lib/mysql下,共計32張表,文件容量為3.9 MB,原磁盤容量為30 GB,對磁盤進行容量擴展5 GB。磁盤容量擴容前后對比圖見圖4所示。磁盤擴容后,數據庫表的數量仍為32張,數據庫文件大小仍為3.9 MB。擴容后,服務可以正常訪問,由此可以得出,在安裝了MySQL的Linux系統下進行磁盤擴容后,數據庫可以正常訪問,數據未出現丟失情況。
4.3 存儲了常用文件磁盤擴容檢測
針對存放有常用文件的磁盤進行擴容,可以有效檢測擴容后文件的有效性和可用性。
在Windows操作系統的某個磁盤進行擴容。現有一個虛擬主機的E盤存放有文件4.41 GB,累計6 279個文件和1 911個文件夾。現磁盤容量為20 GB,對其增加10 GB,擴展到30 GB。擴容前的容量和文件情況效果見圖5所示。
擴容后的效果如圖6所示。通過對擴容前后的文件數量和文件夾數量進行比對,發現兩者是一樣的。由此可以判定磁盤擴容并沒有造成文件的損壞和丟失。
5 結束語
通過對虛擬化服務器的常見操作系統和常見業務應用場景下的磁盤進行擴容測試研究,發現無論是Windows還是Linux都可以很好地支持磁盤容量的彈性擴容,可以很好地滿足隨著數據庫、業務數據、操作系統等對磁盤容量的增長需求。在磁盤擴容的過程中,可以根據實際業務場景的需要選擇合適的擴容方式。服務器虛擬化技術給磁盤的管理帶來了便捷,可以實現按需增長的需求,但有空余磁盤縮減在實際的應用過程中并不能實現。
虛擬化技術是云計算在具體落地應用過程中的重要技術手段。隨著云計算、大數據、虛擬現實等技術的發展,虛擬化技術的應用將更為廣泛,虛擬化存儲技術也會得到更為廣泛的應用,虛擬化磁盤擴容也會迎來新的需求、發展與變革。
參考文獻:
[1] 武志學.云計算虛擬化技術的發展與趨勢[J].計算機應用,2017,37(4):915-923.
[2] 高挺,程華,潘沖.服務器虛擬化技術應用[J].信息通信,2019,32(11):154-155.
[3] 吳冬晨.校園服務器虛擬化平臺的搭建與應用研究[J].電腦知識與技術,2019,15(18):315-316.
[4] 賈楠,石磊,郭靜霞,等.基于eNSP、VirtualBox和Kali的DHCP多層次闖關實驗設計[J].實驗科學與技術,2024,22(2):1-7.
[5] 遷移VMware Workstation虛擬機[J].網絡安全和信息化,2022(10):57-58.
[6] 姜東參.云計算背景下信息化系統運維研究[J].無線互聯科技,2023,20(9):162-165.
[7] 孫慶陽. 國產服務器操作系統發展報告:國產操作系統市占率不足5%,潛力巨大[EB/OL].[2022-06-08].https://www.sohu.com/a/733972686_561670.
[8] 王韶霞,曲廣平.利用LVM邏輯卷在RHEL6系統中實現磁盤動態管理[J].濰坊學院學報,2012,12(6):48-53,38.
【通聯編輯:唐一東】