块储存,对象存储,文件存储的区别和联系
发布网友
发布时间:2022-04-23 14:36
我来回答
共4个回答
懂视网
时间:2022-04-29 22:36
using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.IO;
6 using System.Runtime.Serialization.Formatters.Binary;
7
8 namespace MsChartHelp
9 {
10 static class FileSerialize
11 {
12 //获取文件时可以直接拿数组
13 public static T GetFileInfo<T>(string filePath) where T : new()
14 {
15 T t = new T();
16 CreateFile<T>(filePath);
17 FileStream fs = new FileStream(filePath, FileMode.Open);
18 BinaryFormatter bf = new BinaryFormatter();
19 if (fs.Length < 1) { return t; }
20 t = (T)(bf.Deserialize(fs));
21 fs.Close();
22 return t;
23 }
24
25 //BIN文件是否存在
26 private static void CreateFile<T>(string filePath) where T : new()
27 {
28 T t = new T();
29 if (!File.Exists(filePath))
30 {
31 FileStream fs = new FileStream(filePath, FileMode.Create);
32 BinaryFormatter bs = new BinaryFormatter();
33 bs.Serialize(fs, t);
34 fs.Close();
35 }
36 }
37
38 //保存数组LIST<U>
39 public static void Save<u>(string filePath, List<u> South)
40 {
41 List<u> souTrim = (List<u>)South;
42 FileStream fs = new FileStream(filePath, FileMode.Create);
43 BinaryFormatter bff = new BinaryFormatter();
44 try
45 {
46 bff.Serialize(fs, souTrim);
47 }
48 catch (Exception)
49 {
50
51 throw;
52 }
53 finally
54 {
55
56 fs.Close();
57 }
58 }
59
60
61 public static void Save<T>(string filePath, T South)
62 {
63 FileStream fs = new FileStream(filePath, FileMode.Create);
64 BinaryFormatter bff = new BinaryFormatter();
65 try
66 {
67 bff.Serialize(fs, South);
68 }
69 catch (Exception)
70 {
71
72 throw;
73 }
74 finally
75 {
76
77 fs.Close();
78 }
79 }
80 }
81 }
View Code
缺点
1.如果有10w条记录,修改一条你就需要重写这个BIN文件,开销相当大,另外如果只是查询一条记录你也需要重新将这个BIN所有内容加载到内存建立对应的对象。
2.Access, SQL Server可以简单理解做了2件事情,第一他提供了统一界面,任何语言任何进程通过sql都可以与之通讯,获取数据。
第二件事情他提供了索引机制,通过索引不需要加载所有数据到内存就能根据sql定位查询结果。
3.修改对象结构会造成数据无法读取,需要保留原对象与新对象,将原数据读取至原对象,然后通过程序转换到新对象,将新对象重新保存在一个新文件(BIN)里面,最后原对象文件和原数据文件(BIN)删除。
4.实时保存,不建议实时保存,等所有处理完毕延迟保存数据最好。
但是如果你的应用很小,内存足够hold住数据,且不需要实时保存,那么此方法是可行的,而且可以说比用access都好,呵呵。
具体问题具体分析,合适就好。
BIN文件对象数据库,直接存储对象做数据库,小型项目用它准没错
标签:
热心网友
时间:2022-04-29 19:44
通常来讲,磁盘阵列都是基于Block块的存储,而所有的NAS产品都是文件级存储。
1. 块存储:DAS SAN
a) DAS(Direct Attach Storage): 是直接连接于主机服务器的一种存储方式,每台服务器有独立的存储设备,每台主机服务器的存储设备无法互通,需要跨主机存取资料室,必须经过相对复杂的设定,若主机分属不同的操作系统,则更复杂。
应用:单一网络环境下且数据交换量不大,性能要求不高的环境,技术实现较早。
b) SAN(Storage Area Network): 是一种高速(光纤)网络联接专业主机服务器的一种存储方式,此系统会位于主机群的后端,它使用高速I/O联接方式,如:SCSI,ESCON及Fibre-Channels.特点是,代价高、性能好。但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。
应用:对网速要求高、对数据可靠性和安全性要求高、对数据共享的性能要求高的应用环境中。
2. 文件存储
通常NAS产品都是文件级存储。
NAS(Network Attached Storage):是一套网络存储设备,通常直接连在网络上并提供资料存取服务,一套NAS储存设备就如同一个提供数据文件服务的系统,特点是性价比高。
它采用NFS或CIFS命令集访问数据,以文件为传输协议,可扩展性好、价格便宜、用户易管理。目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。
3. 对象存储:
总体上讲,对象存储同时兼具SAN高级直接访问磁盘特点及NAS的分布式共享特点。
核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(OSD),构建存储系统,每个对象存储设备具备一定的职能,能够自动管理其上的数据分布。
对象储存结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端)
3.1 对象
一个对象实际就是文件的数据和一组属性信息的组合。
3.2 对象存储设备(OSD)
OSD具有一定的智能,它有自己的CPU、内存、网络和磁盘系统。
OSD提供三个主要功能:包括数据存储和安全访问
(1)数据存储 (2)智能分布 (3)每个对象元数据的管理
3.3 元数据服务器(Metadata Server , MDS)
MDS控制Client与OSD对象的交互,主要提供以下几个功能:
(1) 对象存储访问
允许Client直接访问对象,OSD接收到请求时先验证该能力,再访问。
(2) 文件和目录访问管理
MDS在存储系统上构建一个文件结构,限额控制、包括目录、文件的创建、访问控制等
(3) Client Cache 一致性
为提高性能,在对象存储系统设计时通常支持Client的Cache。因此带来了Cache一致性的问题,当Cache文件发生改变时,将通知Client刷新Cache,以防Cache不一致引发的问题。
对象存储:
一个文件包含了属性(术语叫matadata元数据,例如该文件的大小、修改时间、存储路径等)以及内容(简称数据)。
以往的文件系统,存储过程将文件按文件系统的最小块来打散,再写进硬盘,过程中没有区分元数据(metadata)和数据。而在每个块最后才会告知下一个块的地址,因此只能一个一个读,速度慢。
而对象存储则将元数据独立出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象时,会先访问元数据服务器,元数据服务器只负责反馈对象存储在那些OSD。假设反馈文件A存储在B,C,D三台OSD,那么用户就会再次访问三台OSD服务器去读取数据。
这时三台OSD同时对外传输数据,因此传输的速度就加快了。OSD服务器数量越多,这种读写速度的提升就越大。
另一方面,对象存储软件有专门的文件系统,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。
因此对象存储的出现,很好的结合了块存储与文件存储的优点。
为什么还要使用块存储和文件存储:
1.有一类应用是需要存储直接裸盘映射的,比如数据库。因为数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对了裸盘进行格式化,因此不能采用其他已经被格式化为某种文件系统的存储。此类更适合块存储。
2.对象存储的成本比普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘。如果对数据量要求不是海量,只是为了作文件共享的时候,直接用文件存储的形式就好了,性价比高。
热心网友
时间:2022-04-29 21:02
一图分辨块存储、对象存储、文件存储
热心网友
时间:2022-04-29 22:37
首先说下文件存储,块存储,典型代表 DAS,NAS,SAN 做个一个详细的对比表,可以系统看下他们的区别与使用场景的差异:
块存储、文件存储、对象存储三者区别与联系(解释最清楚)
块存储、文件存储和对象存储在技术层面上分别对应块->文件->对象逐级的层次关系。文件存储基于块存储实现,对象存储基于文件存储或直接基于块存储,其后端存储通常基于本地文件系统。尽管存在结合与混搭趋势,但它们在数据结构、存储机制和应用领域上存在本质差别。四、分布式存储在块存储、文件存储、对象存储的...
对象存储、文件存储和块存储有什么区别?
块存储是一种基于块的存储架构,它主要提供块级别的数据存储和服务。特点包括:数据以块为单位进行存储,每个块都有固定的尺寸。强调高性能的输入输出能力和可扩展性。主要用于需要高性能存储的应用,如数据库、虚拟机等。详细解释:对象存储非常适合处理大量的非结构化数据,如照片、视频和音频文件等。由于...
对象存储、文件存储和块存储有什么区别?
2. 可分步性上,块存储在异地应用不实际,文件存储虽可分布式但存在瓶颈,对象存储则以其高并发分步能力见长。3. 文件大小上,块存储支持各种大小数据,文件存储特别适合大文件,而对象存储适应性强,可处理各种文件大小。4. 接口方面,块存储使用Driver和kernel module,文件存储采用POSIX,对象存储则主要...
对象存储、文件存储和块存储的区别是什么?
在文件大小上,块存储主要针对大小固定的热点数据,文件存储适合大文件,而对象存储则适合各种文件大小的存储需求。在接口方面,块存储通常使用Driver和kernel module,文件存储采用POSIX接口,而对象存储采用RESTful API。技术上,块存储常见的有SAN(如DAS和SAN),文件存储以HDFS和GFS为代表,对象存储则有Swi...
块储存,对象存储,文件存储的区别和联系
1.有一类应用是需要存储直接裸盘映射的,比如数据库。因为数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对了裸盘进行格式化,因此不能采用其他已经被格式化为某种文件系统的存储。此类更适合块存储。2.对象存储的成本比普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘。
对象存储、文件存储和块存储有什么区别?
一、存储设备不同 1、对象存储:对象存储的对应存储设备为swift,键值存储。2、文件存储:文件存储的对应存储设备为FTP、NFS服务器。3、块存储:块存储的对应存储设备为cinder,硬盘。二、特点不同 1、对象存储:对象存储的特点是具备块存储的高速以及文件存储的共享等特性。2、文件存储:文件存储的特点是...
对象存储、文件存储和块存储有什么区别?
区别如下:1、速度不同 块存储:低延迟(10ms),热点突出;文件存储:不同技术各有不同;对象存储:100ms-1s,冷数据;2、可分步性不同 块存储:异地不现实;文件存储:可分布式,但有瓶颈;对象存储:分步并发能力高;3、文件大小不同 块存储:大小都可以,热点突出;文件存储:适合大文件;对象...
块存储、文件存储、对象存储这三者的本质差别是什么?
存储设备不同:对象存储的对应存储设备为swift,键值存储。文件存储的对应存储设备为FTP、NFS服务器。块存储的对应存储设备为cinder,硬盘。特点不同:对象存储的特点是具备块存储的高速以及文件存储的共享等特性,文件存储的特点是一个大文件夹,大家都可以获取文件。块存储的特点是分区、格式化后,可以使用...
详解块存储、文件存储、对象存储区别
本文将深入解析块存储、文件存储和对象存储之间的区别,帮助你理解它们的特点和应用场景。1. 块存储块存储通过RAID和LVM等技术提供数据保护,利用多块廉价硬盘构建逻辑磁盘,提高性能和性价比。优点包括数据冗余、并行写入和可能的高速传输。缺点是需要专用的SAN架构,成本较高且不利于不同操作系统间的文件...
对象存储、文件存储和块存储有
本文主要探讨对象存储、文件存储和块存储的差异,包括它们的存储设备、特点及各自的局限性。首先,我们来看看它们在存储设备上的不同:对象存储:其基础设备是Swift的键值存储系统,提供高速且具有文件共享特性。 文件存储:主要依赖FTP和NFS服务器,以文件夹形式实现多人共享文件。 块存储:cinder支持的...