Self-Hosted Engine + GlusterFS超融合部署指南

Self-Hosted Engine + GlusterFS超融合部署指南


oVirt是一款免费开源虚拟化软件,是RedHat商业版本虚拟化软件RHEV的开源版本。oVirt基于kvm,并整合使用了libvirt、gluster、patternfly、ansible等一系列优秀的开源软件,oVirt的定位是替代vmware vsphere,oVirt目前已经成为了企业虚拟化环境可选的解决方案,另外相比OpenStack的庞大和复杂,oVirt在企业私有云建设中具备部署和维护使用简单的优势。
Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端。是整合了许多存储块(server)通过Infiniband RDMA或者 Tcp/Ip方式互联的一个并行的网络文件系统。


oVirt Self-Hosted Engine,简单来说,就是一个运行于虚拟机上的oVirt引擎,该虚拟机运行于oVirt引擎所管理的Host上.配置Self-Hosted Engine高可用虚拟化平台,至少需要两个及以上的Host.当一个Host宕机的时候,运行oVirt引擎的虚拟机,会自动迁移到环境中依然可用的Host上.达到高可用的目的.
在本次部署环境中,采用三台物理主机,每台物理主机配置三块网卡,其中一张作为管理网络,另外两张经过绑定,提供高达两万兆的网络环境,给GlusterFS作为数据交换网络通道.一块1.3T的磁盘(硬件RAID 5),在装完系统后,剩余1.1T配置GlusterFS文件系统给oVirt作为存储.

环境配置

OS FQDN PARTITION MANAGE IP DATA IP
CentOS 7.6 ovm4.example.com sda3 160G sda4 1.1T ovirtmgmt 172.16.10.4 bond0 100.100.100.4
CentOS 7.6 ovm5.example.com sda3 160G sda4 1.1T ovirtmgmt 172.16.10.5 bond0 100.100.100.5
CentOS 7.6 ovm6.example.com sda3 160G sda4 1.1T ovirtmgmt 172.16.10.6 bond0 100.100.100.6

注:以下步骤,有标记为全部节点的需要在三个节点上分别执行,步骤中只贴出第一个节点的配置,其余节点配置步骤需要根据实际来修改.

  1. 安装CentOS 7.6 1804,最小化安装,并配置好hostname与第一张网卡的IP(全部节点)
  2. 配置双网卡绑定(全部节点)
# more /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BONDING_OPTS='mode=4 miimon=100 xmit_hash_policy=2'
ONBOOT=yes
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no
BOOTPROTO=static
IPADDR=100.100.100.4
NETMASK=255.255.255.0
#
# more ifcfg-ens1f0
DEVICE=ens1f0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no
#
# more ifcfg-ens2f0
DEVICE=ens2f0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no
  1. 编辑/etc/hosts文件(全部节点)
# more /etc/hosts
172.16.10.4  ovm4.example.com ovm4
172.16.10.5  ovm5.example.com ovm5
172.16.10.6  ovm6.example.com ovm6

100.100.100.4  ovm4stor.example.com ovm4stor
100.100.100.5  ovm5stor.example.com ovm5stor
100.100.100.6  ovm6stor.example.com ovm6stor 

配置完这两部,重启network,并在节点间互ping IP与FQDN,确保网络没有问题

systemctl restart network
  1. 关闭selinux,并设置时间同步(全部节点)
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
# setenforce 0
# ntpdate time.windows.com
  1. 配置SSH信任关系(全部节点)
# ssh-keygen -t rsa
# ssh-copy-id ovm4
# ssh-copy-id ovm5
# ssh-copy-id ovm6
# ssh-copy-id ovm4stor
# ssh-copy-id ovm5stor
# ssh-copy-id ovm6stor
# ssh-copy-id ovm4.example.com
# ssh-copy-id ovm5.example.com
# ssh-copy-id ovm6.example.com
# ssh-copy-id ovm4stor.example.com
# ssh-copy-id ovm5stor.example.com
# ssh-copy-id ovm6stor.example.com
# ssh-copy-id 172.16.10.4
# ssh-copy-id 172.16.10.5
# ssh-copy-id 172.16.10.6
# ssh-copy-id 100.100.100.4
# ssh-copy-id 100.100.100.5
# ssh-copy-id 100.100.100.6
  1. 确认DNS配置文件/etc/resolv.conf,安装常用的rpm包,最好先update下
# yum update -y
# yum install -y net-tools wget 

GlusterFS部署

官方文档建议配置GlusterFS要求至少三个节点,每个节点至少两个分区,系统分区与GlusterFS存储分区,

  1. 分区,格式化并挂载块文件(全部节点)
