@zhouyy
2017-02-08T03:02:46.000000Z
字数 4488
阅读 818
term
Each object typically includes the data itself, a variable amount of metadata, and a globally unique identifier.
Object storage can be implemented at multiple levels, including the device level (object storage device), the system level, and the interface level.
最常用的方案,是将多台服务器内置大容量硬盘,再装上对象存储软件,管理其他服务器并提供读写访问的功能
1、存储数据分布式服务器-OSD主要功能:将数据存放到磁盘的磁道和扇区,将若干磁道和扇区组合起来构成Object,并通过Object向外界提供数据的访问。每个object使用同文件类似的访问接口,包括OPen read write等。但不同的是,每个Object可能包含若干个文件,也可能是某个文件的一部分,且是独立于操作系统的。除了用户数据,每个OSD还记录了每个Object的属性信息,主要是物理视图。将这些数据放在OSD上,减轻了元数据服务器的负担,增强了整个存储系统的并行访问性能和可扩展性。
2、文件系统:对用户的文件操作进行解释,将应用程序的文件请求传输到MDS和OSD上。对象存储系统提供给用户的也是标准的POSIX文件访问接口。也具有对数据的Cache功能和文件的条带功能
3、控制节点-元数据服务器(Metadata Server):服务器+对象存储软件。为客户提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系、每个文件所对应的OSD等。在对象存储系统中,每次操作只有一次对元数据的访问,具体的数据传输都是OSD和客户端通过直接连接进行,减少了元数据的操作,降低了元数据服务器的负担
文件系统->MSD(where) then find->OSD
In each case, object storage seeks to enable capabilities not addressed by other storage architectures, like interfaces that can be directly programmable by the application, a namespace that can span multiple instances of physical hardware, and data management functions like data replication and data distribution at object-level granularity.
Object storage systems allow relatively inexpensive, scalable and self-healing retention of massive amounts of unstructured data. Object storage is used for diverse purposes such as storing photos on Facebook, songs on Spotify, or files in online collaboration services, such as Dropbox.
In computing , a block, sometimes called a physical record, is a sequence of bytes or bits, usually containing some whole number of records, having a maximum length, a block size.Data thus structured are said to be blocked.
块存储是一种基于存储网络、可弹性扩展的、可由云主机进行管理和使用的原始块级存储卷设备。块存储挂载进云主机后的使用方式和现有普通硬盘的使用方式完全一致。用于向云主机提供块级存储卷以持久化数据。具有安全可靠、高并发大吞吐量、低时延、规格丰富、简单易用的特点,适用于文件系统、数据库或者其他需要原始块设备的系统或应用。DAS和SAN是两种块存储的典型存储方 式
The process of putting data into blocks is called blocking, while deblocking is the process of extracting data from blocks.
Blocked data is normally stored in a data buffer and read or written a whole block at a time. Blocking reduces the overhead and speeds up the handling of the data-stream.
For some devices such as magnetic tape and CKD disk devices blocking reduces the amount of external storage required for the data. Blocking is almost universally employed when storing data to 9-track magnetic tape, to NAND flash memory, and to rotating media such as floppy disks, hard disks, and optical discs.
Most file systems are based on a block device, which is a level of abstraction for the hardware responsible for storing and retrieving specified blocks of data, though the block size in file systems may be a multiple of the physical block size. This leads to space inefficiency due to internal fragmentation, since file lengths are often not integer multiples of block size, and thus the last block of a file may remain partially empty. This will create slack space, which averages half a block per file. Some newer file systems attempt to solve this through techniques called block suballocation and tail merging.
Block storage is normally abstracted by a file system or database management system (DBMS) for use by applications and end users. The physical or logical volumes accessed via block I/O may be devices internal to a server, directly attached via SCSI or Fibre Channel, or distant devices accessed via a storage area network (SAN) using a protocol such as iSCSI, or AoE. DBMSes often use their own block I/O for improved performance and recoverability as compared to layering the DBMS on top of a file system.
同时支持block object and file,并可由统一界面进行管理。同时支持NAS和SAN,减少资源重复,简化IT基础设施,减少升级和扩展的复杂性。另外,通过消除冗余的处理能力和存储容量浪费,节省成本。
统一存储的主流厂商包括 netApp EMC IBM HDS等
块存储,存储通过底层存储访问协议访问,开销小且没有额外的抽象层。这是访问磁盘数据最快的方式。只关心所有底层的问题,其他的情依靠高层的应用程序实现。所有高级别的任务(多用户访问、共享、锁定和安全)通常由操作系统负责。
所有的对象存储拥有基于块存储的节点,利用对象存储软件集合提供所有其他的功能
块存储是对象存储系统的补充,而文件系统一般被认为是对象存储的直接竞争对手。
文件系统和对象存储都通过增加节点实现水平扩展。但如NAS的文件系统是基于分层文件结构的有限的命名空间,对于有着接近无限扩展能力、具有扁平结构的纯对象存储来讲,所受的约束更多,对象存储仅仅受到对象ID的位数限制
块存储、文件存储和对象存储 这三种存储方式在日常使用中用在不同的场景中,如果没有三位一体的存储系统,那么这些场景之间是没办法进行文件共享,这种现象在linux/unix和windows系统之间的共享时就比较费劲儿。
块存储从早先的DAS到现在的SAN都是典型的块存储应用方案,其实磁盘阵列,硬盘这些都是使用块存储的场景,日常我们使用的操作系统在读取的时候其实也是以块的方式来进行IO操作,只是我们用户看不到这个过程,看到的是一个一个的文件。由于操作系统不同,对块的划分和IO操作也就不相同,那么也带来了块存储的一个最大的缺陷——不同操作系统的数据无法进行共享
文件存储:最常用的应用场景,FTP服务器,NFS服务器等。直接对文件本身进行操作,因为是对文件进行操作,文件的本身编码格式一直,所以可以跨越操作系统的瓶颈,因此最大的好处就是可以支持跨系统的文件共享,比如unix和windows之间共享文件。但是这也有一个问题,因为对文件操作,因此IO效率很低。
对象存储:最新的一种存储方式,这种普通用户其实日常使用的比较少。其实对象存储我觉得只要是为了解决 块存储无法共享,文件存储读写慢的缺点,然后集成两者的优势而产生的。这个看看其概念定义就可以看出来——对象存储系统(Object-Based Storage System)是综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构。对象存储本身部署起来其实成本相对前面两种要高出不少,因此普通用户是无法使用这种促成呢方式的。