对象存储系统的管理

2024-09-12

对象存储系统的管理(精选11篇)

对象存储系统的管理 篇1

随着社会的发展和计算机网络技术的广泛应用, 网络已经深入到每个人的学习工作和生活中, 人们越来越依赖各种数字化信息。无论是个人的信息资料、摄影摄像作品、影视和音乐, 还有企事业单位的核心数据、重要的商业机密和人力资源数据等数字化信息无处不在。同时数据的格式和类型也多种多样, 不再是单一的文本数据, 还有大量的多媒体数据, 数据量呈现了爆炸式的增长。而这些数据均离不开存储、传输和处理, 这对于数据的存储提出了更高的要求和巨大的挑战。

一、对象存储技术的产生

对象 (Object) , 它是一种数据的逻辑组织形式, 是系统中数据存储的基本单位, 一个文件的数据及其属性组合就是一个对象, 提供与文件类似的访问方式, 例如打开、关闭、读/写等。对象存储起源于1995年卡内基·梅隆大学开始研究的NASD (Network-Attached Secure Disks) 项目, NASD将计算能力加入到单独的磁盘中, 包括网络、安全性和基本的空间管理功能。基本思想有四个方面:直接向客户端传输数据, 通过加密实现安全接口, 异步非临界通道 (即客户端的多数操作不需要向文件管理器发出同步请求) , 大小可变的数据对象。因为对象存储的可扩展性和易管理性得到了广泛的研究和进一步的挖掘, 从而使对象存储技术成为信息存储技术领域中的热点。

二、对象存储的组成

为满足日益增长的数据存储需求, 网络存储系统需要具备以下特点:1.较高的存储性能, 能满足大量服务器聚合访问的容量、性能和吞吐量的要求;2.能够提供安全的数据共享访问, 实现存储的负载均衡;3.提供较强的容错能力, 确保存储系统的可用性。而对象存储同时具有高速直接访问和数据共享的优势, 是一种具有高性能、高可靠性、扩平台以及安全的数据共享的存储体系结构。

对象存储系统的组成:

1.对象, 包含数据和数据属性, 是有语义变长结构的实体, 具有自组织特性。

2.基于对象的存储设备 (Object-Based Device, OSD) , 拥有自己的CPU、内存、网络和磁盘系统, 比常见的磁盘驱动器更加智能, 主要功能有: (1) 数据存储, 将对象数据储存在磁盘系统上, 客户端请求数据时用对象标识、偏移对数据读写。 (2) 智能分布, OSD用自身的CPU和内存优化数据分布, 智能的支持数据预取, 优化磁盘性能。 (3) 进行数据元数据的管理, 降低客户端的开销。

3.元数据服务器, 保存文件的元数据信息, 并协调运行环境中的集群服务器, 使它们能共享数据的同时保持缓存的一致性。

4.网络, 客户端、存储设备和元数据服务器连接在一起。

5.对象存储文件系统, 它将计算节点集成一起, 接受来自文件系统的命令和数据, 直接寻址对象存储设备。

三、对象存储系统的管理

当系统的存储容量、存储设备、服务器和网络设备越来越多时, 系统的维护和管理变得更为复杂, 存储系统的可用性和易用性将受到关注。为了减少人工管理和配置的时间, 系统要通过简单方便和智能的设计提供更高的管理性。对象存储系统的可管理性, 主要围绕虚拟化技术展开, 主要由三种技术:

(一) 基于主机的虚拟化技术

基于主机的虚拟化技术依赖于主机上的逻辑卷管理软件, 对分配给主机的物理磁盘虚拟化, 并进行统一管理和配置, 屏蔽了上层应用对物理磁盘的管理。代表作有Linux LVM虚拟卷软件, 主要在服务器实现虚拟存储, 通过服务器将镜像映射到外围存储设备上建立虚拟存储设备。

(二) 基于存储设备的虚拟化技术

将具有虚拟化功能的存储控制器和相应的设备接入到网络中, 由存储控制器统一udui服务器提供存储空间。但是基于存储设备虚拟存储技术多为硬件实现, 但对于多个厂商的产品无法共同使用, 所以在实际应用过程中存在局限性。

(三) 基于网络的虚拟化技术

基于网络的虚拟化存储技术支持多种网络和传输协议, 它将不同的生产厂商、不同设备品牌和不同连接方式的磁盘阵列组成一个虚拟的存储池, 然后按照应用系统的需求将虚拟存储池的存储空间映射给网络上的服务器上, 提供虚拟存储空间和数据传输通道, 也可以让客户机通过网络文件共享协议或者软件实现数据共享服务, 还可以根据变化随时调整。

理想的存储系统应该提供安全性、跨平台数据共享、高性能以及系统的可扩展性, 存储的要求使得数据管理和存储管理变得愈发复杂。对象存储中, 存储对象管理的目标是达到“自管理”层面的智能管理, 对象存储既具备了数据的内容、属性, 又具备处理数据的方法, 使存储对象具备感知环境特征的能力。对象存储主要用于构建大规模存储系统, 这对系统的可扩展性、数据并发性和消除访问瓶颈等方面有很高的要求, 因此对象存储系统一般采用了分布式元数据管理方式。分布式元数据管理可以将客户访问请求分散到各个元数据服务节点上, 提供并发访问和负载均衡以及系统的可用性。

对象存储同时具备了跨平台共享特性和高速直接访问, 并且对象存储还嵌入了存储管理功能, 使客户端能直接与对象存储设备端交互, 绕过元数据管理的中间环节潜在的管理瓶颈得到了缓解。通过使用基于网络的虚拟化技术, 为不同的厂商和用户提供了虚拟存储控制平台, 不仅促进了数据存储方式的变化也提升了数据的安全性, 使得对象存储称为了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构。

参考文献

[1]郑纬民, 舒继武.下一代分布式智能网络存储系统的发展趋势.世界电信, 2004

[2]谭毓安, 余锋.面向对象的网络存储技术.高性能计算技术2003

[3]刘劲松.关于存储系统性能的测试、仿真与评价的研究[D].华中科技大学2004

对象存储系统的管理 篇2

为了规范全厂仪表控制系统的使用和操作,防止发生人为或意外损坏系统事故以及误操作引起的设备停运,保证控制系统的稳定运行,特制定本制度。

本制度适用于公司DCS、SIS、PLC、SCADA等所有仪表

控制系统。本制度作为公司 《R-P05-307 生产操作控制室管理规定(暂行)》的补充文件执行。存储介质管理

2.1 严禁在计算机控制系统中使用非本计算机控制系统的软件。除非软件升级或补丁的需要,严禁在计算机控制系统中使用非本系统格式化或读写过的移动硬盘、光盘、U盘、内存卡等。

2.2 系统备份必须使用班组专用的蓝光刻录光驱,并且由自控维修站人员进行相关操作。禁止把可读写存储介质直接连接到控制系统中的计算机上进行任何工作。

2.3 禁止向DCS网络中连接系统外计算机。对于已经连接的计算机必须安装杀毒软件并定期升级病毒库。

2.4 在连接到控制系统网络中的计算机上进行操作时,例如事件记录、历史记录、趋势图的导出等,使用的可读写存储介质必须是固定的设备,并且在每次使用前对其进行格式化处理,然后才可以接入以上计算机。

对象存储系统的管理 篇3

关键词:教育研究对象;界定;系统

中图分类号:G40 文献标志码:A 文章编号:1002-2589 (2011) 26-0117-02

一、界定教育研究对象重要性及困难

界定教育研究对象,对于教育学科而言,无疑具有极其重要的意义。任何学科,只有认识到自己所要研究的对象,才能称其为学科,并彰显出其学科的独有性,是进行该学科研究的基础。如物理学科,其研究对象即为热、力、声、光、电等物质之间相互的存在、运动规律,并使其与化学、生物等其他学科的研究领域所区分开来,否则物理学就没有必要划分出来,而归入化学或生物学科,物理学研究也就无从谈起了,教育学科也同样如此。

对于教育科学的研究对象,至今仍没有一个相对统一的定论,从目前的文献来看,至少有十几种定义,各家各派均提出了自己定义的教育研究对象,百家争鸣本无可厚非,但是对于这个基础问题如没有一个准确的回答,长久以往将会对整个教育学科的发展造成瓶颈,教育研究也就成了无源之水,无米之炊了。

但是这个困境,恰恰又是由教育学科研究的客观特点所决定的。综合前人研究成果,定义教育研究对象的困难性主要体现在以下方面。

1、教育科学研究具有广域性特点

曾有个这样的说法,说的是“教育是个筐,什么都可以往里装”,这其实恰恰生动的体现了教育研究对象的复杂性。教育现象纷繁复杂,研究人员往往是“一叶障目不见泰山”,难以全面深入地了解研究对象,而只能攫取其中的一部分来进行研究。

2、教育科学研究是一个“事理研究”

教育研究客体与研究主体(即“人”)的之间是存在着相互作用性的,“人”要从事教育研究,而“人”本身就是教育的结果。“人”在选择哪一个事物进行研究时,是不可避免地受文化、政治、传统、个人喜好的影响,而附带自己的主观价值判断,这就决定了不同的“人”会“自然而然”地选择不同的事物进行研究。

3、教育科学研究对象本身就是变化发展的,要达到理性认识着实不易

要准确地概括、认识动态的教育研究对象,既须研究主体具有较高的认识能力,还须掌握适当的认识时机。

因此,由于教育科学研究本身所具有的这些特点,也就使得教育研究对象的界定存在着不同的学术观点,而对于初涉教育科学研究的笔者,无意亦无力提出一家创新之言,而只能是略述前人研究成果,择选出合乎自己理解之教育研究对象的应有内涵。

二、界定教育研究对象的主要观点

1、教育学就是研究教育现象,揭示教育规律的一门科学

