什么是Data Store and Data Collector?
我们知道CITRIX XenApp(或者说是Presentation Server)服务器保存配置信息在数据库中,这个数据库就叫做IMA Data Store。这个数据库对XenApp来说,只是保存了静态的配置信息,其中不保存任何XenApp环境中的运行状态信息,换句话说,Data Store只是保存在服务器关闭以后,需要静态存储的信息。一般包括通过管理控制台(Management console)进行的各种设置值。
可以想象,XenApp服务器需要服务器来持续监视很多动态信息。比如,用户在哪台服务器上启动了哪些会话(Session),哪台服务器在线或者离线,每台服务器的负载状况等等,这些动态的信息在以下几种情况下会需要,比如:
- 管理控制台需要显示每台服务器上的每个用户信息给管理员;
- 当有入站连接请求的时候,服务器需要知道哪台服务器在线(online),可以提供服务;
- 系统在做负载均衡的时候,需要知道相关服务器的负载情况;
- 等等
为了解决这些问题,各个服务器之间需要一个共享各服务器状态信息的方法,在早期的版本中,Citrix为了解决这个问题,在每台服务器上都开一段端口,分别和每台服务器建立连接来同步信息,具体机制就不详细介绍了已经被废弃,因为每个服务器之间都需要建立连接诶,可想而知,性能低下。
现在的版本中(4.5版本以后),每台独立的XenApp服务器监视自己的状态信息(动态信息),当有变化的时候,IMA服务就会联系Data Collector的IMA服务(2512端口),通知Data Collector,已经有新的状态信息更新,然后Data Collector会更新内存中的所有服务器的动态信息。由此可知,Data Collector是IMA服务维护的一块内存信息,用来保存zone或者zones中的各个服务器的状态信息。
Data Collector和Data Store的关系
很显然,Data Collector和Data Store实际上是不相关的。Data Store用来在数据库中永久保存配置信息,而Data Collector用来在内存中动态保存会话信息。
但是,两者之间也会间接的发生关系。比如: