❶ 华为云存储的解决方案
为此,华为推出了基于云存储系统和云存储服务平台构建的端到端存储服务解决方案,帮助运营商快速、经济地提供云存储服务与发展用户。 华为云存储系统具备弹性扩展、安全可靠、自动化管理等特点,以及丰富的业务支撑能力,满足海量数据的存储以及大规模业务承载的需求。
弹性扩展:高效的存储基础架构需支持在性能和容量两个维度上进行扩展。华为云存储系统基于横向扩展(Scale-out)架构设计,对上层业务平台提供透明的存储资源服务,屏蔽底层的硬件差异,能够帮助运营商实现存储容量的扩展和业务性能的提升。
在容量扩展方面,云存储系统支持通过增加硬盘、存储域和存储节点三种方式扩展系统容量。此外,云存储系统通过统一的资源和I/O调度,使得新接入的存储域和存储节点能够与已有的域和节点一起为上层业务提供存储服务,实现整系统存储空间从TB到EB的线性扩展,再通过跨域互联、访问重定向等技术,对多个资源池进行统一部署和调度管理。
在性能提升方面,云存储系统通过分布式存储软件协调大量的存储硬件节点并行对外提供数据存储服务,海量数据均匀下发到每个存储节点的每个硬盘,充分发挥域内节点与硬盘的并行处理能力,使系统在扩展存储容量的同时,也提升存储系统的读写性能。
安全可靠:华为云存储系统从以下两方面保证用户数据在整个生命周期内的安全可靠。 通过Erasure Code技术,对文件进行条带化后生成多个数据块,并计算若干个校验块,同时将所有的数据块和校验块分别存放在不同存储节点上,若其中一个或多个存储节点发生故障,系统可在提供正常的读写服务的同时,自动在后台进行数据重构,将故障节点上的数据重构到其他节点上。这种节点间的数据保护技术确保华为云存储系统具有较高的数据可靠性。
云存储系统通过权限控制和加密来保证数据私密性。在权限控制层面,拥有存储业务的用户或系统的各类管理员的操作必须被授权,不同权限用户执行不同的操作。在加密层面,系统选择HTTP-SSL方式作为数据传输安全的技术实现方案,防止传输过程中的恶意监听与篡改,保证数据传输的私密性、一致性和不可抵赖性。对于用户的关键信息,如登录密码和系统访问等鉴权信息,云存储系统也从客户端到服务端都进行加密处理,能够有效保障用户关键信息的安全性。
自动化管理:云存储系统通过“一键部署”、“批量升级”、“智能告警”等功能实现系统的自动部署与管理。设备上电后管理软件远程对所有设备进行安装、配置,降低系统部署难度,缩短部署时间。同时,存储节点的批量升级,整个过程无需人工干预和控制,不中断业务,实现业务透明化。云存储管理系统还能够提供完整的图形化管理界面,动态反映云存储系统的拓扑结构,实现存储节点和网络设备的统一管理,提高系统运维效率,降低运营成本。
接口丰富:针对不同类型的应用对存储的访问需求,如IPTV、视频监控、网盘等,云存储系统提供了文件存储接口——NFS/CIFS、对象存储接口——REST,以及针对第三方云服务的API,满足各种终端、各种应用的存储接入。 基于云存储系统,云存储服务平台不仅可以提供空间租赁、在线存储、集中备份等服务,还具备完善的业务管理功能。
空间租赁:无论是中小企业还是大型企业,数据增长的速度远远超过了对存储设备投资的幅度。而且部署大型的存储设备,不仅降低了业务灵活性,也增加了运维成本。通过运营商提供的空间租赁服务,企业可以按需购买存储空间进行数据存储,不仅可以更灵活地满足存储需求,也免去了繁杂的自运维过程。
在线存储:在线存储服务为个人用户提供了远端大容量的存储空间。个人用户可通过web方式、PC客户端、手机客户端三种形式访问个人数据,web方式能够使浏览器和本地桌面无缝结合;PC客户端通过将网络资源本地化,不改变用户的操作习惯;手机客户端简单易操作,方便用户实时访问,多种访问方式实现用户终端的多屏互动、文件同步。
集中备份:中小企业备份系统的建设面临建设门槛高、周期长等问题,运营商提供的集中备份服务是对企业备份系统“效率”与“安全”的双重升级,通过集中备份服务能够实现本地数据共享,按需申请云端备份空间,以及对重要数据进行本地与云端的两级备份。
“两级备份”通过本地云存储网关与远端云存储数据中心共同实现。首先,本地部署的云存储网关进行本地的一次备份,保证备份效率;其次,通过本地云存储网关的数据同步功能,实现网关上的数据到云存储数据中心的二次备份,进一步提高数据的安全性。
大数据时代的到来,将促使更多的企业与个人将数据迁移到云端,这一过程为运营商向综合信息服务提供商的转型创造了良好的契机。华为云存储解决方案将致力于为运营商开展云存储服务提供良好支撑,华为已经与中国电信、中国移动就云存储服务进行了深入的合作。
❷ 数据存储解决方案可以实现什么作用
数据存储解决方案可以实现的作用有以下8点:
1 信息资产的统一管控
企业运行过程中,可能产生一些违规数据,可将违规数据定位,并且统一删除,对所有用户的查询和使用集中控制。
2 分公司管理员角色设置
云企网盘可针对大中型企业,灵活的配置用户权限,可设置多级的管理员权限。
3 标准API接口,系统间无缝对接
云企网盘系统提供了全套的API接口,可完成所有功能的数据对接,其他系统调用即可将数据传输至云企网盘集中管理,安全存储。
云企网盘系统从底层上就设计为可对接的数据管理系统,各终端都通过API对系统进行访问。
4 按钮级权限设置
考虑到企业的数据管控,文件系统的防扩散。云企网盘的授权体系可细分到按钮,可以控制每个用户,能否操作每一个具体的功能。
5 集团级组织架构设置
云企网盘是针对企业管理设计的系统,可针对复杂的企业组织架构进行设置,可适用与集团级的大型企业。可对组织的级别、性质、顺序进行定义,可以添加、删除、移动组织单元。
6 信息资产的查询
云企网盘可根据数据的授权,统一对数据进行查询,可根据条件进行高级检索。
7 文档版本管理
文件上传更新以后,所有历史版本都会继续保存,这样即使工作中发生了失误,也可以通过网盘补救。 查看原始文档 找回丢失文件 修复崩溃文档
找回错误覆盖的文件
8 信息资产的迁移
企业员工根据工作内容的变化,可能发生工作的交接情况,云企网盘可将员工的文件管理权限进行一键交接。快速的工作交接同时,也避免数据丢失,避免企业资产受损。
❸ 如何实现数据存储的管理
:数据存储备份和存储管理源于上世纪70年代的终端/主机计算模式,当时由于数据集中在主机上,因此,易管理的海量存储设备——磁带库是当时必备的设备。80年代以后,由于PC的发展,尤其是90年代应用最广的客户机/服务器模式的普及以及互联网的迅猛发展,使得存储容量、存储模式和存储要求都发生了根本性的变化,一些新兴的存储技术迅速崛起,为构建一个更安全的信息时代提供了更多的选择。
编者按如何确保所有数据能够得到可靠备份,及时进行灾难恢复是存储管理软件的核心任务。此外存储管理软件还存在以下一些基本功能,诸如改进系统和应用I/O性能及存储管理能力,提高数据和应用系统的高可用性,减少由于各种原因中断数据存取或者应用系统宕机的时间,实现技术有分级存储管理(HSM)、ClusterServer(集群服务器)等。
首先是能提供一些可以识别和分析存储访问模式的VolumeManager工具。VolumeManager通过复杂的磁盘配置能均衡I/O负载,在不影响应用的同时能够优化应用数据的布局。它还可将数据条形散放到多个物理盘上以提高性能,同时还具有在不中断应用的情况下,识别和消除性能瓶颈的能力,从而增强系统和应用的性能。另外,VolumeManager在减少系统中断时间、增加数据完整性等方面也有不俗表现。它允许对磁盘进行在线的管理和更改配置,减少对系统产生极大影响的停机时间,同时利用冗余技术提高数据可用性,防止数据被丢失和破坏。
其次还有一个非常重要的可快速恢复的日志式文件系统FileSystem,它能在不间断数据访问的条件下,对文件作在线备份,并在系统重启或崩溃前允许访问数据并恢复文件,从而大大提高用户和管理员的生产效率。FileSystem在系统崩溃前还能将未完成的数据记录在一个事件日志中,利用恢复程序重现,从而保持了数据的完整性。
VolumeManager和FileSystem都工作在操作系统一级,可实现集群与故障恢复、自动管理、备份与HSM以及基于浏览器的远程管理等。两者有机结合后,利用双方特有的对磁盘和数据的管理能力,能给企业的系统提供尽可能高的性能、可用性及可管理性。
在此基础之上便是整个存储管理的核心任务——备份技术。
数据存储备份技术一般包含硬件技术及软件技术等,硬件技术主要是磁带机技术,软件技术主要是通用和专用备份软件技术等。我们主要从软件技术方面加以讨论。备份软件技术在整个数据存储备份过程中具有相当的重要性,因为它不仅关系到是否支持磁带的各种先进功能,而且在很大程度上决定着备份的效率。最好的备份软件不一定就是操作系统所提供的备份功能,很多厂商都提供了许多专业的备份软件。专业备份软件能通过优化数据传输率,即可以自动以较高的传输率进行数据传输。这不仅能缩短备份时间、提高数据存储备份速度,而且对磁带机设备本身也有好处。另外,专业备份软件还支持新磁带机技术,如HP的TapeAlert技术,差不多所有主流专业备份软件均提供支持。
对于存储模式来说比较常见的有DAS、NAS和SAN等。DAS(DirectAttachedStorage-直接连接存储)是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。当服务器在地理上比较分散、很难通过远程连接进行互连时,直接连接存储是比较好的解决方案。直接连接存储也可帮助企业继续保留已有的传输速率并不很高的网络系统。
网络正成为主要的信息处理模式,需要存储的数据大量增加,数据作为取得竞争优势的战略性资产其重要性在增加,是目前发展的趋势。NAS和SAN的出现正响应了这一点。NAS就是网络连接存储,即将存储设备通过标准的网络拓扑结构(例如以太网),连接到一群计算机上。它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。这种方法从两方面改善了数据的可用性。第一,即使相应的应用服务器不再工作了,仍然可以读出数据。第二,简易服务器本身不会崩溃,因为它避免了引起服务器崩溃的首要原因,即应用软件引起的问题。另外,NAS产品是真正即插即用的产品,其设备的物理位置非常灵活。
SAN(存储区域网络)通过光纤通道连接到一群计算机上。在该网络中提供了多主机连接,但并非通过标准的网络拓扑,并且通过同一物理通道支持广泛使用的SCSI和IP协议。它的结构允许任何服务器连接到任何存储阵列,这样不管数据置放在哪里,服务器都可直接存取所需的数据。SAN解决方案是从基本功能剥离出存储功能,所以运行备份操作就无需考虑它们对网络总体性能的影响。这个方案也使得管理及集中控制实现简化,特别是对于全部存储设备都集群在一起的时候。
集群通常用于加强应用软件的可用性与可扩展性。某些集群架构技术会加入单一系统印象的概念,可从单点以单一系统的方式来管理多台计算机。集群服务器可支持多达上百台互相连接的服务器,结合为松散结合的单位来执行作业,保护彼此的应用软件免于故障。由于集群服务器可完全整合应用软件服务架构,因此可建置高效的应用软件执行环境,即使整个系统出现故障,终端计算机都还可以使用几乎所有的应用软件。集群服务器软件包括引擎、编译器、负载计算器、代理、指令与图形化系统管理接口等组件。集群化运算环境的最大优势是卓越的数据处理能力。原则上,任何类型的多重主机架构存储设备,包括直接连接的磁盘,都可以用来当作集群数据存储设备。为求得最大的系统可用性,最适合使用拥有多重主机存取路径的容错或高可用性存储子系统。
分层次的管理方式可以解决存储容量不断增长导致的如何有效扩充容量的问题。在很多情况下,它更多地用于分布式网络环境中。分级,其实就是意味着用不同的介质来实现存储,如RAID系统、光存储设备、磁带等,每种存储设备都有其不同的物理特性和不同的价格。例如,要备份的时候,备份文件一般存储在速度相对比较慢、容量相对比较大、价格相对比较低的存储设备上如磁带,这样做很经济实用。那么如何实现分级呢?从原理上来讲,分级存储是从在线系统上迁移数据的一种方法。文件由HSM系统选择进行迁移,然后被拷贝到HSM介质上。当文件被正确拷贝后,一个和原文件相同名字的标志文件被创建,但它只占用比原文件小得多的磁盘空间。以后,当用户访问这个标志文件时,HSM系统能将原始文件从正确的介质上恢复过来。分级存储可以有不同的实施方式,HSM根据两级或三级体系将动态迁移/回迁的数据分类,从而实现分级存储。
存储应用的深入必然带来对整体解决方案的需求,这不仅包括硬件,还包括相应的软件以及服务。一个软硬件兼容的融合应用环境是大势所趋。比如,存储虚拟化的提出就证明了这一趋势。因为它有利于提高存储利用率、简化管理和降低成本,构建一个融合的存储应用大环境。总之,随着网络技术的发展、计算机能力的不断提高,数据量也在不断膨胀。数据备份与恢复等存储技术方面的问题显得越来越重要,存储管理技术的发展必将引起业界的高度重视。
相关链接:当前主流的存储介质
磁盘阵列、磁带库
磁盘阵列的最大特点是数据存取速度特别快,其主要功能是可提高网络数据的可用性及存储容量,并将数据有选择性地分布在多个磁盘上,从而提高系统的数据吞吐率。另外,磁盘阵列还能够免除单块硬盘故障所带来的灾难后果,通过把多个较小容量的硬盘连在智能控制器上,可增加存储容量。磁盘阵列是一种高效、快速、易用的网络存储备份设备。
广义的磁带库产品包括自动加载磁带机和磁带库。自动加载磁带机和磁带库实际上是将磁带和磁带机有机结合组成的。自动加载磁带机是一个位于单机中的磁带驱动器和自动磁带更换装置,它可以从装有多盘磁带的磁带匣中拾取磁带并放入驱动器中,或执行相反的过程。自动加载磁带机能够支持例行备份过程,自动为每日的备份工作装载新的磁带。一个拥有工作组服务器的小公司或分理处可以使用自动加载磁带机来自动完成备份工作。
磁带库是像自动加载磁带机一样的基于磁带的备份系统,它能够提供同样的基本自动备份和数据恢复功能,但同时具有更先进的技术特点。它的存储容量可达到数百PB(1PB=100万GB),可以实现连续备份、自动搜索磁带,也可以在驱动管理软件控制下实现智能恢复、实时监控和统计,整个数据存储备份过程完全摆脱了人工干涉。磁带库不仅数据存储量大得多,而且在备份效率和人工占用方面拥有无可比拟的优势。在网络系统中,磁带库通过SAN(存储局域网络)系统可形成网络存储系统,为企业存储提供有力保障,很容易完成远程数据访问、数据存储备份,或通过磁带镜像技术实现多磁带库备份,无疑是数据仓库、ERP等大型网络应用的良好存储设备。
光盘塔、光盘库和光盘网络镜像服务器
光盘不仅存储容量巨大,而且成本低、制作简单、体积小,更重要的是其信息可以保存100年至300年。光盘塔由几台或十几台CD-ROM驱动器并联构成,可通过软件来控制某台光驱的读写操作。光盘塔可以同时支持几十个到几百个用户访问信息。光盘库也叫自动换盘机,它利用机械手从机柜中选出一张光盘送到驱动器进行读写。它的库容量极大,机柜中可放几十片甚至上百片光盘。光盘库的特点是:安装简单、使用方便,并支持几乎所有的常见网络操作系统及各种常用通信协议。
光盘网络镜像服务器不仅具有大型光盘库的超大存储容量,而且还具有与硬盘相同的访问速度,其单位存储成本(分摊到每张光盘上的设备成本)大大低于光盘库和光盘塔,因此光盘网络镜像服务器已开始取代光盘库和光盘塔,逐渐成为光盘网络共享设备中的主流产品。
❹ 操作系统中存储管理的任务是什么,大多采用什么方案来解决
操作系统中存储管理的任务一般都是以保存系统中应用程序在操作过程中的信息,数据和文档,然后会一一存储在管理的系统中,这就是日常的任务
❺ 运用哪几种方法可以解决存储过程的数据安全问题
在这个信息爆炸的年代,现代人每天不论于公于私, 都面临必须经手大量数字信息、 而在数据安全问题上会出现各种麻烦;另一方面, 随着数据量的增加,人们对存储认识程度也日益加深, 特别是企业对于存储过程中数据安全问题尤为关注。一个稳定、 安全、可靠的存储基础架构对企业来说是必不可少的。 企业的信息系统不可避免地受到来自外界的安全危胁, 包括自然灾害、网络、硬件、软件等方面,也包括人员的操作失误。 数据存储的任何失误都可能给企业带来巨大的经济损失。 随着数据价值不断提升,以及存储网络化不断发展, 数据遭受的安全威胁日益增多,若无存储安全防范措施, 一旦攻击者成功渗透到数据存储系统中, 其负面影响将是无法估计的。这要求企业在特定存储系统结构下, 从存储安全性综合考虑。 而企业在业务运作的过程中最常面临的存储安全问题, 主要是由自然灾害,网络、硬件,人员的操作失误这几方面引起的。 自然灾害导致数据存储安全 首先,这个不是一个人为的行为, 大量的数据存储在企业的服务器存储系统中, 业务在运营中由于停电或是数据传输过程中的线路突然短路导致的数 据的丢失情况,对于企业是一个不小的损失,在这种状态下, 由于自然灾害原因导致企业数据的丢失可以说对于一个企业的数据信 息是一个很大的安全威胁,系统的正常运行,数据库的合理优化, 操作人员的完善的操作程序都确保数据的稳定安全,而突发的停电、 火灾以及后备电源的不到位对于中小企业是时常面临的问题, 同时数据的存储安全成为面对该情况时必须要解决的问题, 也是企业及时需要应对的措施,保证数据的安全, 但如何面对该情况应对企业数据的存储安全呢? 网络硬件 其次, 企业数据的硬件环境方面的问题也会导致存储过程中数据安全, 众所周知信息化快速发展的今天,硬件的更新换代速度之快, 从而使得企业的传统的存储环境已经难以应对如今海量的数据需求, 企业也要升级换代才可以适应现在数据存储的环境要求。 硬件环境的老化导致传输速率的降低, 同时网络的优化也需要良好的硬件环境作为基础, 在传输数据的过程中如果数据量过于庞大, 而企业的硬件环境没有改善那么网络的延迟导致系统的崩溃, 从而丢失数据会造成巨大的经济损失,而对于这些方面, 就需要企业根据业务发展的需要有针对性地升级存储服务器的配置, 提高网络的良性环境,保证存储过程数据安全。 人员的操作失误 “金无足赤,人无完人” 是对于当今任何企业在数据管理人员方面的一句良言, 每个人在工作的过程中不可避免的犯错误或者在操作上失误, 特别是对于从事数据库管理工作的人员,数据量之大, 系统运行之繁琐,都会给工作中带来不必要的失误, 从而对于企业的数据上的安全和完整性存在危胁, 同时中小企业的数据管理人员还肩负存储系统的运维工作, 这就对其数据存储过程中的安全性提出了更高的要求, 面对着企业存储过程数据安全问题,应该如何的解决, 采取什么样的措施保证数据的安全是摆在每个企业面前的主要问题, 数据是企业运营的核心, 强大的数据的支持保障企业在市场中能够乘风破浪, 如何解决存储过程数据安全问题, 下面针对以上的问题给以简单的建议。 一般而言,解决存储过程中的数据安全问题, 企业有很多可以采用的方案: 异地备份可以避免发生自然灾害时的数据损失;采用RAID( 独立磁盘冗余阵列)可以减少磁盘部件的损坏;采用镜像技术 可以减少存储设备损坏;快照可以迅速恢复遭破坏的数据, 减少宕机损失。 而这些技术采用可以很好的应对企业面临的自然灾害,网络、硬件, 人员的操作失误这几方面引起的数据的安全问题。 异地备份 异地备份是保护数据的最安全的方式,无论发生什么情况自然灾害, 那怕是火灾、地震,当其他保护数据的手段都不起作用时, 异地容灾的优势就体现出来了,异地备份问题在于速度和成本, 这要求拥有足够带宽的网络连接和优秀的数据复制管理软件。 通常状态下主要三方面实现异地备份,一是基于磁盘阵列, 通过软件的复制模块,实现磁盘阵列之间的数据复制, 这种方式适用于在复制的两端具有相同的磁盘阵列。 二是基于主机方式,这种方式与磁盘阵列无关。 三是基于存储管理平台,它与主机和磁盘阵列均无关。 RAID RAID系统使用许多小容量磁盘驱动器来存储大量数据, 并且使可靠性和冗余度得到增强。对计算机来说, 这样一种阵列就如同由多个磁盘驱动器构成的一个逻辑单元。 所有的RAID系统共同的特点是“热交换”能力: 用户可以取出一个存在缺陷的驱动器,并插入一个新的予以更换。 对大多数类型的RAID来说,不必中断服务器或系统, 就可以自动重建某个出现故障的磁盘上的数据。 镜像 这个技术是针对如果故障发生在异地分公司,可以使用镜像技术, 进行不同卷的镜像或异地卷的远程镜像, 或采用双机容错技术自动接管单点故障机, 保证无单点故障和本地设备遇到不可恢复的硬件毁坏时, 仍可以启动异地与此相同环境和内容的镜像设备, 以保证服务不间断。当然,这样做必然会提升对设备的投资力度。 快照 在数据保护技术中,快照技术(snapshot) 是极为基础和热门的技术之一,应用在很多存储过程中, 比如数据复制和备份都在使用这种技术。 IBM的FlashCopy、IBM NAS的PSM软件以及VERITAS的FlashSnap软件 都是快照技术的代表。快照可以迅速恢复遭破坏的数据, 减少宕机损失, 可以针对与数据库管理人员在操作中的失误进行数据恢复。 综述: 对于企业在存储过程中的数据安全问题,还有很多解决的方案, 存储安全固然十分重要, 但是存储安全只是数据中心整个安全解决方案的一个组成部分。 安全是一个内涵很广泛的话题, 存储在业务流程中扮演的并非是主角,但确实是关键角色, 因为存储包含了公司绝大部分记录,如果没有存储, 很多业务流程将没法继续。因此, 对于面对存储过程数据安全问题每个企业应该注视起来, 投入更多的精力,数据是一个企业的核心竞争力, 安全强大的数据是企业腾飞的保证,存储技术的发展, 硬件环境的完善相信会给企业数据安全无疑提供强有力的支持。
❻ 多项目平台系统的数据怎样才能统一存储和管理,有推荐的解决方法吗
建议使用XSKY星辰天合的分布式软件定义存储平台,它可以实现一套存储平台支持各业务应用数数据存储管理,而且有平台定制的方案,实现业务数据无缝连接,工作效率提升的同时更有效降低TCO。
❼ 架构设计:文件服务存储设计
在架构设计:文件服务的设计与实现一文中,通过实现一个文件服务来梳理了一个架构设计的一般流程,并得到如下静态架构图
本文继续聊聊文件服务中的子模块:“存储模块”的设计,包括:
前面的架构没有对存储进行特别设计,直接使用了本地存储。考虑到后期文件数量可能会越来越多,本地存储可能无法支撑,且本地存储的安全性也没有保障。为了便于后期扩展,需要对“存储”部分进行设计。
存储的方式有很多,本地存储、NAS、分布式存储,为了能支持不同的存储方式,需要对“存储模块”进行抽象。考虑到“存储模块”涉及到IO,是一个相对底层的模块。“上传”这个核心模块不能依赖于具体的存储,所以这里也需要对其进行依赖反转。
见紫色部分,UploadService调用了FileInfoRepository来存储FileInfo,而FileInfoRepository是个接口,具体实现由存储模块中的实现类来实现。
我们先看本地存储。最简单的实现,就是直接使用IO将文件写到对应的目录下就可以了。但是,本地存储会有如下几个问题:
下面我们针对上面的问题,来一个个的解决。
首先,对于多租户来说,在我们的架构中,实际对应的是Group,我们按照Group的不同,来划分目录即可。即 不同的租户有不同的文件根目录 ,后期某个租户迁移时,直接迁移对应目录即可。这也稍微解决了单目录文件数量多的问题。
对于单目录下,随着文件数量的增加导致访问速度下降的问题,我们该如何解决呢?
如果你做过分布式系统,那么想一想, 我们是否可以把单目录看成是一个服务器,访问目录下的文件看成是一个个的请求呢 ?如果可以,那解决单目录下访问速度慢的问题是不是就变成了“如何解决单服务器下,负载过高”的问题了?那解决服务端负载过高的方法是否适用于解决目录访问速度下降的问题呢?
我们从下面几个方面来分析一下:
首先来看“解决服务端负载过高的方法”!答案很明显: 分流+负载均衡 !
分布式服务的负载均衡有几种方式呢?
再来看“目录访问和服务器的区别”,虽然可以把目录看成服务器,但是两者还是有区别的:
也就是说,对于目录来说,我们不需要考虑创建成本。
那么针对服务器负载高的解决方案是否适合目录访问呢?或者哪种方式适合目录访问呢?我们一个个来分析:
可以看到,主要的问题就是创建目录的问题!如何保证在目录数量改变时,不需要调整程序呢?
实际上git已经给出了答案:
也就是说,根据sha1散列的前两位对文件进行归类。这样既解决了目录创建问题,也解决了文件分布问题。可能的问题是,“sha1散列2^80次,可能会发生一次碰撞”。这个问题对于一般文件系统来说,好像也没有担心的必要。
解决了“单目录文件过多,导致访问速度下降”的问题,我们来看下一个问题: 数据安全 。
文件数据是存放在电脑磁盘上的,如果硬盘损坏,可能导致文件的丢失。这实际还是一个“单点问题”!
“单点问题”的解决方案是什么呢? 冗余 啊!
最简单的方案就是定时去备份数据,可以有如下几种方案:
我们继续一个个的讨论。
首先是 人工备份 ,这是最low的方案,当然也是最简单的,即有人定期去备份就行了。问题是时效性不高,例如一天备份一次,如果磁盘在备份前坏了,那就会丢失一天的数据。同时恢复比较耗时,需要人工处理。
第二个方案是 代码实现 ,即在上传文件时,程序就自动备份。以上面的架构为例,可以添加一个BackupListener,当上传完成后,通过事件,自动备份上传的文件。同时下载时需要判定文件是否完整,如果有问题则使用备份数据。此方案时效性得到了保障,但是将数据备份和业务放到了一起,且需要编码实现,增加了业务代码量。
第三个方案是 libfuse ,libfuse是用户态文件系统接口。下面是libfuse官方简介:
简单来说,就是可以用libfuse构建一个用户态文件系统。之前在老东家做了一个日志分析平台,日志的收集就使用了libfuse,大致架构如下:
业务系统写日志到挂载的用户态文件系统中,用户态文件系统自动转发到了后续的处理中间件:redis、消息队列、文件系统。
在这里也可以用类似的功能,即在文件上传后,用户态文件系统自动备份。此方案解耦了文件备案逻辑与业务逻辑。
最后一个方案是 RAID ,即廉价冗余磁盘阵列。RAID不但可备份文件,还支持并发读写,提高上传下载速率。
常用的RAID有:RAID0,RAID1,RAID01/RAID10,RAID5和RAID6等。我们来看看这几种RAID的特点,以及是否适用于我们的文件服务。你会发现从RAID0到RAID6,又是一个从单点到分布式的过程。
看下面的两张图应该能更好的理解:
无论是RAID10还是RAID01,对磁盘的使用效率都不高。那如何提高磁盘使用率呢?就有了RAID3。
对于本地存储来说,RAID是个相对实用的解决方案,既能提高数据安全、快速扩容,也提高了读写速率。但是无论扩展多少磁盘,容量还是相对有限,吞吐也相对有限,同时由于其还是单点,如果文件服务本身挂掉,就会导致单点故障。所以就有了分布式文件系统。
分布式文件系统下次单独讨论!
最后打个广告,帮朋友开的专栏《零基础Unity3D 游戏 开发》,适合没有基础、想从事 游戏 开发的小白!朋友从事 游戏 多年,开发了多款 游戏 ,收了30多个徒弟,技术杠杠的!