文档会逐步的增加和完善,毕竟只是个人整理和发布,有问题欢迎交流。
Blog:https://xenme.com
Citrix产品动手实验文档
XenApp:
Citrix入门系列教程-XenApp5 For 2003.pdf (1.8 MB, 5,144 次)
Citrix入门系列教程-XenApp6 For 2008R2.pdf (2.5 MB, 5,509 次)
Citrix入门系列教程-Single Sign-On.pdf (2.1 MB, 4,078 次)
XenDesktop:
Citrix入门系列教程-XenDesktop4.pdf (4.2 MB, 3,575 次)
Citrix入门系列教程-XenDesktop 5.pdf (2.8 MB, 4,775 次)
XenServer:
Citrix XenServer 5.6安装指南.pdf (1.9 MB, 4,792 次)
Citrix XenServer 5.6管理员指南.pdf (2.8 MB, 4,322 次)
Citrix XenServer 5.6虚拟机安装指南.pdf (2.0 MB, 5,016 次)
NetScaler:
*****************************************************************
文档计划:
*****************************************************************
文档会逐渐的添加并完善,如果大家有需要的技术类型的文档,我也会逐步提供,欢迎留言说明需要的文档,同时也欢迎交流讨论!
计划中的文档:
Edgesight
SmartAuditor
即将发布的文档:
Single Sign-On
姚工,你好
我又有新的问题来请教你了。
我配置好NETSCALER,外网访问我设置好的网址https://access.asdf.local(证书已配置好了)
然后跳转到STOREFRONT(单独拿的两台服务器做SF的冗余,XD上的没用)
STOREFRONT报错,无法完成您的请求。
XD和SF上,都没有报错信息,请问还有哪里有问题?
这个看起来像是SF和数据库的通信问题。
具体可以开SF的debug log看看。
http://support.citrix.com/proddocs/topic/dws-storefront-12/dws-troubleshoot.html
http://support.citrix.com/article/CTX139592
froyo,你好
已设置成没有100M分区的WIN7,成功刻录成虚拟磁盘,网络启动正常,当在PVS服务器上,把硬盘启动,改成虚拟磁盘启动后,同一台TARGET DEVICE启动,就永远卡在”WINDOWS正在启动”这个黑屏画面上了,请问是什么问题?VDISK权限问题?镜像刻录问题?
大神,我今天又做了一天试验,分别在XENSERVER6.2和EXSI5.5上,只建AD,SQL,XD1,XD2,然后建域,装SQL,用的是WINDOWS08R2的操作系统,只要XD2加入XD1后,就有一个警告。
否则 WCF 调用中将出现未处理的异常: System.UnauthorizedAccessException: AGAIN\DCTHREE$
at Citrix.Fma.Sdk.ServiceCore.LogicBase.CheckAuthorization(Func
2 isTrusted)
1 operation, Func`2 defaultValue, Enum code)at Citrix.Configuration.SDK.ConfigurationService.b__6e()
at Citrix.Fma.Sdk.ServiceCore.ServiceBase.CheckedCall[T](String name, Func
在出这个警告之后,哪怕是发布MCS,都无法启动,实在是头疼,求大神指点。
从提示来看,应该是SQL权限的问题(DB security login),是否已经允许AGAIN\DCTHREE$访问数据库?
而且,正常情况下, 如果你两台DDC的版本一致,都没有打任何补丁的话,也是不会提示你升级DB Schema的。觉得有些奇怪。
另外一个可能的问题就是,VM是否有做sysprep,虽然是个低级错误,但是也应该检查确认一下。
回复您的疑问,所有SERVER操作系统,全部是用WIN08R2的系统,关闭防火墙后,运行SYSPREP,转换成模板,进行快速部署的。
DDC的版本,也是用的同一个镜像,XD7.5(官网下载),SQL是用的08英文标准版。
至于SQL权限问题,我也实验过。当我XD1新建数据库后,数据库权限上,只有XD1,但我XD2加入XD1站点时,提示STUDIO是否自动更新数据库,我点YES,当创建完毕后,可以看到AGAIN\DCTWO和AGAIN\DCTHREE两个用户权限。如果XD1新建数据库后,在SQL上做该数据库镜像,可以成功,但是数据库只有XD1权限,XD2无法加入该站点。曾经试着添加XD2权限到数据库上,但是都失败了。求大神指点。
froyo,你好,我周末又做了一次实验,我在WIN08R2上,建好了域一台,SQL08R2标准版一台,XENDESKTOP7.5一台,新建一个站点(站点链接SQL服务器后,XD创建数据库),没有警告和报错,之后,新建了第二台XD7.5,加入第一台已建立好的站点,出现一个STUDIO是否自动更新数据库,我点的是,加入完成之后,XD1上有个警告。
否则 WCF 调用中将出现未处理的异常: System.UnauthorizedAccessException: AGAIN\DCTHREE$
at Citrix.Fma.Sdk.ServiceCore.LogicBase.CheckAuthorization(Func
2 isTrusted)
1 operation, Func`2 defaultValue, Enum code)at Citrix.Configuration.SDK.ConfigurationService.b__6e()
at Citrix.Fma.Sdk.ServiceCore.ServiceBase.CheckedCall[T](String name, Func
我也不知道怎么处理了,跪求解决办法。
如果你点了upgrade DB Schema的话,升级成功后,关闭studio重新打开应该就没有问题了。
如果还不行,建议重启一下DDC或者重启DDC上的所有CTX SERVICE
发布MCS.
Citrix Broker Service 在处理某个 HTTP 请求时发生未知异常。
错误详细信息:
请求 URL: http://dctwo/scripts/wpnbr.dll
异常类型: Citrix.Fma.Sdk.Dal.DALDataStoreException
异常调用堆栈: at System.Data.SqlClient.SqlInternalConnectionTds.OnEnvChange(SqlEnvChange rec)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource
1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1 retry, DbConnectionOptions userOptions)
1 retry)at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
1 retry)
1 groupSids, IEnumerableat System.Data.SqlClient.SqlConnection.Open()
at Citrix.Fma.Sdk.Dal.SqlTxProvider.Open(DbConnection conn)
at Citrix.Fma.Sdk.Dal.BaseTxProvider.CreateConnection(CdsTxOptions txOptions)
at Citrix.Fma.Sdk.Dal.CdsTx.GetStoredProcedure(String spName)
at Citrix.Cds.Broker.DAL.GeneratedBrokerDAL.EnumerateSelectedResources_TX(CdsTx _tx, SecurityIdentifier userSid, IEnumerable
1 denyOnlySids, IPAddress endpointIPAddress, String endpointName, Nullable
1 isViaAG, IEnumerable1 smartAccessTags, Boolean enumeratePrivateDesktops, Boolean enumerateAOFUDesktops, Boolean enumerateSharedDesktops, Boolean enumerateApplications, String selectedBrowserName, Boolean& applicationsSuppressed)
1 groupSids, IEnumerableat Citrix.Cds.Broker.DAL.GeneratedBrokerDAL.c__DisplayClass678.b__675(CdsTx _tx)
at Citrix.Fma.Sdk.Dal.BaseTxProvider.RunBatch(CdsTx tx, CdsTxAction txAction, String txName, Int32 retryNumber, Exception& originalException)
at Citrix.Fma.Sdk.Dal.BaseTxProvider.RunBatch(CdsTx tx, CdsTxAction txAction, String txName, Int32 retryNumber, Exception& originalException)
at Citrix.Fma.Sdk.Dal.BaseTxProvider.Execute(String txName, CdsTxOptions txOptions, CdsTxAction txAction)
at Citrix.Cds.Broker.DAL.GeneratedBrokerDAL.EnumerateSelectedResources(SecurityIdentifier userSid, IEnumerable
1 denyOnlySids, IPAddress endpointIPAddress, String endpointName, Nullable
1 isViaAG, IEnumerable`1 smartAccessTags, Boolean enumeratePrivateDesktops, Boolean enumerateAOFUDesktops, Boolean enumerateSharedDesktops, Boolean enumerateApplications, String selectedBrowserName, Boolean& applicationsSuppressed)at Citrix.Cds.Broker.DAL.BrokerCoreDAL.GetVisibleResource(String browserName, ResourceType resourceType, Boolean isRetry, UserAccountDetails userDetails, EndpointDetails endpointDetails)
at Citrix.Cds.Broker.DAL.BrokerCoreDAL.ResolveWorkerForLaunch_Impl(LaunchPrepareRequest prepareRequest, String launchToken)
at Citrix.Cds.Broker.DAL.GeneratedBrokerDAL.ResolveWorkerForLaunch(LaunchPrepareRequest prepareRequest, String launchToken)
at Citrix.Cds.Broker.SessionLauncher.PrepareSession(LaunchPrepareRequest request)
at Citrix.Cds.Broker.XmlHelper.PrepareForLaunch(LaunchPrepareRequest request)
at Citrix.Cds.Xms.Wpnbr.AddressTransaction.HandleRequest(IXmlMultiplexer multiplexer)
at Citrix.Xms.XmlSupport.XmlPerf.WrapTransaction(Type t, Action transaction)
at Citrix.Cds.Xms.Wpnbr.WpnbrServer.HandleRequest(HttpListenerRequest request, WindowsIdentity identity, DateTime startTime)
为什么只要我第二台XD加入第一台XD,就只是简单发布一个MCS,就回出错呢?
最近在esxi5.5的环境下做Citrix做全冗余实验,遇到几个问题,解决不了。第一,XD自动在SQL上建立数据库后,SQL做镜像,XD冗余,之后发布MCS桌面,无法启动,原因是Citrix Broker service遇到未知错误,XD自检计算机目录,出现两个XD站点无法访问ESXI的数据存储。第二,接上,继续配置PVS,PVS服务器冗余,配置TDM,一次通过,TDM关机,PVS从硬盘启动,转成虚拟磁盘启动,找得到DHCP 66 67,就是停在WINDOWS正在启动的黑屏画面上。求大神提出解决思路,谢谢。
1. CBS未知错误的话,可以首先搜索一下对应的exception,看是否是已知问题,另外,已有的补丁,可以先安装再看。无法访问ESXI datastore可以检查下事件日志,应该会有报错信息
2. VM hung的问题,如果配置没有问题,那么,可能就是软件的兼容性问题。需要看你VM Hardware version以及OS版本。可以尝试修改ethernet0.pciSlotNumber = “192”
谢谢大神。Citrix Broker Service 在处理某个 HTTP 请求时发生未知异常。
错误详细信息:
请求 URL: http://dctwo/scripts/wpnbr.dll
异常类型: Citrix.Fma.Sdk.Dal.DALDataStoreException
异常调用堆栈: at System.Data.SqlClient.SqlInternalConnectionTds.OnEnvChange(SqlEnvChange rec)
这是CBS错误的部分报告。
昨日发布MCS,两台XD冗余后,关掉XD2,成功绕过这个报错,如果开着XD2,同样的操作,一定会爆CBS的错误。
今天PVS问题解决了,转换成虚拟磁盘启动后,新建一个设备,然后用新建的设备,再启动虚拟磁盘就过了,不知道原理。
接着,发布PVS,一切正常,但是在终端启动发布的MCS和PVS桌面时,都无法启动,又是CBS报错,哎,做了一个星期,始终绕不过CBS的报错,好痛苦,大神能远程看看嘛?
XENDESKTOP对VC5.0的管理上 使用专有虚机部署是基于快照
有什么办法将虚增加的磁盘空间进行压缩
在虚机里进行磁盘整理后 空间反而变大
这个空间的增大是由于ESXI造成的,和XD没有关系。
只有在模板虚机的磁盘使用Thin Provisioned才会出现,磁盘空间按使用量逐渐增加。
做磁盘整理(Disk Defragmentation),会导致ESXI host大量的I/O消耗,同时由于整理需要移动部分条带的内容,导致比之前使用更多的空间,最终ESXI host其实会分配更多的空间给VM,势必会导致基于这个模板的快照空间更大。
楼主请问一下xendesktop里面遇到很奇怪的问题,DDC上显示状态为使用中。再次连接就闪断。在DDC界面上也无法手动注销,你是否遇到过此种情形?
考虑可以使用策略中自动注销的方式进行做变更,修改了ICA保持活动状态和断开会话计时器策略了,分别以5分钟为时限。看到策略中有一条会话空闲计时器,此策略未进行配置默认配置不知道是否会有影响,而且就算配置了此条策略的话是否会与前两条策略冲突呢?
连接后闪断,需要看一下Broker.log/WorkstationAgent.log看prepraresession过程中是否有成功,另外,由于已经开始连接了,可以检查portica.log看是否是连接出错。
Keep-Alive主要是预防session异常断开的一个心跳,而session idle timer以及disconnected session timer和你实现的有关。
无论是用户策略还是计算机策略,是否和我连接的方式有关系,receiver和web方式都能生效策略吗?还是必须去web interface方面查看策略
这个策略是应用到桌面里面的,和连接方式,是否从WI都没有任何关系。
WI里web站点有个会话超时设置那里需要也一起设置吗
WI站点的超时设置是指,当你登陆WI站点以后,如果在规定的时间内,没有再做任何操作(点击页面/搜索/启动APP或者桌面等),那么WI会自动结束当前会话,并需要重新登陆WI才可以继续操作。和XA/XD内部的session断开/注销等操作完全两码事。
哦,解释的非常详细,非常感谢!是否可以加个qq或其他工具呢?关于每次连接时都会闪断的这个问题确实比较难分析
博主您好,看到您的一篇文章说Xenserver6.2版本已经完全开源。那么我可以免费使用他的所有功能么?尤其是HA和WLB?
是的,XS的所有功能全部开放了。
但是WLB功能目前已经淘汰,所以,XS6.2是没有办法用了,但是HA可以使用。
博主您好,我用xenserver开了点vps,现在碰到个问题老是有人用 windows的vps在上面攻击扫描,请问这方面有没什么办法可以限制下,服务器发包扫描ip端口的问题。
如果你是说,VPS扫描同一个host上的其他VM,那么XS层面除了VLAN,没有什么其他好方法。
其他的可能可以的就是调整XS自带的OVS的参数,看能否实现isolated networ,原生OVS可以,XS没研究过,不确定。
您好,我现在遇到一个问题不知道您有没有遇到过,win2003sp2 32bit,xenapp4.5的版本,有一个用户,打开应用正常,但是打开的应用都是第一次打开的那个应用。举个例子:用户登录打开IE,再打word,但是打开的应用仍然是IE,其他用户正常,就是这个用户频繁出现该问题。清理过用户配置文件,也不行。
这个看起来只是一个个案。
建议WI上抓包,看出问题的时候,点WORD,查看WI/XA之间的XML请求。如果XML返回的数据有问题,那么问题可能处在XA,否则,观察WI/Client端的通信了。
是WI返回的错误,还是客户端由于什么原因导致的问题。