注:虽然社区建议升级到4.4,但是如果想在生产环境中图稳定一些,目前仍建议使用V4.3.10版本,如果没有历史包袱,考虑日后还要升级,本着晚升不如早升原则的话就可以选4.4版本中最新发布的版本。
如果是刚接触oVirt,可以直接上4.4,肯定会有些小问题。
下面就各个组件中oVirt4.4版本相对4.3版本的变化做一个列举:
ovirt-host
1.1 cockpit-ovirt
之前在cockpit的HostedEngine部署界面VM设置部分,内存单位标识的为MB,实际应该为MiB,4.4中已经修复这个问题;
1.2 ovirt-host
Centos8中用tmux取代了screen软件包;
之前单独使用LUKS会有问题,因为engine通过电源管理命令重启一个主机节点的时候会卡住,卡在等待用户输入解密密码,4.4版本在engine中增加了一些rpm包,用来解决这个问题,通过TPM或者NBDE能够自动的解锁主机节点;
移出了软件包cockpit-machines-ovirt;
移出了katello-agent,可以使用katello-host-tools来获取对应版本的Satellite;
1.3 ovirt-hosted-engine-ha
之前如果ovirt-ha-broker服务在engine查询hosted-engine的集群状态时重启,查询操作将会卡住,只能通过重启ovirt-engine解决,新版本解决了这个问题,为ovirt-ha-broker和vdsm之间加了一个超时时间;
之前DNS查询超时没有日志记录,现在在broker.log中增加了“DNS query failed”的记录;
之前网络测试的超时时间为2秒,现在改成了5秒;
1.4 ovirt-hosted-engine-setup
之前部署hosted-engine时用了team设备,它会尝试执行然后失败,先能过滤掉team设备了,如果只有team设备可用则会报错;
hosted-engine暂停状态的虚机可以通过–vm-start恢复了;
之前/分区会占据所有的磁盘空间,用户不能扩展/var和/var/log分区,现在是基于LVM,PV和VG会自动扩展,但是LV不会,所以在安装结束后,可以使用VG中剩余的空间来手动扩展LV;
之前承载hosted-engine的主机管理网络高可用是在部署时配置的,VDSM接管了Network Manager,但是engine备份还原时不能指定网络,所以有可能还原时由于主机连接不上网络而失败,由于网络对应不上,现在的版本中允许用户暂停还原进程,手动指定网络,然后继续还原;
之前4.3版本如果主机只配了IPv4的地址并且配了.local的FQDN,部署的时候会不停的检索可用的IPv6地址直到失败,涉及链路本地地址的问题,目前版本中已经修复了这个问题;
部署hosted-engine时可以指定NFS的版本,可选的有4.0和4.2;
1.5 ovirt-imageio-daemon
此软件包更新后能够允许使用imageio的Restapi实现磁盘镜像的传输优化,通过略过标记为0的和未分配的空间来减少磁盘空间的占用;
1.6 ovirt-host
增加了vdsm-hook-nestedvt包,能够允许嵌套虚拟化,但是只建议用在试验环境,不建议用在生产环境;
1.7 v2v-conversion-host
之前systemd的units失败的会话不会被移除,会阻止之后的units会话执行,因为状态为“在使用”,现在的版本已经修复了这个问题;
1.8 vdsm
之前在线迁移过程中由于存储问题可能会导致虚机崩溃,报错信息为“qemu-kvm:Failed to lock byte 100”,现在的版本已经修复了这个问题;
之前版本中移动磁盘会导致卷元数据信息中出现错误的卷大小值,现在已经修复;
之前版本中复制一个通过virt-v2v过来的磁盘会失败,由于一个错误的参数“DiskType=1”引起,这个版本已经修复;
这个版本移除了提供non-socket activation的libvirt包,只保留了提供socket activation的libvirt版本,socket activation能提供更好的资源管理,详情可以查询socket activation;
增加了对虚拟机UEFI启动的支持(OVMF+SecureBoot);
在有多个FC LUN且每个LUN都有多路径的系统里,当I/O比较高时,刷新FC设备的操作会变慢,从而导致监控虚机磁盘大小超时,并会导致虚机进入不响应状态。在这个版本中,优化了刷新FC设备的速度,虚机不会因为此进入不响应状态;
之前当虚机迁移进入到post-copy模式且保持很长时间时,迁移可能会失败,虚机会被关闭。在这个版本中,post-copy模式的迁移将会被维持直到迁移完成;
之前如果VDO中的卷有错误则VDO统计不可用,所以VDSM中VDO监控会返回错误的堆栈信息,这个版本修复了这个问题;
之前VDSM服务文件中有ExecStopPost,所以VDSM停止后,它的子进程仍能继续运行,在某些场景下回导致数据损坏,现在版本修复了这个问题,将ExecStopPost移除了,结束掉VDSM后子进程都将结束掉;
在4.4中,NetworkManager管理网络接口和静态路由,所以可以通过NetworkManager修改静态路由等配置信息;
之前,由于AMD EPYC CPU中缺少virt-ssbd CPU flag会导致Hosted Engine部署失败,现在已经修复了这个问题;
之前如果一个虚机被SIGTERM强制关机,在某些情况下VDSM不能从libvirt关机事件上获取到虚机为什么关机的信息,以至于认为可能是正常关机,现在修复了这个问题,VDSM能够处理这种关机事件,Engine会把高可用虚机重新启动起来;
之前如果你从一台没有loop设备的主机上以OVA文件的方式导出虚机,再把它导入到环境中,这个虚机将得到一个空盘(没有操作系统的),这是由时间和权限问题导致的,现在版本已经修复这个问题了;
之前如果你尝试在同一个主机上启动一个已经处于运行状态的虚机,VDSM的失败反馈很慢,现在已经修复,VDSM将立即反馈阻止这一操作;
以前获取具有特定的非NUMA的CPU拓扑的主机能力会失败,现在已经修复了,能正确获取;
4.4中所有的x86架构集群中的BIOS类型被默认设置为Q35,之前是i440FX;
如果主机运行在FIPS模式下,VNC连接必须使用SASL认证,不能使用普通密码,当前版本通过一个Ansible角色ovirt-host-setup-vnc-sasl使SASL的使用更简单,可以在FIPS模式的主机上手动执行它;
之前将LVM的激活和取消激活命令和其它命令混合一起使用时会导致日志中出现一些未定义的LVM行为和警告,这个版本修复了,将LVM的激活和取消激活命令与其它命令分开了;
之前当VDSM启动时,网络过滤器vdsm-no-mac-spoofing会被移除和重新创建以确保过滤内容的更新,这个行为可能在启动VDSM时会超时,现在版本修复了这个问题,用update的方式取代了移除和重新创建,不到1秒即可完成;
之前当虚机处于正在关机状态时,VDSM的获取主机状态信息的行为会失败(错误信息是一个JSON-RPC{‘reason’: ‘[Errno 19] vnet is not present in the system’}),这是由于关机时虚机的网络接口会消失但是信息被采集了,当前版本修复了这个问题,不会报这个错了;
现在版本你可以为虚机的在线迁移设置加密了,同一集群不同主机上的虚机的在线迁移,在engine的门户中即可配置,默认是禁用的;
之前当迁移一个虚机时,正在运行的Guest Agent的一些信息不能总是有效的传递给目标主机,某些情况下目标主机收不到迁移完成的通知信息,现在修复了这个问题;
之前从4.1版本升级到新版本时,高可用虚机会失效,用户需要重新设置租约存储域的ID,目前升级4.4版本修复了这个问题;
当将一个具有很大磁盘的虚机导出成OVA时会花费很长时间,在之前SSH连接可能会由于超时而关闭,现在版本修复了这个问题,SSH隧道不会由于超时关闭;
之前存储域删除不完整有残留的情况下转换到V5格式会失败(转化是由于升级引起的),目前版本已经修复这个问题了;
之前FIPS模式下的主机上的cloud-init不可用,目前已经可用了;
之前Engine管理台中没有运行虚机的主机的内存使用也会显示的很高,因为那没有包含可回收的内存,这会导致虚机不能迁移到此主机上,现在的版本已经修复了,能够准确的获得主机的可用内存空间;
之前gluster的fencing策略检查会因为一个不可引用的对象而失败,目前已经修复了;
之前由于slot参数被解析为字符串,导致通过模板创建虚机时磁盘回滚失败,这个问题只在通过Ansible脚本执行时存在,通过Engine管理台操作没有问题。目前已经修复了;
ovirt-engine
2.1 apache-commons-configuration
apache-commons-configuration包升级到1.10,修复了一些问题;
2.2 apache-commons-digester
apache-commons-digester升级到2.1,增加一些新功能;
2.3 apache-sshd
apache-sshd库不再跟ovirt-engine绑定了;
2.4 distribution
apache-commons-collections4已经被打包给ovirt-engine使用;
2.5 makeself
makeself包升级到2.4.0;
2.6 openstack-java-sdk
openstack-java-sdk包升级到3.2.8;
2.7 ovirt-cockpit-sso
之前主机控制台的SSO不支持python3,目前已经能够在python3的环境下正常工作;
2.8 ovirt-engine
之前使用cinderlib需要安装openstack仓库,目前单独为cinderlib提供一个仓库;
$ dnf config-manager --set-enabled rhel-8-openstack-cinderlib-rpms $ sudo dnf install python3-cinderlib
之前engine创建在线虚机快照是同步操作,如果创建快照执行了很长时间(默认180秒),操作会失败,如果虚机的内存负载比较高或者存储速度比较慢则经常会出现这种失败的情况。现在已经修复了,做在线快照是异步操作了,会一直执行直到创建成功,不管持续多久;
修复了一个由于VDSM和Engine版本不一致导致的虚机快照问题;
之前4.3.9上ovirt-provider-ovn网络不起作用,原因是FDP(Fast Datapath Production) 20.A版本中ovs/ovn服务没有权限读取ssl/tls私钥文件,目前已经修复;
Engine创建虚机快照过程中,当尝试冻结文件系统时可能会超时或失败,在这种情况下可能有其它的虚机写入数据到同样的逻辑卷并且损坏数据,在目前的版本中可以避免这一问题,通过在Engine上将LiveSnapshotPerformFreezeInEngine这个参数设置为true,这样在创建快照前会先冻结虚机操作系统的文件系统;
当一个高可用的虚机崩溃后,Engine会尝试将它重新启动起来,在重新启动之前有一个短暂的延迟,在尝试指定的次数后延迟时间会加长,Engine也会按高可用虚机的优先级顺序来重启虚机,高优先级的先起,低优先级的后起。当前的版本增加了几个新的配置选项:RetryToRunAutoStartVmShortIntervalInSeconds(最小延迟,默认是30秒)、RetryToRunAutoStartVmLongIntervalInSeconds(最大延迟,默认是1800秒,也就是30分钟)、NumOfTriesToRunFailedAutoStartVmInShortIntervals(从最小延迟到最大延迟经过的重试次数,默认是10次)、MaxTimeAutoStartBlockedOnPriority(启动低优先级虚机之前的最长等待时间,默认是10分钟);
跨越多个主机的网络操作可能需要很长时间,现在版本中增强了这块功能,在事件和日志中展示进行到哪个步骤了,当操作执行完成时会有提示;
当前版本为存储在线迁移增加了一个磁盘同步的进度条;
创建一个新的MAC地址池时,它的范围不能与之前的已经存在的MAC地址池有重复;
这个版本增加了对Windows虚机中使用Hyper-V的支持;
之前,当升级了集群能力(版本)后有些虚机的配置被还原了,目前修复了这个问题;
当前版本允许迁移一组虚机(正关联组);
当前版本中,通过Restapi更新一个虚机配置时,如果不指定控制台参数,意味着控制台的状态不能被改变,控制台会保持之前的状态;
当你将运行着engine的主机维护时,ovirt-ha-agent会把engine迁移到另外一台主机上,之前的时候,有些情况下可能会失败;
主机电源管理中增加了对Redfish的支持;
在某些情况下,一个热插拔的SR-IOV vNIC的PCI地址可能会被置空,然后虚机重启后,这个网卡的名字就会发生变化,现在PCI的地址被记录到数据库中了,网卡的名字重启后也不会变了;
现在engine-backup命令也可以备份Cinderlib的数据库了;
当你升级engine的时候,如果虚机存在版本不兼容的快照会告知你;
现在可以为虚机附加一个SCSI的主机设备了;
之前升级到4.3版本时如果CA证书中组织名称包含非ASCII,则在engine-setup时会失败,现在升级到4.4没这个问题了;
将vm_dynamic数据库表中的guest_cur_user_name字段由VARCHAR(255)改成了TEXT类型;
之前预览一个虚机的快照时,如果虚机的磁盘不存在或者损坏,那么预览时会在日志中报错,虚机会被锁定,现在会对虚机的磁盘进行检查,如果有损坏,则预览操作不可用,磁盘被修复后,预览操作就可用了;
之前4.2升级到4.3时会改变10-setup-ovirt-provider-ovn.conf文件的权限,现在升级不会了;
之前,在设置网络对话框中更新IPv6网关时不成功,目前已修复,之前IPv6的默认配置不受Engine管理,现在可以了;
将打在线快照的操作由同步改成了异步,打快照不会由于超时而失败;
之前当删除一个有直接lun磁盘的虚机快照时,它的磁盘ID会被解析错误,导致删除失败,现在修复了;
以前创建虚机快照时,VDSM调用命令去冻结虚机文件系统时超时3分钟会创建失败,导致虚机和磁盘被锁住,现在在增加了两个配置,从engine上可以使用engine-config工具配置:LiveSnapshotPerformFreezeInEngine、LiveSnapshotAllowInconsistent,可配置成true改善这种情况;
现在的版本中,MAC地址池不能重复,在设置时会被禁止;
之前在一个大规模的环境中,oVirt中请求集群列表信息的rest api返回很慢,由于查询了一些非必要的数据,现在的版本已经修复了;
之前如果使用ovirt-engine-sdk中的更新模板脚本来从一个OVF配置中导入虚机或模板,会失败,这个版本中已修复;
Centos8/RHEL8的主机上SPICE加密模块没开启,依赖于系统的cryto策略;
之前不能为虚机在线添加或移除智能卡设备,现在可以了,但是是下一次启动才能生效;
之前,导出虚机或模板为OVA文件时错误的设置了OVF头文件中的格式信息为RAW,当使用这个OVA时会有问题,这个版本修改成了COW,代表实际格式为qcow2;
现在可以编辑游离的磁盘的信息了(就是未附加在任何虚机上的磁盘);
现在在创建虚机或编辑主机时就可以配虚机关联组;
现在版本使用“localhost”作为主机域名会有警告信息;
之前导入的虚机总会开启Cloud-Init/Sysprep,现在是根据OVA中OVF的配置情况来定;
如果网络名称包含空格或者超过15个字符,则管理台会提示你engine会用主机网络的UUID来重命名这个网络;
主机网卡变更后,管理台中的bond信息会自动刷新,不需要手动再去刷新主机能力了;
当虚机操作系统重启时会产生一个时间ID,外部系统例如Cloudforms和MangeIQ会根据这个事件ID来跟踪虚机的状态;
之前将一个主机从管理台删除后,它会在Engine的数据库中创建主机不可达的记录信息,当你之后再把这台主机添加进来时,这些信息会导致网络判断错误,现在管理台在这种情况下会打印出提示信息,告知管理员如何处理这种问题;
之前导入虚机时如果未开启virtio-scsi并且虚机带直接LUN的磁盘,这个时候导入会失败,报错virtio-scsi未启用。现在修复了这个问题,如果未开启virtio-scsi,则不再寻找virtio-scsi的驱动器;
现在从管理台导入一个NFS存储域时可以自定义挂载信息;
现在创建和管理iscsi存储域时增加了由于lun的数量多会导致操作时间长的提示信息;
之前如果有数百个FC lun,管理台中显示和管理存储域会非常慢以至于无响应,现在将这些lun分页显示了,不会有这个问题了;
通过开启了删除保护的虚机创建的虚机池,如果修改模板的版本,会导致池不可用,这个版本修复了这个问题,不允许修改这种情况下的模板的版本;
为关联组增加了一个状态显示,ok还是broken;
之前用户会话状态在Engine的数据库中不能正确的保存,现在可以了;
现在升级DC(数据中心)版本时会做检测,检测上面跑的虚机是否都能够兼容要升级的版本,如果不能的话会提示;
之前克隆虚机时只能为克隆后的虚机指定名称,现在可以修改新虚机任何的参数配置了;
之前导入一个KVM的虚机到oVirt时,管理台不能识别这台虚机上的guest agent,由于硬件时钟偏移没有设置,现在修复了;
移除了对4.2版本的数据中心和集群的支持;
管理台由PatternFly 3升级到了PatternFly 4,带来一些改变,比如增加了垂直和水平的滚动条,不会由于显示屏幕的设置或缩放导致无法使用;
现在能够支持在虚机运行状态时,以OVA文件的方式导出了;
之前如果通过api将一个不存在的ISO文件附加给一个虚机,它会被附加一个空的CD或使用一个已有的,现在修复了这个问题,管理台会检查这个ISO文件是否存在,不存在的话会报错;
这个版本支持了Intel Snow Ridge CPU架构,可以通过主机CPU透传或者设置虚机的cpuflags使用;
之前如果虚机安装的是一个比较老的操作系统比如CentOS6/RHEL6,BIOS类型选Q35的话会导致内核panic,现在修复了这个问题;
现在虚机内存的大小限制最大调整到了6TB;
之前engine-setup时没有针对ovirt-provider-ovn提供足够的配置信息,现在改善了;
之前管理台只从ISO域中搜索guest tools的ISO,不包含数据存储域,现在修复了这个问题;
之前管理台配置那编辑实例类型有个vNIC配置的编辑,但是此项是不可编辑的,现在已经移除掉了;
还有一些没有完全列出来,如果有错误请在下方评论中指出,感谢!
扫码加好友拉你进oVirt技术交流群!
学习了