用于直接附接的存储设备的会话的制作方法

文档序号:6360496阅读:205来源:国知局
专利名称:用于直接附接的存储设备的会话的制作方法
用于直接附接的存储设备的会话
背景技术
客户端直接附接的(direct attached)存储协议的未充分开发的方面在于对发现的外部真实世界事件的任何记录和通信。对于直接附接的存储设备,诸如串行高级技术附件(SATA)设备、IEEE 1394设备和通用串行总线(USB)设备,包括但不限于硬盘驱动器(HDD)和固态驱动器(SSD),客户端配置和使用包括频繁的电力循环(power cycle)、分离和漫游。虽然目前设备能够具有时钟并且能够跟踪相对于开始它的电力循环的时间的时间推移,但是没有机制用于主机和设备以同步当前的时间。许多存储设备(包括HDD和SSD)基于特定数量时间的推移而执行定期媒体维护。虽然设备在电力循环之间可以处在无电力状态一分钟或一年,但是设备不能够确定在它电力关闭期间经过了多长时间。 主机感兴趣的一种场景是发现两个设备的分离,其构成分离的缓存解决方案,该场景取决于直接附接的存储设备至主机的重复连接。如果目标存储设备在没有缓存设备的情况下被使用,或者如果在被返回至实现分离的缓存解决方案的主机之前缓存设备被使用在不同的主机上,则被划分以包含来自目标存储设备的缓存数据的设备可能变得无效。主机可以进一步受益于发现间歇的设备故障。由于存储设备是不可操作的,主存储设备遭受间歇故障的主机不能够记录故障信息。主机可以受益于在复位之后发现来自存储设备的故障信息。例如,来自存储设备的故障信息可以弓I导主机去确定在主机和存储设备之间的先前会话由于间歇的设备故障而过早地结束。当前,不存在机制用以通过程序来关联、共享和同步事件,或者管理在主机和设备之间的可操作的电力会话。

发明内容
本发明内容被提供以按照简化的形式介绍概念的选择,其将在下面的具体实施方式
中被进一步描述。本发明内容的目的既不是确定所请求保护的主题的关键特征或者必要特征,也不是用来限制所请求保护的主题的范围。在多个实施方式的一个方面,为主机提供了一种机制以便建立与用户可移除的存储设备之间的主机组件活动会话的开始和结束。存储设备可以被主机引导(directed)以存储关于与主机的活动会话的开始时间和结束时间的时间信息。通过将存储的时间信息与先前存储的时间信息相比较,存储设备可以确定在电力会话之间经过了多少时间。结果,存储设备可以执行动作,包括但不限于识别后台管理操作应当在什么时间被执行,确定在什么时间存储设备在未与任何主机相关联的情况下被上电,和当存储设备在未与任何主机相关联的情况下被上电时执行后台管理操作。在多个实施方式的另一个方面中,存储设备能够记录关于其与主机的关联和主机对存储设备的使用的历史。结果,依赖能够识别不中断的关联的跨度(即使跨过电力循环)的场景变得可检测。这允许主机进行优化,包括但不限于即使在主机电力循环之后,继续信任存储在被用作缓存的存储设备的介质中的数据,或者识别何时发生了意外的设备丢失或主机崩溃。


