Offline Files在Windows XP中十大常见问题和解答

 

1 为什么我还能PING通Server但Offline Files却显示Server Offline?

 

CSC(Client Side Cache即Offline Files)在Windows XP中是基于Server,而非基于Share的。当一台Server上某一个Share被强制Offline后,这台服务器上的其他share对该客户端来说都是offline的状态。设计这种行为的原因是避免共享文件之间的关联性导致数据的不同步性。

由于CSC是基于SMB的,通常UNCPath的一个部分被认为是服务器名,如\\Server\Share。所以,如果\\Server\Share1是offline的,那么所有以\\Server\打头的名字的共享路径都被认为是offline的。

Note. 这个行为在Windows Vista和Windows7下已经改变了。Windows Vista和Windows7是基于Share的。

 

2 Quick Sync和Full Sync的区别是什么?

 

在介绍Quick Sync和Full Sync之前,我们需要理解两个概念:auto-caching和sparsely-cached文件。

Auto-caching:当客户端访问Server上某一个文件的时候,如果该Server支持auto-caching,被访问或被使用的那部分文件就会被cache在客户端本地,但是这部分数据可能不是某个文件的全部,可能只是一小部分,这部分被cache在客户端本地叫做Sparsely cached file。

Sparsely cached file是只有在有网络连接的情况下并且该Share是online的情况下才能被访问的。要使得Sparsely cached file在offline的情况下也能被访问到,我们就需要“填充”这些Sparsely cached file使之变成完整的文件。

大多数的Sparsely cached file都会通过CSC Agent被填充完整,所以通常来说Sparsely cached file不会造成什么问题。

但是因为Sparsely cached file在offline的情况下是不可使用的,我们必须要确保这些文件在网络断开之前就已经被填充完整。

 

 

Quick Sync (默认模式)

Full Sync (通过Offline Files Tab或对应得Group Policy开启)

Logon

将本地的修改同步到服务器上

将本地的修改同步到服务器上

将服务器端的修改同步到本地

将服务器上(目标share中)新增的文件标记为offline files

Logoff

填充Sparsely cached file

填充Sparsely cached file

将服务器端的修改同步到本地

将服务器上(目标share中)新增的文件标记为offline files

 

Scenario

Merge local changes

Fill sparse

files

Sync server changes

Pin new files

Click “Synchronize”

yes

yes

yes

yes1

Scheduled

yes

yes

yes

yes1

Idle

yes

yes

no

no

Logon

yes

No

no

no

Logon (sync all files)

yes

yes

yes

yes1

Logoff

no

yes

yes

yes1, 2

Logoff (sync all files)

yes

yes

yes

yes1

 

3 Offline Files和Synchronization Manager的区别是什么?

Offline Files是Windows网络文件系统中的网络文件本地缓存的一种功能实现。

Synchronization Manager是在Windows 2000中和Offline Files一同引入的同步文件工具。

有两种方式可以打开Synchronization Manager:

1) 开始 ->所有程序 ->附件 -> 同步

2) 开始 -> 运行 -> 输入mobsync,回车

 

Synchronization Manager的三个主要的作用:

1) 提供一个集中配置同步的地方

2) 人工触发同步

3) 显示同步的过程和错误信息


 
 
Offline Files:

  • 通过文件或文件夹的右键属性菜单中的“Make Available Offline”和“Synchronize”可以人工设置Offline Files以及触发Synchronization
  • 当文件或文件夹被设置为Offline Files或Offline Folder的时候图标上出现的蓝色箭头
  • 选中某一个Offline File或Offline Folder后,点击Windows Explorer的菜单栏:Tools -> Folder Option -> Offline Files Tab

  •  可以查看Offline Cache的内容

 

4 什么是auto-cache?

 Server可以允许某些Share被客户端offline cache。Offline cache的方式有几种:

(1) No Cache: 客户端CSC不能cache该Server Share

(2) Manual Cache:允许客户端CSC仅cache被标志为Offline Files的那部分共享文件

