Author: Froyo
TranslateIP For StoreFront V2
Translate for Storefront从最初发布到现在已经过去了超过5年时间,目前仍然时不时有人来咨询具体的使用问题,所以决定对过去收集到的一些问题进行集中处理,过程中由于系统以及StoreFront的一些限制,于是重构了所有代码以及配置文件,以便后续的维护和使用。 旧版本中存在的一些限制和问题 对于通过WebHelper方式调用的浏览器或者终端无法进行修改。比如Chrome浏览器就是使用的这种方式,在点击应用的时候,Storefront会返回一个链接(而不是常规的ICA文件),而后调用Receiver的过程中传递过去,Receiver再来通过链接下载ICA文件。 由于IIS Module权限的问题,导致配置文件以及写日志文件存在权限问题,配置过程中较为复杂,所以,在最开始的时候就决定不引入日志,从而导致后续出问题后troubleshooting比较困难。
Citrix Workstation AgentService 无法应用计算机策略
今天处理了一个XA/XD 7.12 Server VDA未注册的问题,我们尝试重启Citrix Desktop Service之后发现下面的两个警告和错误: Citrix Workstation Agent Service无法应用计算机策略。 错误详细信息: Call to CitrixProcessGroupPolicy failed, errorcode=126
Receiver for Web Tracing
我们知道,对于StoreFront本身,可以通过PowerShell开启verbose tracing,可以参考: Add-PSSnapin Citrix.DeliveryServices.Framework.Commands # 这里要说明一下相对KB新增的两个参数: # -FileSizeKb, 默认设置单个日志文件只有1M大小,对于生产环境实在太小,建议修改到20-50M # -FileCount, 同样,默认设置值保留3个日志文件,建议增加到5个 Set-DSTraceLevel –All –TraceLevel Verbose -FileSizeKb 20480 -FileCount 5 How to Enable StoreFront Verbose Logging 对于Native Receiver,在CDF Trace之外,我们还可以通过注册表的方式来开启Authentication Manager以及self-service相关的verbose trace,可以参考: How to Enable Logging on Receiver for Windows Using Registry Entrie
通过StoreFront控制Native Receiver快捷方式行为
大家都知道,我们可以很方便的通过前台Receiver的注册表以及客户端组策略的方式来控制发布应用以及桌面的快捷方式是否放到开始菜单以及桌面上。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Dazzle] “PutShortcutsOnDesktop”=”” “PutShortcutsInStartMenu”=”” 设置相应的值为True/False即可实现开关。 同样,我们也很容易在前台的组策略模板中找到相应的设置。相关路径如下: #需要先导入ADM或者ADMX策略模板 Computer Configuration \ Administrative Templates \ Citrix Components \ Citrix Receiver \ SelfService \ Manage App shortcut
获取PVS Target RAM Cache的使用情况
目前对于PVS来说,Cache的选择种类较多,但是常用的无非下面四种: Cache on server Cache on device hard drive Cache in device RAM Cache in device RAM with overflow on hard disk 而对于缓存到PVS服务器或者直接缓存到硬盘上,我们可以直接通过查看缓存文件的大小来确定实际的缓存使用情况。但是对于使用RAM进行缓存的两种情况,我们无法直观的查看实际的内存分配以及使用情况。 通过文档(https://docs.citrix.com/en-us/categories/solution_content/implementation_guides/digging-into-pvs-with-poolmon-and-wpa.html)我们发现缓存相关驱动分配的内存对应的tag为VhdR,因为我们也就可以使用poolmon工具来进行查看。
StoreFront Troubleshooting and Logging
本文主要介绍StoreFront的各种日志以及开启方法。 在StoreFront的问题拍错(Troubleshooting)过程中,主要涉及到下面的一些日志: 安装日志(Installation Logs) 控制台/PoSH日志(MMC Console / PoSH Logs) 详细的Service日志(Services Verbose Tracing) 系统事件日志(Windows Event Logs) 网络包(Network tracing)
Enable SSON For XenApp Services Support
当StoreFront启用了XenApp Services Support (Legacy support)之后,那么Receiver就仍然可以通过Pnagent的方式通过config.xml方式来访问以及添加账户(Account/Store) 但是如果需要对于legacy site或者说是XA Services support site开启直通登录(passthrough,single sign-on)的话,那么只能通过命令行或者直接修改配置文件的方式才可以。 单单通过GUI启用authentication method只针对Store Web生效。
Storefront 客户端检测流程
这篇文章主要介绍StoreFront ClientDetection 的整个流程,便于针对相关问题进行排错处理。 下图基本上囊括了整个客户端检查的5个步骤(点击查看大图)。
Hyper-V在线抓取VM Memory Dump
在解决问题的过程中,碰到一些hang或者crash的情况,或者一些不明原因,除了抓取一般的日志,Memory Dump往往能够起到意想不到的作用。但是在物理服务器的环境下,如果要进行Complete(Full) Memory Dump基本都需要触发Windows Crash才可以收集,这对某些服务以及业务的影响过于大,而且,有些场景的特殊,导致我们无法很方便的获取到Memory dump。 现如今,大量的业务迁移到虚拟化平台,服务器虚拟化的引入对于Memory dump的抓取也提供了很好的支持,这极大的方便了我们排错的过程,同时,最大限度的降低对当前业务的影响。
彻底禁用SilentDetection.aspx,极速登录
其实在之前有发过两篇关于加速Web Interface登录过程的文章: WebInterface / Storefront访问加速 Web Interface的页面跳转过程分析 主要针对Web Interface登录过程中页面的加载流程和如何跳过SilentDetection页面进行了简单的介绍,而且给出了一种简单的跳过客户端插件安装提示的方法,该方法无法完全避免客户端监测,只是减少了部分步骤。 这篇文章主要是详细理解加载过程并提供彻底跳过SilentDetection的方法。
list_domains
XenServer中可以使用list_domains命令来查看所有VM以及Dom0的运行状态以及简单的资源消耗,如下: [root@xenserver ~]# list_domains id | uuid | state 0 | b799f916-963f-4a35-ac59-0f915e4fb206 | R 1 | 6553c381-2eba-bc48-11d5-dbf7b68d6d76 | B H 4 | 0742e762-bb94-eec1-ae80-b8aec4ff04c0 | B H
XenDesktop升级Database Schema
当安装XenDesktop更新的时候,有些补丁会要求升级Database Schema。一般情况下,升级后,打开Desktop Studio会自动提示Database Schema需要升级,此时,如果当前登录用户具有数据库管理员权限,那么可以直接点击向导,并由Desktop Studio直接远程来完成升级操作,如果没有权限的话,同样可以通过向导导出Database的升级脚本(sql文件),然后通过该脚本到Database服务器上执行后手动来升级。 但是,当一个全新的Site,在没有创建任何Desktop Group的前提下,就直接对当前DDC进行升级,升级完成后会发现,即使打开Desktop Studio仍然不提示升级Database Schema,这是一个已知问题,当然如果知道了这个,可以在升级直接手动来创建一个临时的桌面组,然后再升级,避免手动升级的麻烦。但是,当问题已经发生的时候,我们就需要知道如何来手动操作了。
XenServer重新生成自签证书
由于时区设置等问题,经常导致XS或者其他新创建服务器的时间可能被提前到其他日期,导致服务器自签的证书在未来的时间才生效,导致当下无法进行测试,只能重新来签发证书。 XenServer中需要用到证书的有两个组件: xapissl:所有外部SDK以及管理工具都需要通过该组件来与XS通信 cimserver: 这个是SCVMM Intergrate Suit组件,SCVMM需要通过该组件来和XS通信 所以,我们只需要重新生成证书,然后重启两个组件即可。 echo “Stopping services” /opt/openpegasus/bin/cimserver -s /etc/init.d/xapissl stop echo “Backup cert” cert=”/etc/xensource/xapi-ssl.pem” cert_backup=”${cert}.`date -u +%Y%m%dT%TZ`” mv -f “${cert}” “${cert_backup}” echo “Regenerate self signed certificate” /opt/xensource/libexec/generate_ssl_cert “${cert}” `hostname -f` echo “Starting services” /opt/opengegasus/bin/cimserver /etc/init.d/xapissl start
TranslateIP For StoreFront外网发布地址转换
在Web Interface时代,如果需要把内网的XA/XD环境发布的外网,那么可以通过设置Secure Access来进行IP以及Port映射,从而让外网用户通过地址转换的方式访问内网资源。但是在StoreFront发布之后,该功能已经被取消,取而代之的是,如果需要使用StoreFront发布资源到外网,那么唯一的办法就是通过Access Gateway/Netscaler进行ICA代理,否则就只能回退到使用Web Interface。 针对这种情况,这里提供了一个简单的IIS HttpModule来提供地址转换的功能,让StoreFront也具有了地址转换的功能,下载地址请参考文章结尾。
XenDesktop 5.6开启ReadOnly Clipboard
在XenDesktop 5.6中增加了只读磁盘映射(ReadOnly Client Drive Access),启用之后,将能够以只读的方式访问客户端磁盘,而不能写入,防止了数据的泄露。 而另外一个比较方便的功能剪切板重定向(client clipboard redirection),提供了方便的同时,也可能导致用户从虚拟桌面内部复制并粘贴数据到客户端,但是没有策略来实现该功能。 我们可以通过在VDA中添加注册表的方式来启用只读剪切板功能。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\Virtual Clipboard] “ReadOnly”=dword:00000001 设置完成后,断开并重新连接即可生效。
Citrix Receiver界面显示语言控制
在某些特殊语言的系统上,CitrixReceiver安装以后,显示语言可能会异常。有时候,即使使用清理工具(Receiver Clean-up Utility)清理后,重新安装,仍然会出现显示问题。 目前已知的,影响Receiver语言的有两个模块或者位置:windows系统本身设置以及Citrix设置。 由于Receiver的安装包不存在针对不同的语言而发布的特定版本,其只有一个安装包。所以,正常情况下,Receiver会自动检测系统的“区域和语言”(Region and Language)中的“格式”(Formats)设置。如果,该设置与显示语言设置不同,那么Receiver会依据该位置来决定显示语言,如下图。
XenServer补丁自动化安装脚本
XenServer的补丁安装如果通过XenCenter的话,没有办法很多台主机同时进行,而且XenCenter有些局限,在XenServer的XAPI服务启动过慢的时候,实际补丁安装成功,但是XenCenter还是提示安装失败等。 所以,本文章主要是介绍使用HTTP Server和Bash脚本来进行自动化安装的方法,其实,目前发现的有两种方法。一种是讨巧的方法,安装完所有补丁,然后只重启一次。另外一种方法就是严格按照XenServer的要求,安装每个补丁,根据补丁的需求来决定是否需要重启XAPI或者重启服务器,或者是不需要做任何操作。
XenServer Local Storage分区丢失后的恢复
之前在进行XenServer的一次升级操作以后发现,服务器重启以后,Local Storage无法挂在,fdisk -l命令发现,整个local storage分区消失。所以,我们需要从现有信息来恢复分区信息。 XenServer如果采用LVM分区,本地会和一半的Linux一样,会有一份备份的LVM信息,位置保存在/etc/lvm/backup/目录:
Windows(Win7/Win8/2008R2/2012)启用文件内容搜索
从XP升级到Vista一直到现在的Windows 7, Windows 8,甚至服务器操作系统Windows 2008 R2和Windows Server 2012默认都没有提供像XP一样的内容搜索功能。默认搜索只能够搜索文件名,没法搜索文件内容。 Windows 7和Windows 8都可以通过设置文件夹选项即可启用内容搜索,但是Server系统却不可以。