开源虚拟化、分布式存储和超融合系统搭建初探

开源虚拟化、分布式存储和超融合系统搭建初探

oVirt(Open Virtualization Manager)是一款免费开源虚拟化软件,是RedHat商业版本虚拟化软件RHEV的开源版本。oVirt基于kvm,并整合使用了libvirt、gluster、patternfly、ansible等一系列优秀的开源软件。oVirt目前已经成为了企业虚拟化环境可选的解决方案,另外相比OpenStack的庞大和复杂,oVirt在企业私有云建设中具备部署和维护使用简单的优势。利用oVirt管理KVM虚拟机和网络,企业可以快速的搭建起一个私有云环境。搭建一套可用的私有云环境,至少需要以下三部分:

1.ovirt-engine用于部署,监视,移动,停止和创建VM映像,配置存储,网络等,提供一个统一的集成管理界面。

2.计算节点是安装了VDSM和libvirt的Linux发行版,以及一些额外的软件包,可以轻松实现网络和其他系统服务的虚拟化。另外提供oVirt-node,它基本上是一个精简版本,包含足够的组件以允许虚拟化。

3.存储节点可以使用块或文件存储,可以是本地或远程,通过NFS访问。支持Gluster等分布式存储技术,通过算法可确保高可用性和冗余。

本文简要概述了开源虚拟化和分布式存储的架构,搭建一个可用的虚拟化超融合平台所需分布式存储(glusterfs)、计算节点(oVirt-node或者安装了虚拟化组件VSDM的linux)、虚拟化管理平台(oVirt-engine)的安装配置方法。oVirt部署架构:

oVirt组件架构:

一、环境准备

准备5台主机,做好IP地址分配,统一安装Centos 8。

主机名

IP地址

用途

Gfs-1

192.168.1.101

分布式存储

Gfs-1

192.168.1.102

分布式存储

Gfs-1

192.168.1.103

分布式存储

oVirt-engine

192.168.1.100

管理节点

oVirt-node

192.168.1.99

计算节点

二、分布式存储GlusterFS安装(一)前期配置

在Gfs-1、Gfs-2、Gfs-3这三台主机上分别修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,配置好IP地址等相关网络信息。每台主机依次执行:

nmcli connection reload #读取配置文件

nmcli connection up eth0 #启用网卡

nmcli device show eth0 #显示网络链接信息

yum clean all #清除yum缓存

yum makecache #重建缓存

yum –y update #将系统更新至最新版本

hostnamectl set-hostname gfs-1 #设置主机名

每台主机修改/etc/hosts文件如下:

每台主机添加一块硬盘,并创建分区,挂载/data1目录下:

fdisk –l #查看新增加硬盘信息

fdisk dev/sdb #创建分区

mkfs.ext4 dev/sdb1 #创建文件系统

mount dev/sdb1 data1 #挂在分区到指定目录

df –TH #查看挂载情况

blkid dev/sdb1 #获取blkid,写入fstab文件,便于下次启动自动挂载。

(二)安装glusterfs-server

yum search centos-release-gluster #查询当前可用

版本。

在三台主机上依次安装指定版本软件源,这里选用10。

yum -y install centos-release-gluster10 #安装gfs10的安装源。ls etc/yum.repos.d/ #显示增加了CentOS-Gluster-10.repo和CentOS-Storage-common.repo两个安装源。

yum -y install glusterfs-server #安装gfs

systemctl start glusterd

systemctl start glusterfsd

systemctl enable glusterd #设置开启自启动

systemctl enable glusterfsd #设置开启自启动

(三)配置gfs服务

执行glusterfs –V命令,查看当前服务状态

配置信任池:

在gfs-1上执行命令,其余服务器无须操作,集群会自动同步相关命令。

gluster peer probe gfs-2

gluster peer probe gfs-3

在所有服务器上执行

gluster peer status #查看状态

Gluster支持的卷类型:

名称

说明

备注

分布卷

将文件以hash算法随机分布到一台服务器节点中存储

存在单点故障,生产环境中不使用。

复制卷

将文件复制到 replica x 个节点中。

条带卷

将文件切割成数据块,分别存储到stripe x个节点中,类似于raid0

将大文件分散至若干个磁盘后提升IO速度,但是实际情况中偶尔会出现丢失块情况,因此与条带卷相关的所以卷类型在生产都不使用。

