快捷搜索:   nginx

Exchange Server邮件存储系统-原理篇(2)

  --ExOLEDB/ ADO

  --CDO

  其中,提供文件系统服务的IFS技术是引起争议比较多的一个模块。在安装Exchange Server 2000后,系统会出现一个M盘。这个M盘,就是由微软通过IFS(Installable File System)技术实现的一个数据库到文件系统的映射。开发人员可以通过标准的文件操作API(如CreateFile, OpenFile等)来访问Exchange Server的邮箱和邮件。

  打开M盘,你可以看到一个以你当前域名命名的文件夹。在这个文件加下面,你会看到一个包含了所有邮箱的文件夹,名为MBX。MBX下面,是以用户的姓名来命名的邮箱文件夹,在每个文件夹下面,都可以看到Inbox、 Outbox等邮箱的内容。每一封信件,都是以扩展名为EML的文件来表示的。

  ExIFS使用了一个名为.BackOfficeStorage的特殊共享名称来指向数据库文件。你可以在命令行中运行“Dir .BackOfficeStoragedomain.conMBX”,这个命令的实行结果跟直接使用M盘作为盘符是一样的。

  我们可以通过修改注册表的方式所来改变Exchange Server所映射的盘符。

  HLKMSystemCurrentControlSetServicesExIFSParameters

  Name: DriveLetter

  Data Type: REG_SZ

  Value: Drive letter for IFS (盘符,不需要跟冒号)

  在更改注册表以后,需要重启Information Store Service使更改生效。

  我们也可以使用如下的命令行工具来改变M盘的映射:

  Subst X: .BackOfficeStorage 注释:把Exchange Store映射到X盘

  Subst /d M: 注释:删除对M盘的映射

  如果我们移除了M盘,我们还是可以通过.BackOfficeStorage这个共享名字来访问Exchange Server的数据库。

  ExIFS在Windows中是作为一个隐藏的服务来运行的。下面的注册表键值定义了这个服务的参数:

  HLKMSystemCurrentControlSetServicesExIFSParameters

  由于这是一个隐藏的服务,因此我们没有办法通过Service控制面板来对这个服务进行控制。但是我们可以通过命令行来做到:

  NET Start ExIFS 注释:启动服务

  NET Stop ExIFS 注释:停止服务

  下面这张图表示了ExIFS的架构。

Exchange Server邮件存储系统-原理篇

  ExIFS是使用运行在Windows内核模式的ExIFS.sys驱动程序来实现的。

  我们知道,文件系统和Exchange Server的store是两个完全不同的体系结构。文件系统中的文件只包含比较少的属性,而保存在Store中的邮件,有其特定的属性,并且,在 Store中,邮件之间还有非常复杂的关联关系(跟邮箱的关系,邮箱文件夹的视图等)。因此,M中以EML形式存在的文件(邮件),只是反映了邮件所有属性和关系的一个子集。一些对于M盘的不适当操作,往往会破坏数据库内部的关系,造成数据库损坏。比较典型的例子是,防病毒软件扫描M盘,发现“嫌疑病毒” 并予以清除。根据微软技术支持部门的统计,这是造成Exchange Server Store数据库损坏的主要原因之一。因为防病毒软件在清除病毒文件(EML文件)时,采取“野蛮施工”手段,往往会破坏数据库内部的关联和邮件结构,进而造成数据库文件内部结构的损坏。

  另一个针对ExIFS的错误观点是:管理员认为对M进行备份即可保存Exchange Server的状态和所有数据。这是完全不正确的。M盘只是数据库内容在文件系统上的一个映射,M中所保存的“文件”,归根结底还是数据库中保存的邮件。由于映射到M盘,数据库中的邮件关联和关系都被去掉了,备份M盘,是没有办法恢复数据库的所有信息。

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论