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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容