这是一种最为常见的观点。大部分的普通教育学及教育学原理书籍均持这种观点,如由王道俊、王汉澜主编的《教育学》即在对教育学进行界定时说:“教育学就是研究教育现象和教育问题,揭示教育规律的科学”。这种观点,无疑具有很大的合理性,因为我们教育中研究的最大量的问题,即是在教育生活、教育实践中产生的问题,具有最实在的现实性,我们能在日常生活中接触、体会到,而发现蕴含其中的教育规律,则是为了更好地指导我们的教育实践,作出更好的教育来,这种观点,对于教育实践中进行教育研究有着很强的方向指导作用。但是同时,这种观点的缺陷也是明显的,它容易导致我们在教育研究中忽视理论及思想研究的倾向。因为在教育史上,也存在着众多的教育思想及教育理论研究,如卢梭的教育思想,虽然极少在实践中应用过,但是我们不能否认这些教育思想的存在以及前人对其进行的有益研究。

2、教育学研究的对象是教育存在

如叶澜教授在其《教育研究方法论初探》中指出,教育存在包括两个方面:一是实践形态的存在,一是理论形态的存在。这种观点显然比第一种观点前进了一步,准确性更高,使有关“对象”的认识获得了明显发展。但是使用“教育存在”这个词来表述教育研究的对象,过于理性化,对广大中小学教师来说,就好像“雾里看花,水中望月”一样,看不清,读不懂,似又有过度理论化、抽象化之嫌。同时,“教育存在”似系一种静态的表达,容易忽视教育的鲜活生机,有悖于事物动态发展的一般规律。

3、教育学研究的对象是教育问题

如成有信教授即在其《教育学》中认为教育研究的对象是教育问题。这种观点认为,教育研究者的活动所针对的实际领域是该研究的客体,而研究主体与研究客体之间的中间环节才是该研究的对象。教育存在,也只能说是教育科学研究的客体,研究对象包含其中,并不是全部。因此,这种观点对于实践一线工作者教师或者教育决策者来说,具有很强的实践色彩和针对性,“对于我们具体的教育科学研究活动或一次特定的教育科学研究活动来说,教育研究对象就是教育问题,但是对于教育学科或者教育共同体所进行的整体性教育科学研究活动来说,研究对象却是教育存在,即教育与其环境的关系性存在。”[1]而其中所蕴含的被动性、消极性、修补性和不全面性,忽视教育研究者主动性及教育的“向善性”的倾向,是不可取的。

4、教育学研究的对象是教育生活

一些研究者认为,教育已经是一种贯穿生命全程的、普遍的生活方式,尤其是在终身教育理念的影响下,个人已经不可能脱离教育学习生活,社会的发展要求人们不断在生活中学习,此外,“泛教育观”日益受到重视,“教育无处不在,处处在”,除了传统的学校课堂教育,现在的网络教育、成人教育、职业教育都蓬勃发展起来,教育领域愈见宽阔,教育形式也不再囿于传统的课堂讲授,师生关系愈见平等、民主。因此,他们认为“在此理论嬗替与实践更新的背景下,建立以教育生活为对象的新的教育研究对象观,已势在必行。”[2]这种观点,无疑在现代教育生活的特点着手,拓宽了我们的研究视角。但是这种观点,容易使我们的教育研究对象泛化和简单化,也犯了类似于“教育现象”观点的错误,容易使我们的研究偏向于实践研究而忽视理论研究。

三、教育研究对象系统观

一方面,如前所述,以往对于教育研究对象的单一因素性理解,均存在着一些缺陷。另一方面,随着现代系统论、信息论等的发展,对于“教育研究对象”的探讨已经不能只局限于教育这个社会子系统里面了,而更应该联系政治、社会、文化等社会系统,尤其是要借鉴其他如社会学、管理学、经济学等学科的科学研究方法来进行研究。三是随着学科的发展,教育学已经成为教育学研究的对象之一,亦即“元教育学”,是对教育学自身学科的反思,“教育”已经成了“教育”自身的研究对象了。因此,教育研究对象应该是一个动态、开放、内外部不断地进行着交流的复杂系统,而不能象以往那样只关注到其中的某个方面。因此,有研究者指出,教育的研究对象,可以按对象系统要素和层次进行划分和分类(见 表1)。[3]

表1 教育研究对象系统要素层次分类表

从该表可知,教育研究对象主要包括三个层次的对象,即“待认识”对象(自在层次)、“正在认识”对象(自觉层次)及“已认识”对象(自为层次)。其中,“待认识”对象处于自在的状态,还未进入研究主体的视野,属教育研究的潜在对象;“正在认识”的对象处于自觉状态,已进入研究主体的视野,属教育研究的现实对象;“已认识”对象处于自为状态,主导教育实践和清晰反映教育现象,属教育研究的主体化对象。同时,自在层次、自觉层次、自为层次三个层次之间不断地进行着动态变换和螺旋运动,其区分标准是教育研究主体与客体相结合的程度:自在层次的研究对象作为潜在对象是未被主体化的研究客体,与研究主体“相隔”;自觉层次的研究对象是正被主体化的研究客体,与研究主体“相遇”;自为层次的研究对象是已被主体化的研究客体,与研究主体“相融”。

对于教育研究的潜在对象(自在层次)“教育世界、教育存在、教育生活”,也有学者零星地对此进行过阐述。随着对教育研究对象研究的逐渐加深,这些教育研究的潜在对象也必然慢慢从“待认识”对象变为“正在认识”的对象。这不仅是对教育研究对象的进一步扩展,而且对于教育观也是一次全新的阐释。无论是教育实践工作者还是教育理论工作者都是一次挑战,但更多的是机遇。挑战在于相对于教育中实实在在的教育问题来说,潜在对象显得更加宽泛和丰富,使人们在研究中难以把握问题的界定,容易陷入困惑。机遇在于这使得教育学的研究问题领域从教育领域扩展到生活领域,使得教育更加贴近现实生活,以便于更好的服务于人类的完美生活。这也是教育的终极目的之所在。

综上所述,笔者认为,教育研究的对象,已经不能只局限于单一因素,或者简单地机械划分为三个层次,而应该是一个包括以上三个层次对象的一个系统综合,是一个整体性的存在,也包括教育系统与其他社会子系统的关系性存在。同时,研究者也越来越多地关注潜在对象,以及对教育研究对象的进一步扩深,说明一个巨大的教育研究对象领域正在成形,未来教育学必将不但注重学校教育学的研究,而且注重家庭教育、社会教育以及生活教育等多领域的研究,直至注重对人的一生发展都起重大作用的终生教育的研究。

参考文献:

[1]南纪稳.教育科学研究方法[M].西安:陕西师范大学出版社, 2010:22.

[2]吴定初,雷云.教育研究对象观探新[J].社会科学战线,2005,(3).

[3]雷云.教育研究对象系统初探[D].四川师范大学,2006.

对象存储系统的管理 篇4

在计算机网络技术、计算机软硬件技术及计算机应用技术迅速发展的过程中,IT技术经历了三个主要发展阶段。第一阶段是以处理器为核心的阶段,它促进了计算机的普及和应用;第二阶段是以传输技术为核心的阶段,它带动了计算机网络的使用和普及,使得数字化信息的应用席卷全球,并因此导致了数字化信息的爆炸性增长;第三阶段是以存储为核心的阶段,它主要研究存储系统的可靠性、可用性、开放性、可扩展性,以及存储数据的容灾与恢复、共享与安全等。因此,信息存储技术已成为国内外研究的重点和新的经济增长点。

网络存储结构的发展经历了几个阶段,大致包括DAS.SAN、NAS、带文件的SAN和OSD等。理想的存储结构应该能够提供强安全性、跨平台的数据共享、高性能和对存储设备与客户数量的高可伸缩性。

DAS (Direct Attached Storage)是最简单的一种存储结构,如图1所示。其主要缺点是存储设备的扩展困难、共享困难,服务器容易成为瓶颈,而且系统的可靠性较差。

对DAS的改进方法有两种:一是将存储设备从服务器中独立出来,组成单独的存储区域网SAN (Storage Area Network);二是简化服务器的操作系统、网络协议、文件系统等,形成专用的存储服务器,成为NAS (Network Attached Storage)。NAS中存储的数据容易共享,但NAS的本质仍然是服务器,当它管理的容量过大时,仍然会成为系统瓶颈,如图2所示。

SAN的扩展性很好,存储设备容易共享,但其为用户提供的是块接口,接口的层次较低,使用不便。由于仅提供了块级的访问,缺少统一的管理系统,SAN的用户之间很难共享存储设备中的数据,如图3所示。为了方便共享SAN中的数据,可以在SAN上建立文件系统。带文件系统的SAN对外提供文件接口,而且容易扩展,但其安全性较差。

为了提高存储系统的安全性,需要增加存储设备的处理能力。增加了处理能力以后的存储设备除了能够完成安全检查之外,还可以完成其他一些工作,例如:可以让存储设备自己负责存储空间的管理,包括存储空间的分配与回收等;可以让存储设备自己管理存储在其上的数据,如按照对象方式组织、管理数据和数据的属性等。

这种具有智能、能够自我管理、提供对象接口并有较高安全性的存储设备称为基于对象的存储设备(Object Based Storage Device,OSD)。相应地,以OSD为基础的网络存储就是基于对象的网络存储。OSD具有NAS和SAN的所有优点,而且有较高的安全性,是网络存储的主要发展方向。

二基于对象的网络存储

为了解决NAS结构中的服务器瓶颈问题,同时又为客户提供文件系统接口,人们为SAN设计了文件系统。

在SAN上,建立文件系统的方法大致有两种:

1. 全集中式文件系统

所谓全集中式文件系统就是在SAN服务器上建立一个集中式的文件系统,通过该文件系统向用户提供文件服务。集中式文件系统负责SAN上所有存储资源的管理,并为用户提供统一的文件操作接口。用户对SAN上数据的访问都必须经过SAN文件系统,用户和SAN存储设备之间的数据交互都必须经过服务器的存储转发,如图4所示。

全集中式的SAN文件系统比较简单,因而使用率很高。但这种系统有一些严重的缺陷,如服务器容易成为瓶颈;存储资源的利用率低,因为服务器的存储资源是管理员预先分配好的,无法动态地在服务器之间调整存储资源。

2. 半集中式文件系统

事实上,在SAN系统中,主机可以直接访问存储设备,也就是说,在主机和存储设备之间的数据传输可以不经过服务器的转发。让服务器只负责存储的管理(如存储空间的分配、回收等)和文件的定位(文件块到存储块的映射),不再负责数据的转发,如图5所示。

