首先下载最新ovirt-node iso镜像
准备3台机器,配置为2核,16G内存,两块硬盘,1块100G装系统,1块300G做存储
node1.com(192.168.105.221)
node2.com(192.168.105.222)
node3.com(192.168.105.223)
可以是虚机,但注意:
- 宿主机上要开启嵌套虚拟化(nested kvm)支持;
- 虚拟网络要用桥接模式,保证虚机和宿主机之间网络互通。
安装主机
使用node iso安装3台机器,配置好ip地址、域名信息
检查确认好每台主机的hostname和/etc/hosts文件中的域名映射
从node221.com上配置ssh无密码登录
[root@node1~]# ssh-keygen [root@node1~]# ssh-copy-id root@node1.com [root@node1~]# ssh-copy-id root@node2.com [root@node1~]# ssh-copy-id root@node3.com
部署Gluster
访问https://192.168.105.221:9090,使用root帐号登录,进入主机node1.com的cockpit web界面
如上图,点击超融合部署按钮start,选择部署流程
这里有两个选项,选择第一个(ps:第二个为使用一台主机节点部gluster本地环境,无法扩容,不建议用)
填写三台主机名称,进入下一步
再次填入主机2和主机3的域名,这里是让这两台主机能够自动支持运行Hostengine虚机,进入下一步
这一步不填,直接跳过
这里我们按它默认的三个卷来创建,并且让data、vmstore启用仲裁模式,进入下一步
这一步我们调整LV配置中的设备名称都为“vdb”(因为是在虚机环境下,磁盘的名称为v*,这块盘为一开始部署主机节点时添加的数据盘,请确认你的环境)
修改engine、data、vmstore的卷大小为80GB,根据你添加的数据盘大小进行分配,用于运行engine虚机的卷大小不能小于58GB(ovirt的默认最小值,实际占用空间为59GB以上,所以实测最好不要低于65GB)
其它采用默认的配置,实际部署中,raid配置应与物理环境的raid配置保持一致,下一步展示配置信息,直接点Deploy部署按钮即可,进入部署过程
部署engine
Gluster部署成功后
进入engine的部署向导
按上图的标识,将engine虚机配置信息填写完整,进入下一步
这个地方我们只需填写engine web管理台admin帐号的密码即可,进入下一步
检查下信息无误,点击PrepareVM即可
部署过程中到上图所示这一步时会很久,因为要下载这个ovirt-engine-appliance rpm包,这个包有900多M。(建议这一步完成后,将这个rpm包拷贝出来以备用,下次部署时可直接拷到系统中使用yum安装上就可以避免再次下载了。也在本站的安装包下载此rpm包。)
engine虚机成功准备完成后,进入下一步
配置用于部署engine虚机的存储,这里存储类型选Gluster,路径填前面部署Gluster中engine卷的路径,格式如图中所示,挂载选项为:
backup-volfile-servers=node2.com:node3.com
此挂载选项用于防止Gluster的单点故障
检查信息无误,开始部署过程。(注意上图中的主机名称不对,非本次部署截图,自己环境与实际对应即可。)
一定注意到此步骤时:
首先ssh到node1.com中,增加engine的域名映射
192.168.105.224 engine224.com
开启一个shell终端,长ping engine的ip(192.168.105.224),一旦能够ping通,立即ssh到engine里面去,在/etc/hosts中增加engine的域名映射
此处是一个bug,若不进行上述步骤将会导致最后一步engine health check失败而导致部署不完整。
部署完成。
访问管理台
要修改访问PC的hosts文件,将engine的域名映射加入,才可以通过域名访问管理台(无法直接通过ip访问)。
PS:转载文章请注明来源:oVirt中文社区(www.cnovirt.com)
扫码?加好友拉你进oVirt技术交流群!
这个镜像快些http://mirror.isoc.org.il/pub/ovirt/
谢谢!我把它加到下载链接中。
TASK [gluster.infra/roles/backend_setup : Create volume groups] ****************
failed: [server2] (item={u’vgname’: u’gluster_vg_vdb’, u’pvname’: u’vdb’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“pvname”: “vdb”, “vgname”: “gluster_vg_vdb”}, “msg”: “Device /root/vdb not found.”}
failed: [server3] (item={u’vgname’: u’gluster_vg_vdb’, u’pvname’: u’vdb’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“pvname”: “vdb”, “vgname”: “gluster_vg_vdb”}, “msg”: “Device /root/vdb not found.”}
failed: [server1] (item={u’vgname’: u’gluster_vg_vdb’, u’pvname’: u’vdb’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“pvname”: “vdb”, “vgname”: “gluster_vg_vdb”}, “msg”: “Device /root/vdb not found.”}
NO MORE HOSTS LEFT *************************************************************
NO MORE HOSTS LEFT *************************************************************
PLAY RECAP *********************************************************************
server1 : ok=9 changed=0 unreachable=0 failed=1 skipped=10 rescued=0 ignored=0
server2 : ok=9 changed=0 unreachable=0 failed=1 skipped=10 rescued=0 ignored=0
server3 : ok=9 changed=0 unreachable=0 failed=1 skipped=10 rescued=0 ignored=0
使用vdb,70G失败。请问有什么前提设置吗?
device /root/vdb not found
device /root/vdb not found
这个vdb需要根据你自己的环境实际情况填。
用虚拟机折腾了好几天了,还差点把硬盘搞挂,4.2死活装不了,试了4.3.5很快就部署好超融合构架,由于虚拟机内存不够,怎么都部署不了engine,也说下上面没说得够清楚的地方,
1,准备两块硬盘,一块装系统,另一块什么都不用做,不用分区挂载;
2,4.2版将sdb改为vdb和修改engine、data、vmstore的卷大小到最后其实什么都没有变更(本人遇到的bug?),还是默认的,要在最后那一步的脚本里手动改(最好复制出来用文本编辑器查找替换,有几十个之多);
3,装engine时要先在node1、node2、node3的/etc/hosts加上engine的域名映射;
TASK [ovirt.hosted_engine_setup : Get local VM IP] 这一步后过不去。。
我也是在VMware vSphere 6.7环境中尝试了N次,都在Get local VM IP这一步就挂了,目前无解,只能放弃了Hosted Engine模式
[ ERROR ] fatal: [localhost]: FAILED! => {“attempts”: 90, “changed”: true, “cmd”: “virsh -r net-dhcp-leases default | grep -i 00:16:3e:61:eb:f5 | awk ‘{ print $5 }’ | cut -f1 -d’/'”, “delta”: “0:00:00.074760”, “end”: “2019-12-26 02:14:27.569132”, “rc”: 0, “start”: “2019-12-26 02:14:27.494372”, “stderr”: “”, “stderr_lines”: [], “stdout”: “”, “stdout_lines”: []} 过不去了。又
虚拟机部署性能不够的话很多地方需要重试很多次
请教版主:
我有多个网络规划的情况下(一个专用于管理,一块专用于GlusterFS,在/etc/hosts分别做了解析),在部署Gluster超融合步骤时,第一步是填写Gluster网络,第二步应该是填写管理网络吧? 这样理解和部署是否有误?
不建议分开,如果分开的话,管理网络和glusterfs存储网络不要放在同一个网段内。考虑带宽问题的话,可以两个网口做绑定。
第一步和第二步是指?
超融合gfs报错 还需要开启selinux? 部署的时候
TASK [gluster.infra/roles/backend_setup : Set Gluster specific SeLinux context on the bricks] ***
failed: [node1.com] (item={u’path’: u’/gluster_bricks/engine’, u’vgname’: u’gluster_vg_sdb’, u’lvname’: u’gluster_lv_engine’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“lvname”: “gluster_lv_engine”, “path”: “/gluster_bricks/engine”, “vgname”: “gluster_vg_sdb”}, “msg”: “SELinux is disabled on this host.”}
failed: [node2.com] (item={u’path’: u’/gluster_bricks/engine’, u’vgname’: u’gluster_vg_sdb’, u’lvname’: u’gluster_lv_engine’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“lvname”: “gluster_lv_engine”, “path”: “/gluster_bricks/engine”, “vgname”: “gluster_vg_sdb”}, “msg”: “SELinux is disabled on this host.”}
failed: [node3.com] (item={u’path’: u’/gluster_bricks/engine’, u’vgname’: u’gluster_vg_sdb’, u’lvname’: u’gluster_lv_engine’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“lvname”: “gluster_lv_engine”, “path”: “/gluster_bricks/engine”, “vgname”: “gluster_vg_sdb”}, “msg”: “SELinux is disabled on this host.”}
failed: [node1.com] (item={u’path’: u’/gluster_bricks/data’, u’vgname’: u’gluster_vg_sdb’, u’lvname’: u’gluster_lv_data’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“lvname”: “gluster_lv_data”, “path”: “/gluster_bricks/data”, “vgname”: “gluster_vg_sdb”}, “msg”: “SELinux is disabled on this host.”}
failed: [node2.com] (item={u’path’: u’/gluster_bricks/data’, u’vgname’: u’gluster_vg_sdb’, u’lvname’: u’gluster_lv_data’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“lvname”: “gluster_lv_data”, “path”: “/gluster_bricks/data”, “vgname”: “gluster_vg_sdb”}, “msg”: “SELinux is disabled on this host.”}
failed: [node3.com] (item={u’path’: u’/gluster_bricks/data’, u’vgname’: u’gluster_vg_sdb’, u’lvname’: u’gluster_lv_data’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“lvname”: “gluster_lv_data”, “path”: “/gluster_bricks/data”, “vgname”: “gluster_vg_sdb”}, “msg”: “SELinux is disabled on this host.”}
failed: [node1.com] (item={u’path’: u’/gluster_bricks/vmstore’, u’vgname’: u’gluster_vg_sdb’, u’lvname’: u’gluster_lv_vmstore’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“lvname”: “gluster_lv_vmstore”, “path”: “/gluster_bricks/vmstore”, “vgname”: “gluster_vg_sdb”}, “msg”: “SELinux is disabled on this host.”}
failed: [node2.com] (item={u’path’: u’/gluster_bricks/vmstore’, u’vgname’: u’gluster_vg_sdb’, u’lvname’: u’gluster_lv_vmstore’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“lvname”: “gluster_lv_vmstore”, “path”: “/gluster_bricks/vmstore”, “vgname”: “gluster_vg_sdb”}, “msg”: “SELinux is disabled on this host.”}
已解决 需要开启selinux的宽容模式
切记gfs最好给大点存储80G不够 最好120 否则后面部署engine的时候会报存储小于61G的问题
[ INFO ] ok: [localhost]
[ INFO ] TASK [ovirt.hosted_engine_setup : Fail with error description]
[ ERROR ] fatal: [localhost]: FAILED! => {“changed”: false, “msg”: “The host has been set in non_operational status, deployment errors: code 505: Host node01.ovirt.com installation failed. Failed to configure management network on the host., code 9000: Failed to verify Power Management configuration for Host node01.ovirt.com., fix accordingly and re-deploy.”}
[ INFO ] TASK [ovirt.hosted_engine_setup : Fetch logs from the engine VM]
请问这个报错啥原因啊
检查下页面,一般是之前存在网桥,网桥不成功问题。可以尝试清理下网桥
三台物理机都只有一块硬盘能玩吗
glusterfs 做了 虚拟机读写真的好差