StreamingMedia——基于iSCSI技术的流媒体存储系统研究

关键字:

iSCSI 流媒体存储 组播

导读:

本文以iSCSI协议为基础,对实时流媒体存储技术进行了探讨,设计实现了一个高性能的原型系统

1 引言

随着流媒体技术的发展,其应用范围在不断扩展。特别是在视频监控领域,高清网络摄像机的出现和发展,对实时视频流媒体的存储提出了新的挑战。

实时流媒体存储的主要特点是以“持续写入”为主,以“随机读出”为辅,与传统的广播电视音像资料存储系统和文件系统应用有着明显的区别。

基于网络的视频监控存储系统的存储介质主要由磁盘阵列和相应的控制系统组成,根据其结构,可分为直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)。

DAS是以服务器为中心的存储系统,在视频数量较多时,其响应能力下降比较严重,在大规模流媒体存储系统中很少采用。

NAS是直接连接在网络上的存储系统,是一种专用的存储服务器,通常采用CIFS和NFS协议,提供文件系统服务。NAS系统具有较好的网络共享能力,部署灵活,管理简单。但在大量网络并发传输持续数据时性能可能会显著下降。

SAN是一种专用的存储网络系统,提供统一的块级存储,所有存储设备可以集中管理,支持完善的冗余备份功能。SAN可以是交换式网络,也可以是共享式网络。FC-SAN的最大缺点是成本昂贵,限制了它的广泛应用。iSCSI的出现,提供了低成本SAN(IPSAN),促进了SAN的应用和发展。

网络视频监控系统对流媒体的存储需求特点可以概括为:大容量、高性能、高可靠性、部署灵活、低成本。研究表明,iSCSI性能要明显优于NFS/CIFS[1,2],采用iSCSI协议的IPSAN产品非常适合网络流媒体存储应用。

2 iSCSI简介

iSCSI(internet SCSI)[3]就是SCSI Over IP,将SCSI协议封装在IP数据包中,在IP网络上传输Block级I/O数据。目的是为了用IP协议将存储设备连接在一起。通过在IP网上传送SCSI命令和数据,ISCSI推动了数据在网际之间的传递,同时也促进了数据的远距离管理。由于其出色的数据传输能力,ISCSI协议被认为是促进存储区域网(SAN)市场快速发展的关键因素之一。因为IP网络的广泛应用,ISCSI能够在LAN、WAN甚至internet上进行数据传送,使得数据的存储不再受地域的限制。

iSCSI协议定义了在TCP/IP网络上发送、接收Block(块)级的存储数据的规则和方法。ISCSI技术的核心是在TCP/IP网络上传输SCSI协议,用TCP/IP报文、iSCSI报文封装SCSI协议,使得SCSI命令和数据可以在普通以太网络上进行传输。iSCSI在以太网上传输的封装结构如图1所示。

iSCSI遵循SCSI协议的客户机-服务器体系结构,客户端称为Initiator(发起端),服务器端称为Target(目标端)。

发起端将SCSI命令和数据封装到TCP/IP包,经过网络传输,目标端收到TCP/IP包之后,将其解包获得SCSI命令和数据并执行,完成之后将返回的SCSI命令和数据封装到TCP/IP包中再传送回发起端。整个过程对用户是透明的,使用远端的存储设备就象访问本地的SCSI设备一样。

Initiator可以使用软件或硬件实现,通常以软件实现,作为操作系统内核驱动的一部分,使用现有网卡和网络协议栈,通过编程实现。Windows系统自带Initiator软件,Linux系统下存在多种开源的Initiator软件,包括Core-iSCSI、Open-iSCSI、UNH-iSCSI等。

iSCSI Target一般指专门的连接网络的数据存储设备,也可以是运行相应Target软件的通用计算机。现在有众多的存储设备提供商可以提供商用IPSAN设备,当然也有象Openfiler、UNH-iSCSI等构建在Linux系统上的开源iSCSI Target软件。作为研究用途,软件设计人员完全可以参考iSCSI RFC文档自行开发iSCSI Target软件[4,5]。

3 系统设计与实现

       本文研究内容是在iSCSI设备上实现实时流媒体存储,如何实现iSCSI Initiator和Target不是本文关注的重点,因此,这里选用商用IPSAN设备和Open-iSCSI开源软件作为研究的基础。

在视频监控领域,目前主要存在两种使用iSCSI实现实时流存储的结构,分别是:

(1) 前端IP摄像机或编码器直接把码流写入IPSAN设备,如图2所示;

图2 前端IP摄像机直接把码流写入IPSAN

图3 流媒体服务器接收码流然后写入IPSAN

(2) 在后端使用服务器接收数字视频流,然后写入IPSAN,如图3所示。

