[发明专利]基于存储区域网络的高速固态存储设备的实现方法无效
申请号: | 200610088932.1 | 申请日: | 2006-07-27 |
公开(公告)号: | CN1945537A | 公开(公告)日: | 2007-04-11 |
发明(设计)人: | 舒继武;薛巍;于冰;郑纬民 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F12/08;G06F15/173;G06F3/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100084北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于存储区域网络SAN存储技术领域,其特征在于:它将SAN中前端服务器和目标服务器节点上富余的DRAM内存资源组织起来形成高速虚拟磁盘设备TH-SSD,为用户提供与普通磁盘一致的读写访问接口。此方法采用虚拟技术将原本分散的内存资源映射到连续一致的虚拟磁盘地址空间,前端应用发出的对TH-SSD的数据访问请求均为对虚拟磁盘的请求。在实现上,采用了x86平台的内存扩展技术,扩展了可用的虚拟磁盘空间;采用了双日志双备份磁盘镜像策略保证TH-SSD中数据的完整性;实现了对FC SAN与IP SAN的无缝支持,使得TH-SSD在光纤网络和以太网络环境下都能很好地工作。 | ||
搜索关键词: | 基于 存储 区域 网络 高速 固态 设备 实现 方法 | ||
【主权项】:
1.基于存储区域网络的高速固态存储设备的实现方法,其特征在于,这是一种把存储区域网络中前端服务器和目标服务器端节点上富余的DRAM内存资源组织起来形成高速的虚拟磁盘设备,为用户提供与普通磁盘一致的读写访问接口,以代替磁盘为前端应用程序提供高速稳定的数据访问的方法,在以下的叙述中除非另有说明,存储区域网络都简称为SAN,高速固态存储设备简称为SSD,所述的实现方法依次含有以下步骤:步骤(1)依次按以下步骤,重新组织SAN的前端服务器和目标服务器节点的DRAM内存资源,生成虚拟磁盘SSD:步骤(1.1)所述的SSD均通过SSD驱动程序实现:在前端服务器上,设定本地SSD驱动程序,该驱动程序经SCSI驱动程序连接到文件系统,同时该驱动程序又与本地SSD互连,所述本地SSD驱动程序负责处理前端应用程序对本地SSD的数据访问操作;在作为存储管理节点的目标服务器端,设定目标服务器端SSD驱动程序,该驱动程序在与目标服务器端SSD互连的同时又与SCSI模拟目标器中间层互连,而该SCSI模拟目标器中间层又经SCSI子系统与磁盘子系统互连;步骤(1.2)所述的SSD驱动程序加载时通过扫描内核对象e820map结构来检测系统的内存,将系统内存中那些为SSD预留的内存区域的起始地址和大小记录在SSD驱动程序用于记录可用于SSD的内存段的结构中,将物理上可能不连续的内存空间转换为逻辑上连续的虚拟磁盘空间,并使用以下公式计算该内存区域在虚拟磁盘SSD中的起始地址:本次扫描的内存区域在虚拟磁盘SSD中的起始地址=上次扫描过的内存区域在虚拟磁盘中的起始地址+上次扫描过的内存区域的大小,其中“+”表示相加,把原本物理上可能不连续的内存空间映射成逻辑上连续的虚拟磁盘空间,在前端服务器和目标服务器端生成虚拟磁盘SSD;步骤(2)按照SCSI文档,本地SSD驱动程序从SCSI驱动程序获得前端应用程序发往本地SSD的数据访问的SCSI命令请求,目标服务器端SSD驱动程序从SCSI模拟目标器中间层获得前端应用发往目标器服务器端SSD的数据访问的SCSI命令请求;步骤(3)对于非读写的命令请求,该命令请求的数据缓冲区中保存有所述非读写命令执行完毕后返回的数据,则依次按照服下步骤处理:步骤(3.1)SSD驱动程序使用内核数据结构scatterlist来表示命令请求的数据缓冲区,每一个scatterlist结构中都有一个地址域和一个长度域,其中地址域用于存储所表示的数据缓冲区的起始地址,长度域用于存储所表示的数据缓冲区的大小;步骤(3.2)SSD驱动程序按照SCSI的命令处理格式把该非读写命令请求执行完毕后返回的数据填充到此命令的scatterlist结构所表示的缓冲区中;步骤(4)对于读写命令请求,则SSD驱动程序按照以下步骤依次处理:步骤(4.1)SSD驱动程序按照步骤(3.1)所述的方法使用scatterlist结构表示该读写命令请求的数据缓冲区;步骤(4.2)SSD驱动程序从SCSI命令中解析出此命令要进行读写操作的数据所在的虚拟磁盘地址以及数据长度;步骤(4.3)SSD驱动程序根据SCSI命令所请求的数据在虚拟磁盘中的起始地址和请求数据的长度,顺次扫描SSD驱动程序用于记录可用于SSD的内存段的结构,以确定该SCSI命令所要访问的虚拟磁盘中的数据段在哪些物理内存段,并获取此数据段所在相应的物理内存段中的起始地址以及长度;步骤(4.4)将所获得数据段在各个物理内存段中的地址空间映射到内核空间,对于读请求,把虚拟磁盘存储空间中的数据拷贝到与该请求对应的scatterlist结构所表示的数据缓冲区;对于写请求,把该请求对应的scatterlist结构所表示的数据缓冲区中的数据拷贝到虚拟磁盘的存储空间段中,并进行磁盘备份;步骤(4.5)将步骤(4.4)中所述的地址映射撤销。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200610088932.1/,转载请声明来源钻瓜专利网。