王鑫
作者王鑫·2023-07-26 15:17
技术文档·天玑数据

数据库基础架构探究:容器化与虚拟化

字数 3133阅读 660评论 1赞 0

一、企业数据库“底座”的前世今生

过去,企业数据库底座采用的是基于物理服务器的部署方式。物理服务器通常会部署一些基础架构的应用系统,例如邮件系统,域控服务,DHCP服务等,同时承载企业内部的应用系统,像财务系统,人事系统等。

由于物理服务器的资源是独占的,这种部署方式进一步导致服务器资源的浪费,虚拟化的概念逐渐被引入数据中心。虚拟化技术通过将多个虚拟机运行在同一台物理服务器上,实现了硬件资源的共享和最大化利用,节省了服务器硬件成本。

在随后的几年中,随着云计算技术的飞速发展和普及,企业数据库底座开始借助云化基础设施的力量,实现更高效的部署和运营。云计算技术提供了数据库底座的灵活部署、扩展、备份和恢复功能,同时也降低了硬件成本,从而满足了企业的快速发展需求。

二、虚拟化与容器

云化基础设施提供了虚拟化、容器化的支持,是现代企业实现数字化转型的关键基础设施之一。

虚拟化:通过面向底层基础设施,实现计算资源的弹性分配

虚拟化利用软件重新定义划分底层硬件资源,主要用于服务器层面。传统服务器设计存在局限性,只能运行一个操作系统和应用程序,虚拟化技术通过将一台服务器的CPU、内存、硬件和网卡等资源池化,并分配给多台虚拟机,从而实现在单一物理设备上运行多个操作系统和应用,虚拟机之间彼此独立但共享底层物理资源。

虚拟化技术是云计算的基础。将硬件资源虚拟化,并将所有虚拟资源集中为中央资源池,再增加一层管理软件,用户就可以控制需要使用的基础架构、平台工具和应用程序。虚拟化技术的作用在于“池化”硬件资源,以支持用户灵活地按需调用计算资源。

容器:面向应用与进程,操作系统层级的虚拟化

容器是实现操作系统虚拟化的一种方式,为应用程序提供运行环境。容器提供独立的运行环境,包含应用程序及其依赖类库,不同容器共享宿主机的硬件资源和操作系统。使用容器,开发者可以方便地打包应用程序的代码、配置和依赖项,实现快速、可靠、一致化的应用程序部署。

容器本质上是一个受限进程,被隔离为一个视图。虚拟机和容器都能创建隔离的环境,但隔离级别不同。虚拟机在操作系统层面实现隔离,而容器在进程级别进行资源隔离;此外,与虚拟机相比,容器的大小更小,这使其更轻量、灵活。

三、虚拟化和容器对数据库的影响

虚拟机(VM)和容器是两种常见的应用程序部署选择,它们在不同的层面对资源进行虚拟化,以优化应用程序的可伸缩性和灵活性。单实例虚拟机和容器之间的主要区别如下表所示。

虚拟机容器
资源利用率单实例虚拟机将一台物理主机拆分成多台虚拟机,每台虚拟机拥有自己的操作系统和应用程序,并且主机的资源(CPU、内存、硬盘等)会按比例分配给虚拟机,以进行多租户的隔离。所有容器可以共享一个宿主机的操作系统和核心资源,文件系统和应用程序进程也可以得到隔离,这种方式可以大幅提高宿主机的资源利用率。
启动速度在配置单实例虚拟机时,通常需要分配硬件资源并使用复制的VM镜像来启动虚拟机,这个过程可能需要几分钟或更长时间。容器启动速度更快,只需要使用docker镜像,就能快速创建和部署,还可以在运行过程中自动扩展。
扩展性为了实现可扩展性,单实例虚拟机需要投入更多硬件资源,添加和启动新虚拟机可能需要数小时时间。容器轻量且共享宿主机资源,可以快速扩展,随时添加/删除容器,无需等待长时间的启动。
隔离性隔离性高,在某些安全场景下虚拟化提供的隔离更合适-
可移植性虚拟机由于镜像更庞大,存储和迁移更麻烦容器很容易在不同的云上迁移,因为它们的依赖关系可以完全在容器中打包
管理成本单实例虚拟机需要额外的管理工作,包括安装、维护VM硬件和操作系统,以及容量规划,分配新虚拟机的资源。容器的管理较为简单,因为它们共享宿主机上的操作系统,有利于节约管理成本和提高管理效率。

  • 虚拟化对数据库的影响