在这种系统中,应用服务器(相当于客户机)直接连接到SAN上,并可以直接访问SAN中的存储块。文件服务器也直接连接到SAN上,也可以直接访问SAN中的存储块。在应用服务器和文件服务器之间还需要有一个LAN。应用服务器在访问SAN上的文件之前,先通过LAN向文件服务器发送请求,文件服务器为其解析文件路径名,并完成文件块到存储块的转换,而后把存储块的物理地址返回给应用服务器。应用服务器直接通过SAN访问存储设备,从中读或写数据。

由此可见,在半集中式SAN文件系统中,控制流和数据流被分开了;只有控制流经过文件服务器。相对于数据流来说,控制流的数据量是极小的。因而,在半集中式SAN文件系统中,文件服务器的压力大大减小,已经基本上不再成为系统的瓶颈。

在SAN上建立了文件系统后,能够解决网络存储的很多问题,如高性能、高可扩展性、跨平台的数据共享等,但并没有解决所有的问题。事实上,建立了文件系统之后的SAN仍然遗留了两个主要问题:

●服务器的管理工作仍然较重,还会成为系统瓶颈;

●基本没有考虑到安全问题。

可见,虽然目前的存储设备都具有一定的处理能力,但还无法胜任安全验证和存取控制工作,因而需要加强存储设备的处理能力,增加其智能。增加了处理能力以后的存储设备还可以完成其他一些工作:可以让存储设备自己负责存储空间的管理;可以让存储设备自己管理存储其上的数据。增强以后的存储设备可以向用户提供对象接口而不再是存储块接口。用户看到的存储设备是一个对象(如文件)的集合而不再是存储块的数组。

这种具有智能的、能够自我管理的、提供对象接口的存储设备称为基于对象的存储设备OSD (OBJECT BASED STORAGE DEVICE)。基于OSD的存储结构具有NAS的优点,也有SAN的优点,可以认为,OSD是SAN和NAS的综合。DAS到OSD的演化路径如图6所示。

在OSD设备上存储的基本单位是对象。对象是字节的逻辑集合,它存储在存储设备上,可以按照预先定义好的方法存取。除包含数据外,对象中还包含数据的属性,属性描述了数据的特性。对象是介于文件和数据块之间的一个逻辑抽象。在基于OSD的文件系统中,文件被分开存储在一组对象中,这些对象可以在一个OSD上,也可以在多个OSD上。OSD负责对象到数据块的映射。

对象是介于文件和数据块之间的一个逻辑抽象。在基于OSD的文件系统中,文件被分开存储在一组对象中,这些对象可以在一个OSD上,也可以在多个OSD上。OSD负责对象块到数据块的映射。对象结合了文件和块的优点。作为基本的存储单位,对象可以被应用服务器直接存取,具有快速、高效的特点。另外,作为存取访问接口,可以按照对象方式存取对象的内容,具有方便、跨平台的特点。

在空间分配和数据存取方面,对象很像文件,但对存储应用(如文件系统、数据库)来说,它更像一个容器,可以用来存储任何类型的数据,而且,其上可以实现需要的附加接口(如锁)和查找机制。OSD负责对象的创建、删除,也负责对象空间的动态增长和收缩。对象由三大部分组成:数据、用户可存取的属性和设备用的管理数据。数据部分对OSD设备是透明的,被简单地维护在对象之中。用户可存取的属性描述对象的特性。设备用的管理数据是由OSD维护、由OSD使用的附加信息,用于管理对象的物理存储空间。

三基于对象的网络存储在后期制作中的应用

现在这种基于对象的存储方式也在广播电视后期制作的存储领域开始得到应用,较为典型的例子就是AVID公司的Unity ISIS存储系统,值得关注的是这套网络制作系统中的存储结构和理念是和以往的双网架构有很大差异的。通过和厂家的沟通以及大量查阅资料,笔者发现这套存储系统是属于目前较新的基于对象的网络存储系统。

Unity ISIS是半集中式的文件系统,存储集群大致由三部分组成:客户端、元数据服务器(System Director)和基于对象的存储设备,三者的关系如图7所示。

在ISIS存储集群中,客户与OSD之间采用iSCSI+OSD协议通信,客户与元数据服务器之间采用轻量级的RPC协议通信。

一个ISIS存储机箱(ISIS engine)里有16个(ISB)插槽,一个ISB的存储容量为1TB,所以一个存储机箱的存储容量可以达到16TB,机箱内部配置有个16口的千兆以太交换机,可以将一个机箱中的所有刀片连接在一起,并向外提供16个千兆以太网接口,用于将机箱与客户端组合在一起。ISIS存储机箱的前、后、立体面如图8、图9、图10所示。

Unity ISIS有自己的OSD产品——Avid ISIS Storage Blade存储单元(ISB)每个ISB设备中包含两块500GB的SATA磁盘,独立的CPU和RAM (512MB),千兆以太网卡。ISB不仅仅是存储单元,而是小型刀片式服务器,可通过Web形式直接控制每一个存储单元进行设置和故障排除,如图11所示。

ISIS的ISB提供下列三个主要功能:

●数据存储。存储设备的主要功能是能将数据可靠地存储在物理媒体中并在需要时方便地将其找回(取出),即管理数据在物理存储媒体中的分布。与普通的存储设备不同,ISB (OSD)向其用户提供的不再是块格式的接口,而是一组对象。文件数据存储在对象中,对象由对象ID标识(实际由分区ID和用户对象ID共同标识)。当ISB的客户读/写对象中的数据时,它需要提供的参数是对象ID、偏移量和数据长度,而不再是逻辑块的编号。

●智能布局。ISB利用它的内存和处理器优化数据在磁盘上的分布,并能实现较好的数据存储策略。

●对象元数据管理。文件系统的元数据包含两部分内容:文件的物理分布(用于存储文件的各个逻辑块的物理位置,通常记录在文件的控制块中)和文件系统的名字空间(文件系统的目录树结构和文件名到文件控制块之间的映射关系)。在传统的文件系统中,元数据全部由文件服务器或主机操作系统负责管理。在基于OSD的存储系统中,上述两部分元数据被分开管理,元数据服务器仅管理文件系统的名字空间,文件物理布局的管理工作被下放给了OSD。实验表明,在常用的文件系统操作中,90%涉及的是文件物理布局,只有10%涉及文件系统的名字空间。因而,将两部分元数据分开管理可以极大地减少元数据服务器的管理工作量。OSD将自己管理的存储空间划分成一组成员对象,每个成员对象中可以存储一个文件的部分或全部内容。成员对象的物理布局由OSD负责管理,OSD记录着用于存储对象数据的各个逻辑块的物理位置。元数据服务器仅需要记录用于存储文件数据的各个成员对象名及文件在这些成员对象上的分布方式即可,不需要记录文件数据所在的逻辑块。当文件增长时,它的各个成员对象会随之增长,但元数据服务器所记录的对象元数据并没有太大变化。如图12所示。

从理论分析上来看这么做具备一定的优势。主要是避免客户端与服务器之间的反复通信,消除了服务器的性能瓶颈。其次是通过分布式的工作模式,在增加存储单元和编辑客户端时,系统的整体文件管理能力也会随之增加,理论上消除了系统规模的上限。四结束语

对象存储系统的管理 篇5

设计题目 动态分区分配存储管理

学生姓名学

号 专业班级 指导教师

吕 霆

20102675 计算机10-01班

第一章

课程设计概述

1.1 设计任务: 动态分区分配存储管理

1.2 设计要求

建立描述内存分配状况的数据结构; 建立描述进程的数据结构; 使用两种方式产生进程:(a)自动产生,(b)手工输入;  在屏幕上显示内存的分配状况、每个进程的执行情况;  建立分区的分配与回收算法,支持紧凑算法;  时间的流逝可用下面几种方法模拟:(a)按键盘,每按一次可认为过一个时间单位;(b)响应WM_TIMER;

 将一批进程的执行情况存入磁盘文件,以后可以读出并重放;

 支持算法:首次适应算法、循环首次适应算法、最佳适应算法:最坏适应算法。

1.3 设计目的

旨在让我们更好的了解动态分区管理方面的知识.第二章 原理及算法描述

2.1动态分区分配算法原理

首次适应算法

* 算法概述:分配内存时,从链首开始顺序查找,找到满足的空闲分区则划出空间分配,余下的空闲空间仍保留在空闲链表中

* 实现方法:分配时从数组第一个元素开始比较,若符合条件则将该元素减去对应作业的值

循环首次适应算法

* 算法概述:由首次适应算法演变,只是每次分配改为由上一次找到的空闲分区开始查找

* 实现方法:在首次适应算法的基础上增加一个值用于记录找到的空闲分区的位置

最佳适应算法

* 算法概述:每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区

分配给作业

* 实现方法:我们决定每次分配先把空闲分区按从小到大的顺序排列,然后将第一个匹配分区分配给作业

最坏适应算法

* 算法概述:每次为作业分配内存时,总是挑选一个最大的空闲分区分割给作业使用

* 实现方法:算法与最佳适应算法几乎相同,仅在排序时把空闲分区表按从大到小的顺序排列,所以未作详细注释

回收分区

当进程运行完毕释放内存时,系统根据回收区的首址,从空闲区链(表)中找到相应的插入点,此时可能出现以下四种情况之一;1)回收区与插入点的前一个空闲分区F1相邻接,此时应将回收区与插入点的前一分区合并,不必为回收区分配新表项,而只需修改其前一分区F1的大小.2)回收分区与插入点的后一空闲分区F2相邻接,此时也可将两分区合并,形成新的空闲分区,但用回收区的首址作为新空闲区的首址,大小为两者之和.3)回收区同时与插入点的前,后两个分区邻接,此时将三个分区合并,使用F1的表项和F1的首址,取消F2的表项,大小为三者之和.4)回收区既不与F1相邻接,又不与F2邻接.这时应为回收区单独建立一新表项,填写回收区的首址和大小,并根据其首址插入到空闲链中的适当位置.紧凑算法

通过移动内存中的作业的位置,以把原来多个分散的小分区拼接成一个大分区的方法.第三章 开发环境

此程序是本人利用c++语言在vs2012的开发环境中实现的第四章 程序实现--数据结构

