发明内容
本发明提供一种智能分配操作系统镜像方法,用于解决现有技术中存在的不足之处。准确、高效地给终端设备分配操作系统镜像,同时在终端设备更换维护后能够自动调整分配关系,从而提高效率。
为解决上述技术问题,本发明采用如下技术方案:
一种智能分配操作系统镜像方法,包含以下步骤:
a.获取硬件信息:
获取终端设备的硬件信息包括:主板型号、网卡硬件ID、显卡硬件ID、网卡名称、显卡名称;
只获取PCI接口网卡的硬件ID,排除虚拟网卡或者USB接口网卡设备的硬件ID;
b.筛选硬件信息,转化为硬件机型标识:
在获取的硬件信息中,选取主板型号、网卡硬件ID、显卡硬件ID作为终端设备的机型标识;
主板型号,网卡硬件ID、显卡硬件ID其中任意一个标识不同,终端设备就属于不同的硬件机型;
同一个硬件不同版本的驱动程序可能会产生不同的设备名称,所以网卡名称和显卡名称不作为硬件机型标识;
c.存储硬件机型标识:将网卡MAC地址、硬件机型标识存储在机型数据库中;
硬件机型标识包括:主板型号、网卡硬件ID、显卡硬件ID;
机型数据库包括:MAC地址、主板型号、网卡硬件ID、显卡硬件ID;
d.存储操作系统镜像的硬件机型标识:在制作操作系统镜像时,将制作终端的硬件机型标识保存到镜像数据库中,操作系统镜像制作完成后,对操作系统镜像命名,并将操作系统镜像的镜像名称与镜像数据库建立关联关系;
镜像数据库包括:镜像名称、主板型号、网卡硬件ID、显卡硬件ID;
e.计算硬件机型匹配度:遍历机型数据库,与镜像数据库中的记录进行比对,计算该机型与镜像的匹配度,计算公式为:匹配度=相等的机型标识字段个数/机型标识总字段个数;
将计算所得匹配度存储在匹配数据中;
匹配数据库包括:MAC地址、镜像名称、匹配度;
f.分配操作系统镜像:给终端设备分配操作系统镜像时,以终端设备的MAC地址为条件查询匹配数据库中匹配度最大的记录,该记录中的镜像名称代表的操作系统镜像被分配给这台终端设备。
在所述步骤a中,获取硬件信息进一步包括以下步骤:
a1.判断终端设备是否已安装操作系统:如果终端设备已安装操作系统,则继续执行步骤a2;如果终端设备未安装操作系统,则继续执行步骤a3;
a2.判断操作系统的类型:如果终端设备已安装的操作系统是Windows操作系统,则继续执行步骤a4;如果终端设备已安装操作系统是Linux操作系统,则继续执行步骤a5;
a3.引导轻量级Linux系统镜像,继续执行a5;
a4.读取SMBios(SystemMangementBIOS)数据,获取主板型号,读取WMI(WindowsManagementInstrumentation)数据,获取网卡硬件ID、显卡硬件ID、网卡名称和显卡名称;
a5.读取DMI(DesktopManagementInterface)数据,获取主板型号,通过分析lspci命令执行结果获取网卡硬件ID、显卡硬件ID、网卡名称和显卡名称。
本发明的有益效果在于:本发明的一种智能分配操作系统镜像方法,可准确获取终端设备的硬件信息,并建立机型数据库,根据机型匹配程度智能给终端设备分配操作系统镜像。此外,在终端设备更换维护后能够自动调整分配关系,极大提高了分配操作系统镜像的准确性和工作效率。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚明白,下面结合具体实施例和附图,对本发明做进一步详细说明。
如图3所示,例如在一个局域网环境中如图3所示,该局域网包括服务端计算机301和计算机群302,其中计算机群302是由4种不同类型计算机组成的10台计算机,分别为A1~A3计算机、B1~B2计算机、C1~C3计算机、D1~D2计算机,其中A机型计算机3台且计算机操作系统为Linux操作系统、B机型计算机2台且计算机操作系统为Windows7操作系统、C机型计算机3台且计算机操作系统为WindowsXP操作系统、D机型计算机2台且未安装操作系统,现需要对该10台不同机型的计算机准确、高效的分配操作系统镜像,以实现桌面虚拟化管理。
如图1所示,本发明一种智能分配操作系统镜像方法步骤如下:
a.获取硬件信息101:
获取302所有计算机硬件信息,只获取PCI接口网卡的硬件ID,排除虚拟网卡或者USB接口网卡设备的硬件ID;
执行步骤201判断A1~A3计算机、B1~B2计算机、C1~C3计算机、D1~D2计算机是否已安装操作系统,如果A1~A3计算机、B1~B2计算机、C1~C3计算机、D1~D2计算机已安装操作系统,则继续执行步骤202,如果A1~A3计算机、B1~B2计算机、C1~C3计算机、D1~D2计算机未安装操作系统,则继续执行步骤203;
经判断A1~A3计算机、B1~B2计算机、C1~C3计算机已安装操作系统,则继续执行步骤202判断操作系统类型,如果A1~A3计算机、B1~B2计算机、C1~C3计算机已安装的操作系统是Windows操作系统,则继续执行步骤204;如果A1~A3计算机、B1~B2计算机、C1~C3计算机已安装的操作系统是Linux操作系统,则继续执行步骤205;
经判断D1~D2计算机未安装操作系统则继续执行步骤203引导轻量级Linux系统镜像,继续执行步骤205;
经判断A1~A3计算机已安装的操作系统为Linux操作系统,则继续执行步骤205;
经判断B1~B2计算机、C1~C2计算机已安装的操作系统为Windows操作系统,则继续执行步骤204;
B1~B2计算机、C1~C2计算机执行步骤204读取SMBios(SystemMangementBIOS)数据,获取B1~B2计算机、C1~C2计算机的主板型号、主板型号,读取WMI(WindowsManagementInstrumentation)数据,获取B1~B2计算机、C1~C2计算机的网卡硬件、显卡硬件、网卡名称;
A1~A3计算机、D1~D2计算机执行步骤205读取DMI(DesktopManagementInterface)数据,获取A1~A3计算机、D1~D2计算机的主板型号,通过分析lspci命令执行结果获取A1~A3计算机、D1~D2计算机的网卡硬件、显卡硬件、网卡名称;
获取A1~A3计算机、B1~B2计算机、C1~C3计算机、D1~D2计算机的硬件信息分别为:
A1计算机的主板型号为GA-B85-HD3、网卡硬件ID为VEN_10EC&DEV_8168、显卡硬件ID为VEN_10DE&DEV_0045、网卡名称RealtekPCIeGBEFamilyController和显卡名称为NVIDIAGeForce6800GT;
A2计算机的主板型号为GA-B85-HD3、网卡硬件ID为VEN_10EC&DEV_8168、显卡硬件ID为VEN_10DE&DEV_0045、网卡名称RealtekPCIeGBEFamilyController和显卡名称为NVIDIAGeForce6800GT;
A3计算机的主板型号为GA-B85-HD3、网卡硬件ID为VEN_10EC&DEV_8168、显卡硬件ID为VEN_10DE&DEV_0045、网卡名称RealtekPCIeGBEFamilyController和显卡名称为NVIDIAGeForce6800GT;
B1计算机的主板型号为ASUS-B85-PRO、网卡硬件ID为VEN_10EC&DEV_8139、显卡硬件ID为VEN_10DE&DEV_0610、网卡名称RealtekRTL8139FamilyPCIFastEthernetNIC和显卡名称为NVIDIAGeForce9600GSO;
B2计算机的主板型号为ASUS-B85-PRO、网卡硬件ID为VEN_10EC&DEV_8139、显卡硬件ID为VEN_10DE&DEV_0610、网卡名称RealtekRTL8139FamilyPCIFastEthernetNIC和显卡名称为NVIDIAGeForce9600GSO;
C1计算机的主板型号为MSI-B85M-E45、网卡硬件ID为VEN_10EC&DEV_8167、显卡硬件ID为VEN_10DE&DEV_06E8、网卡名称RealtekRTL8169/8110FamilyGigabitEthernetNIC和显卡名称为NVIDIAGeForce9200MGS;
C2计算机的主板型号为MSI-B85M-E45、网卡硬件ID为VEN_10EC&DEV_8167、显卡硬件ID为VEN_10DE&DEV_06E8、网卡名称RealtekRTL8169/8110FamilyGigabitEthernetNIC和显卡名称为NVIDIAGeForce9200MGS;
C3计算机的主板型号为MSI-B85M-E45、网卡硬件ID为VEN_10EC&DEV_8167、显卡硬件ID为VEN_10DE&DEV_06E8、网卡名称RealtekRTL8169/8110FamilyGigabitEthernetNIC和显卡名称为NVIDIAGeForce9200MGS;
D1计算机的主板型号为A88XM-E45、网卡硬件ID为VEN_8086&DEV_1049、显卡硬件ID为VEN_10DE&DEV_07E6、网卡名称Intel10/100MLANAdapter和显卡名称为NVIDIAMCP73;
D2计算机的主板型号为A88XM-E45、网卡硬件ID为VEN_8086&DEV_1049、显卡硬件ID为VEN_10DE&DEV_07E6、网卡名称Intel10/100MLANAdapter和显卡名称为NVIDIAMCP73;
b.筛选硬件信息,转化为硬件机型标识102:
在获取的硬件信息中,选中主板型号、网卡硬件ID、显卡ID作为终端设备硬件机型标识;
由于主板型号、网卡硬件ID、显卡硬件ID其中任意一个信息不相同,计算机都不属于同一个硬件机型;同一个硬件不同版本的驱动程序可能会产生不同的设备名称,所以网卡名称和显卡名称不适合作为硬件机型标识;
A1计算机的硬件机型标识包括:主板型号GA-B85-HD3、网卡硬件IDVEN_10EC&DEV_8168、显卡硬件IDVEN_10DE&DEV_0045;
A2计算机的硬件机型标识包括:主板型号GA-B85-HD3、网卡硬件IDVEN_10EC&DEV_8168、显卡硬件IDVEN_10DE&DEV_0045;
A3计算机的硬件机型标识包括:主板型号GA-B85-HD3、网卡硬件IDVEN_10EC&DEV_8168、显卡硬件IDVEN_10DE&DEV_0045;
B1计算机的硬件机型标识包括:主板型号ASUS-B85-PRO、网卡硬件IDVEN_10EC&DEV_8139、显卡硬件IDVEN_10DE&DEV_0610;
B2计算机的硬件机型标识包括:主板型号ASUS-B85-PRO、网卡硬件IDVEN_10EC&DEV_8139、显卡硬件IDVEN_10DE&DEV_0610;
C1计算机的硬件机型标识包括:主板型号MSI-B85M-E45、网卡硬件IDVEN_10EC&DEV_8167、显卡硬件IDVEN_10DE&DEV_06E8;
C2计算机的硬件机型标识包括:主板型号MSI-B85M-E45、网卡硬件IDVEN_10EC&DEV_8167、显卡硬件IDVEN_10DE&DEV_06E8;
C3计算机的硬件机型标识包括:主板型号MSI-B85M-E45、网卡硬件IDVEN_10EC&DEV_8167、显卡硬件IDVEN_10DE&DEV_06E8;
D1计算机的硬件机型标识包括:主板型号A88XM-E45、网卡硬件VEN_8086&DEV_1049、显卡硬件VEN_10DE&DEV_07E6;
D2计算机的硬件机型标识包括:主板型号A88XM-E45、网卡硬件VEN_8086&DEV_1049、显卡硬件VEN_10DE&DEV_07E6;
c.存储硬件机型标识103:将网卡MAC地址、硬件机型标识存储在机型数据库中;
服务端计算机301将A1~A3计算机、B1~B2计算机、C1~C3计算机、D1~D2计算机的网卡MAC地址、硬件机型标识存储在机型数据库中;
机型数据库包括:
| MAC地址 | 主板型号 | 网卡硬件ID | 显卡硬件ID |
A1计算机 | C4-85-08-22-E8-C1 | GA-B85-HD3 | VEN_10EC&DEV_8168 | VEN_10DE&DEV_0045 |
A2计算机 | C4-85-08-22-E8-C2 | GA-B85-HD3 | VEN_10EC&DEV_8168 | VEN_10DE&DEV_0045 |
A3计算机 | C4-85-08-22-E8-C3 | GA-B85-HD3 | VEN_10EC&DEV_8168 | VEN_10DE&DEV_0045 |
B1计算机 | 64-27-37-60-74-C1 | ASUS-B85-PRO | VEN_10EC&DEV_8139 | VEN_10DE&DEV_0610 |
B2计算机 | 64-27-37-60-74-C2 | ASUS-B85-PRO | VEN_10EC&DEV_8139 | VEN_10DE&DEV_0610 |
C1计算机 | 88-9F-FA-FA-3C-E3 | MSI-B85M-E45 | VEN_10EC&DEV_8167 | VEN_10DE&DEV_06E8 |
C2计算机 | 88-9F-FA-FA-3C-E4 | MSI-B85M-E45 | VEN_10EC&DEV_8167 | VEN_10DE&DEV_06E8 |
C3计算机 | 88-9F-FA-FA-3C-E5 | MSI-B85M-E45 | VEN_10EC&DEV_8167 | VEN_10DE&DEV_06E8 |
D1计算机 | 58-91-CF-37-49-75 | A88XM-E45 | VEN_8086&DEV_1049 | VEN_10DE&DEV_07E6 |
D2计算机 | 58-91-CF-37-49-76 | A88XM-E45 | VEN_8086&DEV_1049 | VEN_10DE&DEV_07E6 |
d.存储操作系统镜像的硬件机型标识104:
在制作操作系统镜像时,将制作A1~A3计算机、B1~B2计算机、C1~C3计算机、D1~D2计算机的硬件机型标识保存到镜像数据库中,操作系统镜像制作完成后,对操作系统镜像命名,并将操作系统镜像的镜像名称与镜像数据库建立关联关系;
将A1~A3计算机的操作系统镜像名称命名为ImageA,将B1~B2计算机的操作系统镜像名称命名为ImageB,将C1~C3计算机的操作系统镜像名称命名为ImageC,将D1~D2计算机的操作系统镜像名称命名为ImageD;
镜像数据库包括:
镜像名称 | 主板型号 | 网卡硬件ID | 显卡硬件ID |
ImageA | GA-B85-HD3 | VEN_10EC&DEV_8168 | VEN_10DE&DEV_0045 |
ImageB | ASUS-B85-PRO | VEN_10EC&DEV_8139 | VEN_10DE&DEV_0610 |
ImageC | MSI-B85M-E45 | VEN_10EC&DEV_8167 | VEN_10DE&DEV_06E8 |
ImageD | A88XM-E45 | VEN_8086&DEV_1049 | VEN_10DE&DEV_07E6 |
e.计算机硬件机型匹配度105:
遍历机型数据库,与镜像数据库中的记录进行比对,计算该局域网内终端计算机机型与镜像的匹配度;
10台计算机与镜像数据库中的镜像名称ImageA、主板型号GA-B85-HD3、网卡硬件IDVEN_10EC&DEV_8168、显卡硬件IDVEN_10DE&DEV_0045进行对比;
10台计算机与镜像数据库中的镜像名称ImageB、主板型号ASUS-B85-PRO、网卡硬件IDVEN_10EC&DEV_8139、显卡硬件IDVEN_10DE&DEV_0610进行对比;
10台计算机与镜像数据库中的镜像名称ImageC、主板型号MSI-B85M-E45、网卡硬件IDVEN_10EC&DEV_8167、显卡硬件IDVEN_10DE&DEV_06E8进行对比;
10台计算机与镜像数据库中的镜像名称ImageD、主板型号A88XM-E45、网卡硬件IDVEN_8086&DEV_1049、显卡硬件IDVEN_10DE&DEV_07E6进行对比;
将10台计算机所得匹配度存储在匹配数据库中:
匹配数据库包括:
f.分配操作系统镜像106:
在该局域网内服务端给10个不同机型的终端计算机分配操作系统镜像时,以终端设备的MAC地址为条件查询匹配数据库中匹配度数值最大的记录,该记录中的镜像名称代表的操作系统镜像被分配给该终端计算机;
A1计算机的MAC地址为C4-85-08-22-E8-C1作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageA分配给A1计算机;
A2计算机的MAC地址为C4-85-08-22-E8-C2作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageA分配给A2计算机;
A3计算机的MAC地址为C4-85-08-22-E8-C3作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageA分配给A3计算机;
B1计算机的MAC地址为64-27-37-60-74-C1作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageB分配给B1计算机;
B2计算机的MAC地址为64-27-37-60-74-C2作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageB分配给B2计算机;
C1计算机的MAC地址为88-9F-FA-FA-3C-E3作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageC分配给C1计算机;
C2计算机的MAC地址为88-9F-FA-FA-3C-E4作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageC分配给C2计算机;
C3计算机的MAC地址为88-9F-FA-FA-3C-E5作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageC分配给C3计算机;
D1计算机的MAC地址为58-91-CF-37-49-75作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageD分配给D1计算机;
D2计算机的MAC地址为58-91-CF-37-49-76作为查询条件匹配数据库中的匹配度数最大的记录,该匹配度为1,将记录的镜像名称ImageD分配给D2计算机。
通过该方法准确地获取了终端设备的硬件信息,并建立机型数据库,根据机型匹配程度智能给终端设备分配操作系统镜像。在终端设备更换维护后能够自动调整分配关系,极大提高了分配操作系统镜像的准确性和工作效率。