㈠ 分布式存储一般提供哪些存储服务区块链的分布式存储是什么意思
摘要 区块链本质是一个去中心化的数据库 ,区块链技术的数据共享是一个分布式的记账薄, 它的本质上是一个按照时间顺序串联起来的链,创世块开始的所有交易都记录在区块中。交易记录等账目信息会被打包成一个个的区块并进行加密,同时盖上时间戳,所有区块按时间戳顺序连接成一个总账本。区块链由多个独立,地位等同的节点按照块链式结构存储完整的数据,通过共识机制保证存储的一致性,一旦数据被记录下来,在一个区块中的数据将不可逆。
㈡ 什么是分布式数据存储
什么是分布式存储
分布式存储是一种数据存储技术,它通过网络使用企业中每台机器上的磁盘空间,这些分散的存储资源构成了虚拟存储设备,数据分布存储在企业的各个角落。
分布式存储系统,可在多个独立设备上分发数据。传统的网络存储系统使用集中存储服务器来存储所有数据。存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,无法满足大规模存储应用的需求。分布式网络存储系统采用可扩展的系统结构,使用多个存储服务器共享存储负载,利用位置服务器定位存储信息,不仅提高了系统的可靠性,可用性和访问效率,而且易于扩展。
㈢ 分布式文件/对象存储系统
分布式存储系统面向海量数据的存储访问与共享需求,提供基于多存储节点的高性能,高可靠和可伸缩性的数据存储和访问能力,实现分布式存储节点上多用户的访问共享。 目前业界比较流行的分布式存储系统如下:HDFS、OpenStack Swift、Ceph、GlusterFS、Lustre、AFS、OSS。
㈣ 分布式存储是什么
中央存储技术现已发展非常成熟。但是同时,新的问题也出现了,中心化的网络很容易拥挤,数据很容易被滥用。传统的数据传输方式是由客户端向云服务器传输,由服务器向客户端下载。而分布式存储系统QKFile是从客户端传送到 N个节点,然后从这些节点就近下载到客户端内部,因此传输速度非常快。对比中心协议的特点是上传、下载速度快,能够有效地聚集空闲存储资源,并能大大降低存储成本。
在节点数量不断增加的情况下,QKFile市场趋势开始突出,未来用户数量将呈指数增长。分布式存储在未来会有很多应用场景,如数据存储,文件传输,网络视频,社会媒体和去中心化交易等。因特网的控制权越来越集中在少数几个大型技术公司的手中,它的网络被去中心化,就像分布式存储一样,总是以社区为中心,面向用户,而分布式存储就是实现信息技术和未来因特网功能的远景。有了分布式存储,我们可以创造出更加自由、创新和民主的网络体验。是时候把因特网推向新阶段了。
作为今年非常受欢迎的明星项目,关于QKFile的未来发展会推动互联网的进步,给整个市场带来巨大好处。分布式存储是基于因特网的基础结构产生的,区块链分布式存储与人工智能、大数据等有叠加作用。对今天的中心存储是一个巨大的补充,分布式时代的到来并不是要取代现在的中心互联网,而是要使未来的数据存储发展得更好,给整个市场生态带来不可想象的活力。先看共识,后看应用,QKFile创建了一个基础设施平台,就像阿里云,阿里云上面是做游戏的做电商的视频网站,这就叫应用层,现阶段,在性能上,坦白说,与传统的云存储相比,没有什么竞争力。不过另一方面来说,一个新型的去中心化存储的信任环境式非常重要的,在此环境下,自然可以衍生出许多相关应用,市场潜力非常大。
虽然QKFile离真正的商用还有很大的距离,首先QKFile的经济模型还没有定论,其次QKFile需要集中精力发展分布式存储、商业逻辑和 web3.0,只有打通分布式存储赛道,才有实力引领整个行业发展,人们认识到了中心化存储的弊端,还有许多企业开始接受分布式存储模式,即分布式存储 DAPP应用触达用户。所以QKFile将来肯定会有更多的商业应用。创建超本地高效存储方式的能力。当用户希望将数据存储在QKFile网络上时,他们就可以摆脱巨大的集中存储和地理位置的限制,用户可以看到在线存储的矿工及其市场价格,矿工之间相互竞争以赢得存储合约。使用者挑选有竞争力的矿工,交易完成,用户发送数据,然后矿工存储数据,矿工必须证明数据的正确存储才能得到QKFile奖励。在网络中,通过密码证明来验证数据的存储安全性。采矿者通过新区块链向网络提交其储存证明。通过网络发布的新区块链验证,只有正确的区块链才能被接受,经过一段时间,矿工们就可以获得交易存储费用,并有机会得到区块链奖励。数据就在更需要它的地方传播了,旋转数据就在地球范围内流动了,数据的获取就不断优化了,从小的矿机到大的数据中心,所有人都可以通过共同努力,为人类信息社会的建设奠定新的基础,并从中获益。
㈤ 分布式存储系统的介绍
为了简化用户端的使用,提供了一个分布式缓存系统来提供对此分布式存储系统的访问接口以及本地数据缓冲以降低网络压力。
㈥ 什么是分布式存储
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
(6)用户怎么去使用分布式存储的空间扩展阅读:
分布式存储,集中管理,在这个方案中,共有三级:
1、上级监控中心:上级监控中心通常只有一个,主要由数字矩阵、认证服务器和VSTARClerk软件等。
2、本地监控中心:本地监控中心可以有多个,可依据地理位置设置,或者依据行政隶属关系设立,主要由数字矩阵、流媒体网关、iSCSI存储设备、VSTARRecorder软件等组成;音视频的数据均主要保存在本地监控中心,这就是分布式存储的概念。
3、监控前端:主要由摄像头、网络视频服务器组成,其中VE4000系列的网络视频服务器可以带硬盘,该硬盘主要是用于网络不畅时,暂时对音视频数据进行保存,或者需要在前端保存一些重要数据的情况。
㈦ 创建使用分布式文件系统
当微软公司最初介绍分布式文件系统(Distributed File System,简称DFS)的时候,它把终端用户希望让事情变得简单一些的注意力都集中在自己身上。这种技术的思路是用户本身并不需要知道哪些服务器资源是真正存在的。他们只要简单地通过一个特殊的共享就可以访问到文件系统,而且还可以访问到所有他们所需要的数据,无论这些数据是集中存储在本地还是分散存储在许多不同的服务器中。
尽管在用户端把把事情变得简单总是好处多多,但是我认为DFS的用途要比仅仅用于负载平衡与容错要多得多。DFS可以用来把用户的工作量分配到多个含有文件副本的服务器中。除此之外,如果一个副本的服务器失效,或者管理员需要对一台服务器进行脱机维护,那么通过使用DFS,用户仍然可以不间断地持续访问副本服务器。(在第二部分中,我将会更为详细地讨论负载平衡与容错问题。)
在第一部分中,现在我将要向你介绍如何在Windows 2003 server中创建一个分布式文件系统。
第一步:创建控制台
开始这个过程首先要在“运行”命令中输入Microsoft Management Console(管理控制台,MMC)命令。当你输入之后,Windows将会载入一个空的管理控制台。现在,你要在控制台的“文件”菜单中选择“添加或移除管理单元(Snap-In)”命令。Windows随后会显示出添加或移除管理单元的属性菜单。在这个时候,要点击基于属性菜单中“Standalone”标签下的“添加”按钮,以便显示出所有可用管理单元的表列。从表列中选择分布式文件系统选项,并点击“添加”按钮,接下来点击“关闭”和“确认”按钮。
第二步:创建DFS根
“根”就是DFS层级结构的最顶层。一个根当中包含了多个共享文件夹。要在目前含有你的一些数据的服务器中创建根,你需要在控制台中用鼠标右键点击“分布式文件系统容器(container)”,然后从快捷菜单中选择“新的根”命令。这样做能够使Windows载入新的根安装向导程序。点击“下一步”越过安装向导的欢迎界面。这时向导会询问你是要创建一个独立的根还是创建一个域的根。域的根只存在于Windows Server 2003中。它们支持自动的数据复制。对于本文的目的而言,应该选择域的根选项,然后点击“下一步”。
向导的下一个界面是询问你哪一个域作为你所创建的根的主域。选择合适的域,然后点击“下一步”。现在,你必须输入将要做为新创建的根的主机的服务器的名称。这个服务器必须是你在上一步所选择的域的一个成员。输入完全符合域的要求的服务器名称,然后点击“下一步”。
第三步:给根命名
向导的下一个界面要求你输入你所创建的根的名称。Windows将会创建一个与你所输入的根的名称一致的共享名称。我还推荐你应该输入一些描述文字,以便帮助你记住这个根是做什么用的。点击“下一步”来继续我们的工作。
第四步:文件夹选择
在这个界面中,向导将会要求你指定一个Windows能够把共享文件分配到其中的文件夹。我推荐你选择一个已经包含了你的数据的文件夹。点击“下一步”,接下来点击“完成”,结束根的创建。
你的DFS共享现在应该是被激活的。为了确认根是有效的,可以用鼠标右键点击它,然后快捷菜单中选择“检查状态”命令。正确的状态应该显示为“联机”。
如何创建副本服务器
这是为本系列的第二部分所进行的准备,我希望向你介绍如何创建一个副本服务器的方法。
要开始这个过程,首先要进入你希望创建为副本的服务器中,并且要选择一个可用磁盘空间充足的卷。做完这个步骤之后,在这个卷上创建一个文件夹,用来存储你将要向该服务器中复制的数据。
创建了文件夹之后,你需要把该文件夹设成共享,并使用与你指定给DFS根一样的共享名称。我建议在共享级别上对任何人都给予完全的控制权,并使用NTFS许可来保护数据,而不是依赖于共享级别的许可。在设置了共享之后,你需要等待15分钟,以便网络能够对该共享进行识别。在你等待的过程中,打开“服务”控制台,并启动分布式文件系统服务。
现在回到DFS控制台,用鼠标右键点击你先前所创建的DFS根,并在快捷菜单中选择“新的根目标”命令。现在,你将会被提示在你希望创建的根目标处输入服务器的名称。在我的系统中,我需要输入服务器的NetBIOS名称,而不是其完全符合域的要求的名称,这样做是为了让Windows识别服务器。这里你需要做出你自己的选择,然后点击“下一步”。等待一会儿之后,你将会看到一个通知你已经完成了该向导的界面。点击“完成”,然后继续下面的工作。
这个时候你的DFS根应该是打开而且处于运行状态。现在你应该对复制过程进行初始化。你可以用鼠标右键点击DFS根,然后在快捷菜单中选择“设置复制”命令。Windows将会载入设置复制向导。点击“下一步”越过向导的欢迎界面,然后你会被提示选择初始化主文件。选择目前包含数据的共享文件,然后点击“下一步”。在你看到的下一个界面中,向导会要求你选择一个复制的拓扑结构。我推荐你使用完全网状拓扑结构。点击“完成”。随后,你可能会看到一条信息,提示你文件需要在副本服务器上将复制服务(File Replication Service)设置成自动启动。如果出现了这条信息,那么就要使用服务器上的“服务”控制台来把文件复制服务的启动方式改变成自动启动。启动服务,然后点击“是”来重试复制设置。
㈧ 分布式文件存储系统采用什么方式
一。分布式Session的几种实现方式 1.基于数据库的Session共享 2.基于NFS共享文件系统 3.基于memcached 的session,如何保证 memcached 本身的高可用性? 4. 基于resin/tomcat web容器本身的session复制机制 5. 基于TT/Redis 或 jbosscache 进行 session 共享。 6. 基于cookie 进行session共享 或者是: 一、Session Replication 方式管理 (即session复制) 简介:将一台机器上的Session数据广播复制到集群中其余机器上 使用场景:机器较少,网络流量较小 优点:实现简单、配置较少、当网络中有机器Down掉时不影响用户访问 缺点:广播式复制到其余机器有一定廷时,带来一定网络开销 二、Session Sticky 方式管理 简介:即粘性Session、当用户访问集群中某台机器后,强制指定后续所有请求均落到此机器上 使用场景:机器数适中、对稳定性要求不是非常苛刻 优点:实现简单、配置方便、没有额外网络开销 缺点:网络中有机器Down掉时、用户Session会丢失、容易造成单点故障 三、缓存集中式管理 简介:将Session存入分布式缓存集群中的某台机器上,当用户访问不同节点时先从缓存中拿Session信息 使用场景:集群中机器数多、网络环境复杂 优点:可靠性好 缺点:实现复杂、稳定性依赖于缓存的稳定性、Session信息放入缓存时要有合理的策略写入 二。Session和Cookie的区别和联系以及Session的实现原理 1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。 2、session中保存的是对象,cookie中保存的是字符串。 3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。 4、session需要借助cookie才能正常<nobr oncontextmenu="return false;" onmousemove="kwM(3);" id="key3" onmouseover="kwE(event,3, this);" style="COLOR: #6600ff; BORDER-BOTTOM: 0px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">工作</nobr>。如果客户端完全禁止cookie,session将失效。 http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现网上商店中的 购物车呢,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客 户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSESSIONID的输出cookie,我 们叫做session cookie,以区别persistent cookies,也就是我们通常所说的cookie,注意session cookie是存储于浏览器内存中的,并不是写到硬盘上的,这也就是我们刚才看到的JSESSIONID,我们通常情是看不到JSESSIONID的,但 是当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到 sessionid=KWJHUG6JJM65HS2K6之类的字符串。 明白了原理,我们就可以很容易的分辨出persistent cookies和session cookie的区别了,网上那些关于两者安全性的讨论也就一目了然了,session cookie针对某一次会话而言,会话结束session cookie也就随着消失了,而persistent cookie只是存在于客户端硬盘上的一段文本(通常是加密的),而且可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,自然不如 session cookie安全了。 通常session cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的sessionid,这样我们信息共享的目的就达不到 了,此时我们可以先把sessionid保存在persistent cookie中,然后在新窗口中读出来,就可以得到上一个窗口SessionID了,这样通过session cookie和persistent cookie的结合我们就实现了跨窗口的session tracking(会话跟踪)。 在一些web开发的书中,往往只是简单的把Session和cookie作为两种并列的http传送信息的方式,session cookies位于服务器端,persistent cookie位于客户端,可是session又是以cookie为基础的,明白的两者之间的联系和区别,我们就不难选择合适的技术来开发web service了。 总之: 一、cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 同时我们也看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。 二、会话cookie和持久cookie的区别 如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。 如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。 存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。 三、如何利用实现自动登录 当用户在某个网站注册后,就会收到一个惟一用户ID的cookie。客户后来重新连接时,这个用户ID会自动返回,服务器对它进行检查,确定它是否为注册用户且选择了自动登录,从而使用户无需给出明确的用户名和密码,就可以访问服务器上的资源。 四、如何根据用户的爱好定制站点 网站可以使用cookie记录用户的意愿。对于简单的设置,网站可以直接将页面的设置存储在cookie中完成定制。然而对于更复杂的定制,网站只需仅将一个惟一的标识符发送给用户,由服务器端的数据库存储每个标识符对应的页面设置。 五、cookie的发送 1.创建Cookie对象 2.设置最大时效 3.将Cookie放入到HTTP响应报头 如果你创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie:存储在浏览器的内存中,用户退出浏览器之后被删除。如 果你希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该 cookie。 发送cookie需要使用HttpServletResponse的addCookie方法,将cookie插入到一个 Set-Cookie HTTP请求报头中。由于这个方法并不修改任何之前指定的Set-Cookie报头,而是创建新的报头,因此我们将这个方法称为是addCookie,而 非setCookie。同样要记住响应报头必须在任何文档内容发送到客户端之前设置。 六、cookie的读取 1.调用request.getCookie 要获取有浏览器发送来的cookie,需要调用HttpServletRequest的getCookies方法,这个调用返回Cookie对象的数组,对应由HTTP请求中Cookie报头输入的值。 2.对数组进行循环,调用每个cookie的getName方法,直到找到感兴趣的cookie为止 cookie与你的主机(域)相关,而非你的servlet或JSP页面。因而,尽管你的servlet可能只发送了单个cookie,你也可能会得到许多不相关的cookie。 例如: String cookieName = “userID”; Cookie cookies[] = request.getCookies(); if (cookies!=null){ for(int i=0;i Cookie cookie = cookies[i]; if (cookieName.equals(cookie.getName())){ doSomethingWith(cookie.getValue()); } } } 七、如何使用cookie检测初访者 A.调用HttpServletRequest.getCookies()获取Cookie数组 B.在循环中检索指定名字的cookie是否存在以及对应的值是否正确 C.如果是则退出循环并设置区别标识 D.根据区别标识判断用户是否为初访者从而进行不同的操作 八、使用cookie检测初访者的常见错误 不能仅仅因为cookie数组中不存在在特定的数据项就认为用户是个初访者。如果cookie数组为null,客户可能是一个初访者,也可能是由于用户将cookie删除或禁用造成的结果。 但是,如果数组非null,也不过是显示客户曾经到过你的网站或域,并不能说明他们曾经访问过你的servlet。其它servlet、JSP页面以及 非Java Web应用都可以设置cookie,依据路径的设置,其中的任何cookie都有可能返回给用户的浏览器。 正确的做法是判断cookie数组是否为空且是否存在指定的Cookie对象且值正确。 九、使用cookie属性的注意问题 属性是从服务器发送到浏览器的报头的一部分;但它们不属于由浏览器返回给服务器的报头。 因此除了名称和值之外,cookie属性只适用于从服务器输出到客户端的cookie;服务器端来自于浏览器的cookie并没有设置这些属性。 因而不要期望通过request.getCookies得到的cookie中可以使用这个属性。这意味着,你不能仅仅通过设置cookie的最大时效, 发出它,在随后的输入数组中查找适当的cookie,读取它的值,修改它并将它存回Cookie,从而实现不断改变的cookie值。 十、如何使用cookie记录各个用户的访问计数 1.获取cookie数组中专门用于统计用户访问次数的cookie的值 2.将值转换成int型 3.将值加1并用原来的名称重新创建一个Cookie对象 4.重新设置最大时效 5.将新的cookie输出 十一、session在不同环境下的不同含义 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话是从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。 然而当session一词与网络协议相关联时,它又往往隐含了“面向连接”和/或“保持状态”这样两个含义。 session在Web开发环境下的语义又有了新的扩展,它的含义是指一类用来在客户端与服务器端之间保持状态的解决方案。有时候Session也用来指这种解决方案的存储结构。 十二、session的机制 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否包含了一个session标识-称为session id,如果已经包含一个session id则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象,但用户人为 地在请求的URL后面附加上一个JSESSION的参数)。 如果客户请求不包含session id,则为此客户创建一个session并且生成一个与此session相关联的session id,这个session id将在本次响应中返回给客户端保存。 十三、保存session id的几种方式 A.保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。 B. 由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够把session id传递回服务器,经常采用的一种技术叫做URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。网络在整个交互过程中始终 保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。 C.另一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。 十四、session什么时候被创建 一个常见的错误是以为session在有客户端访问时就被创建,然而事实是直到某server端程序(如Servlet)调用HttpServletRequest.getSession(true)这样的语句时才会被创建。 十五、session何时被删除 session在下列情况下被删除: A.程序调用HttpSession.invalidate() B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间 C.服务器进程被停止 再次注意关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。
㈨ 分布式存储系统的应用方案
在一个视频监控系统中,选择什么样的存储解决方案直接决定了整个系统的系统架构以及系统的性能和稳定程度。
一种是在摄像监控前端采用有一定存储容量(如1.2T)的DVR设备,所有需要的数据均保存在前端DVR的存储设备中,比较好的方案中,后台软件可以管理和维护多台的DVR设备,包括这些DVR设备的存储数据,如录像的转存、删除和回放等功能。这种方案中所有数据主要保存在DVR中,后台主要负责维护和必要的存储。
另一种是在摄像监控前端采用DVR或者网络视频服务器,而存储主要在远端通过后台的PC或者服务器软件来将数据保存在后台的存储设备上。
上述两种存储方案均有很多弊端,尤其当监控点很多,需要的存储量又很大的情况下,这些可能的弊端包括:由于存储分散导致难以维护;由于存储的专业程度不高导致存储的可靠性不高,进而导致整个系统的可靠性不高;存储的利用率不高;存储的扩展性不好。
为了克服这些弊端,并推荐使用基于分布式存储、集中管理思路的、以及基于iSCSI技术的IPSAN来作为视频监控的存储解决方案,这个方案的主要特点包括:
1、分布式存储,集中管理;
2、基于iSCSI技术的IPSAN(STorageAreaNetwork);
3、流媒体网关可以作为存储解决方案的核心设备。 在这个方案中,共有三级:
1、上级监控中心:上级监控中心通常只有一个,主要由数字矩阵、认证服务器和VSTARClerk软件等。
2、本地监控中心:本地监控中心可以有多个,可依据地理位置设置,或者依据行政隶属关系设立,主要由数字矩阵、流媒体网关、iSCSI存储设备、VSTARRecorder软件等组成;音视频的数据均主要保存在本地监控中心,这就是分布式存储的概念。
3、监控前端:主要由摄像头、网络视频服务器组成,其中VE4000系列的网络视频服务器可以带硬盘,该硬盘主要是用于网络不畅时,暂时对音视频数据进行保存,或者需要在前端保存一些重要数据的情况。
本地监控中心的存储设备也可以用一台服务器,带SCSI磁盘阵列的形式,但由于服务器的网络收发性能有限,从而影响整个存储系统的性能,因此有建议选用专业的iSCSI存储设备。 1) iSCSI原理简介
iSCSI 是由IETF 开发的一种基于存储网络的新的Internet 协议,iSCSI 的原理是将SCSI 命令通过IP 网络传输,这样就可以使在网络上传送数据更加便利,而且可以实现远程存储管理。
iSCSI 使标准的SCSI 命令能够在TCP/IP 网络上的主机系统(启动器,Initiator)和存储设备(目标器,target)之间传送。而且iSCSI 协议支持在系统之间传送标准的SCSI 命令。在系统之间的连接是通过标准的IP 网络基础设施实现的,iSCSI 的协议模型如图1 所示。
图2 iSCSI 的协议模型
iSCSI 的工作原理是:当终端用户或应用程序(启动器)发送一个请求后,操作系统将生成一个适当的SCSI 命令和数据请求,SCSI 命令通过封装,在需要加密的时候要执行加密处理。这些命令加上TCP/IP 协议的包头,就可以在以太网上传输。接收端(目标器)在收到这个数据包后按照相反的方向进行解包,解析出SCSI 命令和数据请求,SCSI命令再发送给SCSI 存储设备驱动程序,因为iSCSI 是双向的协议,所以它可以将数据返回给原来的请求。
2) 基于IP SAN的网络存储方案
图3 基于IP SAN 的网络存储方案
在这个解决方案中,网络视频服务器需要支持iSCSI 协议,是启动器,而位于监控中心的iSCSI 存储设备则是目标器。本地监控中心的iSCSI 存储设备可以充当多个网络视频服务器的存储设备,而且iSCSI 存储设备还可以再外挂磁带设备,进一步扩大存储容量。 在网络存储方案中,每台网络视频服务器均占有一个IP,如果希望通过Internet 来进行远程监控,则网络视频服务器的IP 地址必须是公网IP,在通常情况,公网IP 地址都是稀有资源;另外远程监控受到网络容量的限制以及网络拥塞的影响,带宽通常不能保证,给远程监控带来了不便,而卓扬科技的流媒体网关可以解决这两个问题。
卓扬科技的流媒体网关是一个嵌入式的硬件设备,所有的报文转发均是基于硬件转发(如果是软件转发,性能达不到要求),报文的转发能力可以达到1Gbps 以上,卓扬科技的流媒体网关的主要功能包括:
支持NAT 转换功能
支持视频分发功能,当多个远程监控的用户访问同一台网络视频服务器的时候,均需要向流媒体网关发请求,然后流媒体网关再向网络视频服务器发出请求,当流媒体网关收到网络视频服务器的数据后(注意视频服务器与流媒体网关之间的数据流只有一份)再负责分发给远端的多个监控用户支持视频点播服务,远端用户可以通过流媒体网关完成视频点播的功能支持iSCSI 的Initiator
卓扬科技的流媒体网关可以对上述的功能进行分别进行配置。
下图是一个流媒体网关与IP SAN 结合的网络视频监控的解决方案,在方案中,流媒体网关没有使能iSCSI 的Initiator,iSCSI 的Initiator 是由网络视频服务器完成,其中iSCSI 的存储流是把监控流封装了iSCSI 而成的。
图4 与流媒体网关相配合的网络存储方案1
下图的网络存储方案中,流媒体网关使能了iSCSI Initiator 功能,而网络视频服务器与流媒体网关传送的均是原始的视频数据流(与iSCSI 存储流相比)。
图5 中,需要对数据进行存储的时候,流媒体网关首先从网络视频服务器活动数据(①),然后再通过iSCSI 存储流将视频数据保存到iSCSI 的存储设备上(②)。当A 用户需要进行远程监控的时候,首先A 用户向流媒体网关发出请求(③),流媒体网关再向视频服务器获取数据(①),然后流媒体网关把监控视频数据发送给用户A(③)。当B 用户需要进行视频点播的时候,B 用户首先向流媒体网关发出请求(④),流媒体网关再向iSCSI 存储设备获取数据(②),然后然后流媒体网关把监控视频数据发送给用户B(④)。
图5 与流媒体网关相配合的网络存储方案2
另外,在图4 和图5 中,是否进行NAT 转换视组网需求而定,可以灵活配置。
五、 后记
基于iSCSI 的IP SAN 存储方案无疑是解决存储问题的一个良方,尤其当iSCSI 的存储设备的性能不断提高、价格不断降低的时候,采用这种方式就更是必然的选择,我们深信,基于iSCSI 技术的存储解决方案会逐渐成为大型网络视频监控中存储技术的主流。