# parted /dev/sda 
mkpart primary 190G -1 #使用parted命令将sda磁盘里剩余的空间划分为一个主分区
# mkfs.xfs -i size=512 /dev/sdb4 #格式化
# mkdir -p /gluster_bricks
# blkid #用blkid命令查看/dev/sda4 UUID
/dev/sda4: UUID="5f77844e-ae6c-477a-8000-c936df9adaba" TYPE="xfs" PARTLABEL="primary" PARTUUID="b26a3423-c074-4c90-99d0-f173339afba9" 
# echo 'UUID=5f77844e-ae6c-477a-8000-c936df9adaba    XFS   DEFAULT 0 0' >> /etc/fstab
# mount -a && mount
# df -h #查看是否挂载成功,并重启系统确认
  1. 安装glusterfs组件并配置防火墙(全部节点)
# yum install -y vdsm-gluster 
# systemctl enable --now glusterd
# firewall-cmd --add-service=glusterfs --permanent  
# firewall-cmd --reload
  1. 将分布式存储主机加入到信任主机池(全部节点)
# gluster peer probe ovmstor5
# gluster peer probe ovmstor6
# gluster peer probe ovmstor5.example.com
# gluster peer probe ovmstor6.example.com
# gluster peer probe 100.100.100.5
# gluster peer probe 100.100.100.6

查看主机池中主机的状态,重启所有节点验证磁盘挂载,glusetef服务及连通性

# gluster peer status

注意:一旦建立了这个池,只有受信任的成员能将新的服务器探测到池中。新服务器无法探测池,必须从池中探测。

  1. 配置3副本的GlusterFS复制卷(ovm4节点)
# mkdir -p /gluster_bricks/data/ #这一步要在全部节点上先执行
# gluster volume create gv_data replica 3 transport tcp ovm4stor:/gluster_bricks/data/ ovm5stor:/gluster_bricks/data/ ovm6stor:/gluster_bricks/data/ #此处配置的主机名为双网卡绑定IP所对应的主机名
# gluster volume start gv_data #启动Gluster卷
# gluster volume info #可在所有节点上执行,确认Gluster卷状态
Volume Name: gv_data
Type: Replicate
Volume ID: a80edc75-e322-488b-a0be-287dcf7008de
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: ovm4stor:/gluster_bricks/data
Brick2: ovm5stor:/gluster_bricks/data
Brick3: ovm6stor:/gluster_bricks/data
Options Reconfigured:
performance.client-io-threads: off
nfs.disable: on
transport.address-family: inet

到这里,GlusterFS配置完成,此次部署中由于条件限制没有使用GlusterFS分布式复制卷,企业环境中最好使用分布式复制卷,性能与安全并得.

oVirt Self-Hosted Engine部署

  1. 在部署前可以先安装 oVirt Engine Appliance,该组件是用来创建Engine virtual machine的
# yum install -y http://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm #安装oVirt yum源
# yum install -y cockpit cockpit-ovirt-dashboard #安装Linux系统控制台组件
# systemctl enable --now cockpit.socket
# firewall-cmd --add-service=cockpit --permanent
# yum install -y ovirt-engine-appliance
  1. 安装部署工具
# yum install -y ovirt-hosted-engine-setup
# yum install -y screen
  1. screen开启屏幕记录,防止断网...
screen
  1. 运行部署脚本
# hosted-engine --deploy
  1. 此处应该有记录(并没有)
    这里是官方文档
  2. 在本次部署中,主要有几点不同
  • 在选择存储类型时候,需要选择glusterfs,并填入路径:ovm4stor:/gv_data
Please specify the storage you would like to use (glusterfs, iscsi, fc, nfs)[nfs]:glusterfs
  • 指定冗余mount options的时候,填入backup-volfile-servers=ovm5stor:ovm6stor:
If needed, specify additional mount options for the connection to the hosted-engine storage domain []:backup-volfile-servers=ovm5stor:ovm6stor

脚本跑完,单节点的Self-Hosted Engine就部署完了.

  1. 配置管理机的hosts文件,就可以进入Administration Portal管理其他节点了.
  2. 增加其他两个Host步骤在界面上完成,在Host界面上点击new
    new host

    deploy

    配置完成,在界面上,能作为Self-Hosted Engine运行的主机,前面会有个crown.
    crown

    在Virtual Machines选项中,可以看到运行着Self-Hosted Engine的虚拟机,前面也有个皇冠.选中该虚拟机,点击右侧Migrate标签,在下拉框中可以看到下面界面,说明部署完成
    Migrate
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容