tag 标签: 文件存储

相关博文
  • 2022-11-24 22:25
    0 个评论
    【端到端存储解决方案】Weka,让企业【文件存储】速度飞起来!
    一、HK-Weka概述 虹科WekaIO(简称 HK-Weka )是一个可共享、可扩展的文件存储系统解决方案,其并行文件系统WekaFS支持NVMeoF的flash-native并行文件系统、比传统的NAS存储及本地存储更快。 HK-Weka 后端主机被配置为集群,它与安装在应用程序服务器上的HK-Weka客户端一起,构成了一个大型的可共享、分布式和可扩展的文件存储系统: *可共享 :所有客户端都可以共享相同的文件系统,任何客户端写入的任何文件都可以立即供读取数据的客户端使用。从POSIX标准(由IEEE和ISO/IEC开发)看,HK-Weka是一个强一致性、符合POSIX标准的系统。 *分布式 :HK-Weka系统由多个后端组成集群,每个后端都同时提供服务。 *可扩展 :HK-Weka系统的线性性能取决于集群的大小。对于大小为X且具有一定性能的群集,如果将群集加大到2倍,其性能将提高两倍,这非常适用于数据和元数据。 在数据泛滥的时代,数据会造成瓶颈和资源紧张,而HK-Weka将数据分解,统一企业内的数据孤岛、加快数据洞察时间。通过HK-Weka,企业可以获得一个应用程序敏捷、管理简单、成本低廉的端到端存储解决方案,改变让应用程序因为数据缺乏而降低处理速度的现状,从而更容易、更快、更安全地管理数据。HK-Weka为解决数据爆炸问题、提升数据价值提供了新的方向: 解决大问题 加快创新:比传统存储快10倍 安心扩展:线性性能,可同时扩展到100多PB的规模 更好、更快的终端用户体验 回馈数据要求高的工作负载 将计算能力用于工作:不浪费GPU/CPU资源 高性价比:具有对象存储经济性的极端NVMe性能 大幅提高数据科学和工程团队的生产力 可随处部署 云原生:跨公有和私有云运行 工作量少:只需最小的调整和维护 按需付费:只需为你使用的资源付费 软件定义:在标准硬件上获得类似于设备的体验 二、HK-Weka的功能特点 * 保护 HK-Weka并行文件系统受到N+2或N+4的全面保护,即硬盘或后端的任何2个并发故障都不会造成任何数据丢失,且HK-Weka系统能够正常运行以提供持续的服务。上述是通过复杂的分布式保护方案实现的,该方案是在形成集群时确定的。数据部分的范围可以从3到16,保护方案可以是2或4,即对于大型后端主机集群,集群可以是3 + 2,10 + 2,甚至16 + 4。 *分布式网络方案 HK-Weka系统实现了任意对任意的保护方案,确保在后端发生故障时,使用其他后端可以执行重建过程,获取驻留在故障后端上的数据,并使用集群中其他后端的冗余重新创建。因此,冗余不是跨后端组,而是通过在整个后端集群中相互保护数据集组来实现的。例如,一个后端在100个后端的集群中发生故障,其他99个后端将参与重建过程,同时读取和写入。这意味着HK-Weka系统重建过程非常快,这与传统的存储架构不同。在传统的存储架构中,正常运行的后端只是参与重建过程的后端或驱动器的一小部分。对于HK-Weka系统而言,群集越大,重建过程就越快。 *将故障组件替换为功能组件 热备盘(Hot Spare)是在HK-Weka系统集群中配置的,它会在整个集群重建后恢复完全冗余所需的额外容量,这与将特定物理组件专用于热备盘的传统方法不同。因此,一个包含100个后端的集群将配置足够的容量来重建数据,即使在发生两次故障后也可以恢复到完全冗余,并且还有可能承受另外两次故障,此故障组件更换策略不会影响系统的正常运行。系统发生故障后,只需将故障组件替换为有效组件即可重新创建数据。在HK-Weka系统中,数据立即被重新创建,将故障组件替换为功能组件作为后台进程。 *故障域 故障域是一组后端,它们可能由于单个根本原因而失败。例如,如果机架中的所有服务器都通过单个电源电路供电,或者所有服务器都通过单个TOR交换机连接,则可以将其视为故障域。考虑一组10个这样的机架设置,包含50个HK-Weka后端的集群(每个机架中有5个后端)。在HK-Weka集群形成过程中,可以配置6+2保护,通过在机架上形成保护条使HK-Weka系统知道这些可能存在的故障域。通过这种方式,6 + 2条带将分布在不同的机架上,确保系统在机架完全故障的情况下保持运行且不会丢失数据。 *按优先级排列数据重建过程 发生故障时,数据重建过程首先读取发生故障的所有条带以重建数据,然后返回到完全保护。如果发生第二次故障,可能会有三种类型的条带: 不受任何一个故障组件影响的条带:无需执行任何操作 仅受其中一个故障组件影响的条带 受两个故障组件影响的条带 当然,根据多重性规则,受两个故障组件影响的条带数量远小于受单个故障组件影响的条带数量。但在尚未重建受两个故障组件影响条带的情况下,第三个组件故障将使HK-Weka系统面临数据丢失。 为了降低这种风险,HK-Weka系统优先考虑重建过程:首先,从受两个故障组件影响的条带开始重建。由于此类条带的数量要少得多,因此该重建过程可以非常快速地执行,只需几分钟或更短的时间。接着,HK-Weka系统将返回到仅受一个故障组件影响的条带的重建,此时可以承受另一个并发故障且不会丢失任何数据。这种按优先级划分的重建过程方法可确保数据几乎永远不会丢失,并且服务和数据始终可用。 *无缝分配、最佳容量和最佳性能 安装在应用服务器上的每个HK-Weka系统客户端可以直接访问存储数据的后端主机,然后转发访问请求。HK-Weka客户端包括一个完全同步的映射用以说明哪些后端存储哪种类型的数据,并表示所有客户端和后端都知道的联合配置。 当 HK-Weka客户端尝试访问某个文件或文件中的偏移量时,加密哈希函数会指示该后端所需的文件或偏移量。当执行集群扩展或发生组件故障时,后端的职责和功能会立即在各个组件之间重新分配。这是允许HK-Weka线性系统提高性能的基本机制,也是线性同步缩放大小与缩放性能的关键。例如,如果添加后端以使集群的大小增加一倍,则文件系统的不同部分将重新分发到新的后端,从而立即提供两倍性能。 此外,如果一个集群只是适度增长,比如从100个后端增加到110个后端,则没有必要重新分发所有数据,只有10%的现有数据将被复制到新的后端,以便平等地重新分配所有后端上的数据。这种数据平衡(扩展所有后端在所有读取操作中的参与度)对于扩展性能非常重要,可以确保没有空闲或过载后端,并且集群中的每个后端都存储相同数量的数据。 所有这些完全无缝操作的持续时间取决于根后端的容量和网络带宽。HK-Weka的无缝操作使得正在进行的操作不受影响,并且随着数据的重新分发还可以提高性能,完成重新分发过后可提供最佳容量和最佳性能。 *数据缩减 HK-Weka系统增强的数据缩减功能可保持卓越的性能,能够显著减少各种工作负载。在HK-Weka并行文件系统中,可以寻找并减少彼此相似的数据块以单独存储数据块之间的差异,而传统数据缩减技术则需要数据块100%相似。上述操作可以按文件系统启用数据缩减,数据压缩率将取决于工作负载,无论是基于文本的数据、大规模非结构化数据集、日志分析、数据库、代码存储库和传感器数据等都可以压缩的非常出色。HK-Weka系统还提供了一个数据缩减估计工具(DRET),该工具可以在现有文件系统上运行,以计算数据集的缩减率。 三、HK-Weka的运行方式 要在生产环境中成功部署AI项目,企业的基础架构必须能够快速处理非常大的数据集,并能够从各种来源中摄取结构化和非结构化数据。传统的高性能处理存储架构不断地将数据从一个存储系统移动到另一个存储系统(用于归档数据的对象存储、用于持久存储的NAS、用于快速存储的并行文件系统)。随着数据传输时间的延长,不仅增加了存储架构复杂性,还减慢了运行结果。对HK-Weka系统而言,它重新构建了的现代AI工作流: * 设置和管理简单 * 云原生 :在本地、云端和平台之间无缝运行 * 比本地存储更快 :以更短时间、最快的推理和最高清晰的图像,秒基准来加速大规模数据流水线 * 多协议支持 :支持本机 NVIDIA GPUDirect 存储、POSIX、NFS、SMB和S3对数据的访问 * 零拷贝架构 :在同一个存储后端上运行整个管道,并消除副本成本和延迟 * 零调整混合工作负载支持 :最快的文件系统之一,支持高I/O、低延迟、小文件、混合工作负载和数据可移植性 * 完全软件定义 :既可以在硬件上运行,也可以在服务器上使用 虹科云科技 ,主要分享云计算、数据库、商业智能、数据可视化、高性能计算等相关知识、产品信息、应用案例及行业信息,为学习者传输前沿知识、为技术工程师解答专业问题、为企业找到最适合的云解决方案!
  • 热度 2
    2021-7-22 16:18
    2599 次阅读|
    1 个评论
    Android之文件存储
    利用 Shar e dPreferences 来保存数据固然有其简单轻便的优势,但是当数据较大时使用 Shar e dPreferences 就 不 合适了,此时一般选择使用文件存储。 在应用私有文件夹中读写数据 在介绍如何在 Android 平合下进行文件存储之前有必要了解 Android 平台下的数据存储规则。在其他的操作系统如 Windows 平台下,应用程序可以自由地或者在特定的访问权限基础上访问或修改其他应用程序名下的文件等资源,而 在 Android 平台下,一个应用程序中所有的数据都是私有的。 当应用程序被安装到系统中后,其所在的包会有一个文件夹用于存放自己的数据,只有这个应用程序才有对这个文件夹的写入权限,这个私有的文件夹位于 Android 系统的 "data\data\< 包名 files\" 目录下,其他的应用程序都无法在这个文件夹中写入数据。除了存放私有的数据文件夹外,应用程序也具有 SDCard 卡的写入权限。 使用文件 I/O 方法可以直接往手机中存储数据,默认情况下这些文件不可以被其他应用程序访问。 Android 平台支持 Java 平台下的文件 I/O 操作,主要使用 FilelnputStream 和 FileOutputStream 这两个类来实现文件的存储与读取。获取这两个类对象的方式有两种。 第一种方式就是像 Java 平台下的实现方式一样通过构造器直接创建,如果需要向打开的文件末尾写入数据,可以通过使用构造器 FileOutputStream ( File file , boolean append )将 append 设置为 true 来实现。 第二种获取 FileInputStream 和 FileOutputStream 对象的方式是调用 Context . openFilelnput ( String filename )和 Context.openFileOutput ( String name , int mode )方法来创建。 在实际的 Android 开发实践中,使用第二种方式的并不多,在以往的 Android 开发类书籍里也很少有人提及这种方式。这是因为在前几年的环境下 Android 手机的机身内存还是较小的,需要借助于 SDCard ,多数的文件读写操作都是针对 SDCard 的,而它只能读写位于 "\data\data\< 包名 \files\" 下的文件,所以这种文件操作方式肯定是不合适的。但是,发展到今天, Android 手机的机身内存已足够大,不需要外加 SDCard ,甚至很多手机都已经不支持 SDCard 了。智能手机的发展使得这种操作文件读写的方式变得实用了。 相信读者在 Java SE 的学习中已经熟悉了第一种方式,所以这里主要以第二种方式来进行实例讲解。其中, Context 对象提供的几个主要用于对文件操作的方法方法名 openFilelnput(String filename) 打开应用程序私有目录下的指定私有文件以读入数据,返回一个 FilelputStream 对象 openFileOutput(String name,it mode) 打开应用程序私有目录下的指定私有文件以写入数据,返回一个 FileOutputStream 对象,如果文件不存在就创建这个文件 搜索应用程序私有文件夹下的私有文件,返回所有文件名的 St ri ng 数组 deleteFile(S t r i ng fileName) 删除指定文件名的文件,成功返回 true ,失败返回 false 在上述方法中, openFi le Ou t pu t ( St r in g n ame , i n t mode )的第二个参数指的是读取权限,这里的权限参数和 SharedPreferences 的参数一样,有如下 4 种 ∶ Conext . MODE _ PRVATE∶ 指定 ShardPrefreces 数据只能被本应用程序读、写。 Comex . MODE _ APPEND∶ 检查文件是否存在,存在就向文件中追加内容,否则创建新文件 Conext . MODE _ WORLD _ READABLE∶ 指定 SharedPrefernces 数据能被其他应用程序读,但不能写。 Context . MODE _ WORLD _ WRITEABLE∶ 指定 SharedPreferences 数据能被其他应用程序读、写 下面用实例来说明 Android 平台下的文件 IO 操作方式,主要实现的功能很简单,就是在应用程序私有的数据文件夹下创建一个文件并读取其中的数据显示到屏幕的 TextView 中。在实例中,包括一个 Act i viy 类和对应的布局文件,以及一个文件读写类。在 Activity 中操作该文件读写类,先将文本写入文件,再从文件中读出来并展示到 TextView 中。 布局文件代码如下: