用于移植数据的系统与方法与流程

文档序号:11964969阅读:187来源:国知局
用于移植数据的系统与方法与流程
本发明一般涉及计算系统,尤其涉及利用对等远程复制(PPRC)应用把数据从未受保护的小型计算机系统接口逻辑单元号(SCSILUN)移植到受保护的SCSILUN和把数据从受保护的SCSILUN移植到未受保护的SCSILUN的系统与方法。

背景技术:
T10小型计算机系统接口(SCSI)标准定义了DIF信息模型,其中SCSI块设备可以格式化成具有与每个逻辑块关联的数据完整性字段(DIF)。DIF提供对从SCSI主机最初写数据的时间开始端到端的保护和数据完整性的验证。格式化成没有DIF的块设备被称为包括类型0保护。而格式化成具有DIF信息的块设备被称为包括类型1保护并且包括块循环冗余校验(CRC)、参考标签(LBA)和应用定义的应用标签。随着对T10DIF支持的出现,期望把数据从具有类型0保护(即,不包括类型1保护)的现有卷移植到格式化成具有类型1保护的卷。当前用于执行这种类型数据移植的系统与方法一般使用SCSI主机来执行数据移植。具体而言,SCSI主机从未受保护的卷读取全部数据块、利用DIF信息格式化数据块,然后把数据块连同DIF信息一起写到新的卷。换句话说,SCSI主机负责执行与在卷之间移植数据相关的每个任务。

