存储管理相关的基本概念

存储管理相关的基本概念

 

磁盘:物理的存储设备,

分区:磁盘上一组连续扇区的集合,分区表或其他的磁盘管理数据库保存了一个分区的起始扇区、分区的大小和其他的特征,它与该分区在同一个磁盘上

简单卷:描述了单个分区中的扇区的对象文件系统驱动程序的操作单元

多分区卷:描述了多个分区中的扇区的对象,文件系统驱动程序的操作单元,相比简单卷,提供了性能、可靠性和尺寸变化方面的特性

 

在管理一个特定存储设备的过程中所涉及的设备驱动程序,合起来称为一个存储栈

 




Disk.sys:微软实现的类驱动程序,实现了对于所有磁盘都共同的功能。

Mpdev.sys:在windows多路径IO(MPIO)存储栈中,替代Disk.sys。(MPIO 依赖于被称为“DSM,与设备相关的模块”的第三方驱动程序来管理有关路径管理的细节,计算机和磁盘之间存在不止一组连接硬件,如果一条路径失败,另一条路径仍然可以访问磁盘)

 

磁盘设备对象与分区的设备对象


  

为了兼容NT4 命名规范,存在符号连接:\Device\Haddisk0\Partition0 指向\Device\Harddisk0\DR0等

  

卷的管理

 

基本磁盘卷管理器

FtDisk.sys

一个总线型驱动程序,在PnP管理器和分区管理器驱动程序(Partmgr.sys)帮助下,确定存在哪些基本分区。Partmgr监视分区情况并更新FtDisk,随着FtDisk了解到有关分区的情况,使用基本磁盘配置信息确定从分区到卷的对应关系,当一个卷的所有分区都存在,创建一个卷设备对象:\Device\HarddiskVolumeX,以及在\Global??对象管理器目录中,创建对应的符号链接。

 

 

动态磁盘

动态磁盘是指Windows 中创建多分区卷所必须的磁盘格式。动态磁盘使用LDM (逻辑磁盘管理器)分区方案来进行分区。Windows 中LDM子系统包含了用户模式组件和设备驱动程序组件,并负责监管动态磁盘。LDM 维护一个统一的数据库,保存了系统中所有动态磁盘的分区信息。DMIO(动态磁盘卷管理器)

 

 

卷名字空间

挂载管理器

Mountmgr.sys 为以下设备分配驱动器字母:

在Windows 安装以后创建的动态磁盘卷和基本磁盘卷、CD-ROM、软盘驱动器和可移除设备

驱动器字母分配信息存储在HKLM\SYSTEM\MountedDevices,每个卷都有一个卷名称,但它不一定要分配一个驱动器字母:

\??\Volume[X] ,X代表GUID

 

 

注册表中保存的关于基本磁盘卷驱动器字母和卷名称的数据NT 4风格的磁盘标志特征,以及与该卷相关联的第一个分区的起始偏移位置。注册表中保存的关于动态磁盘卷的数据包括该卷的DMIO内部GUID。

 

挂载管理器在引导过程中初始化时,向PnP登记,当FtDisk 或 DMIO 创建一个卷-à接到通知-à确定新卷的GUID或者磁盘标识特征--à用该GUID或标识符特征作为指导查看其内部数据库--à内部数据库反映了MountedDevices注册表键的内容--à挂载管理器确定其内部数据库是否包含了驱动器字母分配--à没有?请FtDisk或DMIO推荐--à没有推荐--à使用第一个未分配的驱动器字母并定义一个新的字母分配,再为此字母分配创建一个符号连接,并更新MountedDevices注册表键。如果没有GUID,创建一个GUID,此GUID不同于DMIO内部使用的卷GUID。

 

 

重解析点

一个具有固定头部的任意数据块,Windows将它与一个文件或者目录关联起来。其包含一个唯一的“用于标识该重解析点属于此应用程序或系统”的重解析点标记值,也指定了一个重解析点的数据部分的大小和含义。数据部分大小<= 16KB。

 

当NTFS 处理一个文件操作,并遇到一个与重解析点相关联的文件或目录,返回一个重解析代码状态

 

重解析点将它们的唯一标记值存储在一个固定的段中。任何一个应用程序,如果它实现了一个重解析点,必须提供一个文件系统过滤性驱动程序,观察在NTFS卷上执行的文件操作的、与重解析相关的返回代码,检测到-à采取适当的措施

 

Windows NTFS 文件系统驱动程序、I/O 管理器以及对象管理器都部分实现了重解析点的功能。可以认为,对于Microsoft定义的许多重解析点,I/O 管理器相当于重解析点文件系统过滤型驱动程序。

 

