目前,在桌面云解决方案中处于领导者地位的主要有Citrix和Vmware公司。Citrix XenDesktop和Vmware View产品不仅可以安全地向PC、Mac、平板设备、智能电话、笔记本电脑和瘦客户端交付Windows应用和整个虚拟桌面,而且可以为用户提供高清体验。论文网
在桌面云中,用户通过统一的登录界面输入帐户和密码后,身份认证系统负责用户认证和授权工作。如果帐户有效(这里的有效指该帐户已注册,并且购买或申请了虚拟机),则连接属于该用户的虚拟桌面。
为了保证登录帐户和虚拟机的关联性,必须在服务器维护一个(Login_Account, VirtualMachine_Id)的列表。当某个帐户购买了一台虚拟机后,就添加一条新的记录。
这里有两种方式用来保证登录帐户具有登录对应虚拟机的权限。一种解决方式是,当Login_Account购买虚拟机后,在虚拟机上添加一个名为Login_Account的本地用户,本地用户的密码同登录密码一样。这样一来,当用户通过Login_Account登录成功后,后台采用同样的帐户和密码登录对应的虚拟机,并将虚拟桌面传送给用户,这就完成了用户认证和虚拟桌面交付。但是,这种解决方式存在很致命的问题即登录帐户和本地用户的同步。当用户在虚拟机上更改了本地帐户名称或密码,登录帐户和密码并不会因此而改变。同样的,用户在登录界面更改自己的登录密码,本地帐户的密码也不会因此而改变。最终,用户将无法利用这个Login_Account登录到自己的虚拟机。所以,这种方案不具有灵活性和健壮性。
另外一种解决方式是,建立名为Login_Account的域用户。当Login_Account购买了虚拟机后,这台虚拟机自动加入域。这样一来,当用户通过Login_Account登录成功后,后台采用同样的帐户和密码登录对应的虚拟机,并将虚拟桌面传送给用户。
相比第一种方式,第二种方式具有很强的灵活性。只要对应的虚拟机已经加入域,作为域帐户的Login_Account具有登录对应虚拟机的权限,即使Login_Account的密码被用户修改了也不影响。
在桌面云解决方案中,典型的身份认证系统就是采用第二种方式来实现用户的认证和授权,涉及到的技术主要有Windows AD和LDAP(轻型目录访问协议)。因此,解决虚拟机的集中入域对桌面云具有很重要的意义。
作为商业公司, Citrix和Vmware没有向外公开它们对虚拟机集中入域的解决方式。因此,本文旨在通过研究和调研,提出一种适合在桌面云中解决虚拟机(以Windows系统为例)集中入域的方法。这也是本课题的难点所在。
1.2 研究内容
本课题采用agent-server(简写A-S)模式来实现Windows虚拟机的集中入域。在桌面云环境中,至少有一台计算机配置为域控制器(Domain Controller,DC),并且安装了AD。确定的说,agent-server模式中的server指的是运行在域控制器(DC)上的程序,负责下发命令给agent执行,并收集agent的反馈,从而达到远程控制的目的。类似地,agent也是一种程序。不同于server的是,agent运行在普通计算机上(即等待入域的虚拟机)。agent具备管理宿主虚拟机的权限。因此,通过server向agent下发入域的命令时,便可实现远程控制虚拟机入域。
联系到桌面云的实际情况,这种构想具体表现为:当Login_Account购买了虚拟机,服务器虚拟出一台与用户意向相符的机器,将其加入虚拟机集群。虚拟机供应商可以适度的裁剪虚拟机的配置,比如,将agent作为一种本地服务植入每台虚拟机,这样一来,每次虚拟机开机,agent就能随机启动。在DC上通过server向多个agent下发入域命令,就能达到虚拟机集中入域的目的。