虚拟化服务器磁盘空间扩容研究

作者: 谭海兵

摘要:磁盘扩容是实际业务场景中经常面临的需求。如何在保障数据有效性的前提下进行服务器虚拟磁盘扩容,是系统运维管理者关注的核心问题。文章通过对虚拟化服务器磁盘容量扩展的实际业务场景需求进行分析,搭建了相应的实验环境,实现了多种模式下不同业务场景的虚拟磁盘扩容测试。实验结果显示,虚拟化服务器磁盘扩容在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 # 重新读取分区表

上一篇 点击页面呼出菜单 下一篇