#include #include #include using namespace std;ofstream stream;//输出流对象 int ary1[20][4];//内存分配状态 int ary2[20][3];//空闲分区状态 int ary3[10];//进程分配状态

int recycle;//需要回收的盘块序号 int id1;//算法选择号 int m;//内存区数 int n;//空闲区数 int q;//进程数

int r=0;//循环首次适应算法:对应的这次查找到的空闲分区序号 //打印输出函数 void vision(){

int i;int j;if(id1==1)stream.open(“first_fit.txt”, ios::app);if(id1==2)stream.open(“nextfirst_fit.txt”, ios::app);if(id1==3)stream.open(“best_fit.txt”,ios::app);if(id1==4)stream.open(“worst_fit.txt”, ios::app);if(id1==5)stream.open(“compact.txt”,ios::app);if(id1==6)stream.open(“huishou.txt”,ios::app);cout<<“-------------内存分配状态-------------”<

} cout <} cout <

}

//作业信息的自动产生 void create_pro(){

}

//作业的手动生成 void create_zuoye(){ int j;int choice2;int id3=rand()%10;m=id3;//内存区数量 cout<<“产生”<} ary3[0]=42;ary3[1]=86;ary3[i]=rand()%100;if(ary3[i]==0){i--;} {

} cout<<“--------------------------”<}

//内存信息的自动产生 void create_apply(){

int k=0;//空闲区数量 for(i=0;i

if(ary1[i][3]!=2){ary2[k][0]=ary1[i][0];ary2[k][1]=ary1[i][1];ary2[k][2]=ary1[i][2];k++;} int i;for(i=0;i

} ary1[i][0]=i+1;ary1[i][1]=rand()%100;if(i==0){ } ary1[i][3]=rand()%3;//cout <>choice2;q=choice2;cout<<“输入想创建的作业请求大小”<

} cout<<“你创建了”<j;ary3[i]=j;

}

//内存信息的手动生成 int create_fenqu(){

}

//首次适应算法 void first_fit()int k,x,y,o=0;int a=0;cout<<“输入想创建的内存分区块数 : ”;cin>>k;

cout<<“输入”<

} cout<<“输入内存块的分配状态”<

} ary1[0][2]=0;ary1[1][2]=ary1[0][1];for(int i=2;i

for(int i=0;i

} n=a;return m,n;if(ary1[i][3]!=2){

} ary2[a][0]=ary1[i][0];ary2[a][1]=ary1[i][1];ary2[a][2]=ary1[i][2];a++;ary1[i][2]=ary1[i-1][2]+ary1[i-1][1];//起始地址 cin>>y;if(y==2){ } ary1[i][3]=y;//状态 n++;ary1[i][0]=i;//序号 cin>>x;ary1[i][1]=x;//大小 } n=k;//空闲块数量

{

vision();int i;int j;int k;int l;int d;//用来保存第k个的值 int id2=0;for(i=0;i

for(j=0;j

if(ary2[j][1]>=ary3[i])//进程占用空间小于等于其中一个空闲区的大小 {

cout<<“[”<

ary1[ary2[j][0]-1][3]=2;for(k=j+1;k

ary2[k-1][0]=ary2[k][0];ary2[k-1][1]=ary2[k][1];ary2[k-1][2]=ary2[k][2];} n--;

}else//否则的话,空闲链对应的地方盘块大小小了进程占用的大小,并且内存分配从对应的 {

l=ary2[j][0];d=ary1[l-1][1];//大小 ary1[l-1][1]=ary3[i];ary1[l-1][3]=2;m++;for(k=m;k>ary2[j][0]+1;k--){

ary1[k-1][0]=ary1[k-2][0]+1;ary1[k-1][1]=ary1[k-2][1];ary1[k-1][2]=ary1[k-2][2];ary1[k-1][3]=ary1[k-2][3];那一项开始增加一项

} l=ary2[j][0];

}

}

{ if(ary1[id2][3]!=2)

}

} n=k;} break;} else {

}

cout<<“[”<

{

ary2[k][0]=ary1[id2][0];ary2[k][1]=ary1[id2][1];ary2[k][2]=ary1[id2][2];k++;} ary1[l][0]=l+1;ary1[l][1]=d-ary3[i];ary1[l][2]=ary1[l-1][1]+ary1[l-1][2];ary1[l][3]=0;k=0;for(id2=0;id2

//首次循环适应算法 void next_fit(){ vision();int i;int j;int k;int s;int d;int id2;for(i=0;i

{

for(j=r;j

if(ary3[i]<=ary2[j][1]){

cout<<“[”<

{

} else//对应的空闲块大小大于进程需要大小 { //-----改变内存分配情况-----r=(r+1)%n;//改变第k块的内容 k=ary2[j][0];d=ary1[k-1][1];ary1[k-1][1]=ary3[i];ary1[k-1][3]=2;//从k+1之后所有向后移一格 m++;//内存块数增加1 for(s=m-1;s>k;s--){

ary1[s][0]=ary1[s-1][0]+1;ary1[s][1]=ary1[s-1][1];ary1[s][2]=ary1[s-1][2];//---改变内存分配---k=ary2[j][0];//得到对应空闲块对应内存块的序号 k--;ary1[k][3]=2;//把对应内存块标志位上改成已分配 //------------------//--改变空闲块表:把从这块空闲块以下的所有空闲块向上移一格--n--;for(k=j;k

} vision();//------------------break;ary2[k][0]=ary2[k+1][0];ary2[k][1]=ary2[k+1][1];ary2[k][2]=ary2[k+1][2];stream<<“[”<

}

}

//思路:先把空闲列表检索一遍,选出最佳答案,进行分配

void best_fit()//最佳算法--按顺序检索,把与进程要求内存大小最接近的快分配给进程 {

int i;int s;int j=-9999;//用来保存最接近的答案 int e;//用来存放进行比较时的中间结果

}

{ if(ary1[id2][3]!=2)

}

} else{

} cout<<“[”<

{

ary2[k][0]=ary1[id2][0];ary2[k][1]=ary1[id2][1];ary2[k][2]=ary1[id2][2];k++;} ary1[s][3]=ary1[s-1][3];} //改变第k+1块内容:对应的数组是ary1[k] ary1[k][0]=ary1[k-1][0]+1;ary1[k][1]=d-ary1[k-1][1];ary1[k][2]=ary1[k-1][1]+ary1[k-1][2];//--------------------------//----改变空闲表分配情况----k=0;for(id2=0;id2

}else { cout<<“[”<

for(s=0;s

} if(j<0){ cout<<“[”<=ary3[i])&&(e>ary2[s][1]))//满足分配要求 { e=ary2[s][1];} j=s;for(i=0;iif(ary2[j][1]==ary3[i]){

} else

for(l=k;l

} n--;ary2[l-1][0]=ary2[l][0];ary2[l-1][1]=ary2[l][1];ary2[l-1][2]=ary2[l][2];ary1[k-1][3]=2;k=ary2[j][0];

}

//最坏适应算法 void worst_fit()

}

