M盘和IFS的来龙去脉

12/3/2006来源:Exchange Server人气:7625

在EXCHANGE 2000发布的时候,微软提出了“WEB STORAGE SYSTEM”的全新概念,其核心就是提供多种途径来访问EXCHANGE SERVER的数据库。这些途径目前包括:
* 文件系统/IFS
* HTTP WEBDAV
* EXOLEDB/ADO
* CDO

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

打开M盘,你会看到一个以你当前域名命名的文件夹,在它的下面,有一个包含有所有邮箱的文件夹,叫MBX,另一个是包含有所有公共文件夹的目录。在MBX的下面,你会看到一个一个以用户名命名的邮箱文件夹,在这些用户邮箱文件夹的下面,你就可以看到INBOX、OUTBOX等邮箱内容,还有一些特殊的结构信息,在这些邮箱文件夹里,邮件是以EML格式存储的。

EXIFS做为一个服务,使用了一个名为\\.\BackOfficeStorage的特殊的共享名来指向这些数据库文件(你可以在IIS里看到它们)。你可以在命令行(CMD)下,直接使用“DIR \\.\BackOfficeStorage\Doamain\MBX”这样的命令去显示数据库里的内容。在有映射的情况下,这里的命令和“DIR M:\Domain\MBX”的命令结果是相同的。

由于M盘是一个标准的文件系统,所以有时一些软件和管理员,喜欢在M盘直接对数据库进行操作,这样有可能会破坏掉数据库的结构,因此微软提供了一个将M盘隐藏起来的方法,你可以修改注册表的以下键值来改变M盘的映射与否:

HKLM\System\currentControlSet\Services\ExIFS\Parameters
Name:DriveLetter
Data Type:REG_SZ
Value:Drive Letter For IFS(盘符,不需要冒号)
在这里你可以修改映射的盘符。比如S盘。

NOTE:在更改注册表后,需要重新启动IS服务才有效。

在取消M盘映射后,你仍然可以通过\\.\BackOfficeStorage来访问数据库。在EX2003里,系统默认已经取消了M盘的映射,你可以看到IIS里的路径都是上面这个路径了。

ExIFS是一个系统的隐藏服务,用户没有办法通过服务控制面板来控制它。你可以使用以下命令来控制该服务:
net start exifs 启动EXIFS服务
net stop exifs 停止EXIFS服务

ExIFS使用运行在WINDOWS内核模式的EXIFS.SYS驱动程序来实现。我们知道,文件系统和EXCHANGE的数据库是完全不同的两个体系结构,文件系统中的文件只包含比较少的属性,而保存在存储组里的邮件,有其特定的属性,并且,在存储组里中,邮件之间还有复杂的关联关系(比如跟邮箱的关系、和视图的关系等等)。因此,M盘以EML存在的邮件,只反映了邮件所有属性的一个很小的子集。任何对M盘的不恰当操作(比如手工删除、移动、复制等,还有病毒软件的扫描、甚至于系统自己的备份)都会破坏数据库的内部关系,导致数据库损坏。依据以往的经验,造成数据库损坏的原因,有相当大的一部分是因为手工对M盘的操作导致的。

另一个典型的对M盘的错误认识是,管理员以为备份了M盘就可以备份所有的邮件了。这是完全错误的。M盘只保存了数据库内容在文件系统上的一个映射,M盘中所保存的邮件,和数据库的实际邮件的属性是不一样的。备份M盘不仅不能保存邮件,还有可能带来一些严重的后果比如不能访问附件等)。备份了M盘,是没有办法恢复数据库的所有信息的。因此备份EXCHANGE的正确做法还是利用备份工具备份存储组数据库。任何文件级的备份都是错误的。

[注]:
本文内容节选自Winmag国际中文版之《浅谈Exchange Server邮件存储系统--原理和技巧》,全文内容请参考:
浅谈Exchange Server邮件存储系统-原理篇
http://www.5dmail.net/html/2004-11-12/20041112170608.htm

浅谈Exchange Server邮件存储系统-技巧篇
http://www.5dmail.net/html/2004-11-12/20041112170720.htm

,

, ,