如果I/O 管理器从NTFS 接收到的一个重解析状态代码,此NTFS 返回代码对应的文件或目录没有与某一个内置的Windows 重解析点关联,I/O 管理器向对象管理器返回一个错误,对象管理器将此错误当作一个“系统不能访问此文件”

 

挂载点

挂载点使得可以通过NTFS 卷上的目录,将多个卷链接起来,使得没有分配到驱动器字母的卷也可以被访问

 

挂载点是把卷名称(\Global??\Volume[X]当作重解析数据保存起来的重解析点。使用磁盘管理分配或移除卷的路径分配时,正在创建挂载点。

 

挂载管理器在每个NTFS 卷上,维护一个挂载管理器远程数据库,记录了针对该卷而定义的所有挂载点:$MountMgrRemoteDatabase 驻留在NTFS根目录下。NTFS 也在NTFS 元数据文件\$Extend\$Reparse中记录了挂载点。

 

http://www.chinaz.com/server/2010/1110/142311.shtml

 

 

卷的挂载

设备驱动程序或者应用程序第一个访问该卷上的一个文件或目录的时候à一个文件系统声称对于某个分区具有所有权。之后I/O 管理器将所有针对该卷的IRP 转送给此所有者驱动程序。

Windows 中的挂载操作由三个部件组成:

文件系统驱动程序的注册、卷参数快(VPB)和挂载请求。

 


文件系统检查该卷的第一个扇区,其中保存的信息存储了文件系统的格式类型。

如果没有文件系统声明对该卷负责-àNtoskrnl.exe中内置的一个文件系统驱动程序Raw接收该卷,将所有打开该分区上的文件的请求都失败。


系统引导的时候,文件系统识别器作为一个文件系统驱动程序向系统注册:当I/O 管理器在一个新卷的文件系统挂载操作过程中调用文件系统识别器,如果与引导记录相对应的文件系统驱动程序尚未被家在进来,文件系统识别器加在此文件系统驱动程序,之后,将此IRP转发给该驱动程序,让该文件系统驱动程序声明它对改卷的所有权。

 

         引导卷,驱动程序在内核初始化的时候挂载的,其它大多数卷,在引导序列过程中当Chkdsk文件系统一致性检查应用程序运行的时候挂载的。引导时刻的Chkdsk版本是一个原生应用程序,名为Autochk.exe-----在\BootExecute中,被指定为引导时运行的程序。Chkdsk检查每个驱动程序字母,查看该字母关联的卷是否要求做一致性检查。

 

卷的I/O 操作

文件系统驱动程序管理在卷上存储的数据,依赖于卷管理器来跟存储体驱动程序打交道,因而可以读写一个卷所在磁盘。

文件系统--à挂载过程-à获得一个卷管理器的卷对象的引用--à通过卷对象发送卷管理器请求

 

当应用程序想要直接操作一个卷的数据,可以发送卷管理器请求,以绕过文件系统驱动程序。前面我们介绍的文件删除恢复程序就是这样一个例子。当一个文件系统驱动程序或者应用程序向一个代表某个卷的设备对象发送I/O ,Windows I/O 管理器将该IRP 转发给创建此目标设备对象的卷管理器。如:打开设备对象\Device\HarddiskVolume2,并读取其引导扇区。

卷代表一个或多个物理磁盘上的连续区域,卷管理器将相对于一个卷的偏移量转译为相对于一个磁盘开始处的偏移量--à然后将IRP 转发给磁盘类驱动程序-à使用一个小端口驱动程序来完成物理磁盘I/O,并将请求的数据读入到IRP 指定的应用程序缓存中。

 

Volume Shadow Copy Service

 

卷影像拷贝服务,使得内置的备份工具能够记录下文件的一致的视图,包括已经打开的文件。

备份工具开始一个备份操作时,创建一个卷影像拷贝。该驱动程序冻结住所有指向目标卷的I/O ,并为每一个卷创建一个影像卷。



Microsoft 影像拷贝提供者驱动程序在每个卷设备上负载设备对象,备份工具并非在原始的卷上打开文件进行备份,而是打开影像卷上的文件。影像卷代表了一个卷在某个时间点上的视图。影像卷拷贝驱动程序看到一个针对原始卷的写操作,把将要被改写的扇区的一份拷贝读入到一个与之对应的影像卷相关联的、由页面文件支撑的内存区中。对于已修改扇区的影像卷都操作,从这一内存区读取数据;未修改区域的都操作,从原始卷读取数据。备份工具从不保存页面文件或者每个卷上用于系统管理的\System Volume Information 目录的内容,快照驱动程序使用碎片整理API来确定这些文件和目录的位置,而不记录它们的变化情况。

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值