虚拟化通常需要为每台虚拟机分配一些专门的资源(如 CPU、内存等),这些资源本来可以直接用于数据库。因为 虚拟化本身需要占用一定的资源 ,因此在运行虚拟机上的数据库时,需要在资源受限的情况下分配更多的资源,这会 降低虚拟化中的资源利用率和数据库的性能 。此外,虚拟化需要虚拟硬盘、虚拟网卡等组件,这些组件可能会带来一定程度的 IO延迟和网络延迟,影响数据库IO性能

  • 容器对数据库的影响

容器采用共享主机 OS 内核的方式来运行,因此对于单个容器而言,用于运行数据库的资源和主机资源进行了更好的共享, 资源更集中且更高效 。此外,容器通常使用轻量级的虚拟化技术,因此启动速度较快,可以更快地响应请求。在数据库容器方面,因为数据库需要运行在具体的操作系统中,因此需要对容器和容器内的组件进行一定的定制,以确保数据库与它依赖的其他组件可用、可扩展。而且,因为容器本身可以非常轻便地迁移,因此数据库容器可以轻松地在各种不同的云平台之间进行迁移,从而提高了灵活性和可移植性。

总的来说,虚拟化和容器对数据库的影响不同。在决定是使用虚拟化还是容器时,应仔细考虑自己的应用、开支以及性能和可移植性需求,根据自己的特定需求进行权衡。

  • 如果需要更好的可移植性更快的启动速度,则 容器 是一个更好的选择。
  • 如果需要更高的隔离性和更专门的资源分配,则 虚拟机 是更好的选择。

四、灵活性高的数据库云化基础设施

目前企业在数据中心部署数据库系统时,主要采用传统集成架构虚拟化部署模式以及数据库一体机几种方式。然而,这些方式存在一些问题。具体如下:

数据库一体机灵活性低,资源隔离性差,同时无法支持多种数据库
传统集成架构采用物理服务器和集中式存储,其在成本、易维护性和敏捷性方面存在缺陷
虚拟化部署采用VMware + 集中式存储,虽然能够提供虚拟化环境,但在性能与时延方面不如裸金属和数据库一体机,同时存储扩展性与整体成本也无法完全满足企业需求

为了更好地满足企业对于数据库支撑系统的需求,天玑数据在已有的超融合和分布式存储构建的云化基础设施解决方案的基础上,采用了独有的云分区技术,打造了数据库场景最专业的云化基础设施解决方案。

云化基础设施解决方案

云化基础设施解决方案

该方案解决了如下 痛点、难点 问题:

  • 软硬件一体化交付,减少多元素(芯片、操作系统、数据库等)适配试错成本,经受生产环境检验。
  • 搭建开放兼容的数据库私有云平台,掌握关键核心组件的供应能力,建立可信、领先、可持续的技术体系和供应体系。
  • 数据库架构在线横向扩展,资源按需扩容,整体架构全冗余设计,加强“敏态、稳态”架构建设能力。
  • 多类型数据库统一整合,减少烟囱式架构,提升资源利用率。
  • 软硬件预集成部署,交付时“开箱即用”,提升业务上线效率。
  • 软硬件统一管理维护,脱离“人肉运维”模式,精准定位故障问题,快速解决问题,减少后期维护成本。

该方案打造的云分区资源池,具备如下 特性

  • CPU、内存细粒度分配,分区技术实现主机层的资源分割
  • 分区级独立的操作系统
  • 分区级单独的数据库版本
  • 网卡SR-IOV,分区直接RDMA存储访问
  • 具备快速创建数据库能力

应用领域 主要表现在如下几方面:

  • 核心计费、在线交易业务(OLTP)
  • 数据仓库(OLAP)
  • 混合数据库业务负载
  • 大数据分析平台

五、结论

综上所述,为了解决容器和虚拟化带来的一些问题,并满足数据库场景中对高性能存储和运行的需求,天玑数据采用了一种独特的智能云分区技术,实现了CPU核级的隔离和内存预占。同时,采用SR-IOV技术可以实现分区之间的直接存储访问。进一步地,使用高带宽低延时的InfiniBand或ROCE网络来结合二者,可以最大限度地实现数据库系统的高性能和稳定性,为数据库业务提供卓越性能与高可用性,使企业获得更佳ROI。

主要适用场景如下:

  • 频繁创建和销毁数据库
  • 数据库计算资源需求较低
  • 云主机性能不足
  • 多数据库环境和版本要求

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论1 条评论

else_xieelse_xie系统运维工程师NZX
2023-11-17 11:01
一刀切设计是对所有技术的亵渎
Ctrl+Enter 发表

作者其他文章

相关文章

X社区推广