{ if(ary1[id2][3]!=2)

}

} vision();n=k;

} for(k=j+1;k

{

ary2[k][0]=ary1[id2][0];ary2[k][1]=ary1[id2][1];ary2[k][2]=ary1[id2][2];k++;} {

//把对应的内存分配进行更改 k=ary2[j][0];d=ary1[k-1][1];ary1[k-1][1]=ary3[i];ary1[k-1][3]=2;m++;for(l=m;l>ary2[j][0]+1;l--){

} k=ary2[j][0];ary1[k][0]=k+1;ary1[k][1]=d-ary1[k-1][1];ary1[k][2]=ary1[k-1][1]+ary1[k-1][2];ary1[k][3]=0;k=0;ary1[l-1][0]=ary1[l-2][0]+1;ary1[l-1][1]=ary1[l-2][1];ary1[l-1][2]=ary1[l-2][2];ary1[l-1][3]=ary1[l-2][3];for(id2=0;id2

{

}else { cout<<“[”<

int e=-9999;//用来存放进行比较时的中间结果 int k;int l;int d;int id2;vision();{

j=-9999;e=-9999;for(s=0;s

} if(j<0){ cout<<“[”<=ary3[i])&&(e

if(ary2[j][1]==ary3[i]){

k=ary2[j][0];

ary1[k-1][3]=2;

for(l=k;l

{ if(ary1[id2][3]!=2)

}

} vision();n=k;

} for(k=j+1;k

{

ary2[k][0]=ary1[id2][0];ary2[k][1]=ary1[id2][1];ary2[k][2]=ary1[id2][2];k++;}

} else {

//把对应的内存分配进行更改 k=ary2[j][0];d=ary1[k-1][1];ary1[k-1][1]=ary3[i];ary1[k-1][3]=2;m++;for(l=m;l>ary2[j][0]+1;l--){

}

k=ary2[j][0];ary1[k][0]=k+1;ary1[k][1]=d-ary1[k-1][1];ary1[k][2]=ary1[k-1][1]+ary1[k-1][2];ary1[k][3]=0;k=0;ary1[l-1][0]=ary1[l-2][0]+1;ary1[l-1][1]=ary1[l-2][1];ary1[l-1][2]=ary1[l-2][2];ary1[l-1][3]=ary1[l-2][3];} n--;ary2[l-1][2]=ary2[l][2];for(id2=0;id2

}

//回收内存算法: /* 有共计八种情况,1.(1)回收区上邻接着空闲盘块,下连接着已分配盘块(2)回收区下邻接着空闲盘块,上邻接着已分配盘块(3)回收区上下连接的都是空闲盘块(4)空闲区上下邻接的都是已分配盘块

(5)要回收的盘块就是第一个盘块,并且向下邻接着空闲盘块(6)要回收的盘块就是第一个盘块,但是向下邻接着已分配盘块(7)要回收的盘块就是最后一个盘块,并且向上邻接的是空闲盘块(8)要回收的盘块就是最后一个盘块,但是向上邻接的是已分配盘块 */ void apply_recycle(){

ary1[0][1]=ary1[0][1]+ary1[1][1];ary1[0][3]=0;for(i=1;i

if(recycle==1){ //cout<

if(ary1[1][3]!=2){ cout<<“要回收的盘块就是第一个盘块,并且向下邻接着空闲盘块”<

} else { ary1[0][3]=0;n++;ary2[0][0]=1;ary2[0][1]=ary1[0][1];ary2[0][2]=ary1[0][2];vision();} stream<<“要回收的盘块就是第一个盘块,并且向下邻接着空闲盘块”<

ary2[k][0]=ary1[j][0];

ary1[0][3]=0;k=0;for(j=0;j

//cout<<“ary1[j][3]”<

} else{ cout<<“要回收的盘块就是第一个盘块,但是向下邻接着已分配盘块”<

} n=k;vision();

}

ary2[k][0]=ary1[j][0];ary2[k][1]=ary1[j][1];ary2[k][2]=ary1[j][2];k++;

{

} m--;// cout<<“" k=0;vision();//cout<<”ary1[0][3]“<

cout<<”ary1[j][3]“<

} else{ cout<<”要回收的盘块就是最后一个盘块,但是向上邻接的是已分配盘块“<

} n=k;vision();

}

ary2[k][0]=ary1[j][0];ary2[k][1]=ary1[j][1];ary2[k][2]=ary1[j][2];k++;

ary1[recycle-2][3]=0;ary1[recycle-2][1]=ary1[recycle-2][1]+ary1[recycle-1][1];m--;k=0;for(j=0;j

//cout<<”ary1[j][3]“<

} else if(recycle==m){

if(ary1[recycle-2][3]!=2){ cout<<”要回收的盘块就是最后一个盘块,并且向上邻接的是空闲盘块“<

} n=k;vision();

}

ary2[k][1]=ary1[j][1];ary2[k][2]=ary1[j][2];k++;stream<<”要回收的盘块就是最后一个盘块,并且向上邻接的是空闲盘块“<

ary2[k][0]=ary1[j][0];ary2[k][1]=ary1[j][1];ary2[k][2]=ary1[j][2];k++;

} else{//剩下比较复杂的四种情况

if((ary1[recycle-2][3]!=2)&&(ary1[recycle][3]==2))//回收区上邻接着空闲盘块,下连接着{cout<<”回收区上邻接着空闲盘块,下连接着已分配盘块“<

}

} n=k;vision();

}

ary2[k][0]=ary1[j][0];ary2[k][1]=ary1[j][1];ary2[k][2]=ary1[j][2];k++;

ary1[recycle-1][3]=0;k=0;for(j=0;j

//cout<<”ary1[j][3]“<

stream<<”回收区上邻接着空闲盘块,下连接着已分配盘块“<

ary1[recycle-2][1]=ary1[recycle-2][1]+ary1[recycle-1][1];for(i=recycle-1;i

} m--;k=0;for(j=0;j

//cout<<”ary1[j][3]“<

} if((ary1[recycle-2][3]!=2)&&(ary1[recycle][3]!=2))//回收区上下连接的都是空闲盘块 { cout<<”回收区上下连接的都是空闲盘块“<

} vision();

}

ary2[k][0]=ary1[j][0];ary2[k][1]=ary1[j][1];ary2[k][2]=ary1[j][2];k++;

} n=k;vision();} if((ary1[recycle][3]!=2)&&(ary1[recycle-2][3]==2))//回收区下邻接着空闲盘块,上邻接着{ cout<<”回收区下邻接着空闲盘块,上邻接着已分配盘块“<

stream<<”回收区下邻接着空闲盘块,上邻接着已分配盘块“<

ary1[recycle-2][3]=0;ary1[recycle-2][1]=ary1[recycle-2][1]+ary1[recycle-1][1];for(i=recycle-1;i

} m--;k=0;for(j=0;j

//cout<<”ary1[j][3]“<

}

}

} if((ary1[recycle-2][3]==2)&&(ary1[recycle][3]==2))//空闲区上下邻接的都是已分配盘块 {

} ary1[recycle-1][3]=0;k=0;for(j=0;j

} vision();//cout<<”ary1[j][3]“<

}

ary2[k][0]=ary1[j][0];ary2[k][1]=ary1[j][1];ary2[k][2]=ary1[j][2];k++;cout<<”回收区上下连接的都是空闲盘块“<

} m=m-2;k=0;for(j=0;j

} vision();//cout<<”ary1[j][3]“<

}

ary2[k][0]=ary1[j][0];ary2[k][1]=ary1[j][1];ary2[k][2]=ary1[j][2];k++;ary1[recycle-1][0]=ary1[recycle+1][0]-2;ary1[recycle-1][1]=ary1[recycle+1][1];ary1[recycle-1][2]=ary1[recycle+1][2];ary1[recycle-1][3]=ary1[recycle+1][3];n=k;n=k;

}

//紧凑算法 void compact(){

num_avl=0;for(id2=0;id2

int num_avl;//记录空闲盘块数量 int sum_avl=0;//总共空闲区大小 int num_apl=0;//统计总共空闲区有多大 vision();for(id2=0;id2

} //最后一块空闲块

ary1[num_apl][0]=num_apl+1;ary1[num_apl][1]=sum_avl;ary1[num_apl][2]=ary1[num_apl-1][1]+ary1[num_apl-1][2];ary1[num_apl][3]=0;m=num_apl+1;//包括最后一个空闲区 if(ary1[id2][3]==2){

} ary1[num_apl][0]=num_apl+1;ary1[num_apl][1]=ary1[id2][1];if(num_apl==0){

} ary1[num_apl][3]=2;num_apl++;//cout<<”num_apl“<

}

//主函数入口

void main(){

if(choice1==1){

}

num=rand()&10;q=num;int id3=2+rand()%8;m=id3;//内存区数量 create_apply();create_pro();int i;int j;int num;int choice1;//操作选择标记 int choice2;int flag=1;//标记是否再执行 while(flag==1){

cout<<”********************************************“<>choice1;

} n=num_avl;vision();

} ary2[num_avl][0]=ary1[id2][0];ary2[num_avl][1]=ary1[id2][1];ary2[num_avl][2]=ary1[id2][2];num_avl++;if(choice1==2){

} vision();

cout<<”**------------------请选择处理算法----------------------**“<

} }

cout<<”**************************** “<>o;flag=o;

cout<<”**1首次适应算法-----2循环首次适应算法-----3最佳适应算法 **“<>id1;if(id1==1)if(id1==2)if(id1==3)if(id1==4)if(id1==5)

} {first_fit();} {next_fit();} {best_fit();} {worst_fit();} { compact();} if(id1==6){ cout<<”*******************生成内存状态******************“<>recycle;if((recycle>m)||(recycle<1)){

} cout<<”错误:内存中不存在此块!“<

} if(id2==-9999){ apply_recycle();} if(ary2[i][0]==recycle){

}

PACS系统中存储技术的探讨 篇6

关键词:PACS;存储;DAS;NAS;SAN

中图分类号:TP391文献标识码:A文章编号:1006—3315(2009)03—155—001

1PACS系统概述

随着现代医学技术水平的进步,医学图像的数字化及应用计算机进行医学图像处理已经成为一门新兴的交叉学科。计算机技术和现代医学技术紧密结合,研制出了CT (X射线计算机断层摄影设备),ECT(发射单光子计算机断层扫描仪),MRI(医用磁共振成像设备),DSA(旋转数字减影血管造影),DR(数字摄影设备)等一些大型医疗设备,为传统医学诊断带来了革命性突破。但目前这些医疗设备所产生图像的主要存储介质是胶片,用胶片来存储医学图像资料成本高、不利于查询检索和统计、资料易遗失、图像处理困难并且随着胶片日益增多,为其管理带来诸多不便。

为了更好的满足临床医师对医学图像诊断需求,采用数字化图像管理方法已经成为共识,在这种背景下出现了医院PACS系统。

PA,CS的全称是(PicⅫ:e Archiving And Communication System),即图像存储与传输系统。它以数字化形式提供了医学图像存储与传输的解决方案。PACS是随着计算机网络技术、图像处理技术以及存储技术的发展而产生的。它是由通过数字化网络连接在一起的图像及数据获取、存储、显示等系统组件组成的,其特点是利用现代计算机通讯技术来高效地获取、存储、传送、显示和管理医学图像和病人信息,实现计算机医学图像处理和辅助诊断,大大降低了医生对传统胶片的依赖。

2PACS系统对存储的需求

1、海量存储

PACS系统中存放大量的医学图像资料,由于医生对其精度有较高的要求,故不宜采用有损压缩方法进行存储。

2、高速传输

PACS中关于高精度图像资料的传输,对网络带宽、服务器性能、调度算法,尤其是PACS对存储的访问速度有非常高的要求。

3、商可靠性和高可用性

PACS系统一般是和HIS和RIS结合使用,作为数字医疗系统的关键应用,需要做到7×24小时不间断可靠服务,出现故障能在最短时间内迅速无损恢复。

4、可扩展性和兼容性

随着时间的推移,数据量将会逐步增长,对存储容量的需求也将会不断的增大。这就要求PACS所用的存储系统可以方便可靠地扩展。

5、数据安全、备份与恢复

通过PACS存储系统设置的归档管理功能,结合良好的备份和恢复机制,保证数据的安全性、通过定时备份等方法基本解决网络备份占用带宽影响应用的问题。

3各种存储技术的比较分析

3.1直连式存储(DAS)

这是一种以服务器为中心的存储结构。在一个机架上将几个硬盘驱动器堆叠一起,作为单个附加存储设备(JBOD)添加到服务器,通过IDE,SCSI等I/O总线进行通讯。

3.2网络附加存储(NAS)

NAS的核心思想是把服务器和储存设备分开来,存储设备也附加在网络上,而不是通过I/O总线直接和服务器相连。NAS上特别安装了一个存储服务器,也称为NAS Server,该服务器是经过优化的,只提供存储服务的功能。可以看成一种瘦服务器。

NAS的特点是通过基于IP网络的网络文件协议向客户提供文件级别的I/O服务。客户端可以在NAS提供的目录或是设备中进行透明的文件操作。

3.3存储区域网络(SAN)

SAN是一项将存储设备、连接设备和接口集成在一个高速网络中的技术,是一种基于光纤通道技术(Fibre Channel FC),由专用光交换机和存储设备组成的独立专用存储网络系统。

