网络多硬盘复制机综述

时间:2022-05-24 09:05:00

导语:网络多硬盘复制机综述一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

网络多硬盘复制机综述

1概述

随着计算机犯罪的不断增加,作为计算机科学、信息安全科学、法学和刑事侦查学交叉学科的计算机取证(ComputerForensics)技术[1]越来越受到人们的关注。计算机犯罪使得公众蒙受重大损失,而电子数据证据不同于传统犯罪证据在于它们更加容易消失和被破坏,因此,打击计算机犯罪的重点在于找到充分可靠的电子证据。计算机取证是个技术性复杂性要求都比较高的工作,包括物理证据获取和信息发现2个阶段[2]:(1)物理证据获取是指司法调查人员来到计算机犯罪现场,寻找并扣留相关的计算机软件和硬件,要确保原始证据不受到任何破坏;(2)信息发现是指从原始数据中,寻找可以用来证明或者反驳什么的证据,主要由计算机证据的固定保存、计算机证据的提取、计算机证据的鉴定分析,以及计算机证据的表达构成[3],在整个过程中,必须保证电子证据的真实、可靠、完整并且符合法律规定。上述电子证据的固定保存、提取、分析等过程都是分立的,而目前基于硬盘到硬盘复制的取证保全模式,一般是一对一或者一对多的形式,具体来说就是通过硬盘复制机将源硬盘的数据克隆到另一个或者多个目标硬盘上。但是遇到某些案件需要保存分析很多硬盘时,一个一个复制未免耗费大量的时间与人力,这就需要鉴定工作室配备大量的复制机及空白硬盘,其次克隆好的目标硬盘在鉴定完成后,需要备份备查,这样就造成设备的闲置和浪费。综上考虑,由于上述电子取证模式存在着操作复杂、效率低的缺点,并且需要人工干预,自动化、智能化水平很低,因此本文设计并实现一个基于网络的多对多硬盘复制机。

2网络多硬盘复制机的系统架构

网络多硬盘复制机的系统架构如图1所示,其在物理上是由高速大容量存储网络、12路热插拔硬盘托架、网络多硬盘复制机、鉴定终端等子系统组成。由图1可知,所有子系统通过交换机连接到千兆以太网络环境中。大容量存储设备主要用于存储电子介质的镜像,存储服务器管理着存储设备的读写,网络多硬盘复制机通过网络将硬盘托架上需要鉴定的多个源硬盘分别做成文件镜像,并通过高速存储网络保存到存储设备中,在该复制过程中,硬盘复制机会实时地显示运行状态,在复制完成后,将文件镜像的校验码记录在日志中;当硬盘镜像复制完成后,鉴定终端用于对存储设备上的硬盘镜像文件进行数据恢复和鉴定分析等。

3系统设计与实现

3.1高速存储网络设计

因为网络硬盘复制机对传输速度要求很高,所以高速存储网络的结构设计非常关键。如图1所示硬盘复制机、鉴定终端、存储服务器通过存储区域网络(StorageAreaNetwork,SAN)连接到交换机上。存储服务器主要将SAN环境中的磁盘阵列和磁带库统一管理起来并形成一个共享文件系统,于是每个直连在SAN网络的主机都可以以光纤的高速度访问文件系统,这样不必通过网络在主机间拷贝文件提高系统性能,而且降低磁盘存储成本。硬盘复制机通过存储网络将数据镜像保存到磁盘阵列中,鉴定终端通过存储网络读取存储设备中的数据镜像进行鉴定分析处理。用户无须在网络上的主机间复制或移动文件,从而实现内容的高速提取、快速并行处理及异构环境下的数据共享。

3.2复制机和硬盘托架的通信协议选择

iSCSI(InternetSCSI)[4]是基于IP协议的技术标准,在TCP/IP协议上传输SCSI命令,实现SCSI和TCP/IP协议的连接。网络硬盘复制机、硬盘托架通过iSCSI协议进行通信,在协议中,硬盘托架其实相当于一个iSCSITarget设备,而硬盘复制机充当着iSCSIInitiator设备。硬盘托架将接收到的iSCSI命令包解析成对磁盘设备的操作,并将结果传送回硬盘复制机。于是在硬盘复制机上,通过iSCSI发送Login命令后挂载硬盘托架上的磁盘后,使用托架上的硬盘就像访问本地的SCSI设备一样简单。上述内容的完成都无需用户干预,而且对终端用户是完全透明的。

3.3硬盘托架的硬件设计

硬盘托架在iSCSI协议中,扮演着Target的角色。设计的硬盘托架同时支持4个复制单元共12个硬盘插拔,硬盘复制单元结构示意图如图2所示。由图2可知,每个单元共有3个硬盘接口(支持IDE及SATA硬盘接口、USB接口、多功能读卡器接口),硬盘通过一个特制的硬盘转接卡插到硬盘托架上。为确保硬盘插进硬盘托架后数据不能被修改,要对每个硬盘接口进行写保护。另外还需要对每块硬盘能进行编号描述处理,这可以通过iSCSI目标命名方式来实现。

