资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
在线云存储技术的研究摘 要:作为SaaS的典型应用,在线云存储提供了云端的数据存放和操作,国内的各大互联网公司都对大众提供了各自的“云网盘”,用户可以将自己的文件上传到云端,然后便可以通过网络访问这些文件。云网盘在技术实现上仍需要考虑多方面的问题,如用户鉴权、物理数据存储、空间压缩等。同时,用户日益关注的隐私、数据可靠性及如何盈利也是需要考虑的对象。本文通过对在线云存储实现中可能会遇见的技术问题进行解读,通过阅读相关资料和文档,并结合日常学习中所学到的知识,从一定程度上提出相应的解决方案。关键词:云计算;在线云存储;云网盘;解决方案Abstract: As a typical application of SaaS, online cloud storage provides cloud data storage and handling, the major Internet companies are on the public provides their cloud network disk, users can own file upload to the cloud, can then be accessed through a network is presented in this paper. Cloud network disk in the technology still need to consider many aspects, such as user authentication, physical data storage, space compression. At the same time, users are increasingly concerned about privacy, data reliability and how to profit is also a need to consider the object. In this paper, the realization of online cloud storage may be met the technical issues on the interpretation of, by reading the relevant information and documents, combined with the knowledge learned in daily study, from a certain extent, and put forward the corresponding solutions.Key words: Cloud computing; Cloud storage; SkyDrive cloud; Solutions随着时代的发展和科技的不断进步,最近十年中,全球文件资源总量呈现爆发式的增长。为了解决海量用户文件的存储问题,云存储技术应运而生。云存储是与云计算同时兴起的一个概念,同时云存储也是云计算所不可或缺的一个部分。随着云计算技术的蓬勃发展,云存储技术也得到了深入的研究与广泛的应用。作为云计算的一个基础部分,在线云存储1,2提供了数据存储的服务,用户不需要建立自己的数据中心,处理备份、CDN(Content Delivery Network,即内容分发网络)及灾难恢复等重要且复杂的功能,只需要像使用电脑的内置硬盘一样来使用在线云存储。然而在线云存储同时也具有一些缺点3,诸如用户无法确认存储服务提供商的安全性、存储服务提供商的安全性、可靠性和可用性仅取决于服务提供商等。云存储的概念一经提出,就得到了众多厂商的支持和关注,这从当前市场上各式各样的云网盘就可见一斑。目前较为著名和实力较强的个人在线云存储提供商4,5有国外的Apple iCloud、DropBox、Google Drive、Microsoft OneDrive和Mega等,国内则有百度云、360云盘、腾讯微云、华为DBank等众多的网盘提供商。国外个人在线云存储主要卖点在于自身的保密性和可靠程度,而国内的各大提供商则致力于宣传能提供超大的存储空间、数据“秒传”等一些用户体验上的特性。这些功能的技术实现方法都将在下文提及。1 在线云存储的技术难题及解决方案1.1 基本存储服务传统的情况下,所有的存储设备都在主机/服务器内部,无法和其他主机共享。随着网络的发展,主机之间可以使用网络进行数据的传输,这种架构称为以服务器为中心的存储架构,在这种架构中,每个服务器都有自己的存储设备。对某个服务器的维护或某个服务器出现故障都会导致信息的无法访问,从而产生了信息的难于保护、不易管理、信息孤岛以及维护开销大等问题。为了解决这些问题,便产生了一种新的架构,称为以信息为中心的架构。在这种架构下,存储设备集中管理,不再依附于服务器。多个服务器之间可以共享存储设备。在部署新的服务器时,从共享存储设备中为它分配存储。共享存储的容量可以通过添加新设备的方式动态的增加而不影响信息的可用性。这种架构让信息的管理变得更加简单并拥有更好的成本效益。在这种架构下最典型的便是NAS(Network Attached Storage:网络附属存储),如图1所示。NAS6是专用的高性能文件共享和存储设备,它是企业文件服务器的一种解决方式,也就是以信息为中心的架构中存储信息的部分。NAS设备使用自带的操作系统和集成软件、硬件组件,满足特定的文件服务需求。NAS对文件I/O进行了特定的优化,在传输速度上优秀于各类的通用文件服务器。同时,当今的NAS甚至还支持文件级虚拟化,消除了文件数据和物理存储之间的依赖关系,即使当文件在物理介质中进行移动时也能实现不间断的访问操作。 图1 网络连接存储架构 在线云存储系统中的信息量级巨大,且同时会有多个用户访问,并无时不刻的需要保护数据可靠性,因此这种以信息为中心的存储架构完全符合在线云存储的需要。另一方面,云计算和虚拟化的诞生也使共享资源的集中管理变为了可能。1.2 独立冗余磁盘阵列当今物理存储器的价格已经非常低廉,热衷于科技和下载的人很容易拥有6块每块2TB大小的存储器,而在数据中心中,动辄就会有几万甚至几十万块的物理存储器。虽然单块物理存储器故障的概率很小,但当大量的物理存储器同时运作时,使用简单的概率论知识就能知道,其不出现任何故障几乎是不可能的。举例来说,某种年故障率为0.01%的硬盘,其正常工作一年的概率为99.99%,当某一数据中心中保有10000块,则在一年中不出现任何故障的概率为 (1)机械磨损、机械损伤都是硬盘驱动器发生故障的原因,这是无法避免的。并且随着磁盘数量的增加,整体故障的概率将会越来越大。由此可见,出现故障是家常便饭,因此我们需要一些方法来防止硬盘驱动器的故障导致的数据丢失。1987年,美国加州大学伯克利分校的Patterson、Gibson和Katz等人发表了一篇名为冗余磁盘阵列(RAID)的一个示例的论文,第一次提出了RAID相关的概念。RAID技术7,8将多块磁盘形成一个整体,使之能够在硬盘故障的时候提供数据保护的技术。同时,RAID技术也能提高存储系统的性能,因为多块硬盘驱动器可以同时进行I/O的服务。目前较为常见的RAID等级如下表1所示。其中RAID-3、RAID-4在技术上与RAID-5非常类似,因此现在已经不是很常见。表1 RAID级别简介级别简要描述RAID 0无容错性的分条阵列RAID 1磁盘镜像RAID 1+0/RAID0+1将RAID 1和RAID 0进行组合的应用RAID 3带专用校验磁盘的并行访问分条阵列RAID 4带独立磁盘访问和专用校验磁盘的分调阵列RAID 4带独立磁盘访问和分布式校验的分条阵列RAID 6带独立磁盘访问和双重分布式校验的分条阵列RAID技术在在线云存储中有很好的应用,保证了数据的一定意义上的稳定性。通过使用分条的技术,不同的RAID级别有不同的应用场景,其开销、读写性能也有所不同,在网上能搜到很多相关的资料,此处就不再一一赘述。唯一需要提及一点的是RAID技术的出现,使我们能够接受短时间内少量硬盘的故障,同时能通过热备磁盘进行自动的修复,也就实现了管理人员只需要坐在椅子上看着屏幕,哪里亮起了红点,就过去更换一块磁盘驱动器的美好愿景。在线云存储系统中的信息量级巨大,且同时会有多个用户访问,并无时不刻的需要保护数据可靠性,因此这种以信息为中心的存储架构完全符合在线云存储的需要。另一方面,云计算和虚拟化的诞生也使共享资源的集中管理变为了可能。1.3 负载均衡和内容分发网络(CDN)百度网盘4上有许多文件和众多的用户,所以百度不可能只有一个服务器,否则众多用户同时访问就会导致百度网盘崩溃了。因此在实现在线云存储的过程中必须部署多台服务器,因此我们必须考虑负载均衡以将请求分配到各台服务器。最早的云存储的负载均衡9是利用本地的DNS实现的,为同一个主机名分配好几个映射,采用基本的调度算法,如轮询、随机分配的方式来分配请求。这种方式目前仍然被用在很多中小网站上,如Bilibili视频网站(因为它在崩溃信息上写明是通过哪个DNS服务器定向到哪个服务器),但其也有一个很大的缺点,就是无法实现各个服务器的动态监测。如果其中一台服务器宕机,DNS服务器是无法及时的发现,从而导致被分配到该服务器的用户出现访问失败的情况。同时,通过DNS进行负载均衡也不能即时的判断每个服务器的负载,如果调度算法不够完善,就可能会出现某个服务器几乎闲置而另一个服务器负载压力极高的情况。目前最流行的的负载均衡是采用反向代理。反向代理与正向代理类似,我们使用代理来访问“某些不能直接访问的网站”,这样防火墙就无法鉴别我们究竟在访问什么网站,以达到间接访问的目的。而反向代理也类似,我们在访问一个部署了反向代理的网站时,访问的并不是正在的服务器,而是反向代理服务器。当请求到达反向代理服务器时,反向代理再讲请求转发至服务器。目前通常的反向代理服务器都是以Nginx等服务器搭建,因为其具有众多的分配策略以保证平均分配访问的请求。反向代理其实类似于动态的DNS服务,但它可以做到DNS所无法做到的动态监测功能。同时,由于个人在线云存储往往被用户用来存储各种非结构化的大型数据,如电影、视频、照片等,而且当前主流的“网盘”都实现了各种在线预览的功能。如果在几年前,在线观看视频一直在缓冲、预览照片一直显示红叉,我们也不会怎么在意,但是在现在,我们一定会觉得这个网盘做的很渣,从而放弃使用,为了解决这个问题,就有了内容分发网络(CDN)。简单的来说CDN就是存储一些静态文件的一台或多台服务器,通过复制、缓存等方式,将文件保存其中。由于在线云存储中的文件通常都可以归为静态数据的范畴,因此CDN的使用可谓是非常的对症下药。在没有CDN的年代,所有的数据都从主服务器中获取,如果服务器在北京,而我们在广州进行访问,由于传输距离、运营商、高并发等因素,访问的速度就会变慢。而使用了CDN服务后,将CDN服务器部署在各个不同的地理位置,并且CDN服务器会在用户第一次请求后缓存文件,或者是主动的从主服务器请求数据并进行缓存。从而当用户发送请求请求到达服务器时,服务器通过IP、运营商等信息来判断用户的地理位置,并分配离用户最近的CND服务器,以加快加载静态数据的速度。1.4 灾难恢复如果RAID技术在一定程度上能保证数据的安全性,那当数据中心发生地震、洪水或大规模断电的时候,RAID技术也就无能为力了。为了应对这种灾难性的毁灭,必须要采取相应的对策以保护数据的安全性。备份是最主要的应对灾难恢复的需求。当主位置因灾难而不能工作的时候,备份的副本将用于在第二地点恢复数据。针对不同
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号