简介
为节约软件License购买成本,在合理的、不被查封的情况下,通过技术手段来降低license开销,实现软件的正版激活。本方案是实现License共享的方案之一,另一个方案为vAPP方案,可参考文档《License共享:vAPP方案》。
主体思路
软件License通常会采集系统层级的硬件信息来区分主机,如网卡MAC、主板信息等。本方案主要通过底层硬件的虚拟化,将所有虚机的硬件信息虚拟化为同一个,使其在系统层级内部无法感知硬件层级的差异,从License检测层面来看,就是同一台机器。
局限性
该方案的局限性较大,只要有以下几点:
网卡MAC在同一个局域网内无法相同,所以需要隔离至不同的私网,会造成网络结构过于复杂。
每个软件检测硬件的信息方式不同,对于检测简单的软件可用该方法,检测复杂的软件不推荐该方式,适配难度过高。
软件License检测方式对适配而言均为黑盒,适配难度高。
该方案目前暂时未大规模使用测试,无法评估其法律风险。
虚拟化配置
CPU
使用host-passthrough
模式即可,参考xml相关配置:
1 | ... |
网卡
可通过OpenStack设置Port MAC地址,然后挂载给虚机使用。若直接使用KVM,则可直接配置xml即可,参考配置如下:
1 | ... |
硬盘
磁盘需要使用直通方式,ceph rbd在系统内部无法读取产品序列号,也无法设置其厂商id和产品id。
SMBIOS System Information
- 屏蔽透传给主机的底层系统信息,可修改为PC厂商的信息,或直接使用host模式。
参考xml相关配置:
1 | ... |
Windows系统内可通过systeminfo
命令查看效果。
smbios mode为smbios
时,系统内部可查看到的信息如下:
smbios mode为host
时,系统内部可查看到的信息如下:
实测案例
本次测试,使用NVIDIA的vGPU License进行测试,验证硬件克隆是否可以实现License共享。NVIDIA License与MAC地址绑定,通过官网填写License Manager Server MAC申请license后,即可从License Manager Server导入license文件,启用License管理分发功能。
本轮测试进行如下两个方案验证:
场景一:Client MAC一致,请求同一个License Manager Server,验证是否可复用同一个License名额。
场景二:License Manager Server的MAC一致,验证是否可复用同一个License.bin文件
验证结果:
场景一:无法实现复用,MAC一致,第二个Client在申请时可以申请成功,但是会把第一个Client挤下去,无法实现共享。
场景二:可以实现复用,多台License Manager Server MAC一致,网络隔离情况下,均可使用同一个License.bin文件,进行License分发。