服务器和客户机之间的数据通信通过SCSI总线而非TCP/IP协议。该结构的最大特点是数据在存储设备间传送、复制,不再通过局域网,不会对网络带宽产生影响,且能极大地提高数据备份和恢复操作的可靠性和可扩展性。SAN还可以与远程设备无缝地连接,从而提高容载的能力。这项技术使数据和存储设备真正与服务器脱离开,而形成一个数据存储专用网络。它独立于服务器网络系统之外,即存储系统和主机从物理连接和功能上都独立出来。分别组成自己的网络。

4PACS存储体系的设计

由于PACS數据产生的医学图像数据的数据量非常庞大。如果仅仅依靠SAN来存储,不但耗费的成本会比较大,而且SAN以块(Block)级的方式操作并不完全适合对与海量医学图像文件的存储。因此可以采用以文件(Fde)级的方式操作的NAS作为PACS图像数据的存储技术。根据NAS的特点,理论上可以无限制的增加NAS的存储设备来满足日益增长的医学图像数据的存储需要。

扩展LATTUS对象存储产品 篇7

数据保护和大数据管理厂商昆腾扩展LattusTM产品线, 纳入容量更低、成本更低的型号, 帮助大型企业将Lattus对象存储的价值延伸到大数据归档以外。

自2012年秋天Lattus发布以来, 客户对其为具有快速增长的大数据的小型企业机构, 以及寻求综合备份与归档解决方案的商用数据中心客户提供的价值, 表现出浓厚的兴趣。Lattus能够近线访问高持久、高可扩展和成本高效益磁盘解决方案中的归档数据, 这种解决方案永远不需要“叉车式”升级———一种永久性磁盘归档方式。为了让客户更轻松地看到并评估Lattus所能提供的一切, 并且无需投资自己的安装资源, 昆腾将在Switch社区最先进的Super NAP数据中心里部署Lattus, 以便在云中进行严格的概念验证 (POC) 测试。

随着客户寻找各种方式从其数据中提取更大价值, 希望更长久、甚至无期限地保留更多数据。然而, 越来越多的传统磁盘基础设施无法满足由此产生的数据可用性、可访问性和可负担性需求。例如, 随着数据量的增加, 磁盘故障和系统停机的风险也相应增加, 集成新处理器或磁盘技术往往需要计划内停机或叉车式升级, 所有这些都带来更高的运营和管理成本。

通过提供以下功能特性, Lattus对象存储解决方案克服了这些限制:

●无与伦比的可扩展性, 可支持灵活的数据增长;

●比传统RAID产品更出色的耐久性, 其中包括真正的自我修复和自我保护功能;

●由磁盘提供低延迟访问, 以便实现可预测的快速检索;

●自动多站点保护, 无需复制;

●自助迁移, 以便进行无缝升级, 适应新的存储技术;

●快速文件访问, 充分利用昆腾的Stor NextTM文件系统、HTTP REST和CIFS/NFS;

●在全球各个位置进行低成本高效益、大容量归档;

●目前的私有云就绪基础, 以及未来公共云集成。

新的Lattus型号

昆腾Lattus-X和Lattus-M解决方案均适合大数据客户的低容量配置。Lattus-X为PB级对象存储提供NAS访问, 并且极适于需要共享并归档大数据文件成本, 同时保持快速采集和检索的分布式工作组。Lattus-M将Stor Next Storage ManagerTM的自动化政策分层和归档功能与对象存储技术集成到一起。

对于商用数据中心客户, Lattus提供了一个带有高度耐久性、自我修复和自动多层保护功能的磁盘归档, 从而不再需要单独的备份基础设施, 并且还能节约用来管理备份的相关成本和资源。此外, Lattus让这些客户能够将数据从昂贵的主存储NAS系统迁移到近线磁盘归档层, 从而减少了主存储使用, 同时以低得多的成本提供了所需的数据可用性和可访问性。

Super NAP中的Lattus

下个月, 昆腾将在拉斯维加斯的Super NAP安装Lattus。Super NAP是由全球领先的托管、连接、云与内容生态系统提供商Switch所有并运营。考虑采用Lattus的企业机构将能够在Super NAP中轻松、迅速进行基于云的概念验证测试, 无需等待所需的设备和资源, 或承担在自己内部进行概念验证评估的成本。因此, 客户将能够更高效地完成概念验证测试, 并全面了解如何充分利用Lattus来满足其需求。此外, 昆腾还将让软件和渠道合作伙伴能够利用Super NAP进行解决方案集成和测试。

相关链接支持的言论

Janae Stow Lee, 昆腾Filesystem与归档高级副总裁

“我们开发Lattus的目的是让客户充分发挥与日俱增的大数据归档的价值。过去六个月, 我们与那些入门需求较小的客户进行了沟通, 显然, 他们也会得益于对象存储。我们看到了让用户能够更轻松地测试、评估并部署对象存储解决方案这一普遍需求。今天宣布的产品体现了我们不断致力于将客户反馈纳入我们的产品计划和销售工作。”

David Hekimian, Tech Accelerator公司创始人兼首席执行官

对象存储系统的管理 篇8

传统的NAS存储系统,存在着存储性能的局限性、可靠性低、扩容成本高、易形成单点故障等问题,而Ceph分布式存储系统是集高性能、高可靠性和可扩展性为一身的存储系统,能有效避免传统存储系统的缺点[1]。

本文以Ceph分布式系统为研究对象,设计基于Ceph对象存储的健康集群,通过设计多个对象网关实现对应用请求数据的存储和管理,使用负载均衡提高云网盘的请求、响应和吞吐能力,然后设计统一的Token认证系统,实现对象存储集群的数据安全性和隔离性,最终设计和实现了基于Ceph对象存储集群的云网盘。

1系统设计与实现

Ceph是一种具有高性能、高扩展性、高可靠性的分布式存储系统。Ceph可为一套存储系统同时提供对象存储、块存储和文件系统存储3种功能,以便在满足不同应用需求的前提下简化部署和运维。在实践当中,Ceph可被部署于上千台服务器上[2]。

首先设计基于Ceph对象集群的简单集群系统,保证整个Ceph对象存储集群的可用性,同时Ceph存储集群也是整个云网盘的存储系统。

整个Ceph存储集群拥有4个Gateway节点,分别为EAST、WEST、SOUTH、NORTH。这些节点能对外提供和发布对象存储服务,实现基于Ceph对象存储的多区域网络访问,所有的应用请求必须通过这4个Gateway节点实现。根据实际网络用户的数量和分布情况,动态的调整Ceph对象存储集群的架构,满足不同区域用户的动态请求服务[3]。

基于Token的统一认证系统,保证整个Ceph云存储集群的安全性,同时对不同用户进行隔离,保证整个Ceph对象存储集群的高可靠性。

最后设计和实现基于Ceph对象存储集群的云网盘。通过大量网络应用测试和分析,本系统实现了基于Ceph对象存储集群的云网盘基础功能[3]。

1.1总体设计框架

用户通过网络进行存储应用访问,首先要通过统一的Token认证系统,区分不同用户的权限和工作区域,实现数据管理和数据操作的安全性和隔离性[4]。

根据用户的分布和数量,设计合理的Gateway区域,实现对不同用户请求的对象存储服务,满足用户访问请求的实时性和可用性。

本系统设计出4个不同的区域,分别为EAST区、 WEST区、SOUTH区、NORTH区,其能提供不同区域的对象存储服务。整体设计框架如图1所示。

1.2多区域的统一认证

在整个Ceph存储集群中,大量网络用户通过用户访问节点进行统一的认证,在统一认证系统中安装和配置Keystone服务,产生统一的Token认证码,在4个Gateway节点上均使用这一Token认证码,这样保证了用户请求能在4个不同的节点上对Ceph存储集群进行合法访问[5]。

在基于Ceph对象存储集群中的4个不同区域节点,均需要安 装配置My SQL和Keystone,首先在My SQL中创建Keystone数据库,然后在Keystone的配置文件中,将数据库修改为My SQL并设置用户名和密码,这样就完成了Keystone的单点认证服务。

在Ceph集群的配置文件中,分别修改4个不同区域节点的Gateway配置文件,将其中keystone_url选项中的IP修改为用户访问节点的IP,这样用户访问节点每产生一个Token。在Ceph对象存储集群中的4个不同Gateway区域节点中,当有对象存储服务请求时,不同的区域节点能使用统一的Token验证码对用户访问节点进行数据的操作和数据的管理[6]。如图2为统一认证框架。

在整个Ceph对象存储集群中,通过Token统一认证系统,能保证用户请求服务的安全性和隔离性,因为只有获取到Token才能实现 对云网盘 的访问和 控制。

1.3多区域数据操作

在整个Ceph对象存储集群中有4个不同的区域节点对外提供服务接口,通过Token统一认证系统,只有合法用户才能对云网盘进行基本操作。从而实现不同区域用户对整个Ceph对象存储集群的数据访问和数据操作。对多区域的数据操作包括文件上传、下载、 复制、删除、共享、权限修改等操作。

通过使用软均衡负载设置,实现4个不同的Gateway节点对数据的轮询访问,由此便提高了云网盘的请求、 响应和吞吐能力,有效降低了用户访问节点的压力,从而提高整个Ceph对象存储集群的可靠性[7]。

2系统测试

2.1Keystone统一认证

在用户访问节点上安装和配置Keystone,并初始化Keystone数据库,重新启动Keystone服务,通过设置和添加环境变量,最后执行Keystone的初始化脚本。 这样在用户访问节点上就能够产生统一的Token认证码,实现云网盘的统一化的认证和管理。

在EAST、WEST、SOUTH、NORTH这4个不同的区域节点,均配置和安装Keystone和My SQL服务,首先设置My SQL的用户名和密码,允许客户端进行访问, 在My SQL中创建Keystone数据库,然后在Keystone配置文件中修改数据库指定为My SQL,并初始化数据库,然后重启。这样在4个不同的区域节点上就能产生Token认证码[8]。

在4个区域节点的Ceph配置文件中,分别修改Keystone的地址为用户访问节点的地址,则当用户访问节点产生统一的Token认证码后,在4个区域节点上,可使用该Token认证码对云网盘进行数据操作和数据管理。