3.4网络硬盘复制机的设计与实现

网络硬盘复制机在iSCSI协议中,扮演着Initiator的角色,负责将对磁盘设备的操作封装成iSCSI命令包然之后,通过iSCSI协议发送给硬盘托架。复制机通过IP地址连接上硬盘托架并且将插槽位置上的硬盘加载到本地,于是在复制机上,可以操纵硬盘托架上的硬盘了。图3描述网络硬盘复制机的工作职能。在用户与界面进行交互指定硬盘后,复制机根据用户选择的硬盘进行复制,在复制工作中,界面上还会实时的显示硬盘复制进度、即时复制速度、已用时间等相关信息。除此以外,用户还可以对硬盘复制任务进行控制,包括暂停、恢复甚至取消复制等。所有的这一切都通过用户与界面的交互来完成。复制任务完成后,系统会将镜像和相关的校验码保存到存储设备中以供后续的分析。

3.4.1主界面通过iSCSI协议,由于用户可以在网络硬盘复制机的界面上对硬盘托架上的硬盘进行操作,因此知道界面上模拟硬盘与实际硬盘架上硬盘的对应关系是必不可少的。设计中硬盘复制机的逻辑主界面模拟硬盘托架的物理架构,即每一个硬盘都与远程硬盘托架上具体的插槽相对应。由于在硬盘托架的设计过程中,对每个插槽的硬盘进行相应的iSCSI命名,因此在复制机上可以获知每个硬盘的在iSCSI协议下的名称。图4为盘复制机的模拟硬盘托架主界面。由图4可知,指示灯显示硬盘的工作状态。当指示灯为绿时,显示该位置的硬盘正处于工作状态,对应于硬盘托架上的同等位置上的插槽位置安放了硬盘;而指示灯熄灭则表示硬盘托架上的相应插槽位置没有硬盘或者硬盘已经拔除。通过这样的对应关系,用户可以方便地对硬盘进行辨识和一系列操作。

3.4.2硬盘复制任务硬盘复制机的主要任务在于对硬盘进行原始镜像。传统的硬盘复制机主要将其原始数据写入另一个空白硬盘中,然而这势必造成资源的浪费。本文硬盘复制机与之不同,将镜像写入磁盘阵列,并且记录相对应的哈希校验码。这样做,一方面可以方便的对检材进行备案,另一方面也被用作后续的鉴定任务。支持的硬盘镜像有2种:(1)DD文件,也就是硬盘原始二进制数据的完全克隆;(2)EWF(EncaseWitnessFormat)文件[5],EWF通过二进制模式复制原始硬盘或媒介计算MD5哈希值验证相关镜像文件,另外,计算CRC校验值确定证据是否被改变。EWF是电子取证领域中的证据文件,文件包含有3个组成部分,即文件头、校验值和数据块,这3个部分可有效防止数据被篡改,并可重新恢复成数据的原始状态。而DD镜像文件不包含文件头和校验值。传统的硬盘复制机每次只能复制一个硬盘,而本文设计的网络多硬盘复制机可以支持多个硬盘同时复制。在复制过程中,同时进行MD5、SHA128和SHA256多种哈希校验。在界面上会实时显示复制进度,包括完成百分比和即时速度等。此外用户可控制复制进程包括暂停、恢复和取消复制等。为最大化的利用资源并且提升复制速度,在每个硬盘的复制任务中采用多线程。系统预先分配一个线程池,主线程负责处理及与用户的交互,在线程池中的线程主要处理硬盘的复制任务。之所以设计这样的线程池,是为防止系统频繁的创建线程造成内存碎片和复制速度的颠簸。每当用户指定一个硬盘复制任务,主线程将该任务放到任务队列中,并通知线程池中的对应线程进行处理。每个硬盘复制任务又具体分为3个线程,即读取硬盘数据,对硬盘数据进行哈希校验,写镜像文件到磁盘阵列中。图5具体描述这3个线程之间的同步算法。借鉴生产者消费者的线程模式[6],系统分配一个环形缓冲区,读线程首先检测缓冲区中是否有空闲的缓冲块,如果缓冲区满了就等待,否则循环读取一定数目的硬盘块数据到缓冲块中,并且唤醒相应的校验线程;校验线程对缓冲块的数据进行哈希校验,完之唤醒写线程;写线程主要取出对应的缓冲块,将其数据写进镜像文件中,并且通知读线程该缓冲块的数据已经清空。读、校验、写这3个线程之间互相同步竞争,可以保证复制任务的顺利进行。