为了描述能够获得上面提及的和其它的优势和特征的方式,更详细的描述在下面被讨论,且将通过参照在附图中图示的具体实施方式
而呈现。应当理解这些图仅描述典型的实施方式,因此不能认为是对其范围的限制,通过使用附图,实现方式将被带有附加的特异性和细节地描述和解释。图I是图示了用于多个实施方式的示例性操作环境的功能框图。图2是图示了用户可移除的存储设备的示例性实施方式的功能框图。图3图示了多个计算设备组件,其具有互相排它的与用户可移除地附接的存储设备(user-removably attached storage device)的活动会话。 图4是可以由计算设备和用户可移除地附接的存储设备执行以生成和登记(register)组件标识符的示例性过程的流程图。图5是向用户可移除地附接的存储设备登记组件标识符的示例性过程的流程图。图6是向用户可移除地附接的存储设备登记一个或多个逻辑块地址(LBA)范围的示例性过程的流程图。图7是图示了关于用户可移除地附接的存储设备从连接的计算设备接收开始会话命令的示例性处理的流程图。图8图示了计算设备的多种计算设备组件开始和结束与用户可移除地附接的存储设备的会话。图9是图示了可以与处理关于对用户可移除地附接的存储设备的介质的修改的查询相关地被执行的示例性过程的流程图。图10图示了关于计算设备中驱动器堆栈的示例性分层。
具体实施例方式在下面详细地讨论具体实施方式
。虽然讨论了特定实现方式,但是应当理解这仅是为了阐释的目的而做出。相关领域技术人员将认识到其它组件和配置也可以被使用,而不脱离本公开的主题的精神和范围。综述
在多个实施方式中,存储设备被用户可移除地附接至计算设备(主机),该存储设备可以记录关于计算设备组件与用户可移除地附接的存储设备的活动会话什么时候已经开始和结束的时间的信息。组件可以表示主机操作系统组件(例如驱动器堆栈)以及预引导(preboot)环境组件(例如可扩展固件接口 EFI模块)。可以从计算设备发送命令至用户可移除地附接的存储设备,以向用户可移除地附接的存储设备登记或注销(unregister)计算设备组件。命令可以包括时间戳和指明登记命令或注销命令的参数(argument)。用户可移除地附接的存储设备可以记录开始会话时间戳和结束会话时间戳。用户可移除地附接的存储设备能够识别控制用户可移除地附接的存储设备的计算设备(主机)组件,能够识别相对于其它一些计算设备组件,哪些I/O来自于所识别的计算设备组件,还能够识别用户可移除地附接的存储设备的介质的哪些逻辑块地址(LBA)与计算设备组件相关联,这样只有对于敏感区域的修改被考虑。登记命令和注销命令可以分别包括要向用户可移除地附接的存储设备登记或注销的标识符。该标识符可以与计算设备组件相关联。在向特定的用户可移除地附接的存储设备登记的所有标识符的范围中,每个登记的标识符可以不同于所有其它登记的标识符。在一些实施方式中,标识符可以由计算设备的组件在运行时生成。在其它实施方式中,标识符可以被编码到计算系统的非易失性存储器中。当创建要与特定计算设备组件相关联的标识符时,计算设备可以向用户可移除地附接的存储设备查询向用户可移除地附接的存储设备登记的标识符,并可以创建与所登记的标识符不同的标识符。用户可移除地附接的存储设备可以识别在记录会话开始的时间和记录会话结束的时间之间发生的对于用户可移除地附接的存储设备的介质的修改。用户可移除地附接的存储设备可以识别源自特定计算设备组件的修改。一种登记机制被提供,用以建立与特定计算设备组件(例如,如软件组件或其它组件)相关联的LBA的一个或多个范围,可以由计算设备组件使用命令以向用户可移除地附接 的存储设备查询来自相同计算设备或不同计算设备的任何其它计算设备组件对于登记的LBA范围的任何修改的发生。查询命令可以具有参数,包括与计算设备组件关联的标识符,和被查询的(多个)LBA范围。查询命令可以返回清洁(没有其它计算设备组件修改给定的(多个)LBA范围)或脏(至少一个其它计算设备组件修改了给定的(多个)LBA范围或者另一个计算设备或虚拟计算设备的组件修改了给定的LBA范围)的状态。作为记录会话开始和结束的结果,用户可移除地附接的存储设备可以向计算设备组件提供关于先前活动的会话由于例如复位命令或者在会话结束之前发生掉电而没有恰当的会话结束的通知。用户可移除地附接的存储设备可以响应于登记命令或者单独的查询命令而提供该通知。与用户可移除地附接的存储设备的计算设备(主机)会话可以包括多个互相排它的活动计算设备组件,诸如例如基本输入输出系统(BIOS)、正常会话驱动器(Normalsession driver)、后操作驱动器(休眠(hibernate),崩溃转储(crashdump))或者其它计算设备组件。每个计算设备组件可以在活动时排它地使用设备。因此每个计算设备组件可以具有它自己的与用户可移除地附接的存储设备的活动会话。与用户可移除地附接的存储设备的会话可以包括从用户可移除地附接的存储设备开启电源到关闭电源的全部时间。示例性计算设备
图I是用于多个实施方式的示例性操作环境100的功能框图。示例性操作环境100可以包括可以起到主机的作用的计算设备108和用户可移除的存储设备110。计算设备108可以包括处理器102、随机存取存储器(RAM) 104、只读存储器(ROM)和连接处理器102、RAM 104和ROM 106的通信总线112。处理器102可以包括一个或多个传统的处理器,其解释并执行指令。存储器可以包括RAM 104、ROM 106和/或另外一个类型的动态或静态存储设备,其存储信息和由处理器102执行的指令。RAM 104或者另外一个类型的动态存储设备可以存储指令以及临时变量或在处理器102执行指令期间使用的其它中间信息。ROM 106或者另外一个类型的静态存储设备可以为处理器102存储静态信息和指令。计算设备102可以响应于处理器102执行在非瞬态机器可读介质(诸如例如RAM104、ROM 106或其它非瞬态介质)中包含的指令序列而执行功能。该指令可以从另一个非瞬态机器可读介质或者从分离的设备经由通信接口(未示出)被读入RAM 106。用户可移除的存储设备110可以被用户可移除地附接至计算设备108,这样处理器102和用户可移除的存储设备110可以经由通信总线112彼此通信。示例性用户可移除的存储设备
图2是示例性用户可移除的存储设备110的功能框图。用户可移除的存储设备110可以包括处理器202、RAM 204,ROM 206、介质208、非易失性存储介质210和连接处理器202、RAM 204、ROM 206、介质208和非易失性存储介质210的通信总线212。处理器202可以包括一个或多个传统的处理器,其解释并执行指令。存储器可以包括RAM 204、ROM 206和/或另外一个类型的动态或静态存储设备,其存储信息和由处理器202执行的指令。RAM 204或者另外一个类型的动态存储设备可以存储指令以及临时变 量或在处理器202执行指令期间使用的其它中间信息。ROM 206或者另外一个类型的静态存储设备可以为处理器202存储静态信息和指令。介质208可以包括闪存(flash) RAM、磁盘、光盘或其它用于存储数据和/或指令的介质。非易失性存储介质210可以包括能够在电力循环期间自始至终保持所存储的信息的非易失性介质。在一些实施方式中,介质208可以包括非易失性存储介质210。示例性实施方式 登记
图3图示了多个计算设备组件,具有互相排它的与用户可移除地附接的存储设备的活动会话。图3中的多个计算设备组件包括基本输入/输出系统(BI0S)302、正常会话设备驱动器304、休眠驱动器306。每个与用户可移除地附接的存储设备的会话可以具有会话ID,通过该会话ID多个计算设备组件中的每一个和用户可移除地附接的存储设备可以识别特定的会话。图4是当计算设备组件尝试生成和向可移除地附接的存储设备登记新的组件标识符时,可以由计算设备和用户可移除地附接的存储设备执行的示例性过程的流程图。该过程可以开始于计算设备组件生成组件标识符,该组件标识符将与计算设备组件相关联(动作402)。可替换地,组件标识符可以是先前已存储的。在一个实施方式中,组件标识符可以被随机地生成。然后计算设备组件可以发送查询命令至用户可移除地附接的存储设备(动作404)。该查询命令可以包括组件标识符。然后用户可移除地附接的存储设备可以接收该查询命令并确定在该查询命令中包括的组件标识符是否已经向用户可移除地附接的存储设备登记(动作406)。如果用户可移除地附接的存储设备确定该组件标识符已经登记,则用户可移除地附接的存储设备返回指示至计算设备以指示该组件标识符已经登记,然后计算设备组件可以重复执行动作402-406以生成新的组件标识符并确定该新的组件标识符是否已经向用户可移除地附接的存储设备登记。如果用户可移除地附接的存储设备在动作406处确定组件标识符没有向用户可移除地附接的存储设备登记,则计算设备可以发送登记命令至用户可移除地附接的存储设备(动作408)。登记命令可以包括组件标识符和登记标识符。在一些实施方式中,登记标识符可以包括时间信息,诸如例如对应于计算设备的时间的时间戳,包括但不限于根据计算设备的当前时间。在其它实施方式中,登记标识符可以包括随机生成的数字。用户可移除地附接的存储设备可以接收该登记命令并登记该组件标识符和登记标识符,并可以返回成功或失败的指示至计算设备(动作408)。然后计算设备可以确定返回的指示(或者从用户可移除地附接的存储设备发送的指示)是否是成功指示。如果返回的指示是成功指示,则过程完成。否则,计算设备可以基于失败指示的特定值而采取或执行行动(动作412)。在一个实现方式中,所采取的行动可以包括再次重复动作408和410直到返回的指示是成功指示或者动作408和410已经重复了给定的次数。在另一个实现方式中,采取的行动可以包括提供失败指示给调用过程并返回至调用过程。图5是图示了在多个实施方式中在动作408 (图4)期间执行的示例性过程的流程图。该过程可以开始于用户可移除地附接的存储设备确定在登记命令中包括的组件标识符是否向用户可移除地附接的存储设备登记了(动作502)。用户可移除地附接的存储设备可以通过检查该用户可移除地附接的存储设备的介质或非易失性介质而做出该确定。如果组件标识符被确定为没有向该用户可移除地附接的存储设备登记,则用户可 移除地附接的存储设备可以在该介质或该非易失性介质中记录该组件标识符(动作504)和登记标识符(动作506)。然后用户可移除地附接的存储设备可以发送响应至计算设备以指示成功登记(动作512)并且该过程可以完成。如果在动作502期间用户可移除地附接的存储设备确定在登记命令中包含的组件标识符已经向用户可移除地附接的存储设备登记,则用户可移除地附接的存储设备可以参考与登记的组件标识符相关联的所记录的登记标识符,并且可以确定所记录的登记标识符是否匹配在接收到的登记命令中包含的登记标识符(动作508)。如果所记录的登记标识符匹配在接收到的登记命令中包含的登记标识符,则用户可移除地附接的存储设备可以发送成功登记指示至计算设备(动作512),并且该过程可以完成。如果在动作508期间用户可移除地附接的存储设备确定所记录的登记标识符不匹配在接收到的登记命令中包含的登记标记符,则用户可移除地附接的存储设备可以发送登记失败指示至计算设备(动作512),并且该过程可以完成。在一些实施方式中,用户可移除地附接的存储设备的介质的一个或多个逻辑块地址(LBA)范围可以关于组件标识符被登记。多个登记的组件标识符可以被登记为具有相应的重叠LBA范围。登记LBA范围命令可以包括组件标识符、登记标识符和创建者签名。创建者签名可以指明一个或多个LBA范围的特性,诸如例如新技术文件系统(NTFS)、微软(MSFT)闪存缓存(flash cache)、Intel闪存缓存格式I、Intel闪存缓存格式A等。图6是在一个实施方式中登记一个或多个LBA范围的示例性过程的流程图。该过程可以开始于用户可移除地附接的存储设备确定在从计算设备接收的登记LBA命令中包含的组件标识符是否已经向用户可移除地附接的存储设备登记(动作602)。在一些实施方式中,在接收命令以向用户可移除地附接的存储设备登记计算设备组件之后,登记一个或多个LBA范围的命令可以被用户可移除地附接的存储设备接收。如果组件标识符不是已经登记,则用户可移除地附接的存储设备可以通过将该组件标识符记录在用户可移除地附接的存储设备的介质中来登记该组件标识符(动作604)。在一些实施方式中,介质可以是非易失性介质。然后用户可移除地附接的存储设备可以将在登记LBA命令中包含的登记标识符记录在用户可移除地附接的存储设备的介质中(动作606)。接下来,用户可移除地附接的存储设备可以通过将一个或多个LBA范围记录在用户可移除地附接的存储设备的介质中来登记在登记LBA范围命令中包含的一个或多个LBA范围(动作610)。然后用户可移除地附接的存储设备可以发送指示至计算设备,以指示成功登记(动作612)。然后该过程可以完成。如果在动作602期间用户可移除地附接的存储设备确定组件标识符被登记,则用户可移除地附接的存储设备可以确定在登记LBA命令中包含的登记标识符是否匹配与在用户可移除地附接的存储设备中记录的登记的组件标识符相关联的登记标识符(动作608)。如果在登记LBA命令中包含的登记标识符匹配与在用户可移除地附接的存储设备中记录的登记的组件标识符关联的登记标识符,则动作610和612可以如先前所描述的被执行。然后该过程可以完成。如果在动作608期间用户可移除地附接的存储设备确定在登记LBA命令中包含的登记标识符不匹配与用户可移除地附接的存储设备中记录的登记的组件标识符相关联 的登记标识符,则用户可移除地附接的存储设备可以发送指示至计算设备以指示登记失败(动作614)。然后该过程可以完成。计算设备组件可以通过发送查询登记的LBA范围命令至用户可移除地附接的存储设备来向用户可移除地附接的存储设备查询登记的LBA范围。在接收到查询登记的LBA范围命令时,用户可移除地附接的存储设备可以确定是否有任何LBA范围被登记,如果有,则可以将关于与用户可移除地附接的存储设备相关的所有登记的LBA范围和相应的在登记期间使用的创建者签名的信息返回至计算设备。在一些实施方式中,如果LBA范围被多次登记,则LBA范围将与在每次登记期间使用的相应的创建者签名一起被多次地包括在来自用户可移除地附接的存储设备的查询响应中。会话管理
在计算设备组件和用户可移除地附接的存储设备之间的任何I/o发生之前,开始会话命令可以从计算设备组件被发送至用户可移除地附接的存储设备以开始它们之间的会话。在计算设备组件和用户可移除地附接的存储设备之间的最后的I/O之后,结束会话命令可以从计算设备组件被发送至用户可移除地附接的存储设备以结束在计算设备组件和用户可移除地附接的存储设备之间的会话。开始会话命令和结束会话命令可以包括主机组件标识符、会话标识符和时间戳。时间戳可以包括来自计算设备的时间信息。在一些实施方式中,会话标识符可以包括来自计算设备的时间信息。响应于接收开始会话命令或结束会话命令,用户可移除地附接的存储设备可以返回成功或失败的指示至计算设备。图7是图示了在接收来自连接的计算设备的开始会话命令之后可以由用户可移除地附接的存储设备执行的示例性处理的流程图。该过程可以开始于用户可移除地附接的存储设备确定与在开始会话命令中包含的组件标识符对应的计算设备的组件是否已经在会话中(动作702)。如果该组件不在会话中,则用户可移除地附接的存储设备可以将会话的开始、会话标识符和关于会话开始时间的时间信息记录在用户可移除地附接的存储设备的介质中(动作704)。然后用户可移除地附接的存储设备可以发送指示至计算设备以指示会话成功地开始(动作706)。然后该过程可以完成。
如果在动作702期间用户可移除地附接的存储设备确定组件在会话中,则用户可移除地附接的存储设备可以确定在开始会话命令中包含的会话标识符是否匹配所记录的会话的会话标识符(动作708)。如果会话标识符匹配,则用户可移除地附接的存储设备可以在介质中将会话的结束和关于会话的结束时间的时间信息记录在用户可移除地附接的存储设备的介质中(动作710)。然后用户可移除地附接的存储设备可以在介质中将会话的开始和关于会话开始的时间信息记录在用户可移除地附接的存储设备的介质中(动作712)。用户可移除地附接的存储设备可以发送指示至计算设备以指示上一个会话不适当地结束(动作714)。然后该过程可以完成。如果在动作708期间用户可移除地附接的存储设备确定在开始会话命令中包含的会话标识符和所记录的会话标识符不匹配,则用户可移除地附接的存储设备可以发送失败指示至计算设备以指示开始会话命令中的会话标识符不匹配所记录的会话标识符(动作716)。在一些实施方式中,在接收到失败指示之后,计算设备可以提供失败指示至用户或者可以覆盖会话标识符的设置。然后该过程可以完成。图8图示了在多种计算设备组件和用户可移除地附接的存储设备之间的多个会 话的开始和结束。在发起与用户可移除地附接的存储设备的任何I/o之前,计算设备的BIOS组件可以发送开始会话命令802至用户可移除地附接的存储设备。然后在BIOS组件和用户可移除地附接的存储设备之间可以发生I/o。在BIOS组件和用户可移除地附接的存储设备之间的所有I/O活动已经完成之后,BIOS组件可以发送结束会话命令804至用户可移除地附接的存储设备以结束该会话。在稍后的时间点,计算设备的正常驱动器组件可以发送开始会话命令806至用户可移除地附接的存储设备,此后才会在它们之间发生I/O活动。在正常驱动器组件和用户可移除地附接的存储设备之间的所有I/O活动已经完成之后,正常驱动器组件可以发送结束会话命令808至用户可移除地附接的存储设备来结束会话。在稍后的某个时间,计算设备的休眠驱动器组件可以发送开始会话命令810至用户可移除地附接的存储设备,此后才会在它们之间发起I/O。然后在休眠驱动器组件和用户可移除地附接的存储设备之间可以发生I/o。在休眠驱动器组件和用户可移除地附接的存储设备之间的所有I/o活动已经完成之后,休眠驱动器组件可以发送结束会话命令812至用户可移除地附接的存储设备以结束该会话。如能够在图8中看到的,开始会话命令和结束会话命令正常情况下围绕着在计算设备组件和用户可移除地附接的存储设备之间的I/o活动。结果,异常的会话终止可以被用户可移除地附接的存储设备检测到。例如,如果先前会话的开始没有相应的先前会话的结束,则先前会话是异常终止的。作为具体的例子,假设正常驱动器组件发送第一开始会话命令至用户可移除地附接的存储设备。在稍后的时间点,正常驱动器组件可以发送第二开始会话命令至用户可移除地附接的存储设备,而没有发送居间的结束会话命令。当两个开始会话命令被接收到,而没有居间的结束会话命令时,用户可移除地附接的存储设备可以确定发生了异常的会话终止。在一些实施方式中,计算设备组件可以发送查询异常会话终止命令至用户可移除地附接的存储设备。用户可移除地附接的存储设备可以接收该查询异常会话终止命令并确定是否已经接收到两个开始会话命令而没有居间的结束会话命令。如果接收到两个开始会话命令而没有居间的结束会话命令,则用户可移除地附接的存储设备可以连同与该异常会话终止相关联的组件标识符一起发送异常会话终止指示至计算设备组件。如果用户可移除地附接的存储设备确定没有出现其间没有结束会话命令的两个开始会话命令,则用户可移除地附接的存储设备可以发送无失败指示至计算设备组件。在其它实施方式中,当用户可移除地附接的存储设备接收开始会话命令时,可以自动地进行检查以确定是否先前的开始会话命令被接收而没有居间的结束会话命令。如果先前的开始会话命令被接收而没有居间的结束会话命令,则用户可移除地附接的存储设备可以发送异常会话终止指示至计算设备。在计算设备组件从用户可移除地附接的存储设备接收异常会话终止指示之后,计算设备组件可以发送查询失败信息命令至用户可移除地附接的存储设备。响应于接收到该查询失败信息命令,用户可移除地附接的存储设备可以获得关于失败的详细信息,包括但不限于组件标识符、会话标识符、其间没有结束会话命令的已经被接收的第一开始会话命令和第二开始会话命令的时间戳。用户可移除地附接的存储设备然后发送该详细信息至计 算设备组件。在其它实施方式中,附加的或不同的信息可以从用户可移除地附接的存储设备发送至计算设备组件,包括但不限于诊断信息和特定失败码。在多个实施方式中,计算设备组件可以发送命令至用户可移除地附接的存储设备以查询自从上次会话结束以来对于用户可移除地附接的存储设备的介质所作出的修改。图9是图示了可以由计算设备和用户可移除地附接的存储设备执行的示例性过程的流程图,该过程关于查询自从上次会话结束以来对于用户可移除地附接的存储设备的介质是否作出了修改的命令。该过程可以开始于计算设备发送源自计算设备组件的命令至用户可移除地附接的存储设备以查询是否对于用户可移除地附接的存储设备的介质作出了修改(动作902)。命令可以包括组件标识符和用户可移除地附接的存储设备的介质的一个或多个LBA范围。在接收到该命令后,用户可移除地附接的存储设备可以确定一个或多个LBA范围是否包括在所接收到的命令中(动作904)。如果没有LBA范围被包括在所接收到的命令中,则用户可移除地附接的存储设备可以确定介质是否被相同计算设备或不同计算设备的任何其它计算设备组件修改了(动作906)。为了确定介质是否被修改,用户可移除地附接的存储设备可以参考所记录的关于与组件标识符关联的上次会话结束的信息,并可以确定在与组件标识符关联的上次会话结束之后是否建立了与任何其它计算设备组件相关联的任何会话和/或用户可移除地附接的存储设备可以参照在介质中记录的信息,该信息指示是否任何其它计算设备组件修改了用户可移除地附接的存储设备的介质,如果是,还指示任何其它计算设备组件何时修改了用户可移除地附接的存储设备的介质。记录的信息可以包括组件标识符、时间信息和一个或多个LBA范围。如果用户可移除地附接的存储设备确定自从上次会话结束以来介质已经被修改,则用户可移除地附接的存储设备发送“脏(dirty)”指示至计算设备组件,指示自从上次会话结束以来在用户可移除地附接的存储设备的介质中记录的信息已经被修改(动作912)。否则,用户可移除地附接的存储设备可以发送“清洁(clean)”指示至计算设备组件,指示自从上次会话结束以来在用户可移除地附接的存储设备的介质中记录的信息没有被修改(动作908)。然后计算设备的计算设备组件可以根据接收到“脏”指示还是“清洁”指示来采取特定行动(动作910)。例如,如果接收到“脏”指示,计算设备可以呈现错误指示给计算设备的用户,或者可以采取不同的行动。如果接收到“清洁”指示,计算设备可以采取行动,诸如例如信任用户远程设备的介质的内容,或者可以采取不同的行动。如果在动作904期间用户可移除地附接的存储设备确定接收到的命令包括一个或多个LBA范围,则用户可移除地附接的存储设备可以确定LBA范围中的一个LBA范围是否可能已经被修改(动作914)。如果用户可移除地附接的存储设备确定LBA范围可能已经被修改,则用户可移除地附接的存储设备可以准备发送脏指示至计算设备的计算设备组件以指示在上次会话结束之后在该LBA范围内存储的信息可能已经被修改(动作916)。否则,用户可移除地附接的存储设备可以准备发送清洁指示至计算设备组件以指示自从上次会话结束以来在用户可移除地附接的存储设备的介质的LBA范围中记录的信息没有被修改(动作918)。在执行动作916或动作918中的任一个之后,用户可移除地附接的存储设备可以确定接收到的命令是否包含另外的LBA范围(动作920)。如果用户可移除地附接的存储设备确定接收到的命令包含另外的LBA范围,则用户可移除地附接的存储设备可以执行与该 另外的LBA范围相关的动作914-920。否则,用户可移除地附接的存储设备可以发送用于一个或多个LBA范围中的每一个的相应的清洁和/或脏指示至计算设备的计算设备组件(动作922)。然后计算设备可以基于接收到的清洁和/或脏指示采取合适的行动(动作924)。在一些实施方式中,计算设备可以设置和校正用户可移除地附接的存储设备的时间信息。这可以通过计算设备发送设置和校正时间命令至用户可移除地附接的存储设备来完成。该设置和校正时间命令可以包含来自计算设备的时间信息。在一个实施方式中,时间信息可以被包含在设置和校正时间命令中包含的时间戳中。在接收了设置和校正时间命令后,用户可移除地附接的存储设备可以根据在该设置和校正时间命令中包含的时间信息来设置和校正用户可移除地附接的存储设备的时间信息。在成功地设置和校正时间信息后,用户可移除地附接的存储设备可以发送成功指示至计算设备。如果用户可移除地附接的存储设备不能够成功地设置和校正时间信息,则用户可移除地附接的存储设备可以发送失败指示至计算设备。在实现设置和校正时间命令的实施方式中,只有当在计算设备组件和用户可移除地附接的存储设备之间建立了会话时,计算设备组件才可以发送设置和校正时间命令至用户可移除地附接的存储设备。在其它实施方式中,计算设备组件可以在任何时间发送设置和校正时间命令至用户可移除地附接的存储设备,无论在计算设备组件和用户可移除地附接的存储设备之间是否建立了会话。示例性实现方案
在计算设备上的一个示例性实现方案中,驱动器堆栈可以封装上面关于计算设备所描述的实施方式。图10图示了关于驱动器堆栈的示例性分层。如图10中所图示的,驱动器堆栈1006可以位于文件系统层1004之下,文件系统层1004进一步位于端口堆栈1002之下。当驱动器堆栈1006封装该先前描述的关于计算设备的实施方式时,文件系统层1004和端口堆栈1002可以保持不知道对于驱动器堆栈1006中的驱动器做出的任何改变,以实现先前描述的实施方式。在一个示例性实现方案中,驱动器堆栈1006中的驱动器可以发现用户可移除地附接的存储设备是否能够支持与计算设备的会话。在一个实施方式中,驱动器可以发送特定命令至用户可移除地附接的存储设备,并且作为响应,驱动器可以预计接收来自用户可移除地附接的存储设备的特定响应。当接收到特定响应时,驱动器然后可以发现用户可移除地附接的存储设备支持与计算设备的会话。否则,驱动器可以发现用户可移除地附接的存储设备不支持与计算设备的会话。在其它实施方式中,驱动器可以经由其它方法发现用户可移除地附接的存储设备是否支持与计算设备的会话。当驱动器发现用户可移除地附接的存储设备能够支持与计算设备的会话时,驱动器可以确定自从上次在计算设备和用户可移除地附接的存储设备之间的会话结束以来用户可移除地附接的存储设备的存储介质是否被修改。正如关于图9的流程所描述的,驱动器可以确定自计算设备和用户可移除地附接的存储设备之间的上一次会话之后存储介质是否被修改。例如,在动作902 (图9)中,驱动器可以发送关于对存储介质的修改的查询至用户可移除地附接的存储设备。该查询可以不包含关于存储介质的LBA范围或者可以包括一个或多个LBA范围。用户可移除地附接的存储设备可以确定对于存储介质的任何部分是否做出了任何修改(在查询中没有LBA范围的情形中),或者对于存储介质的一个或多个范围是否做出了修改(在查询中有一个或多个LBA范围的情形中)。 如果用户可移除地附接的存储设备确定做出了修改,则脏指示可以从用户可移除地附接的存储设备发送至驱动器。否则,用户可移除地附接的存储设备可以发送清洁指示至驱动器,如图9中所图示的。当驱动器从用户可移除地附接的存储设备接收到清洁指示时,驱动器可以信任存储介质的内容。否则,当驱动器从用户可移除地附接的存储设备接收到脏指示时,驱动器不可以信任存储介质的内容。进一步地,在一个示例性实现方案中,用户可移除地附接的存储设备可以检测异常的会话终止,如先前所描述的,并且可以发送异常会话终止指示至驱动器堆栈1006中的驱动器。通过响应于接收该异常会话终止指示发送查询失败命令至用户可移除地附接的存储设备,驱动器可以获取关于异常会话终止的详细信息。在一些实施方式中,驱动器可以发送查询异常会话终止命令至用户可移除地附接的存储设备。响应于接收该查询异常会话终止命令,用户可移除地附接的存储设备可以发送指示是否检测到异常的会话终止的响应。另外,在一个示例性实现方案中,驱动器堆栈1006的一个或多个驱动器可以生成组件标识符,查询组件标识符是否已经向用户附接的存储设备登记,登记组件标识符,以及开始和结束与用户可移除地附接的存储设备的会话,如在前所讨论的。结论
多个实施方式被描述,其中用户可移除地附接的存储设备可以变得知道用户可移除地附接的存储设备关机后经过的时间量。进一步地,在多个实施方式中,计算设备组件可以查询用户可移除地附接的存储设备以确定相同计算设备或者不同计算设备的另一个计算设备组件是否已经访问了该用户可移除地附接的存储设备并可能已经修改了用户可移除地附接的存储设备的介质的内容。另外,计算设备可以从发现来自用户可移除地附接的存储设备的失败信息(包括但不限于异常的会话终止)中受益。虽然已经用对于结构特征和/或方法动作特定的语言描述了主题,但是应该理解所附权利要求的主题不是必须限于上述特定特征或动作。相反,上述特定特征和动作是作为实现权利要求的示例形式而公开的。所述实施方式的其它配置是本公开的范围的一部分。例如,在其它实施方式中,由过程执行的动作的次序可以不同和/或可以包括附加的或其它动作。因此,是所附权利要求和它们的合法等效方案定义了实施方式,而不是所给出的 任何特定示例。
权利要求
1.一种用于管理在计算设备的组件和存储设备之间的会话的方法,该方法包括 由存储设备响应于接收来自计算设备的查询而确定自从在该组件和存储设备之间的上次会话以来是否发生对存储设备的介质的修改,和 当自从上次会话以来对于存储设备的介质的修改被确定为已经发生时,由存储设备向计算设备返回关于自从上次会话以来对于存储设备的介质的修改的发生的指示。
2.权利要求I的方法,其中 确定自从在该组件和存储设备之间的上次会话以来是否发生对存储设备的介质的修改进一步包括 响应于接收来自计算设备的查询,确定自从在该组件和存储设备之间的上次会话以来是否发生对于存储设备的介质的特定逻辑块地址范围中的任何地址的修改;和 返回关于自从上次会话以来对于存储设备的介质的修改的发生的指示进一步包括当自从在该组件和存储设备之间的上次会话以来对于存储设备的介质的特定逻辑块地址范围中的任何地址的修改被确定为已经发生时,返回关于对于存储设备的介质的特定逻辑块地址范围中的任何地址的修改的发生的指示。
3.权利要求I的方法,进一步包括 由存储设备基于记录的会话数据确定是否发生在该组件和存储设备之间的上次会话的异常终止;和 当在组件和存储设备之间的上次会话的异常终止被确定为已经发生时,返回第二指示至计算设备,该第二指示关于在该组件和存储设备之间的上次会话的异常终止的发生。
4.权利要求I的方法,进一步包括 由存储设备响应于从计算设备接收关于设置和校正时间的命令,设置和校正时间。
5.权利要求I的方法,进一步包括 由存储设备从计算设备接收开始会话命令,该开始会话命令包含相应于计算设备的组件的标识符; 由存储设备确定组件是否已经在与存储设备的会话中;和 当所述确定步骤确定组件没有已经在与存储设备的会话中时,执行 由存储设备记录在存储设备的组件和存储设备之间的新会话的开始,和 从存储设备向计算设备返回请求成功的指示。
6.权利要求5的方法,进一步包括 当所述确定步骤确定组件已经在与存储设备的会话中时,执行 确定在开始会话命令中包含的会话标识符是否匹配记录的会话标识符,和 当开始会话命令中包含的会话标识符匹配记录的会话标识符时,执行 由存储设备记录和结束会话,和 由存储设备记录在计算设备的组件和存储设备之间的新会话的开始。
7.权利要求I的方法,进一步包括 由存储设备从计算设备接收登记命令; 由存储设备确定在接收到的登记命令中包含的组件标识符是否已经向存储设备登记; 当组件标识符被确定为没有向存储设备登记时,由存储设备执行由存储设备登记该组件标识符,和 由存储设备记录在接收到的登记命令中包含的登记标识符。
8.权利要求7的方法,其中登记标识符是基于来自组件的时间信息的。
9.一种存储设备,被配置为用户可移除地附接至计算设备,该存储设备包含指令,用于存储设备的处理器执行方法,该方法包括 从计算设备接收包含组件标识符的登记命令, 响应于接收登记命令,确定组件标识符是否已经向存储设备登记; 当组件标识符被确定为没有向存储设备登记时,执行 向存储设备登记该组件标识符,该组件标识符相应于计算设备的组件, 记录在登记命令中包含的登记标识符,和 提供成功登记的指示至计算设备;和 当组件标识符被确定为已向存储设备登记时,执行 确定在登记命令中包含的登记标识符是否匹配先前记录的登记标识符,和 当在登记命令中包含的登记标识符被确定为匹配先前记录的登记标识符时,执行 提供成功登记的指示至计算设备。
10.权利要求9的存储设备,其中该方法进一步包括 接收第二命令,第二命令包含关于存储设备的至少一个登记的逻辑块地址范围的查询;和 响应于接收到的查询,通过指示至少一个登记的逻辑块地址范围的信息和被用于登记该至少一个登记的逻辑块地址范围的创建者签名来响应。
11.权利要求9的存储设备,其中该方法进一步包括 响应于从组件接收关于会话的输出活动的结束的指示,在会话数据中记录关于在存储设备和计算设备之间的会话的结束的时间信息;和 当基于记录的会话数据检测到异常的会话终止时,提供异常会话终止的指示。
12.权利要求11的存储设备,其中该方法进一步包括 当记录的会话数据指示在组件和存储设备之间先前会话的开始之后是在组件和存储设备之间的下一个会话的开始,而没有居间的记录的先前会话的结束时,检测异常的会话终止。
13.权利要求9的存储设备,其中 登记命令包含关于存储设备的介质的逻辑块地址范围,并且 该方法进一步包括 确定自从在组件和存储设备之间的上次会话以来是否发生对于介质的逻辑块地址范围中的任何地址的修改,和 作为确定发生了对介质的逻辑块地址范围中的任何地址的修改的结果,提供自从在组件和存储设备之间的上次会话以来发生了对于存储设备的介质的逻辑块地址范围中的任何地址的修改的指示。
14.权利要求9的存储设备,其中该方法进一步包括 从计算设备接收包含第二标识符的查询; 确定第二标识符是否已经向存储设备登记;当第二标识符被确定为已向存储设备登记时,向计算设备返回第二标识符已经被登记的指不;和 当第二标识符被确定为没有向存储设备 登记时,向计算设备返回第二标识符没有被登记的指示。
15.一种计算设备,包括 至少一个处理器;和 连接至该至少一个处理器的存储器,该存储器包括指令,供计算设备的至少一个处理器用以执行根据权利要求1-8中的任意一项的方法。
全文摘要
提供了一种机制和存储设备以向用户可移除地附接的存储设备登记计算设备的组件,以及管理在组件和存储设备之间的会话。存储设备可以记录关于与组件的活动会话的开始和结束的时间信息。存储设备可以确定自从与组件的上次会话以来,由组件登记的存储设备介质的至少一个逻辑块地址范围是否已经被不同的组件修改。当存储设备向组件指示自从上次会话以来该介质的至少一个逻辑块地址范围没有被修改时,组件可以信任介质的内容。计算设备可以提供时间信息给存储设备,这样存储设备可以确定是否要执行管理操作。
文档编号G06F3/06GK102884513SQ201180024729
公开日2013年1月16日 申请日期2011年5月11日 优先权日2010年5月18日
发明者N.S.奥布尔, V.萨多夫斯基 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1