2.2云网盘数据操作

在用户访问节点上设置软均衡负载,所有的网络访问用户通过该节点实现对整个Ceph对象存储集群的轮询访问。

在用户访问节点的均衡负载配置文件中添加4个不同区域的监控节点信息。当有用户请求服务时,通过数据监控界面可查看当前的数据操作记录[9]。

通过网络对Ceph对象存储进行监控,查看不同区域的数据的监控界面,如图3所示。

基于Ceph对象存储集群的云网盘可实现基本的数据操作和管理功能,如图5所示。

2.3云网盘性能测试

云网盘的服务请求入口的IP为http: / /10. 10. 10. 5: 8090 / yunpan,使用该IP作为测试的URL,使用Apache Bench软件设置并行连接数和请求数,通过实验测试云网盘的性能。

如表1所示,请求数为1 000,并行连接数分别为10、100、1 000。

如表2所示,请求数为10 000,并行连接数分别为10、100、1 000。

如表3所示,请求数为100 000,并行连接数分别为10、100、1 000。

如表4所示,请求数为1 000 000,并行连接数分别为10、100、1 000。

经过对上述测试结果的对比分析,得出总体的测试对比图,如图5所示。

3结束语

设计和部署Ceph存储集群,根据实际生产需求设计多对象区域架构,实现多对象存储服务。采用软负载均衡,提升云网盘请求、响应吞吐能力,并集成基于Token认证系统实现对象数据的隔离与安全。通过测试,本系统能实现基于Ceph对象存储集群的云网盘数据操作和数据管理功能,同时保证了整个云网盘的良好性能。

摘要:针对基于传统NAS存储实现云网盘存在扩展性差,响应性能低、数据不可靠性、安全性低等问题,提出一种基于Ceph分布式对象存储系统构建高性能、高可靠、可扩展的云网盘设计与实现方案,底层基于X86服务器作为Ceph存储集群池,通过设计多对象网关发布对象存储服务,采用软负载均衡,提升云网盘请求响应吞吐能力,并集成基于Token认证系统实现对象数据的隔离与安全。经实验测试表明,该设计实现方案可满足现实应用需求。

对象存储系统的管理 篇9

基于对象的云存储作为一种新兴的数据存储模式, 发展十分迅速, 目前主流的公众云存储服务接口方式基本都采用对象方式。在基于对象的云存储应用接口方面存在两类接口规范, 一类是网络存储行业协会 (Storage Network Industry Association简称SNIA) 发布的云数据管理接口 (Cloud Data Management Interface, 简称CDMI) , 该规范由于考虑到与传统存储方式的兼容, 设计复杂, 目前的商业实现很少;另一类是各大云存储服务提供商推出的私有接口规范, 这些接口规范功能类似, 但是接口不统一, 这些云存储接口的不统一带来了服务提供商绑定和数据绑定问题。本文将系统分析上述两类云存储接口规范, 并根据国内外云存储市场的实际发展情况, 提出基于对象的云存储应用接口标准化建议。

2 基于对象的云存储接口概述

云存储服务是云计算领域发展最早也是最为成熟的应用之一。目前国内外已有多家云存储服务提供商提供基于对象的云存储服务, 例如Amazon的简单存储服务S3 (Simple Storage Service) 、Google的GS (Google Storage) 、AT&T的存储服务 (Synaptic Storage as a Service) 、微软的存储服务 (Azure Storage Service) 、金山快盘等。此外, SNIA也发布了CDMI规范。目前CDMI规范已经通过PAS (公开可获得规范) 通道提交给ISO/IEC JTC1, 并通过DIS (国际标准草案) 投票。下面简要介绍这些基于对象的云存储接口。

(1) 2006年Amazon推出S3。S3是目前使用最广泛的一个事实规范。S3采用桶和对象的两层结构来存储数据, 支持REST和SOAP两种访问协议, 可与多种网络开发工具集成工作。作为最早的云存储服务, 基于客户应用实践的积累, S3在对象存储的功能丰富方面也走在业界前列, 如对于超大数据 (数据容量5TB) 存储、BT方式下载以及第三方支付的功能支持等。由于针对S3应用开发的广泛性, 围绕S3有一些开源项目, 使S3的编程工作变得更加简单, 方便非HTTP编程开发者使用。

(2) 2010年谷歌推出名为“Google Storage (GS) ”的云计算存储服务, 目前提供面向开发者的在线申请。GS架构模仿了S3, 采用了基于桶和对象的两层架构存储数据。

(3) AT&T推出基于EMC (Atmos) 数据存储基础架构的AT&T (Synaptic Storage as a Service) , 该存储服务为企业用户提供了对存储的控制, 让用户在任何地点、任何时间、使用任何可连接网络的设备分布和找回他们的数据。Atoms的数据模型上只有对象, 没有桶或者容器的概念。

(4) 2010年4月SNIA下属的云存储技术工作组 (Cloud Storage Technical Working Group) 推出了CDMI规范。CDMI最大的作用在于提供了访问云存储和管理云存储数据的方式, 以及针对云架构厂商和第三方服务供应商的交互指导方针。CDMI采用五种对象支持数据存储管理和访问操作, 支持可嵌套桶容器结构, 有更丰富的对象和功能设计。

由以上分析可看出, 各家云存储服务接口不统一带来了以下问题:

(1) 导致用户面临服务提供商绑定问题。用户在不同云存储服务提供商之间迁移数据时会遇到以下问题:由于数据模型、接口协议和存储服务功能的差异而导致的数据迁移困难。给用户的云存储服务选择带来了较大的风险。

(2) 云存储接口标准的不统一也影响到产业的长远发展。受到接口不统一的影响, 围绕存储服务接口的特定语言编程包和第三方管理软件的开发需要做多种适配, 造成行业发展力量的过度分散, 并最终会影响到整体市场的增长动力。

3 基于对象的云存储接口标准化分析

基于对象的云存储服务在数据模型、接口协议、操作集合和第三方支持上存在很大不同, 给用户数据迁移和共享带来很大的障碍, CDMI考虑到与传统存储体系的融合, 体系架构较为复杂, 目前的商业实现较少。下面以S3和CDMI为代表, 对基于对象的云存储接口在数据模型、接口协议、操作能力和服务使用方式进行分析。

3.1 云存储参考模型

SNIA的CDMI给出了整个云存储参考模型, 如图1所示。按照存储系统提供存储资源接口类型的不同, 云存储的接口可分为四类:块存储 (如iSCSI) 、文件存储 (如POSIX) 、基于对象的存储 (如CDMI和适配器转换方式XAM) , 及基于表的存储方式。

云存储和传统存储有很大差异。从使用方式上看, 云存储可以按需提供存储服务, 存储的使用可以精确地配置和计费;从实现的技术架构上看, 云存储多采用横向可扩展的集群架构。

云存储的四类服务接口上, 块存储和文件存储接口方面, 已有的标准协议已经非常成熟, 基于表的云存储服务还处于发展初期, 各种创新比较活跃, 标准化的时机尚不成熟。对象存储接口可通过标准HTTP协议对数据对象进行增删改查等操作, 数据对象通过URI (统一资源标识) 进行标识, 一组数据对象通常抽象为容器。基于对象的云存储虽然也存在服务商专有协议情况, 但由于操作集类似, 标准化时机也较为成熟。

3.2 数据模型

从数据模型上看, 除了Atoms外, 大部分云存储服务提供商, 如Amazon的S3和Google的GS等都采用了对象和桶的两层架构, SNIA的CDMI也借鉴了该两层架构, 而且进一步采用五类对象进行数据存储管理和访问操作, 包括容器对象、数据对象、域对象、能力对象和队列对象, 其中后三个可以看做特殊的容器对象。每个对象通过多个Key-Value数据对进行元数据描述。元数据包括安全和数据存储管理方面的元数据、用户自定义元数据等。表1从CDMI和S3支持的对象类型和元数据方面对这两类云存储服务进行对比。

3.3 接口协议

从支持的接口协议上看, 市场上大部分基于对象的云存储都支持REST接口协议, 都在标准HTTP的基础上进行了各自的扩展, 且扩展内容不尽相同。

3.4 操作能力

从操作能力上看, CDMI除了对能力对象仅仅提供读操作外, 其他对象均支持增删改查四种操作。S3除了提供对桶和对象的增删改查操作能力外, 还提供查询服务的能力, 支持查询合法用户拥有的全部桶信息。

由于CDMI支持的对象类型更为丰富, 因此相较于S3, CDMI还支持对域对象、队列对象和能力对象的操作能力。就容器对象 (桶) 和数据对象而言, 通过对CDMI和S3的操作能力对比发现, 两者的操作能力基本相当。目前还存在一些S3支持而CDMI尚未支持的操作, 如表2所示。

从操作能力上看, GS不支持表2中所列的版本支持、BT下载和第三方支付的操作。

3.5 服务使用方式

目前用户使用基于对象的云存储服务, 主要有以下三种方式:

(1) 直接采用REST (或HTTP) 接口, 编程实现与云存储系统的交互。

(2) 通过与特定编程语言绑定的API开发包。这种方式通过在REST接口之上封装一层, 可以提高特定语言开发者的编程效率。

(3) 通过云存储运营商管理门户 (Portal) 或第三方管理软件实现。这种方式下, 用户无需编程, 直接通过图形界面使用, 或直接使用管理软件, 由管理软件调用REST接口实现存储的管理。这种方式下, 用户对后台的控制能力受到Portal或第三方管理软件的限制。

不同的支持方式可以服务于开发者、最终用户等不同需求的云存储用户。

表3给出目前市场常用的基于对象云存储服务以及CDMI的第三方支持情况。

Amazon的S3除了提供Portal操作外, 还公开了REST接口, 使用户能够使用任何支持HTTP通信的语言访问S3。此外, 围绕S3的一些开源项目, 包括JetS3t (JAVA) 、Boto (Python) 可以抽象出使用S3的REST接口细节, 将API公开为常见的Java或Python的方法和类。使S3的编程工作变得更加简单。针对非开发者用户, 还提供Portal管理软件, 实现网络存储空间的使用和用户数据备份等功能。

