2024年9月存储解决方案(XSKY星辰天合存储解决方案构建自动驾驶高效数据平台)
⑴存储解决方案(XSKY星辰天合存储解决方案构建自动驾驶高效数据平台
⑵XSKY星辰天合存储解决方案构建自动驾驶高效数据平台
⑶随着自动驾驶技术的持续进步,国内的试点运营区域已遍地开花,但距离自动驾驶的真正全面普及,还需要解决诸多问题。其中自动驾驶决策系统的成熟度是非常关键的问题之一。
⑷自动驾驶决策系统的成熟,需要依赖从道路测试中持续采集足够全面的数据,用于AI训练系统中的模型训练、算法优化和模拟仿真,提升在复杂场景下的应对能力,加速实现L级的运营能力。
⑸而构建一个高效的自动驾驶?AI?训练系统,除了先进的算法和?GPU?算力之外,承载海量数据并与应用对接的数据平台,同样重要。
⑹这里从介绍自动驾驶AI训练场景的工作流,以及其对数据平台的要求来阐述XSKY星辰天合存储解决方案如何帮助和服务于自动驾驶企业用户。
⑺自动驾驶?AI学习场景工作流程
⑻自动驾驶?AI?训练,承担着数据加工和转化任务,工作流程包括数据的上传,预处理,筛选,标注,清洗,训练等多个环节。这些步骤中,会涉及到对海量数据的汇聚存储,预处理(解密,抽帧,去畸变等,数据在不同存储系统间的高速流转,与第三方标注平台对接时的权限控制,以及异地多中心间的数据传输。
⑼自动驾驶AI学习系统中数据存储面临的挑战
⑽当采集数据量持续增长和训练效率需要提升时,会对基础架构层内的数据平台提出更高的要求,主要体现在三个方面:其一是可用性和海量存储时的成本优化;其二是跨系统跨平台间的数据交互;其三是训练环节存储的极致性能。
⑾海量数据规模时,数据平台的可用性和成本的持续优化
⑿通常情况下,用户至少会有数十PB的数据量,以及对应的千亿级别的文件个数。在此背景下,存储系统的灵活扩容、集群最大支持规模、上传数据时至少GB/s的高吞吐能力、易运维、存储成本优化,这些要求的交集就是对存储的挑战。
⒀数据跨平台的交互要求
⒁大部分用户会采用混合云的?IT?架构模型,数据在异构平台之间如何保证平滑流动,以及与第三方标注平台的数据交互如何做到数据权限精细控制也将成为新的挑战。
⒂训练环节对存储效率的要求
⒃构建在?KS?下的分布式?GPU?训练机制,一次可训练数百万个小文件,需要存储能够提供足够高的数据吞吐带宽和低时延,来满足上层算力的效率要求。
⒄XSKY数据存储方案如何应对场景要求
⒅XSKY星辰天合针对自动驾驶AI场景的核心理念是:兼容用户主流业务架构,数据平台无缝对接上层应用;符合业务未来演进方向,存储深度优化满足场景需求;
⒆平滑兼容主流业务架构
⒇很多自动驾驶行业客户的基础架构,是从公有云模式转变为混合云模式的。使用公有云时其自动驾驶?AI?训练的?Workflow?大多是围绕“对象存储+高性能文件存储”的存储组合来构建,实现业务应用的自动化编排;
⒈转变为混合云模式后,XSKY星辰天合承载的私有化数据平台,核心内容同样为?对象存储?+?高性能文件存储,避免对用户?Workfow?的变更,从而降低开发侧的重复投入。
⒉满足业务场景的存储可用性
⒊存储的可用性体现在灵活扩容、数据规模无上限、易于运维、跨平台能力,以及满足业务应用对存储性能的要求上。
⒋灵活扩容,XSKY星辰天合存储可支持按节点扩容和按集群扩容多模式;
⒌易于运维,XSKY星辰天合后台管理系统提供可视化界面,细粒度的告警模块,以及节点和数据的全面监控能力;
⒍跨平台能力,XSKY星辰天合对象管理平台(XEOS)?支持与国内外多家主流公有云存储的对接,满足数据平滑流动的要求。XSKY星辰天合数据理系统(XDS支持在异构平台中复制、迁移数据(如对用户存量数据的可靠迁移;
⒎性能方面,尤其是数据训练阶段小文件“读多写少”的场景下,对存储的吞吐和时延有高要求,XSKY星辰天合可通过XGFS?分布式文件存储,或是?XINFINI?星飞全闪存储一体机提供支持,不仅可满足?GPU?对数据抽取的严苛性能要求,同时由于?XGFS?和?XINFINI?是国内首款可支持?QLC?的分布式存储,能充分利用?QLC?的读写特征和成本优势,大幅降低用户部署成本。
⒏多项针对场景的优化,提升训练效率
⒐对象存储?List?性能优化,通过过滤及排序动作下沉、提高并发度等手段,减少传输和汇总开销,提升数据抽取的效率,以及高负载时集群的稳定性;
⒑XGFS?分布式文件存储及全?NVMe?的?XINFINI?存储一体机,可分别通过软件交付或一体机交付的形式,为?GPU?训练环节提供高性能文件存储能力;
⒒另外,还有即将到来的独立元数据查询服务、开放内容处理框架等大量新功能,可以提升数据预处理和数据筛选环节的业务效率。
⒓海量数据存储的成本优化
⒔XSKY星辰天合存储具备数据全生命周期数据管理能力,其中存储分级+数据压缩功能可对数据进行多层存储,根据数据的热温冷,可自定义在多个池中自由流转。另外,高密节点,蓝光磁存储一体机,磁带归档等多种存储形态,可大幅优化用户存储成本。
⒕面向场景XSKY星辰天合持续进化
⒖在自动驾驶领域中,存储平台对训练效率的保证和海量存储的成本优化,将是长期主题。XSKY星辰天合将持续投入,不断推出适用于该场景的新能力,帮助自动驾驶企业用户更高效的释放数据价值。
⒗大量视频存储解决方案是什么
⒘「方法」高可用存储解决方案,RAID磁盘阵列数据是企业的一切
⒙RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力。目前服务器级别的计算机都支持插入多块磁盘(块或者更多),通过使用RAID技术,实现数据在多块磁盘上的并发读写和数据备份。常用RAID技术有以下几种:一、RAID数据在从内存缓冲区写入磁盘时,根据磁盘数量将数据分成N份,这些数据同时并发写入N块磁盘,使得数据整体写入速度是--块磁盘的N倍。读取时也一-样,因此RAID具有极快的数据读写速度,但是RAID不做数据备份,N块磁盘中只要有一块损坏,数据完整性就被破坏,所有磁盘的数据都会损坏。二、RAID数据在写入磁盘时,将一份数据同时写入两块磁盘,这样任何一块磁盘损坏都不会导致数据丢失,插入一块新磁盘就可以通过复制数据的方式自动修复,具有极高的可靠性。三、RAID结合RAID和RAID两种方案,将所有磁盘平均分成两份,数据同时在两份磁盘写入,相当于RAID,但是在每一份磁盘里面的N/块磁盘上,利用RAID技术并发读写,既提高可靠性又改善性能,不过RAID的磁盘利用率较低,有一半的磁盘用来写备份数据。四、RAID一般情况下,一台服务器,上不会出现同时损坏两块磁盘的情况,在只损坏一块磁盘的情况下,如果能利用其他磁盘的数据恢复损坏磁盘的数据,这样在保证可靠性和性能的同时,磁盘利用率也得到大幅提升。在数据写入磁盘的时候,将数据分成N-份,并发写入N-块磁盘,并在第N块磁盘记录校验数据,任何一块磁盘损坏(包括校验数据磁盘),都可以利用其他N-块磁盘的数据修复。但是在数据修改较多的场景中,修改任何磁盘数据都会导致第N块磁盘重写校验数据,频繁写入的后果是第N块磁盘比其他磁盘容易损坏,需要频繁更换,所以RAID很少在实践中使用。五、RAID相比RAID,方案RAID被更多地使用。RAID和RAID很相似,但是校验数据不是写入第N块磁盘,而是螺旋式地写入所有磁盘中。这样校验数据的修改也被平均到所有磁盘上,避免RAID频繁写坏一块磁盘的情况。六、RAID如果数据需要很高的可靠性,在出现同时损坏两块磁盘的情况下(或者运维管理水平比较落后,坏了一块磁盘但是迟迟没有更换,导致又坏了一块磁盘),仍然需要修复数据,这时候可以使用RAID。RAID和RAID类似,但是数据只写入N-块磁盘,并螺旋式地在两块磁盘中写入校验信息(使用不同算法生成)。
⒚年值得关注的存储和磁盘阵列
⒛CTO.快译】众所周知,存储阵列需要巨大的存储容量和高速的网络连接,并在数据中心中扮演着重要的角色。尽管云存储越来越受欢迎,但存储阵列(尤其是全闪存阵列)是许多企业存储基础设施的重要组成部分。而顶级的存储阵列可以提供广泛的数据存储,并允许用户将关键业务工作负载存储到更能支持他们开展业务的位置。存储阵列可以在两个或多个存储设备上保存块存储、文件存储或对象存储数据。这些设备还可以连接到网络,而存储阵列由控制器管理。存储区域网络(SAN)连接数据中心或其他本地区域中的多个存储设备,其中包括存储阵列。存储区域网络(SAN)阵列在存储行业中的地位仍在上升,尤其是那些具有高速连接(例如光纤通道)并支持NVMe的阵列。存储区域网络(SAN)可以满足低延迟连接数据中心的需求,并在互联网中连接数据存储。独立磁盘冗余阵列(RAID)是一种用于HDD磁盘和SSD磁盘的冗余和备份技术。RAID使用几种不同的方法来复制或保留数据,其中包括镜像(将数据准确复制到存储阵列中的下一个磁盘驱动器)和奇偶校验(重新计算丢失数据的一种数学方法)。最常见的RAID级别是:一些存储专业人士不再将RAID视为一种可靠的备份或保护技术,因为它容错率低,尤其是在具有更多磁盘的阵列中。RAID和RAID是具有最佳保护的级别,无法满足当前数据中心环境中理想的备份需求。NVMe(非易失性存储器快速)是一种SSD技术,它创建与计算机中央处理单元的直接连接。通过绕过SATA使用的控制器并连接到PCIe总线,可以更快、更高效地处理数据。NVMe的速度远远超过其他SSD技术(例如SATA)。用于数据中心的NVMe-oF使存储的数据可以应用在网络,而不是只在一台计算机或服务器上可用。这对于需要在数据中心内部提供存储数据而不是只是某个硬件上使用的企业来说特别有用。提供NVMe-oF技术的存储阵列仍然很少见;NVMe-oF技术更大程度地利用了NVMe更高的数据处理速率。数据存储阵列在大小、硬盘驱动器支持以及专业化方面各不相同。有一些支持HDD磁盘,而另一些只支持闪存。以下的大多数存储阵列都将采用闪存存储,这突出了闪存在未来关键工作负载的数据存储中的重要性。在企业选择存储阵列时,需要考虑以下问题:以下一些存储阵列是来自五个供应商的存储解决方案。这些包括NAS、全闪存和非结构化数据的首选方案。这个列表中的某些条目涵盖来自同一供应商的多个类似解决方案。FlashArray适用于需要最佳速度和最高质量的企业。FlashArray包括用于关键企业工作负载的FlashArray//X和用于非密集型工作负载的FlashArray//C,它提供了令人难以置信的性能,并与其他主要的供应商竞争(该产品年推出)。用户可以通过托管目录监控闪存阵列性能,可以选择单个文件系统根目录、每个用户的目录或每个业务部门的目录。FlashArray为数据库提供快速备份和操作,为具有大量SQL和Oracle数据库需求的企业提供支持。其升级通常不会导致停机,更新也不需要PureStorage用户进行大量IT管理。而用户也对PureStorage团队的支持感到满意。虽然FlashArray并不是Hyper-V环境的一个完美解决方案,但很多用户发现在他们的虚拟机上表现良好。PureStorage公司在存储行业意识到全闪存系统的重要性之前就推出了全闪存系统,现在他们从中受益匪浅。FlashArray是存储市场上的顶级阵列之一,在存储速度和用户支持方面领先于其他供应商的产品。由于其极快的速度,FlashArray并不是冷数据或存档数据的理想选择,而是需要极低延迟的工作负载的理想选择。快速访问存储通常比归档存储的成本要昂贵得多,而FlashArray作为冷存储解决方案将会浪费企业的预算。AppAFF适用于需要同时存储冷热数据的用户。AppAll-FlashFAS是用于关键工作负载的全闪存存储区域网络(AFF)。AFF相对容易实现,可以处理多个大型工作负载,尤其是数据库、高性能应用程序和虚拟机,同时保持高速存储。AppAFF支持iSCSI和光纤通道网络以及通过光纤通道连接的NVMe。AFF可以为数据备份创建快照。SnapMirror是一种数据复制和灾难恢复技术,可在灾难破坏初始副本的时候创建数据的异地复制。AFF的主要优势之一是其使用FabricPool技术,App阵列会自动将非活动数据发送到成本较低的对象存储。分层取决于数据的状态(冷数据或热数据)。如果不需要定期的低延迟访问,FabricPool可以通过将数据传输到成本更低的存储平台来节省成本。FabricPool支持MicrosoftAzureBlob、阿里云和IBMCloud等对象存储平台。HPENimble适用于需要内置智能的企业。HPE公司的全闪存阵列是在年HPE公司收购存储提供商Nimble公司时收购的,可以提供可扩展的混合云存储。Nimble公司使用HPE公司的dHCI(分解的超融合基础设施)。dHCI并不是一种完全融合或超融合的基础设施,它允许用户在需要时扩展他们想要的资源(例如存储、计算或网络)。用户还可以利用智能预测平台HPEInfoSight,该平台会在出现问题、应用程序出现故障或阵列需要扩展以满足需求时通知用户。HPEInfoSight直接连接到dHCI堆栈。Nimble提供灾难恢复复制快照,包括针对Hyper-V虚拟机的快照。而复制快照可以扩展到其他物理位置的存储阵列。尽管与Nimble公司相比,一些用户对HPE公司的支持可用性有所不满,但表示HPE公司可以为新用户提供培训和支持。FlashSystem是IBM公司的全闪存阵列,通过RedHat和Kuberes容器存储接口支持容器环境。如果初始硬件出现故障,FlashSystem用户可以使用IBMHyperSwap进行故障转移。FlashSystem是最新的存储阵列之一,提供NVMe全闪存和超过PB的可用存储容量。FlashSystem还包括IBM公司的新CloudSatellite,它允许用户灵活地管理和部署云计算环境以用于他们的存储。CloudSatellite还兼容各种供应商提供的云平台,以便用户可以选择他们需要的公有云、私有云、内部部署或混合部署环境。IBM公司提供了有关性能和容量的StorageInsights,用户可以通过管理平台进行管理。StorageInsights还提供智能分析,可以确定问题和优化领域。FlashSystem最有前途的一个功能可能是其利用NVMeoverFabrics的能力。虽然是一项新的数据中心技术,但NVMe-oF非常具有前途:它将NVMe闪存速度(当今可用的最高持久内存速度)扩展到整个数据中心。这些存储不仅限于一台计算机或设备使用,还可以通过光纤通道或InfiniBand等技术跨整个网络访问。包括NVMe-oF功能是主要存储阵列供应商的一个具有先见之明的决定,它是FlashSystem的突出元素之一。SynologyDiskStation和FlashStation适用于大量使用NAS的企业。Synology公司是网络附加存储领域的佼佼者。对于小型企业来说,DiskStation系列NAS设备提供可靠性、容量和DiskStationManager软件,该软件为所有SynologyDS设备提供一种操作系统。许多DiskStation设备还具有NVMe端口,但并非所有企业级NAS硬件都有这样的端口。RX、RS和DX系列也面向中小型企业。SynologyFlashStation(FS)专供企业使用,拥有全闪存的托盘阵列。Synology还提供扩展单元,例如托盘Fx可以用于通过FlashStation扩展存储。FlashStationFS是Synology公司推出的最新阵列之一,其备份和数据保护功能尤其引人注目。DiskStationManager提供了对虚拟化的支持,提供用于运行虚拟机和创建备份快照的虚拟机管理器。FS运行iSCSI协议,还支持虚拟环境,如VMWareVSphere和MicrosoftHyper-V。虽然它不提供用于速度更快SSD连接的NVME端口,但它确实有两个千兆以太网端口。对于仍然依赖网络附加存储和SATASSD(仍然是一种低成本、低延迟的选择)的中型企业和企业来说,SynologyFlashStation是一种理想的选择。DellEMCPowerScale适用于希望将非结构化数据存储在网络附加存储(NAS)中的企业。PowerScale是戴尔公司最新推出的网络附加存储(NAS)解决方案之一。该阵列将数据存储在一个巨大的数据湖中,旨在通过将所有数据分组到一个地方来减少或消除企业的数据孤岛。非结构化数据(尤其是对象存储数据)的数量和流行度都在飙升,PowerScale为正在成为大多数业务数据的数据提供存储。用户可以通过简单地添加更多节点来扩展,这样不会降低速度或性能。PowerScale适用于云平台和内部部署设施运行的工作负载。PowerScale的成本很高昂,就像这一列表中的许多其他解决方案一样,并不是块存储的理想选择。然而,在需要时轻松扩展的能力使其成为需要灵活NAS和增长空间的企业的解决方案。由于可以容纳大量的非结构化数据,PowerScale是存储大型媒体文件的合适选择。PureStorageFlashBlade适用于具有最高速度和勒索软件保护的本地存储。PureStorage公司再次出现的理由很充分:其相对较早的全闪存数据中心存储方法产生了多种出色的产品。FlashBlade与FlashArray的方法不同,它是一种存储解决方案,旨在将公共云级别的功能引入本地存储。FlashBlade可创建易于扩展的存储(如果想要增加存储容量,用户只需添加更多FlashBlade即可)。FlashBlade旨在存储文件和对象数据,这是数据中心优先考虑对象存储数据的重要一步。对象存储为构成企业数据的很大一部分的非结构化数据提供了无限的存储空间。通过提供对象存储阵列解决方案,PureStorage公司改进了其产品。FlashBlade提供文件和对象复制以及快速恢复,这是一个与数据保护供应商集成的程序。用户可以在FlashBlade中获取数据快照,并使用快照执行备份,这是一种旨在防止勒索软件攻击的策略(网络攻击者不能使用快照来索要赎金)。原文标题:BestStorageandDiskArrays,作者:JennaPhipps【CTO译稿,合作站点转载请注明原文译者和出处为CTO.】
个摄像头有哪些储存方案
个摄像头储存方案,操作如下、本地存储本地存储,很多主流安全摄像头都支持的存储方式,基本上均选择了microSD卡,如三星SmartCamHD、D-LinkDCS-L等,支持GB容量扩展。在手机应用程序上,用户可以设置其存储机制,如小时不间断录制或是检测到可以情况才进行录制。如果选择小时不间断录制,在存储卡容量用尽时,用户需要选择覆盖此前内容或是停止录制。本地存储的好处是不必担心厂商的云存储存在漏洞、造成隐私视频泄露的情况下,另外也不必支付月服务费。、云存储云存储是现在网络监控主流的存储方式之一,随着互联网的不断普及,很多企业纷纷推出了免费的智能硬件产品。云存储是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过各种应用软件集合起来协同工作,共同对外提供数据存储和管理的云计算系统”,它并非是一种简单的存储工具,而是将存储资源放到云上供用户存取、管理、业务访问、高效协同的应用系统及存储解决方案。摄像头哪种存储方式好云存储较本地存储更加安全,即使不法分子将摄像头拿走了,你依然可以通过手机端实时查看。而采用本地存储的智能摄像头一旦丢失,插在机身中的存储卡也随之丢失,无法找回,还有泄露隐私的危险。云存储模式的话,设备会将视频发送至远程服务器;本地存储则需要单独的配件(SD卡、硬盘录像机)来存储你想要的录像。智能摄像机录像存储是选择本地存储还是云存储主要看你的需求,建议大家根据实际使用需求选择存储方式。
为了实现商品储存的合理化,可以采取以下措施。(一在自建仓库和租用公共仓库之间做出合理的选择,找到最优解决方案自建仓库对于企业来说,可以使企业更大程度地控制库存,并且,它拥有更大的灵活性,企业可以根据自己的需要对仓储作出合理的调整。当进行长期的存储时,一般来说,仓储的费用比较低。因为租用公共仓库使得企业无需为建造仓库投入大量资金,所以,可以节省企业宝贵的资金;租用公共仓库可以减少企业的风险,因为当商品在储存期间出现问题时。仓库会予以解决;所以,在短期看来,公共仓库因为其规模性租金比较低廉;而且,企业在租用公共仓库的时候,可以根据待储存商品的数量决定储存的规模,这样也防止了资金的浪费。因此,企业应根据自身的特点,在自建仓库和租用公共仓库之间做出合理的选择。一般来说,当企业的存货量较大、对商品的需求比较稳定且市场密度比较大时,可以考虑自建仓库,反之,则应选择租用公共仓库。(二注重应用合同仓储,也就是第三方仓储的应用合同仓储就是企业将仓储活动转包给外部公司,由外部公司为企业提供一体化、全方位的仓储服务。合同仓储因为具有专业性、高质量、低成本等优点,因此可以给企业提供优质的服务。合同仓储可以有效地利用仓储资源,扩大市场的地理范围,降低运输的成本。(三进行储存物的ABC分类法,并在ABC分类的基础上实施重点管理ABC分类管理方法就是将库存物资按重要程度分为特别重要的库存(A类、一般重要的库存(B类和不重要的库存(C类三个等级、然后针对不同等级分别进行管理和控制。ABC分类管理法是实施储存合理化的基础,在此基础上可以进一步解决各类的结构关系、储存量、重点管理和技术措施等合理化问题。而且,通过在ABC分析的基础上实施重点管理,可以决定各种物品的合理库存储备数量及经济地保有合理储备的办法,乃至实施零库存。
深挖Kuberes存储为何如此难及其解决方案
以Kuberes为代表的容器编排工具在应用开发部署领域起正发挥着颠覆性的变革作用。随着微服务架构的发展,从开发人员的角度来看,应用逻辑架构与基础设施架构之间开始解耦,这意味着开发者能够将精力更多集中在软件构建以及价值交付身上。
当管理Docker镜像的时候,Kuberes也让实际应用变的十分便捷灵活。在利用Kuberes进行容器架构的应用部署时,管理员们将在无需修改底层代码的前提下将其部署在任何位置——包括公有云、混合云乃至私有云。
虽然Kuberes在扩展性、便携性与管理性等方面的表现都相当给力,但截至目前,它仍然不支持存储状态。与之对应的是,如今的大多数应用都是有状态的——换言之,要求在一定程度上配合外部存储资源。
Kuberes架构本身非常灵活的,能够根据开发者的需求、规范以及实际负载情况,对容器进行随意创建与撤销。此外,Pod和容器还具有自我修复与复制能力。因此从本质上讲,它们的生命周期普遍非常短暂。
但是,现有持久存储解决方法无法支持动态的应用场景,而持久化存储也无法满足动态创建与撤销的需求。
当我们需要将有状态应用部署到其它基础架构平台,或者另一家内部或混合云供应商的环境中时,可移植性低下无疑将成为我们面临的巨大挑战。更具体地讲,持久化存储解决方案往往会锁定于特定云服务供应商,而无法灵活完成转移。
另外,云原生应用中的存储机制也相当复杂、难于理解。Kuberes中的不少存储术语极易混淆,其中包含着复杂的含义与微妙的变化。再有,在原生Kuberes、开源框架以及托管与付费服务之间还存在着诸多选项,这极大增加了开发人员在做出决定之前的考量与试验成本。
以下是CF列出的云原生存储可选方案:
我们首先从最简单的场景出发,即在Kuberes当中部署一套数据库。具体流程包括:选择一套符合需求的数据库,让它在本地磁盘上运行,然后将其作为新的工作负载部署到集群当中。但是,由于数据库中存在的一些固有属性,这种方式往往无法带来符合预期的效果。
容器本身是基于无状态原则进行构建的,凭借这一天然属性,我们才能如此轻松地启动或撤销容器环境。由于不存在需要保存及迁移的数据,集群也就不需要同磁盘读写这类密集型操作绑定在一起了。
但对于数据库,其状态必须随时保存。如果以容器方式部署在集群当中的数据库不需要进行迁移,或者不需要频繁开关,那么其基本属性就相当于一种物理存储设备。在理想情况下,使用数据的容器应该与该数据库处于同一Pod当中。
当然,这并不是说将数据库部署在容器中的作法不可取。在某些应用场景下,这样的设计完全能够满足需求。举例来说,在测试环境或者处理非生产级数据时,由于总体数据量很小,将数据库纳入集群完全没有问题。但在实际生产中,开发人员往往需要仰仗于外部存储机制。
Kuberes到底是如何与存储资源彼此通信的?其利用的是控制层接口。这些接口负责将Kuberes与外部存储相对接。接入Kuberes的外部存储解决方案被称为“卷插件(VolumePlugins”。正是有了卷插件的存在,存储资源才得以抽象化并实现可移植性。
以前,卷插件一般由核心Kuberes代码库进行构建、链接、编译以及装载。这样就极大的限制了开发人员的发挥空间,同时也带来了额外的维护开销。因此,项目维护人员们决定在Kubere的代码库上增加一些新的存储功能。
随着CSI以及Flexvolume的引入,卷插件如今可以在集群中直接部署,而完全无需更改代码库。
原生Kuberes与存储
持久卷是由管理员负责配置的存储单元,它们独立于任何单一Pod之外,因此不受Pod生命周期的影响。
存储资源有两种使用方式:静态存储与动态存储。
实际上,静态定义的持久卷并不能适应Kuberes的可移植特性,因为存储资源具有对环境的依赖性——例如AWSEBS或者GCEPersistentDisk。另外,手动绑定还需要根据不同供应商的存储方案修改YAML文件。
在资源分配方面,静态配置实际上也违背了Kuberes的设计原则。后者的CPU与内存并非事先被分配好绑定在Pod或者容器上,而是以被动态形式进行分配。
通过简单的说明,相信大家已经了解了原生Kuberes对外部存储资源的使用方式。当然,这里仅仅做出概括,实际使用场景中还有更多其它因素需要考量。
CSI——容器存储接口
下面来看容器存储接口(简称CSI。CSI是由CF存储工作组创建的统一标准,旨在定义一个标准的容器存储接口,从而使存储驱动程序能够在任意容器架构下正常起效。
CSI规范目前已经在Kuberes中得到普及,大量驱动插件被预先部署在Kuberes集群内供开发人员使用。如此一来,我们就可以利用Kuberes上的CSI卷来访问与CSI兼容的开放存储卷。
CSI的引入,意味着存储资源能够作为Kuberes集群上的另一种工作负载实现容器化以及部署。
目前,围绕云原生技术涌现出大量工具与项目。但作为生产场景中的一大突出问题,我们往往很难在云原生架构中选择最合适的开源项目。换言之,解决方案选项太多,反而令存储需求变得更难解决。
我们再看一次CF列出的云原生存储的可选方案:
下面我会分享一下当下流行的存储方案Ceph与Rook,还有Rancher开源的容器化分布式存储Longhorn。
Ceph是一种动态托管、横向扩展的分布式存储集群。Ceph面向存储资源提供一种逻辑抽象机制,其设计理念包括无单点故障、自管理以及软件定义等特性。Ceph可以面向同一套存储集群分别提供块存储、对象存储以及文件存储的对应接口。
Ceph架构相当复杂的,其中使用到大量的底层技术,例如RADOS、librados、RADOSGW、RDB、CRUSH算法,外加monitor、OSD以及MDS等功能性组件。这里我们先不谈它的底层架构,关键在于Ceph属于一种分布式存储集群,这使得扩展更便利、能够在不牺牲性能的前提下消除单点故障,且提供涵盖对象存储、块存储以及文件存储的统一存储体系。
另一个有趣且颇具人气的项目是Rook,这是一项旨在将Kuberes与Ceph融合起来的技术方案。从本质上讲,它将计算节点和存储节点放进了同一个集群当中。
Rook是一种云原生编排器,并对Kuberes做出扩展。Rook允许用户将Ceph放置在容器内,同时提供卷管理逻辑以立足Kuberes之上实现Ceph的可靠运行。Rook还使本应由集群管理员操作的多种任务完成了自动化实现,其中包括部署、引导、配置、扩展以及负载均衡等等。
Rook自身不具备持久状态,也不需要单独管理。这,才是真正与Kuberes设计原则相符的存储资源管理方案。
Rook凭借着将Ceph与Kuberes协同起来的强大能力而颇受欢迎,在GitHub上获得近颗星,多万次的下载,并吸引到多名贡献者,现已进入CF孵化阶段。
Longhorn项目是RancherLabs推出的开源的基于云和容器部署的分布式块存储新方式。Longhorn遵循微服务的原则,利用容器将小型独立组件构建为分布式块存储,并使用容器编排来协调这些组件,形成弹性分布式系统。
如今,基于云和容器的部署规模日益扩大,分布式块存储系统也正变得越来越复杂,单个存储控制器上的volume数量在不断增加。年代初,存储控制器上的volume数量只有几十个,但现代云环境却需要数万到数百万的分布式块存储卷。存储控制器变成了高度复杂的分布式系统。
Longhorn充分利用了近年来关于如何编排大量的容器和虚拟机的核心技术。例如,Longhorn并没有构建一个可以扩展到,个volume的高度复杂的控制器,而是出于让存储控制器简单轻便的考虑,创建了,个单独的控制器。然后,我们可以利用像Kuberes这样的最先进的编排系统来调度这些独立的控制器,共享一组磁盘中的资源,协同工作,形成一个弹性的分布式块存储系统。
Longhorn基于微服务的设计还有很多其他优势。因为每个volume都有自己的控制器,在升级每个volume的控制器和replica容器时,是不会导致IO操作明显的中断的。Longhorn可以创建一个长期运行的工作来编排所有livevolume的升级,同时确保不会中断系统正在进行的操作。为确保升级不会导致意外的问题,Longhorn可以选择升级一小部分volume,并在升级过程中出现问题时回滚到旧版本。这些做法在现代微服务应用中已得到广泛应用,但在存储系统中并不常见。希望Longhorn可以助力于微服务在存储领域的更多应用。
对于实际应用层面出现的任何问题,最重要的自然是判断需求、设计系统或者选择适当的工具。同样的道理也适用于云原生环境。虽然具体问题非常复杂,但也必然会出现大量工具方案尝试解决。随着云原生世界的持续发展,我们可以肯定,新的解决方案将不断涌现。未来,一切都会更加美好!