一、VDI客户端目录结构(以64位系统为例)
二、相关的进程及DLL
三、VDI客户端核心模块及相关说明
SangforCSClient.exe |
VDI用户登陆认证关键进程 |
SfRemoteAppClient.exe |
客户端策略解析及进程间通信关键进程(会话管理) |
RVLSession.exe |
Spice客户端会话进程 |
SangforPromote.exe |
提权进程 |
SangforPromoteService.exe |
提权服务进程 |
SangforUD.exe |
客户端组件更新进程 |
vECAgent.exe |
一个简易的Web服务器实现VDC控制台及客户端Web与客户端进程通信 |
SRAPSession.exe |
远程应用会话进程 |
SangforServiceClient.exe |
客户端服务进程,负责认证成功后,启动本地其它进程 |
SangforTcp.dll |
注册在系统LSP中的TCP服务组件 |
CSClientManagerPrj.dll |
一个ActiveX控件;用于浏览器和本地模块数据交互的代理; |
四、windowPCVDI客户端连接资源获取流程
①、打开客户端连接VDC 。用户双击桌面VDI图标会拉起SangforCSClient进程,然后跟VDC建立起连接,并从VDC上下载客户端组件元数据文件(记录版本、MD5值等)
拉起SangforUD.exe去检查客户端组件是否需要更新,若需要更新则完成更新任务。
VDC上VDI Client的设置即在此阶段完成
②、输入用户密码完成登录认证
用户输入完用户密码后,SangforServiceClient会拉起SfRemoteAppClient进程向VDC请求用户资源配置以及用户策略。并根据用户的资源情况及VDC配置情况选择直接接入资源还是拉起浏览器显示资源。
③、点击资源接入虚拟机(独享桌面资源)
SfRemoteAppClient将资源名及用户名当作命令行参数拉起客户端会话进程RVLSession,此时会向VDC请求接入虚拟机的信息(IP和端口) 此时若虚拟机没有开机,VDC则会给HCI下发虚拟机开机的任务,等虚拟机的KVM进程起来后,将HCI返回的虚拟机对于的IP和端口返回给客户端。客户端再使用此IP和端口接入虚拟机。 PS:所以若虚拟机没开机,这个过程会明显较长
五、WindowsPC客户端相关日志
5.5.6之前版本的日志:
SangforCSClient 模块: %appdata%\sangfor\VDI\Log\SangforLog+时间.log
RemoteAppClient 模块:Dbgview和部分日志路径%appdata%\sangfor\VDI\Log\SangforLog+时间.log
Spice客户端:RVLSession:%appdata%rvlsession\rvllog.log
PS:其它日志或详细日志需使用Dbgview抓取
5.5.6及之后版本的日志 统一存放在C:\sflogs\client目录,日志文件会根据进程名称及进程所属的用户名称分开存放。
csclient.log 为SangforCSClient(用户登录认证)的日志 rvlsession.log 为rvlsession(虚拟机会话)的日志
app_client.log 为SfRemoteAppClient(请求虚拟机配置信息等)的日志
ecagent.log 为vECAgent(跟VDC控制台;用户使用浏览器登录通讯)的日志