Google Storage目前提供三种形式的管理工具:基于网页界面的Google Storage Manager、开源的命令行管理工具GSUtil Tool和Python库 (改进过的Boto) 。

Rackspace的CloudFile提供多种语言的API支持, 包括PHP、Java、Python、.NET、Ruby, 方便程序员利用自己熟悉的语言对CloudFile的容器和对象进行操作, 而不是直接使用HTTP请求和响应。

从第三方支持的角度看, 目前市场对CDMI的支持度还不是很好。

4 结语

随着基于对象的云存储市场迅速发展, 用户越来越多的面临着在不同云存储服务提供商之间的迁移和互操作问题。通过对现有主流的基于对象的云存储服务接口规范研究分析可以看出, 虽然各家接口尚未统一, 但是数据模型、操作能力、接口协议都比较类似, 标准化时机成熟。需要针对中国云存储市场的需求, 适当参考国际上现有的接口规范, 制定适合中国云存储市场的基于对象的云存储应用接口规范, 以保证数据层和上层应用的互操作和可移植。

摘要:针对基于对象的云存储应用接口的标准化问题和面临的挑战, 介绍了主流的基于对象的云存储应用接口及应用情况, 对数据模型、接口协议、功能、应用支持进行分析, 并提出未来的标准化工作建议。

对象存储系统的管理 篇10

昆腾Lattus-M解决方案让媒体创新者能够以近线速度将其内容无缝迁移到高度耐用的云磁盘层,或通过IP向观众播送。Lattus-M磁盘层还内嵌高效地理数据分布,无需管理员复制或承受破坏性系统升级,就能在多个站点提供数据。利用Lattus-M,任何内容专业人士都能创建一个端到端媒体工作流程。在此之前,仅有最大、最尖端的媒体广播公司才能负担得起。Lattus-M通过将云对象存储技术、视频编辑与政策管理分层等倍受公认市场认可性能领导产品StorNext整合到一起而达成这一目标。

支持的言论

Tom Coughlin,Coughlin Associates总裁兼首席分析师

“今年,我们收到的卓越奖报名作品数量再创新高,这使得最终评审流程变得异常艰难。今年有许多真正的存储创新解决方案进入媒体娱乐行业,为保护和管理全球范围越来越多的数字内容和资产而提供巨大利益。”

Alex Grossman,昆腾媒体娱乐副总裁

对象存储系统的管理 篇11

网络附加存储(NAS)则可以大大简化管理数据的任务。设想一下:网络上单单一台机器负责将文件发送到你家里的每台电脑、管理备份以及保护你的所有重要照片或敏感数据。

市面上有好多网络附加存储设备,随时可以满足你的存储要求,但购买一套的话价格不菲——如果你只有区区几个文件想与寥寥几台电脑共享,更是不划算。对于有好多TB数据的用户来说,情形更是变得问题重重:你可能要花大笔钱去购买能够处理你大批数字内容的NAS。

幸好,构建自己的NAS很简单。这么做与花费来之不易的钱购买相比诸多优势:如果构建自己的NAS,你可以指定大小、功能特性和存储容量,还可以随意变更。

选择软件

市面上有众多操作系统可供选择,用于构建你自己的NAS。许多流行的Linux发行版提供面向服务器的变种版本,附有如何构建并运行服务器的操作说明。但是我们为了简单起见,选择了FreeNAS。

FreeNAS是一种备受欢迎的选择,因为只要所有硬件安装到位,配置起来就相当容易。你可以从FreeNAS网站(http://www.freenas.org/)下载最新版本。将下载的.iso文件刻录到CD或DVD上;在Windows 7中,只要鼠标右击文件,选择Burn disc image(刻录磁盘镜像)。如果是其他版本的Windows,你可以使用免费的ImgBurn实用工具(http://www.pcworld.com/downloads/file/fid,64960-order,4/description.html)。

选择硬件

你已经有了一份FreeNAS,不妨接着说说硬件。FreeNAS可以在几乎任何硬件系统上运行,所以你不再使用的旧电脑也完全可以。为了获得最佳性能,系统应该至少有4GB内存。

我在构建FreeNAS时,将几个零部件拼凑起来。我的NAS其核心部件是技嘉E350N主板,配备了AMD E-350处理器。我选中这款主板是因为它尺寸小巧,耗电量小,可以塞入到小地方,又为我的硬驱提供了四个SATA端口。在选择系统(或自行构建系统)时,要确保主板有空间来支持你想要用于存储的所有驱动器。

我找来了三只备用的1TB硬盘用于存储,外加一只备用的DVD驱动器来处理安装。FreeNAS安装完毕后,它接管了上面安装有FreeNAS的整个驱动器。为了让所有存储驱动器都可用,我还拿来了一只2GB容量的U盘,用于放置操作系统。

设置篇:安装FreeNAS

既然硬件已选好,FreeNAS光盘也已备好,现在可以入手了。

把DVD和U盘插入到你设置为NAS的那台电脑。启动电脑前,确保以太网线缆已插入到主板上。你还要让连接到网络的另一台电脑运行起来,因为你要用它来连接和配置NAS。

启动电脑,进入BIOS。进入BIOS的步骤随主板的不同而不同,但一般的经验法则是,在电脑启动过程中,按住F2键、 F7键、F8键或删除键——按下电源按键后,要注视显示器,指令会在正常的启动顺序过程中往上翻滚。

一旦你进入了BIOS,将电脑设成从光驱启动。相应步骤再次随主板型号的不同而不同,但是你应该会看到有个部分会列出Boot Priority order(启动优先顺序)。一旦你设好了这个参数,按F10键保存更改并退出;电脑会重启,选择光驱启动,然后开始从光盘装入FreeNAS。

你会知道,你看到列有一系列选项的普通蓝屏出现后,表明FreeNAS运行正常。你需要把FreeNAS安装到U盘上,于是选择第一个选项。FreeNAS会列出深奥的驱动器型号编号,于是寻找U盘容量(本文中是2GB)应该是最省事的方法。按提示符操作;FreeNAS会提醒你:它会将U盘上的内容删得一干二净。一路点击下去,然后泡杯茶,等进度指示条滚到100%完成为止。

一旦完成,你会看到弹出光盘、重启系统的提示符。你的电脑重启时,它应该会从U盘启动FreeNAS——要是不行,回到BIOS,将主板设成启动到U盘,再次重启。

FreeNAS启动过程中,它会显示好多行深奥的代码,随后是编号列表和所要连接的网址,这很正常。那个网址是你新文件服务器的网络地址。把该地址输入到你家里连接至与NAS同一个网络的电脑上的浏览器中,就可以进入到FreeNAS配置屏幕。

FreeNAS会提示你输入用户名和密码。默认用户名是“admin”,默认密码是“freenas”,你可以将默认用户名和密码更改为 FreeNAS选项中你喜欢的用法。

要是你忘了密码,重置密码也很容易。你需要进入到NAS,输入下列密码:

Python /usr/local/www/freenasUI/manage.py changepassword admin

然后,FreeNAS会提醒你输入一个新的密码。

设置篇:建立卷

一旦你登录进去,要做的第一件就是创建文件系统。点击菜单栏顶部的Storage(存储),然后选择Create volume(建立卷)。在弹出的窗口中,选择你想要添加的所有驱动器,并为卷赋予一个名称。

摆在你面前的选项有两个:UFS(Unix文件系统)和ZFS。我们选择ZFS,因为它支持为文件服务器设计的众多功能,比如RAID支持、快照和文件压缩等。

你会看到几个新的选项,具体要看你电脑中驱动器的数量。由于是三个驱动器,我需要在mirror(镜像)、stripe(条带化)和RAID-Z之间选择。镜像是将数据从一个磁盘复制到其他磁盘上,就像RAID 1那样。条带化是在阵列中多个磁盘之间分割文件,就像RAID 0那样。RAID-Z实际上是以软件实现了RAID 5机制。

那么,这些选项又意味着什么呢?就我的三只1TB驱动器而言,选择镜像类型提供了1TB的总存储容量,但是将我的数据保存在所有驱动器上;要是其中一只驱动器失效了,我可以把它换掉,继续工作。条带化提供了3TB的总存储容量和很快的响应速度;不过一只驱动器坏掉,所有那些数据都会丢失。RAID-Z有点像是两者的结合体:它提供了2TB的总存储容量;如果三只驱动器中有一只失效,我在另找驱动器来替换的同时,可以通过剩余的两只驱动器重新构建数据。

由于我喜欢来点刺激的,于是选择了条带化选项。它不是最安全的选项,但我要充分利用每一点存储空间,我以后总是可以实施一种更安全的冗余备份解决方案。

无论你选择了哪个选项,都要小心:磁盘上的任何数据都会被清除。点击Add volume(添加卷),你的文件服务器随后马上就可以使用了。

共享文件

你已经建立好了存储卷,所以现在可以往里面装入通过合法途径获得的媒体,也可以装入宠物的照片。

有了FreeNAS,与Linux、苹果和Windows电脑共享文件就很容易。你想创建几个共享文件夹,就可以创建几个——比如说,一个Windows/Unix/苹果共享文件夹用于存放电影库和音乐库,一个专门面向苹果的共享文件夹用于存储Time Machine备份内容。

第一步是启用CIFS(通用互联网文件系统)服务。点击左边的Services(服务),然后点击与CIFS对应的按钮。点击CIFS行旁边的扳手图标,即可创建工作组、授予其他网络和用户权限,或者仅仅给NAS赋予一个容易识记的名称。输入这个名称,就可以从Windows电脑访问你的文件服务器。

在左边的导航栏上,点击标为Sharing(共享)的选项卡。我会在这里创建一个Windows共享文件夹,作为示例,但是Linux和苹果方面的操作大同小异。

点击Add Windows Share(添加Windows共享文件夹),在弹出的窗口中为它赋予名称。点击“Path”(路径)旁边的下拉菜单,为NAS分配Windows能够找到的一个地址。选择Browsable to Network Clients(可以让网络客户端浏览),因为该功能让你可以使用资源管理器的菜单,访问你的NAS,如同访问电脑上的其他任何文件夹一样。

我选择的其他选项未必安全。不过,我想让每个人都可以访问该NAS,因为我相当信任我的同事。

上一篇:文化开发下一篇:信息技术语文教学整合