APP下载

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

2024-09-14谭海兵

电脑知识与技术 2024年23期

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

【通联编辑:唐一东】