分布式条带卷

分布卷与条带卷的组合。

生产环境不使用。

分布式复制卷

分布卷与复制卷的组合

生产环境最常用的类型,一般3副本。

条带复制卷

条带卷与复制卷的组合。

生产环境不使用。

混合卷

分布式、复制卷、条带卷三种卷模式的组合。

生产环境不使用。

创建一个名为gfsvol的卷,在任意节点上执行命令。

gluster volume create gfsvol replica 3 gfs-1:/data1 gfs-2:/data1 gfs-3:/data1 force #创建三副本的卷,名称为gfsvol

gluster volume start gfsvol #启动卷

gluster volume info #查看卷信息

至此gluserfs服务器端系统已经部署完毕,并且创建了一个分布式复制卷gfsvol。

(四)客户端安装

客户端需要安装 Gluster Native Client ,版本最好和服务端一致,Gluster Native Client是基于FUSE的,所以需要保证客户端安装了FUSE。这个是官方推荐的客户端,支持高并发和高效的写性能。客户端安装前,确保客户机器能够访问服务器的TCP、UDP的24007-24008端口、还要确保49152-49156端口可以访问。yum -y install glusterfs-client #安装客户端

mount –t glusterfs 192.168.1.101:/gfsvol /fs-1 #将gfsvol卷挂载本地fs-1目录下。

连接Glusterfs任意一个主机ip,都可以挂载分布式卷到本地并使用,如果生产环境中,可以采用Nginx或者F5之类的产品实现负载均衡。Df –TH #查看挂载情况

验证集群卷是否起作用,能够实现三副本。

在客户端以此执行如下命令:

cd /fs-1

ls

touch file{001..010} #创建10个空文件

在三台服务器上查看/data1目录

(五)扩容和数据平衡等操作

在三台服务器上分别增加一块硬盘空间,并挂载到/data2目录下,然后执行:gluster volume add-brick gfsvol gfs-1:/data2 gfs-2:/data2 gfs-3:/data2 force #扩展gfsvol卷

gluster volume rebalance gfsvol start #卷数据进行从新平衡分布。

在gluster建立分布式卷的时候,默认要求在挂在目录下建立二级目录,加入force参数可以直接建立,生产环境中建议使用二级目录。

执行完命令后,在任意节点上查看/data1和/data2目录,目录内的文件已经进行了条带化。

三、oVirt-node计算节点安装

oVirt的计算节点有两种安装方式,一是安装发行版本的linux,在其上安装虚拟桌面服务器管理器(Virtual Desktop Server Manager)组件。VDSM是位于节点之上的管理代理,收集节点之间交互的信息,促进管理控制台以及主机的通信,管理虚拟机以及存储,收集有关主机及客户机的性能统计数据。二是从oVirt官网上下载oVirt-node镜像,ovirt-node,由fedaro订制而成,Node上的许多文件系统都是ramdisk(基于内存的Linux磁盘设备),系统重启后其中的内容消失,从而保证了Node的无状态性。下面简要介绍一下oVirt-node节点的安装。启动后选择安装,选择语言,默认即可:

设置网络IP、安装分区、管理员账号等信息:

安装完毕后重新启动:

在客户端浏览器内输入https://oVirt-node IP:9090,进入web管理界面,至此oVirt-node节点安装完毕。

四、oVirt-engine管理节点安装

oVirt-engine管理节点有两种安装和运行模式,一种是自托管模式,oVirt-node节点的管理界面(即Cockpit)上选择部署engine,以虚拟机的形式运行。

另一种模式是采用yum安装方式,可以将engine部署在一台或多台物理机,采用HA的方式保持高可用,也可部署在不同架构的虚拟机上,部署和管理的方式更为灵活。

(一)oVirt-engine安装

oVirt-engine安装较为简单,

dnf install -y centos-release-ovirt45 #安装oVirt-engine4.5版本的源

dnf module -y enable javapackages-tools

dnf module -y enable pki-deps

dnf module -y enable postgresql:12

dnf module -y enable mod_auth_openidc:2.3

dnf module -y enable nodejs:14

#上述为启用内置相关模块并确定版本

dnf distro-sync –nobest #同步已安装的软件包以将其更新到最新的可用版本

dnf -y install ovirt-engine #安装engine

(二)oVirt-engine配置

oVirt-engine安装完毕后,执行engine-setup进行配

置。

需要注意的是,engine需要完整的FQDN,如果没有dns解析,可以在访问端电脑的hosts文件中做解析。这里设置的密码就是登录engine界面的密码。设置完成后,会显示所有设置参数,自动进入初始化进程。

(三)访问oVirt-engine

在浏览器内输入https://ovirt-engine.localhost/ovirt-engine进行访问,需要注意的是4.5版本登录的时候,用户名admin需要增加@localhost,变为admin@localhost,否则无法登录。

五、使用oVirt-engine管理虚拟化平台

oVirt-engine主要为管理员和用户提供丰富的基于Web的用户界面;主机、存储和网络配置的集成管理平台,实现在主机和存储之间实时迁移虚拟机和磁盘,当主机发生故障时提供虚拟机的高可用性。

管理界面的使用方法与其他虚拟化平台,例如VMware的vCenter基本类似,这里就不做详细概述。

六、实现超融合

在oVirt平台上实现超融合,是在每个计算节点增加分布式存储的服务,换而言之,将计算节点和分布式存储节点合二为一。有两种实现方式,一种是手动配置计算节点,另一种是通过oVirt-node节点的Web控制台(即Cockpit)进行自动部署。进入HostedEngine页面,点击“Hyperconverged”向导的“Start”按钮,开始部署过程,会先部署Gluster再部署HostedEngine 选择“Run Gluster Wizard”向导

选中“Use same hostname for Storage and Public Network”,表示为存储网和管理网使用同一个网络,因为我们只配置了一个网卡,然后下面分别输入host1、host2、host3的域名,如果存储网和管理网分离的话,此处配置略有差异。

Packages这一步不用配置,直接下一步即可。Volumes这一步,也可以不用配置,直接下一步,这里因为我们演示环境中,所以只保留engine和data两个卷即可,engine卷对应着后续的engine存储域,用于存放HostedEngine的虚机镜像,data卷对应着后续的data存储域,用于存放普通虚机的虚机镜像,如果数据盘足够大的话可以划分多个卷对应着多个存储域

Bricks这一步中,Raid Type这里我们选择“JBOD”,因为我们每台主机上的数据盘是单独的一块盘,如果实际环境中是多块盘做的Raid,那么就根据实际情况选择“Raid5或者Raid6”,Blacklist Gluster Devices这里默认选中即可,下面的Device Name注意要与你环境中的实际情况对应,这里默认是“/dev/sdb”, sdb是我们每台主机预留出来的一块用于部署Gluster的磁盘,后面的LV Size累加起来不能超过sdb的实际大小。如果有SSD盘的话,可以使用下面的“Configuer LV Cache”配置缓存盘,本次实验环境中没有SSD,我们就不配置了。

下面执行部署过程即可了,这里选中“Enable Debug Logging”,便于部署失败时查看日志排错。

等Gluster部署成功后,继续部署HostedEngine。

按照提示填入所需信息,部署完毕HostedEngine,整个超融合系统就搭建完毕,oVirt-engine以自托管的形式运行。

综上所述,开源虚拟化、分布式存储和超融合的资源利用率更高,可以有效地利用硬件资源,减少资源浪费,提高工作效率。可扩展性强,超融合架构可以支持更多的虚拟化、云技术和自动化工具,从而支持不断变化的IT需求。成本效益显著,可以有效地减少IT成本,并且可以更快地提供服务,提高工作效率。但是虚拟化、分布式存储和超融合架构由多个组件组成,带来一定的复杂性,因此对实施和管理人员的技术要求较高,整体架构的复杂性会增加安全风险,因此需要特别注意安全策略和安全措施,同时需关注可能会出现兼容性问题。

相关推荐

2025年英雄联盟皮肤修改是否会封号?封号时长解析
365bet安全上网导航

2025年英雄联盟皮肤修改是否会封号?封号时长解析

📅 06-29 👁️ 1647
Android Camera内存问题剖析
365体育投注注册

Android Camera内存问题剖析

📅 06-28 👁️ 2122
AutoCAD自定义填充图样详细教程
365体育投注注册

AutoCAD自定义填充图样详细教程

📅 06-28 👁️ 5020