第一种存储系统结构简单,节省后端服务器设备,但是要求前端设备实现存储管理,而且存储码流采用iSCSI封装,而实时监控码流一般需要使用RTP封装,必须传输至少两路码流,对前端设备的网络传输处理能力要求较高,对接入网的带宽需求较大。

第二种存储系统需要在后端使用流媒体存储服务器完成接收RTP流,然后封装成iSCSI流并写入IPSAN设备,对前端设备要求较低,前端设备只需要发出一个RTP组播码流,就可以同时为存储和实时监控服务,节省了前端接入网带宽。存储系统主要依靠后端设备完成,与前端设备的具体实现无关。

显然,由于一般前端接入网带宽有限,而后端局域网一般能够提供足够的带宽和较好的传输质量,第二种结构更适合大多数系统,本文采用第二种结构进行研究,并搭建如下的实现环境:流存储服务器系统硬件使用通用的PC服务器,采用SUSE11操作系统,采用MySQL数据库管理系统;前端使用H.264编码的网络摄像机,采用组播方式传输视频流,如图3所示。

系统主要由以下软件模块组成:

1、 摄像机信息管理:包括摄像机名称、组播组、码流类型、码流带宽等信息管理;

2、 存储计划管理:为每个摄像机制定存储计划;

3、 码流接收处理模块:根据存储计划和摄像机码流信息接收RTP数据流;

4、 存储模块:把接收的码流封装成iSCSI格式写入IPSAN设备。

5、 视频检索信息处理:生成检索信息,并写入数据库;

6、 回放和下载服务:接收用户回放或下载请求,并根据索引信息从IPSAN设备读出数据,封装到RTP数据包中发回请求者,请求者接收码流进行回放或下载保存;

7、 系统管理:系统管理模块用户信息管理、系统运行状态监控、日志管理等功能。

存储设备上视频数据的组织,不同于文件的随机读写,而是采取顺序读写方式,分块存储。系统在写满一个预定义数据块后,根据该视频数据流对应的摄像机的IP地址、写入本数据块的起止时间,自动生成一个块索引值,存储到数据库中。按照存储计划,存储到期后可依次覆盖原有视频数据。本系统利用iSCSI协议直接写磁盘块,规避了文件系统的工作机制,可以有效减少文件系统造成的磁盘碎片,提高磁盘空间的利用率。

4 实验分析

为了测试上述系统的性能,搭建以下实验环境:

网络状况:千兆以太网。

流媒体存储服务器:4核Xeon CPU,2GB内存,千兆网连接。

IPSAN存储设备:16TB硬盘,配置RAID5,千兆网连接。

网络摄像机:H.264 1080P编码,RTP组播传输,8Mbps码流带宽。

测试实时流:在另外一台服务器上使用码流转发服务软件转发50路8Mbps码流,模拟50路8Mbps实时流的环境。

对设备写入48小时后进行测试。

4.1 流媒体写入性能

        使用iftop查看网络吞吐量,如图4所示,可以看到,从流媒体存储服务器(192.168.0.23)到IPSAN存储设备(192.168.0.114)的流量持续大于400Mbps。IPSAN设备在测试时间过去2秒、10秒、40秒的平均接收流量分别为418Mbps、419Mbps和420Mbps。这个数据与预期结果相符,可以认为50路8Mbps码流全部写入到IPSAN设备中。

图4 使用iftop查看网络流量

4.2 视频检索测试

使用测试程序分别对12小时、24小时、48小时、60小时和72小时的历史视频数据进行检索,响应时间分别为29ms、42ms、51ms、56ms和61ms,随着数据量的增加,检索时间也相应的缓慢增加。由于受测试设备存储空间限制,无法测试更长时间的数据,但是从图5的曲线可以推算,对于较大数据量,检索时间也在可承受范围之内。

4.3 视频回放测试

        使用VLC软件通过RTSP协议对存储的视频进行播放,可见视频播放流畅、连续,没有中断,但偶尔存在少量马赛克现象,说明存在数据丢包现象。分析可能的丢包原因存在三个方面:实时流的网络传输丢包、存储丢包、回放过程的网络传输丢包。通过在流媒体存储服务器上使用工具软件抓包分析,发现实时流传输过程存在少量丢包现象。

上述结果表明,运行原型系统的一台服务器上能够满足50路8Mbps的高清视频流存储需求,其索引响应时间极短,可以满足一般系统需求。

图5 数据量和检索时间关系图

5 结束语

         本文以iSCSI协议为基础,对实时流媒体存储技术进行了探讨,设计实现了一个高性能的原型系统,并进[5] 刘化君.物联网关键技术研究[J].计算机时代,2010,(7):4.

行了系统性能测试。测试结果表明,原型系统的存储和检索性能可以满足高清网络视频监控系统的需求。本文对于正在迅速增长的高清网络视频监控系统中的流媒体存储提供了很好的参考。