技术实现要素:
各种实施例提供了用于移植数据的系统。一种系统包括配置成存储受保护的数据的小型计算机系统接口逻辑单元号(SCSILUN)、处理器和耦合到处理器的存储器。存储器配置成存储对等远程复制(PPRC)应用,其中处理器配置成执行该PPRC应用,来修改所发送的数据和所接收的数据中的保护。其它实施例提供了用于把未受保护的数据移植到受保护的SCSILUN的方法。一种方法包括从第一处理器接收未受保护的数据。该方法还包括由第二处理器利用PPRC应用向数据添加保护,生成受保护的数据,并且把受保护的数据存储到受保护的SCSILUN中。还提供了把受保护的数据移植到未受保护的SCSILUN的方法。一种方法包括在受保护的SCSILUN接收发送受保护的数据的请求、利用PPRC应用从受保护的数据剥去保护以便产生未受保护的数据,并且把未受保护的数据发送到未受保护的SCSILUN。附图说明为了更容易地理解本发明的优点,以上简要描述的本发明的更特定描述将参考附图中所说明的具体实施例给出。应当理解,这些图仅仅是绘出了本发明的典型实施例,而且因此不应当认为是对其范围的限定,本发明将通过附图的使用以附加的特性和细节来描述和解释,附图中:图1是用于移植数据的系统的一种实施例的框图;图2是用于移植数据的系统的另一种实施例的框图;图3是用于移植数据的系统的还有另一种实施例的框图;图4是用于把未受保护的数据从未受保护的SCSILUN移植到受保护的SCSILUN的方法的一种实施例的流程图;及图5是用于把受保护的数据从受保护的SCSILUN移植到未受保护的SCSILUN的方法的一种实施例的流程图。具体实施例以下说明的实施例提供了用于移植数据的系统与方法。一种系统包括配置成存储受保护的数据的小型计算机系统接口逻辑单元号(SCSILUN)、处理器和耦合到处理器的存储器。存储器配置成存储对等远程复制(PPRC)应用,其中处理器配置成执行该PPRC应用,来修改所发送的数据和所接收的数据中的保护。其它实施例提供了用于把未受保护的数据移植到受保护的SCSILUN的方法。一种方法包括从第一处理器接收未受保护的数据。该方法还包括由第二处理器利用PPRC应用向数据添加保护以便生成受保护的数据,并且把受保护的数据存储到受保护的SCSILUN中。还提供了把受保护的数据移植到未受保护的SCSILUN的方法。一种方法包括在受保护的SCSILUN接收发送受保护的数据的请求、利用PPRC应用从受保护的数据剥去保护以便产生未受保护的数据,并且把未受保护的数据发送到未受保护的SCSILUN。现在转向图,图1是用于移植数据的系统的一种实施例100的框图。至少在所说明的实施例中,系统100包括经总线150(例如,有线和/或无线总线)彼此耦合的存储器110、包括未受保护的数据的SCSILUN120、包括受保护的数据的SCSILUN130及处理器140。存储器110可以是能够存储对等远程复制(PPRC)应用1110的任何存储器系统和/或设备。在一种实施例中,PPRC1110是用来把第一SCSILUN(例如,源卷)镜像到第二SCSILUN(例如,目标卷)的协议(例如,计算机可执行的代码)。SCSILUN120可以是能够存储数据的任何存储器系统和/或块设备。在一种实施例中,SCSILUN120包括未受保护的数据。换句话说,SCSILUN120格式化成没有DIF信息(例如,包括类型0保护)。SCSILUN120中未受保护的数据能够利用PPRC应用1110发送到SCSILUN130。SCSILUN130可以是能够存储数据的任何存储器系统和/或设备。在一种实施例中,SCSILUN130包括受保护的数据。换句话说,SCSILUN130格式化成具有DIF信息(例如,包括类型1保护)。存储在SCSILUN130中的数据包括数据完整性字段(DIF),该字段包括块循环冗余校验(CRC)、参考标签(LBA)和应用定义的应用标签。SCSILUN130中受保护的数据能够利用PPRC应用1110发送到SCSILUN120。处理器140可以是能够在后台执行PPRC应用1110的任何系统、装置和/或设备,以便在SCSILUN120和SCSILUN130之间移植(例如,镜像)数据。在一种实施例中,处理器140配置成把未受保护的数据从SCSILUN120移植到SCSILUN130。具体而言,处理器140配置成利用PPRC应用1110把未受保护的数据转换成受保护的数据并且把受保护的数据存储在SCSILUN130中。换句话说,处理器140配置成利用PPRC应用1110给数据添加类型1保护并且把具有类型1保护的数据存储在SCSILUN130中。当把数据从SCSILUN120移植到SCSILUN130时,处理器140配置成从小型计算机系统接口命令描述符块(SCSICDB)确定要从SCSILUN120移植的数据没有格式化成具有类型1保护而且写命令是寻址到格式化成具有类型1保护的卷(即,SCSILUN130)。对其进行响应,处理器140配置成,当块写到SCSILUN130中的时候,对数据的逻辑块生成DIF信息。所生成的DIF信息将具有良好的块CRC、参考标签和设置成工业标准“FFFFh”的应用标签,“FFFFh”指示DIF的有效性不应当被检查。当具有有效应用标签的类型1保护生成后,就确保了从对SCSILUN130生成DIF信息的时刻开始数据的完整性。当主机读取SCSILUN130上的数据时,关于逻辑块的有效DIF确保在数据写到SCSILUN130之后数据没有被破坏。在一种备选实施例中,处理器140配置成提供使用户能够选择用于应用标签的值而不是“FFFFh”的接口。不是FFFFh的应用标签指示DIF的有效性应当被检查并且允许用户检查存储在SCSILUN130中的数据的有效性。换句话说,使用户能够定义和/或选择与FFFFh不同的应用标签(即,与工业标准缺省应用标签不同的应用标签)允许用户在从SCSILUN130读出数据之后检查数据的CRC。在另一种实施例中,处理器140配置成把数据从SCSILUN130(即,从格式化成具有类型1保护的卷)移植到SCSILUN120(即,到不包括类型1保护的卷)。即,SCSILUN130支持数据转换,而SCSILUN120不支持数据转换。为了执行数据移植,处理器140配置成确定接收的SCSILUN(即,SCSILUN120)是否格式化成具有DIF信息。这个确定是在SCSILUN120和SCSILUN130之间的关系第一次确立的时候进行的。具体而言,SCSILUN130向SCSILUN120发布查询,以便确定SCSILUN120的状态。响应于该查询,SCSILUN120发送包括一个标志的响应,该标志指示辅助卷是否格式化成具有DIF信息(即,指示SCSILUN120没有格式化成具有类型1保护的标志)并且SCSILUN130存储这个信息。当数据从SCSILUN130传送到SCSILUN120时,处理器140配置成在把数据发送到SCSILUN120之前从要从SCSILUN130发送到SCSILUN120的逻辑块剥去类型1保护。以下顺序说明了系统100的这种实施例的操作。开始,处理器140确定有必要发布从SCSILUN130到SCSILUN120的写数据命令。然后,处理器140确定SCSILUN130格式化成具有类型1保护而SCSILUN120没有格式化成具有类型1保护。然后,处理器140配置成从逻辑块剥去类型1保护,然后把逻辑块传送到SCSILUN120。此外,当处理器140从SCSILUN130读取数据时,处理器140还从块剥去DIF,然后把带数据的SCSI写命令发送到SCSILUN120。尽管图1把系统100说明为包括一个未受保护的SCSILUN(例如,SCSILUN120)和一个受保护的SCSILUN(SCSILUN130),但是,系统100不限于此。即,系统100的各种实施例可以包括多于一个未受保护的SCSILUN(SCSILUN120)和/或多于一个受保护的SCSILUN(SCSILUN130)而且功能类似于系统100所说明的实施例。参考图2,图2是用于移植数据的系统的另一种实施例200的框图。至少在所说明的实施例中,系统200包括经网络230(例如,广域网、局域网、互联网和类似的网络)耦合到计算设备220的计算设备210。与以上参考图1讨论的系统100相似的计算设备210包括经总线2150(例如,有线和/或无线总线)彼此耦合的存储器2110、包括未受保护的数据的SCSILUN2120、包括受保护的数据的SCSILUN2130和处理器2140。存储器2110可以是能够存储PPRC应用2112的任何存储器系统和/或设备。在一种实施例中,PPRC2112是用于把第一SCSILUN(例如,源卷)镜像到第二SCSILUN(例如,目标卷)的协议(例如,计算机可执行的代码)。SCSILUN2120可以是能够存储数据的任何存储器系统和/或块设备。在一种实施例中,SCSILUN2120包括未受保护的数据。换句话说,SCSILUN2120格式化成没有DIF信息(例如,包括类型0保护)。SCSILUN2120中未受保护的数据能够利用PPRC应用2112发送到SCSILUN2130。SCSILUN2130可以是能够存储数据的任何存储器系统和/或设备。在一种实施例中,SCSILUN2130包括受保护的数据。换句话说,SCSILUN2130格式化成具有DIF信息(例如,包括类型1保护)。存储在SCSILUN2130中的数据包括数据完整性字段(DIF),该字段包括块CRC、LBA和应用定义的应用标签。SCSILUN2130中受保护的数据能够利用PPRC应用2112发送到SCSILUN2120。处理器2140可以是能够在后台执行PPRC应用2112的任何系统、设备和/或设备,以便在SCSILUN2120和SCSILUN2130之间移植(例如,镜像)数据。在一种实施例中,处理器2140配置成把未受保护的数据从SCSILUN2120移植到SCSILUN2130。具体而言,处理器2140配置成利用PPRC应用2112把未受保护的数据转换成受保护的数据并且把受保护的数据存储在SCSILUN2130中。换句话说,处理器2140配置成利用PPRC应用2112给数据添加类型1保护并且把具有类型1保护的数据存储在SCSILUN2130中。当把数据从SCSILUN2120移植到SCSILUN2130时,处理器2140配置成从SCSICDB确定要从SCSILUN2120移植的数据没有格式化成具有类型1保护而且写命令是寻址到格式化成具有类型1保护的卷(即,SCSILUN2130)。对其进行响应,处理器2140配置成,当块写到SCSILUN2130中的时候,对数据的逻辑块生成DIF信息。所生成的DIF信息将具有良好的块CRC、参考标签和设置成工业标准“FFFFh”的应用标签。当具有有效应用标签的类型1保护生成后,就确保了从对SCSILUN2130生成DIF信息的时刻开始数据的完整性。当主机读取SCSILUN2130上的数据时,关于逻辑块的有效DIF确保在数据写到SCSILUN2130之后数据没有被破坏。在一种备选实施例中,处理器2140配置成提供使用户能够选择用于应用标签的值而不是“FFFFh”的接口。不是FFFFh的应用标签指示DIF的有效性应当被检查并且允许用户检查存储在SCSILUN2130中的数据的有效性。换句话说,使用户能够定义和/或选择与FFFFh不同的应用标签(即,与工业标准缺省应用标签不同的应用标签)允许用户在从SCSILUN2130读出数据之后检查数据的CRC。在另一种实施例中,处理器2140配置成把数据从SCSILUN2130(即,从格式化成具有类型1保护的卷)移植到SCSILUN2120(即,到不包括类型1保护的卷)。即,SCSILUN2130支持数据转换,而SCSILUN2120不支持数据转换。为了执行数据移植,处理器2140配置成确定接收的SCSILUN(即,SCSILUN2120)是否格式化成具有DIF信息。这个确定是在SCSILUN2120和SCSILUN2130之间的关系第一次确立的时候进行的。具体而言,SCSILUN2130向SCSILUN2120发布查询,以便确定SCSILUN2120的状态。响应于该查询,SCSILUN2120发送包括一个标志的响应,该标志指示SCSILUN2120是否格式化成具有DIF信息(即,指示SCSILUN2120没有格式化成具有类型1保护的标志)并且SCSILUN2130存储这个信息。当数据从SCSILUN2130传送到SCSILUN2120时,处理器2140配置成在把数据发送到SCSILUN2120之前从要从SCSILUN2130发送到SCSILUN2120的逻辑块剥去类型1保护。以下顺序说明了计算设备210的这种实施例的操作。开始,处理器2140确定有必要发布从SCSILUN2130到SCSILUN2120的写数据命令。然后,处理器2140确定SCSILUN2130格式化成具有类型1保护而SCSILUN2120没有格式化成具有类型1保护的。然后,处理器2140配置成从逻辑块剥去类型1保护,然后把逻辑块传送到SCSILUN2120。此外,当处理器2140从SCSILUN2130读取数据时,处理器2140还从块剥去DIF,然后把带数据的SCSI写命令发送到SCSILUN2120。与以上参考图1讨论的系统100相似的计算设备220包括经总线2250(例如,有线和/或无线总线)彼此耦合的存储器2210、包括未受保护的数据的SCSILUN2220、包括受保护的数据的SCSILUN2230和处理器2240。存储器2210可以是能够存储PPRC应用2212的任何存储器系统和/或设备。在一种实施例中,PPRC2212是用于把第一SCSILUN(例如,源卷)镜像到第二SCSILUN(例如,目标卷)的协议(例如,计算机可执行的代码)。SCSILUN2220可以是能够存储数据的任何存储器系统和/或块设备。在一种实施例中,SCSILUN2220包括未受保护的数据。换句话说,SCSILUN2220格式化成没有DIF信息(例如,包括类型0保护)。SCSILUN2220中未受保护的数据能够利用PPRC应用2212发送到SCSILUN2230。SCSILUN2230可以是能够存储数据的任何存储器系统和/或设备。在一种实施例中,SCSILUN2230包括受保护的数据。换句话说,SCSILUN2230格式化成具有DIF信息(例如,包括类型1保护)。存储在SCSILUN2230中的数据包括数据完整性字段(DIF),该字段包括块CRC、LBA和应用定义的应用标签。SCSILUN2230中受保护的数据能够利用PPRC应用2212发送到SCSILUN2220。处理器2240可以是能够在后台执行PPRC应用2212的任何系统、装置和/或设备,以便在SCSILUN2220和SCSILUN2230之间移植(例如,镜像)数据。在一种实施例中,处理器2240配置成把未受保护的数据从SCSILUN2220移植到SCSILUN2230。具体而言,处理器2240配置成利用PPRC应用2212把未受保护的数据转换成受保护的数据并且把受保护的数据存储在SCSILUN2230中。换句话说,处理器2240配置成利用PPRC应用2212给数据添加类型1保护并且把具有类型1保护的数据存储在SCSILUN2230中。当把数据从SCSILUN2220移植到SCSILUN2230时,处理器2240配置成从SCSICDB确定要从SCSILUN2220移植的数据没有格式化成具有类型1保护而且写命令是寻址到格式化成具有类型1保护的卷(即,SCSILUN2230)。对其进行响应,处理器2240配置成,当块写到SCSILUN2230中的时候,对数据的逻辑块生成DIF信息。所生成的DIF信息将具有良好的块CRC、参考标签和设置成工业标准“FFFFh”的应用标签。当具有有效应用标签的类型1保护生成后,就确保了从对SCSILUN2230生成DIF信息的时刻开始数据的完整性。当主机读取SCSILUN2230上的数据时,关于逻辑块的有效DIF确保在数据写到SCSILUN2230之后数据没有被破坏。在一种备选实施例中,处理器2240配置成提供使用户能够选择用于应用标签的值而不是“FFFFh”的接口。不是FFFFh的应用标签指示DIF的有效性应当被检查并且允许用户检查存储在SCSILUN2230中的数据的有效性。换句话说,使用户能够定义和/或选择与FFFFh不同的应用标签(即,与工业标准缺省应用标签不同的应用标签)允许用户在从SCSILUN2230读出数据之后检查数据的CRC。在另一种实施例中,处理器2240配置成把数据从SCSILUN2230(即,从格式化成具有类型1保护的卷)移植到SCSILUN2220(即,到不包括类型1保护的卷)。即,SCSILUN2230支持数据转换,而SCSILUN2220不支持数据转换。为了执行数据移植,处理器2240配置成确定接收的SCSILUN(即,SCSILUN2220)是否格式化成具有DIF信息。这个确定是在SCSILUN2220和SCSILUN2230之间的关系第一次确立的时候进行的。具体而言,SCSILUN2230向SCSILUN2220发布查询,以便确定SCSILUN2220的状态。响应于该查询,SCSILUN2220发送包括一个标志的响应,该标志指示SCSILUN2220是否格式化成具有DIF信息(即,指示SCSILUN2220没有格式化成具有类型1保护的标志)并且SCSILUN2230存储这个信息。当数据从SCSILUN2230传送到SCSILUN2220时,处理器2240配置成在把数据发送到SCSILUN2220之前从要从SCSILUN2230发送到SCSILUN2220的逻辑块剥去类型1保护。以下顺序说明了计算设备220的这种实施例的操作。开始,处理器2240确定有必要发布从SCSILUN2230到SCSILUN2220的写数据命令。然后,处理器2240确定SCSILUN2230格式化成具有类型1保护而SCSILUN2220没有格式化成具有类型1保护。然后,处理器2240配置成从逻辑块剥去类型1保护,然后把逻辑块传送到SCSILUN2220。此外,当处理器2240从SCSILUN2230读取数据时,处理器2240还从块剥去DIF,然后把带数据的SCSI写命令发送到SCSILUN2220。此外,系统200能够在计算设备210和计算设备220之间移植数据。具体而言,系统200能够把未受保护的数据从SCSILUN2120移植到SCSILUN2230并且从SCSILUN2220移植到SCSILUN2130。此外,系统200能够把受保护的数据从SCSILUN2130移植到SCSILUN2220并且从SCSILUN2230移植到SCSILUN2120。继续参考处理器2140,处理器2140进一步配置成执行PPRC应用2112,以便在SCSILUN2220与SCSILUN2130之间移植(例如,镜像)数据。在一种实施例中,处理器2140配置成把未受保护的数据从SCSILUN2220移植到SCSILUN2130。具体而言,处理器2140配置成利用PPRC应用2112把未受保护的数据转换成受保护的数据并且把受保护的数据存储在SCSI2130中。换句话说,处理器2140配置成利用PPRC应用2112向存储在SCSILUN2220中的数据添加类型1保护并且把具有类型1保护的数据存储在SCSILUN2130中。当把数据从SCSILUN2220移植到SCSILUN2130时,处理器2140配置成从SCSICDB确定要从SCSILUN2220移植的数据没有格式化成具有类型1保护而且写命令是寻址到格式化成具有类型1保护的卷(即,SCSILUN2130)。对其进行响应,处理器2140配置成,当块写到SCSILUN2130中的时候,对数据的逻辑块生成DIF信息。所生成的DIF信息将具有良好的块CRC、参考标签和设置成工业标准“FFFFh”的应用标签。当具有有效应用标签的类型1保护生成后,就确保了从对SCSILUN2130生成DIF信息的时刻开始数据的完整性。当主机读取SCSILUN2130上的数据时,关于逻辑块的有效DIF确保在数据写到SCSILUN2130之后数据没有被破坏。在一种备选实施例中,处理器2140配置成提供使用户能够选择用于应用标签的值而不是“FFFFh”的接口。不是FFFFh的应用标签指示DIF的有效性应当被检查并且允许用户检查存储在SCSILUN2130中的数据的有效性。换句话说,使用户能够定义和/或选择与FFFFh不同的应用标签(即,与工业标准缺省应用标签不同的应用标签)允许用户在从SCSILUN2130读出数据之后检查数据的CRC。在另一种实施例中,处理器2140配置成把数据从SCSILUN2130(即,从格式化成具有类型1保护的卷)移植到SCSILUN2220(即,到不包括类型1保护的卷)。即,SCSILUN2130支持数据转换,而SCSILUN2220不支持数据转换。为了执行数据移植,处理器2140配置成确定接收的SCSILUN(即,SCSILUN2220)是否格式化成具有DIF信息。这个确定是在SCSILUN2220和SCSILUN2130之间的关系第一次确立的时候进行的。具体而言,处理器2140向SCSILUN2220发布查询,以便确定SCSILUN2220的状态。响应于该查询,SCSILUN2220发送包括一个标志的响应,该标志指示SCSILUN2220是否格式化成具有DIF信息(即,指示SCSILUN2220没有格式化成具有类型1保护的标志)并且SCSILUN2130存储这个信息。当数据从SCSILUN2130传送到SCSILUN2220时,处理器2140配置成在把数据发送到SCSILUN2220之前从要从SCSILUN2130发送到SCSILUN2220的逻辑块剥去类型1保护。以下顺序说明了处理器2140的这种实施例的操作。开始,处理器2140确定有必要发布从SCSILUN2130到SCSILUN2220的写数据命令。然后,处理器2140确定SCSILUN2130格式化成具有类型1保护而SCSILUN2220没有格式化成具有类型1保护。然后,处理器2140配置成从逻辑块剥去类型1保护,然后把逻辑块传送到SCSILUN2220。此外,当处理器2140从SCSILUN2130读取数据时,处理器2140还从块剥去DIF,然后把带数据的SCSI写命令发送到SCSILUN2220。参考处理器的另一个实施例2240,处理器2240进一步配置成执行PPRC应用2212,以便在SCSILUN2120与SCSILUN2230之间移植(例如,镜像)数据。在一种实施例中,处理器2240配置成把未受保护的数据从SCSILUN2120移植到SCSILUN2230。具体而言,处理器2240配置成利用PPRC应用2212把未受保护的数据转换成受保护的数据并且把受保护的数据存储在SCSI2230中。换句话说,处理器2240配置成利用PPRC应用2212向存储在SCSILUN2120中的数据添加类型1保护并且具有类型1保护的数据存储在SCSILUN2230中。当把数据从SCSILUN2120移植到SCSILUN2230时,处理器2240配置成从SCSICDB确定要从SCSILUN2120移植的数据没有格式化成具有类型1保护而且写命令是寻址到格式化成具有类型1保护的卷(即,SCSILUN2230)。对其进行响应,处理器2240配置成,当块写到SCSILUN2230中的时候,对数据的逻辑块生成DIF信息。所生成的DIF信息将具有良好的块CRC、参考标签和设置成工业标准“FFFFh”的应用标签。当具有有效应用标签的类型1保护生成后,就确保了从对SCSILUN2230生成DIF信息的时刻开始数据的完整性。当主机读取SCSILUN2230上的数据时,关于逻辑块的有效DIF确保在数据写到SCSILUN2230之后数据没有被破坏。在一种备选实施例中,处理器2240配置成提供使用户能够选择用于应用标签的值而不是“FFFFh”的接口。不是FFFFh的应用标签指示DIF的有效性应当被检查并且允许用户检查存储在SCSILUN2230中的数据的有效性。换句话说,使用户能够定义和/或选择与FFFFh不同的应用标签(即,与工业标准缺省应用标签不同的应用标签)允许用户在从SCSILUN2230读出数据之后检查数据的CRC。在另一种实施例中,处理器2240进一步配置成把数据从SCSILUN2230(即,从格式化成具有类型1保护的卷)移植到SCSILUN2120(即,到不包括类型1保护的卷)。即,SCSILUN2230支持数据转换,而SCSILUN2120不支持数据转换。为了执行数据移植,处理器2240配置成确定接收的SCSILUN(即,SCSILUN2120)是否格式化成具有DIF信息。这个确定是在SCSILUN2120和SCSILUN2230之间的关系第一次确立的时候进行的。具体而言,处理器2240向SCSILUN2120发布查询,以便确定SCSILUN2120的状态。响应于该查询,SCSILUN2120发送包括一个标志的响应,该标志指示SCSILUN2120是否格式化成具有DIF信息(即,指示SCSILUN2120不是利用类型1保护格式化的标志)并且SCSILUN2230存储这个信息。当数据从SCSILUN2230传送到SCSILUN2120时,处理器2240配置成在把数据发送到SCSILUN2120之前从要从SCSILUN2230发送到SCSILUN2120的逻辑块剥去类型1保护。以下顺序说明了处理器2240的这种实施例的操作。开始,处理器2240确定有必要发布从SCSILUN2230到SCSILUN2120的写数据命令。然后,处理器2240确定SCSILUN2230格式化成具有类型1保护而SCSILUN2120没有格式化成具有类型1保护。然后,处理器2240配置成从逻辑块剥去类型1保护,然后把逻辑块传送到SCSILUN2120。此外,当处理器2240从SCSILUN2230读取数据时,处理器2240还从块剥去DIF,然后把带数据的SCSI写命令发送到SCSILUN2120。尽管图2把计算设备210说明为包括一个未受保护的SCSILUN(例如,SCSILUN2120)和一个受保护的SCSILUN(SCSILUN2130),但是,计算设备210不限于此。即,计算设备210的各种实施例可以包括多于一个未受保护的SCSILUN(例如,SCSILUN2120)和/或多于一个受保护的SCSILUN(SCSILUN2130)而且功能类似于计算设备210所说明的实施例。此外,尽管图2把计算设备220说明为包括一个未受保护的SCSILUN(例如,SCSILUN2220)和一个受保护的SCSILUN(SCSILUN2230),但是,计算设备220不限于此。即,计算设备220的各种实施例可以包括多于一个未受保护的SCSILUN(例如,SCSILUN2220)和/或多于一个受保护的SCSILUN(SCSILUN2230)而且功能类似于计算设备220所说明的实施例及计算设备220如何连同计算设备210一起进行操作。参考图3,图3是用于移植数据的系统的另一种实施例300的框图。至少在所说明的实施例中,系统300包括经网络330(例如,广域网、局域网、互联网和类似的网络)耦合到计算设备320的计算设备310。计算设备310包括经总线3150(例如,有线和/或无线总线)彼此耦合的存储器3110、包括未受保护的数据的SCSILUN3120和处理器3140。存储器3110可以是能够存储对等远程复制(PPRC)应用3112的任何存储器系统和/或设备。在一种实施例中,PPRC3112是用于把存储在SCSILUN3120(例如,源卷)中的未受保护的数据移植(或镜像)到SCSILUN3230(例如,目标卷)的协议(例如,计算机可执行的代码)。此外,当被处理器3140执行时,PPRC3112配置成从SCSI3230接收未受保护的数据并且把未受保护的数据存储在SCSILUN3120中。SCSILUN3120可以是能够存储数据的任何存储器系统和/或块设备。在一种实施例中,SCSILUN3120包括未受保护的数据。换句话说,SCSILUN3120格式化成没有DIF信息(例如,包括类型0保护)。SCSILUN3120中未受保护的数据能够被发送到计算设备320而且来自计算设备320的数据能够被发送到SCSILUN3120。处理器3140可以是能够与PPRC应用3112通信并且执行其的任何系统、设备和/或设备,以便在计算设备310与计算设备320之间移植(例如,镜像)数据。具体而言,处理器3140配置成把未受保护的数据从SCSILUN3120发送到计算设备320并且从计算设备320接收未受保护的数据,存储在SCSILUN3120中。计算设备320包括经总线3250(例如,有线和/或无线总线)彼此耦合的存储器3210、包括受保护的数据(例如,具有DIF信息的数据)的SCSILUN3230和处理器3240。存储器3210可以是能够存储能够向未受保护的数据(例如,包括类型0保护的数据或者没有DIF信息的数据)添加类型1保护的保护模块3211(例如,应用、计算机可执行代码和/或计算机程序)和PPRC3212的任何存储器系统和/或设备。SCSILUN3230可以是能够存储数据的任何存储器系统和/或设备。在一种实施例中,SCSILUN3230包括受保护的数据。换句话说,SCSILUN3230格式化成具有DIF信息(例如,包括类型1保护)。SCSILUN3230中所存储的数据包括数据完整性字段(DIF),该字段包括块CRC、LBA和应用定义的应用标签。SCSILUN3230中受保护的数据能够利用PPRC应用3212发送到SCSILUN3220。处理器3240可以是能够在后台执行保护模块3211和PPRC应用3212的任何系统、设备和/或设备,以便在SCSILUN3230和SCSILUN3120之间执行移植(例如,镜像)。在一种实施例中,处理器3240配置成把未受保护的数据从SCSILUN3120移植到SCSILUN3230。具体而言,处理器3240配置成利用保护模块3211把未受保护的数据转换成受保护的数据并且把受保护的数据存储在SCSILUN3230中。换句话说,处理器3240配置成利用保护模块3211向未受保护的数据添加类型1保护并且把具有类型1保护的数据存储在SCSILUN3230中。当利用保护模块3211把数据从SCSILUN3120移植到SCSILUN3230时,处理器3240配置成从SCSICDB确定要从SCSILUN3120移植的数据没有格式化成具有类型1保护而且写命令是寻址到格式化成具有类型1保护的卷(即,SCSILUN3230)。对其进行响应,处理器3240配置成,当块写到SCSILUN3230中的时候,对数据的逻辑块生成DIF信息。所生成的DIF信息将具有良好的块CRC、参考标签和设置成工业标准“FFFFh”的应用标签。当具有有效应用标签的类型1保护生成后,就确保了从对SCSILUN3230生成DIF信息的时刻开始数据的完整性。换句话说,当主机读取SCSILUN3230上的数据时,关于逻辑块的有效DIF确保在数据写到SCSILUN3230之后数据没有被破坏。在一种备选实施例中,处理器3240配置成提供使用户能够选择用于应用标签的值而不是“FFFFh”的接口。不是FFFFh的应用标签指示DIF的有效性应当被检查并且允许用户检查存储在SCSILUN3230中的数据的有效性。换句话说,使用户能够定义和/或选择与FFFFh不同的应用标签(即,与工业标准缺省应用标签不同的应用标签)允许用户在从SCSILUN3230读出数据之后检查数据的CRC。在另一种实施例中,处理器3240配置成利用PPRC3212把数据从SCSILUN3230(即,从格式化成具有类型1保护的卷)移植到SCSILUN3120(即,到不包括类型1保护的卷)。即,SCSILUN3230支持数据转换,而SCSILUN3120不支持数据转换。为了执行数据移植,处理器3240配置成确定接收的SCSILUN(即,SCSILUN3120)是否格式化成具有DIF信息。这个确定是在SCSILUN3120和SCSILUN3230之间的关系第一次确立的时候进行的。具体而言,处理器3240向SCSILUN3120发布查询,以便确定SCSILUN3120的状态。响应于该查询,SCSILUN3120发送包括一个标志的响应,该标志指示SCSILUN3120是否格式化成具有DIF信息(即,指示SCSILUN3120没有格式化成具有类型1保护的标志)并且处理器3240存储这个信息。当数据从SCSILUN3230传送到SCSILUN3120时,处理器3240配置成在把数据发送到SCSILUN3120之前从要从SCSILUN3230发送到SCSILUN3120的逻辑块剥去类型1保护。以下顺序说明了系统300的这种实施例的操作。开始,处理器3240确定有必要发布从SCSILUN3230到SCSILUN3120的写数据命令。然后,处理器3240确定SCSILUN3230格式化成具有类型1保护而SCSILUN3120没有格式化成具有类型1保护。然后,处理器3240配置成从逻辑块剥去类型1保护,然后把逻辑块传送到SCSILUN3120。此外,当处理器3240从SCSILUN3230读取数据时,处理器3240从块剥去DIF,然后把带现在未受保护的数据的SCSI写命令发送到SCSILUN3120。尽管图3把计算设备310说明为包括一个未受保护的SCSILUN(例如,SCSILUN3120),但是,计算设备310不限于此。即,计算设备310的各种实施例可以包括多于一个未受保护的SCSILUN(例如,SCSILUN3120)而且功能类似于计算设备310所说明的实施例。尽管图3把计算设备320说明为包括一个受保护的SCSILUN(例如,SCSILUN3220),但是,计算设备320不限于此。即,计算设备320的各种实施例可以包括多于一个受保护的SCSILUN(SCSILUN3230)而且功能类似于计算设备320所说明的实施例及计算设备320如何连同计算设备310一起进行操作。现在参考图4,图4是用于把未受保护的数据从未受保护的SCSILUN(例如,SCSILUN120、SCSILUN2120、SCSILUN2220和SCSILUN3120)移植到受保护的SCSILUN(例如,SCSILUN130、SCSILUN2130、SCSILUN2230和SCSILUN3230)的方法400的一种实施例的流程图。至少在所说明的实施例中,方法400是由从未受保护的SCSILUN接收具有类型0保护的数据(即,未受保护的数据)开始的(方框410)。方法400还包括由受保护的SCSILUN使用PPRC应用向数据添加类型1保护以便生成受保护的数据(方框420)并且把受保护的数据存储在受保护的SCSILUN中(方框430)。受保护的SCSILUN在后台执行PPRC,使得例如系统100、系统200和系统300的其它功能可以在前台执行。在一种实施例中,受保护的SCSILUN和未受保护的SCSILUN包括在相同的计算设备中(见例如图1中的系统100)。在另一种实施例中,受保护的SCSILUN和未受保护的SCSILUN包括在不同的计算设备中(见例如图2中的系统200和图3中的系统300)。在各种实施例中,修改应用标签中的值使得该值与用于受保护的数据的工业标准缺省值不同(方框440)。即,方法400还包括当用户定义的值未设置时添加具有应用标签FFFFh的类型1DIF信息和如果用户设置了应用标签值的话就利用用户定义的应用标签值生成并添加有效类型1DIF信息(见方框420)。方法400还包括当接收到读和/或移植受保护的数据的请求时检查受保护的数据的CRC(方框450)。即,当应用标签值是不同于FFFFh的值时检查CRC,以确保受保护的SCSILUN中数据的完整性。现在参考图5,图5是用于从受保护的SCSILUN(例如,SCSILUN130、SCSILUN2130、SCSILUN2230和SCSILUN3230)向未受保护的SCSILUN(例如,SCSILUN120、SCSILUN2120、SCSILUN2220和SCSILUN3220)移植受保护的数据的方法500的一种实施例的流程图。至少在所说明的实施例中,方法500是由在受保护的SCSILUN接收发送受保护的数据的请求开始的(方框510)。在一种实施例中,方法500还包括响应接收到该请求而检查受保护的数据的CRC(方框520)。当DIF包括与FFFFh不同的值时检查CRC,以确定受保护的数据是否有效。方法500还包括由处理器使用PPRC应用从受保护的数据剥去保护(方框530)并且把未受保护的数据发送到未受保护的SCSILUN(方框540)。在一种实施例中,受保护的SCSILUN和未受保护的SCSILUN都包括在相同的计算设备中(例如,图1中的系统100)。在另一种实施例中,受保护的SCSILUN和未受保护的SCSILUN包括在不同的计算设备中(见图2中的系统200和图3中的系统300)。尽管在前面本发明的具体描述中给出了至少一种示例性实施例,但是应当认识到存在大量变体。还应当认识到,所述一种或多种示例性实施例仅仅是例子,而不是要以任何方式限定本发明的范围、应用性或者配置。相反,以上具体描述将为本领域技术人员提供实现本发明示例性实施例的方便的指导方针。应当理解,在不背离如由所附权利要求及其合法等价物所阐述的本发明范围的情况下,可以对示例性实施例所描述的元件的功能和布置进行各种改变。所属技术领域的普通技术人员知道,本发明的各方面可以体现为系统、方法或计算机程序产品。因此,本发明的各方面可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。可以使用一种或多种计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者物理计算机可读存储介质。物理计算机可读存储介质可以是例如,但不限于,电、磁、光、晶体、聚合物、电磁、红外线或者半导体系统、装置、设备或者以上所述的任意合适组合。物理计算机可读存储介质的例子包括,但不限于,具有一条或多条电线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、EPROM、闪存存储器、光纤、CD-ROM、光学处理器、磁性处理器或者以上所述的任意合适组合。在本文档的背景下,计算机可读存储介质可以是可以包含或者存储由指令执行系统、装置或设备使用或者与其联合使用的程序或数据的任何有形介质。计算机可读介质上所体现的计算机代码可以利用任何适当的介质传输,包括,但不限于,无线、有线、光纤电缆、射频(RF)等或者以上所述的任意合适组合。用于执行本发明各方面的操作的计算机代码可以用任何静态语言来编写,例如“C”编程语言或其它类似的编程语言。计算机代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络或通信系统——包括但不限于局域网(LAN)或广域网(WAN)或者融合网络—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。以上参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。也可以把这些计算机程序指令存储在能使得计算机、其它可编程数据处理装置或者其它设备以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。尽管已经具体地说明了本发明的一种或多种实施例,但是本领域普通技术人员将认识到,在不背离如以下权利要求中所阐述的本发明范围的情况下,可以对那些实施例进行修改和改写。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1