3.4.3硬盘托架的实时监控当用户在硬盘架上插入新的硬盘,或者在某个插槽位置拔掉硬盘时,在复制机界面上,必须实时反映这个热插拔情况。设置一个定时器用于查询硬盘托架上的硬盘变动情况。由于硬盘复制机的主要任务是克隆硬盘镜像,因此如果将这个定时查询器放在前端,势必与复制机主程序争端资源。具体来说,一方面会造成复制速度的降低,另一方面还会造成复制机主界面的“假死”。将其设计成一个系统服务,在与复制机主程序分离之后放在后端,一旦发现硬盘托架上的硬盘变动情况,发送相应的消息给复制机主程序。复制机主程序监听该服务,一旦接收到新的消息,随时更新硬盘状态。

4实验结果与性能分析

4.1系统软硬件配置

存储服务器与硬盘复制机的硬件配置分别为IntelXeonE5420CPU2.50GHz,16GB内存。硬盘托架的硬件配置为IntelXeonE5506CPU2.13GHz,4GB内存。磁盘阵列则由12个SAS硬盘扩展到6.7TB。硬盘复制机和存储服务器都用过QLogicHBA卡连接到光纤交换机上。交换机为千兆。复制机采用支持跨平台编译的Qt软件包[7]实现,这样可运行在Windows和Linux2种操作系统平台上。实验机器软硬件配置如表1所示,其中CPU都为IntelXeon。

4.2存储系统性能分析

衡量存储系统的性能有许多评价指标[8],本文主要采用吞吐率和响应时间。在实验中采用Iometer工具[9],设置3种模式,分别为连续读、连续写、以及读/写混合操作,并且针对不同的I/O请求数据量的大小进行测试,能反映存储系统在处理不同大小数据包时的性能差异。吞吐率曲线如图6所示和平均响应时间曲线如图7所示。由图6、图7可知,随着每个I/O请求的数据量增加,单位时间提交的I/O请求会越少,这样存储系统在单位时间内用于处理I/O请求的时间就会减少,从而提高数据传输速度。另外从数据的读写来看,明显的读操作的处理速度比写操作要快大约20%。

4.3复制机的性能分析

首先比较与传统硬盘复制机的复制速度,表2列出市面上3种常见的硬盘复制机以及本文的网络多硬盘复制机(简称本文)的各种性能参数(包括复制方式、哈希类型等)比较。由表2可知,本文复制机速度是在只对单个硬盘进行复制时测试得到,其他复制机的速度都是从官方说明书上获取的数据(由于传统复制机要将硬盘备份到空白硬盘上,为了节约成本,因此对这些复制机没有进行实验,只是简单的列出了说明书上的官方数据)。由此可见,本文复制机在只复制一个硬盘时的速度上与主流复制机不相上下,另外在硬盘接口上,哈希校验类型上也与主流复制机大致相同。从表2的硬盘复制方式这一列可以看出,传统的复制机的复制方式是一对一或者一对多,即将源每次只能将一个硬盘数据写入到另一个或者多个目标硬盘上,而网络多硬盘复制机的复制方式是多对多,同时对多个硬盘进行复制,并将这些硬盘的镜像数据分别保存到每个镜像文件中。接下来分析复制机在多个硬盘同时复制下的性能。实验采用一个U盘、4个IDE接口、7个SATA接口共12个硬盘(容量总大小为5.71TB),表3是多个硬盘同时复制的时间和平均复制速度,其中,BB表示平均复制速度。由表3可知,网络多硬盘复制机同时复制多个硬的性能明显比只复制单个硬盘要好,此外SATA硬盘的复制速度也相比IDE硬盘要快。随着硬盘并行复制数目的增多,总复制速度也相应的提升,当硬盘复制的并行数为5时,速度达到5.12GB/min。在这之后,平均复制速度会随着硬盘复制的并行数的增多而下降,比如在并行数为7时,速度为5.03GB/min。表3的最后2行是针对所有12个硬盘进行复制,但是最大的并行数并有设置成12,原因在前面已经描述。复制机维护复制队列和就绪等待2个队列,所有请求复制的硬盘按照一定规则进行排序并提交给系统,先来的硬盘进入复制队列,当复制队列的数目多于系统支持的最大硬盘复制的并行数时,硬盘则相应地进入就绪等待状态。只要复制队列中有硬盘完成复制,系统就会唤醒处于就绪队列的一个硬盘使其进入复制状态。实验结果表明,所有12个硬盘大约在15h完成,复制速度大约在6.5GB/min左右,这接近了千兆带宽网络的80%。

5结束语

本文设计并实现一种面向电子取证的网络多硬盘复制机。该复制机通过网络对远程硬盘托架上的多个硬盘进行数据备份,并将镜像文件保存到大容量存储设备中,以方便鉴定终端挖掘存储设备中的镜像信息。实验结果表明,在最佳配置下,能够快捷、高速地对多个硬盘进行取证,达到硬盘复制机领域的领先水平。今后的研究方向是利用网络带宽提升复制速度。