参考文献:

[1] 郭劲,李栋,张继征等.iSCSI,CIFS,NFS协议的性能评测[J].小型微型计算机系统,2006,27(5):833-836.

[2] 周敬利,徐锋,余胜生.Linux下基于iSCSI存储系统的实现与性能评测[J].计算机工程与科学,2004,(6):1-3.

[3] SATRAN J,METH K,SAPUNTZAKIS C,et al.Internet Small Computer Systems Interface[Z].RFC 3720,2004.

[4] 康剑斌,汪海山,屠升平等.基于流命令的SCSI目标端设计[J].计算机工程,2008,34(8):41-43.

[5] 贺再,张艳.嵌入式iSCSI协议的简化与实现[J].计算机工程,2010,36(9):279-281.

转自:《基于iSCSI技术的流媒体存储系统研究

时间: 2024-11-05 14:48:23

StreamingMedia——基于iSCSI技术的流媒体存储系统研究的相关文章

基于iscsi实现文件存储共享

简单介绍两个概念: iSCSI:Internet Small Computer System Interface.是一种基于 TCP/IP的协议,用来建立和管理 IP 存储设备.主机和客户机等之间的相互连接,并创建存储区域网络(SAN).SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行. iSCSI的工作过程:当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令,该SCSI命令在iSCS

linux学习-使用iSCSI服务部署网络存储

1. 网络存储技术 传统的SCSI小型计算机系统接口(Small Computer System Interface)技术是存储设备最基本的标准协议,但通常需要设备互相靠近并用SCSI总线链接,因此受到了物理环境的限制. iSCSI小型计算机系统接口(即Internet Small Computer System Interface)则是由IBM公司研究开发用于实现在IP网络上运行SCSI协议的新存储技术,即能够让SCSI接口与以太网技术相结合,使用iSCSI协议基于以太网传送SCSI命令与数据

centos 6.5环境利用iscsi搭建SAN网络存储服务及服务端target和客户端initiator配置详解

一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网

17 使用iSCSI服务部署网络存储

17 使用iSCSI服务部署网络存储 当前的硬盘接口类型主要有IDE.SCSI和SATA这3种. 互联网小型计算机系统接口(iSCSI,Internet Small Computer System Interface).这是一种将SCSI接口与以太网技术相结合的新型存储技术,可以用来在网络中传输SCSI接口的命令和数据.这样,不仅克服了传统SCSI接口设备的物理局限性,实现了跨区域的存储资源共享,还可以在不停机的状态下扩展存储容量. 17.2 创建RAID磁盘阵列 启动虚拟机系统,使用mdadm

MySQL技术内幕-InnoDB存储引擎-读书笔记(二)

MySQL技术内幕-InnoDB存储引擎-读书笔记(二) 作为php开发,使用mysql总是少不了的 系列文章博客链接 http://itsong.net/articles/466.html 第三章 文件 mysql与innodb几个类型的文件 参数文件,配置路径.初始化参数.内存大小等 日志文件,包括错误日志,二进制日志,慢查询日志,查询日志 socket文件,用unix域套接字,unix domain socket来进行连接时需要的文件,这一般是本机连接,比通常tcp快 pid文件,进程id

Windows Azure Online Backup是一套基于云技术的在线备份

Windows Azure Online Backup是一套基于云技术的在线备份解决方案.你可以通过它将文件备份到云端的数据中心,在本地文件出现损坏或丢失时,他将给你提供更为安全可靠的文件恢复.微软将它作为本地备份解决方案的替代产品.它提供块级存储的增量备份(就是说备份系统仅仅更改数据块的信息,这样就能降低存储和带宽浪费).数据压缩.数据加密和流量限制,以及云端数据完整性验证等功能. 在过去您可以利用Windows Server Backup功能来将您的Windows Server备份到外接式硬

iscsi技术

一.iscsi介绍 SCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. 二.设置iscsi的共享设备(共享磁盘中的一个分区) ****服务器 1.服务端修改主机名,关闭防火墙 hostnamectl se

《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记

一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是按主键的顺序记性存放 支持全文索引(InnoDB1.2.x - mysql5.6) 支持MVCC(多版本并发控制)实现高并发 MyISAM: 不支持事务 表锁 支持全文索引 三.InnoDB体系架构 1.后台线程 Master Thread 负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性 IO

Web应用程序开发,基于Ajax技术的JavaScript树形控件

感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项. 目前市场上常见的JavaScript框架及组件库中均包含自己的树形控件,例如jQuery.Dojo.YUI.Ext JS等,还有一些独立的树形控件,例如dhtmlxTree等,这些树形控件完美的解决了层次数据的展示问题. 展示离不开数据,树形控件主要