| 
 咨询电话:010-51727811/12/13
当前位置: 首页 > 新闻中心 >
数据共享的空间分配(一)
时间:2012-11-21 09:29  来源:飞客数据恢复   作者:飞客数据恢复工程师
I/O栈的概念,有助于理解数据共享是如何工作的。这种I/O栈由下面几层组成:
第1层:物理层。
第2层:介质访问控制(MAC)层。
第3层:总线/网络层。
第4层:块转换层。
第5层:分配层。
第6层:数据/文件层。
第7层:应用层。

在这种堆栈中,数据/文件层和分配层的功能通常由文件或数据库系统完成。块转换层的一部分功能也是由文件或数据库系统,或者由提供虚拟化功能的卷管理器或主机I/O控制器完成的。
存储共享池主要涉及到块转换技术,目前已经由多种产品在I/O路径的不同点处实现。存储共享和数据共享之间的差别在于:数据共享要求文件或数据库系统能管理分配层,或者由一个独立的实体进行管理。传统的做法是,将分配层的功能作为文件或数据库系统的一个分离功能实现。不过,将数据库和文件系统严格限制在数据/文件层,让其他进程管理需要共享资源的所有系统的存储分配,至少在理论上是可行的。

1.统一的文件系统视图

数据共享技术中存在的一个难题,是如何保证同时进行的多个用户/应用得到一个统一的数据视图。这意味着每一个涉及到的文件系统都必须有办法知道文件和目录对象保存的地方。这听起来可能很简单,但是实际上在数据共享内核中实现起来却非常困难。

单个文件系统可以管理多个实际或逻辑磁盘卷的存储位置的分配。实际上,这是通过设备虚拟化实现的,即为文件系统创建虚拟的驱动器使用,如图中所示。

但是,如果多个系统管理单个共享驱动器存储位置的分配时,情况就不一样了。在SAN中多个文件系统可以访问一个共享的存储资源,不过它们必须能协调工作,至少需要在由哪一个系统控制空间分配的问题上达成一致。如图中所示。

图中给出的方案只适合一定条件下的情况。每一个参与的文件系统都必须遵守共同的访问规则,当某个文件正在管理存储时,其他的文件系统必须知道这事,并且它们不能写文件和更新文件系统信息。为了保证所有系统能够正确查找和读取文件信息,需要维持一个统一的秩序。

1999年,如果在SAN中使用WindowsNT,会存在下面的一个问题:当别的文件系统已经在管理存储资源时,WindowsNT系统不能识别出来,而仍然试图写自己的分配信息。这引起的后果是无法预料的,很有可能造成数据的丢失。