(3) Auto cache:允许客户端CSC cache所有被访问过的共享文件(无需配置或指定Offline Files)

 

Auto cache的文件在Offline Cache里是被标记为Temporarily cached file。当OfflineCache文件大小超过CSC cache limit的时候,CSC会选择将最近没有使用过的文件cache删除。

 

5 什么是Temporarily cached file?

正如刚才问题4中讨论的,CSC有两种Cache行为:Manual和Automatic。

对于使用UI和GPO设置的Offline Files,我们称之为Manual Cache。这部分Cache的大小是没有限制的。

对于没有Offline Files配置的仅允许auto cache的,我们称之为Auto Cache。其主要使用目的是减少网络流量负载。这部分cache文件就叫做Temporarily cached file。这部分cache的大小是有限制并可设置的 – 可以通过Offline Files Tab上的cache size选项进行配置。当Temporarily cached file大小超出配置的cache size时,最近没有被访问过的Temporarily cached file就会被清除掉。

 

6 如何访问Offline Cache?

1) %windir% \CSC

这部分文件包含Offline Files所有的文件和文件夹。通常情况下,这部分文件不是用来直接看的。如果你打开这个文件夹,你会看到需要以8和0开头的文件。以8开头的是cache下来的文件,以0开头的是cache下来的文件夹。

2) Offline Files Tab-> View Files

这是更user friendly的一个查看offline cache的地方。

注意:这部分文件也是在使用UNC path访问共享文件时必访问的部分,所以当这部分文件损坏的时候,使用UNC path的远程在线访问也会失败。

 

7 何时触发Synchronization?

1) 人工触发,如mobsync

2) Logon

3) Logoff

4) 系统idle的时候(通过mobsync配置具体参数)

 

8 为什么有时候我好像在同步别人的文件?

Per Computer Cache

CSC使用的是一个Per Computer Cache。许多人认为CSC使用的cache是Per User的,但是实际上这是不可能的,因为CSC Cache是基于网络文件系统的,而文件系统只有一个。一台电脑只有一个Offline Cache。

针对以上这种情况,我们也在尽可能的让Cache的用户体验更Per User化 – 同步就是其中一个部分。

是否能同步一个文件是基于当前用户对该文件的访问权限的。当Server上得某一个文件第一次被访问到的时候,当前的用户的访问权限就能被cache下来。

但是,这里有一个问题就是Directory(目录)的权限是没有cache下来的。所以,当每一次Synchronization在进行之前,CSC都需要*遍历*整个directory来寻找当前用户有相应权限的文件。

 

三个常见的问题:

1) Synchronization Manager中有可供选择的所有这台机器上的offline files – “为什么我能看到所有的offline files path?”

答:Per Computer Cache

2) 当Synchronization在进行过程中,有些别人的offline files path会出现?似乎在同步别人的文件?

答:这里有一个问题就是Directory(目录)的权限是没有cache下来的。所以,当每一次Synchronization在进行之前,CSC都需要*遍历*整个directory来寻找当前用户有相应权限的文件。当有的文件的访问权势是everyone时,CSC就会同步它 –
CSC无法判断那个文件是否被设置为当前User的offline
files。

3) 为什么有时候要让我输入用户名和密码来访问我并不需要访问的offline folder?

答:仍然是Directory Permission没有被cache下来的原因。当前用户在实施Full Sync的时候,有一项工作就是将服务器上(目标share中)新增的文件标记为offline files。因为directory permission没有被cache下来,所以CSC也不知道是否应该检查该directory(已被cache的)。因此,所有被cache过的directory都会被尝试同步一遍,而对于当前没有权限的directory,用户就会被要求输入User Credential。

 

9 CSC Cache可以被压缩吗?

可以

 

10 如果CSC Cache文件损坏,如何修复?

 参照微软官方KB文档:https://support.microsoft.com/kb/230738/en-us

注:注册表键值FormatDatabase无需人工删除

 

 本博文仅供参考,微软公司对其内容不作任何责任担保或权利赋予。