搭建一套可用的私有云环境,至少需要以下三部分:
1.ovirt-engine用于部署,监视,移动,停止和创建VM映像,配置存储,网络等,提供一个统一的集成管理界面。
2.计算节点是安装了VDSM和libvirt的Linux发行版,以及一些额外的软件包,可以轻松实现网络和其他系统服务的虚拟化。另外提供oVirt-node,它基本上是一个精简版本,包含足够的组件以允许虚拟化。
3.存储节点可以使用块或文件存储,可以是本地或远程,通过NFS访问。支持Gluster等分布式存储技术,通过算法可确保高可用性和冗余。
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安装
(一)前期配置
每台主机依次执行:
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。
(四)客户端安装
yum -y install glusterfs-client #安装客户端
mount –t glusterfs 192.168.1.101:/gfsvol /fs-1 #将gfsvol卷挂载本地fs-1目录下。
Df –TH #查看挂载情况

验证集群卷是否起作用,能够实现三副本。
在客户端以此执行如下命令:
cd /fs-1
ls
touch file{001..010} #创建10个空文件

在三台服务器上查看/data1目录
(五)扩容和数据平衡等操作
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-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进行配
置。

设置完成后,会显示所有设置参数,自动进入初始化进程。
(三)访问oVirt-engine
在浏览器内输入https://ovirt-engine.localhost/ovirt-engine进行访问,需要注意的是4.5版本登录的时候,用户名admin需要增加@localhost,变为admin@localhost,否则无法登录。
五、使用oVirt-engine管理虚拟化平台

管理界面的使用方法与其他虚拟化平台,例如VMware的vCenter基本类似,这里就不做详细概述。
六、实现超融合
选择“Run Gluster Wizard”向导




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

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

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




