随着技术的发展,个人和企业都会产生大星的数据。对于 GB级数据 ,最便捷的方式 就是将移动 硬盘连 接到计算机 ,快速保存数据 。对千 TB级数据 ,可以购买服务器 插上硬盘 ,格式化文 件系统实现数据保存。但是对千 PB级数据 ,就不能简单地购买服务器 快速搭建 ,必须考虑海量数据安全、稳定、高可用的存取,以及解决网络、服务器 、硬盘的故障,此时需要采用基于分布式技术的对象存储。
1.1 什么是对象存储
对象存储不是突然出 现的新鲜事物,是随着技术的演进、业务的需求逐步发展而来的,通过回顾存储 的发展历史 ,可以更好地理解为什么 使用对象 存储。
1.1.1 存储发展历史
1956年,IBM发布 350DiskStorage Unit, 它是第一代真正意义上的磁盘存储 ( Hard DiskDrive, HDD)。它的体积约为 2个中等大小的冰箱,只能存放 3.75 MB数据,只有1个机械臂(包含 2个读/写 磁头)。2020年的 20TB硬盘容量是第一代硬盘 的 560万倍,尺寸也只有普通人手掌大小。而且,介质技术逐步发展为固态 硬盘 ( SolidStateDrives, SSD),将硬盘的机械技术变革为电子存储技术,存储密度和访问时 延大幅 提升,盘发展历史如图 1-1所示。
图1-1 盘发展历史
存储技术的发展除围绕盘自身 技术的演进外,还围绕着数据的高可靠性、高性能、易管理、易分享等需求在存储系统层不断创新,存储技术发展历史如图 1-2所示。
图1-2 存储技术发展历史
尽管盘的技术在飞速发展,但是它无法解决单块盘出现故障带 来的数据丢失问题。为此,业界引入了 廉价磁盘冗余阵列 ( RedundantArraysofInexpensiveDisks, RAID) 技术,如 20世纪 70年代实现的镜像技术 ( RAIDl),以及此后演化的存储区域网络(Sto rage Area Network,SAN) 。通常 ,SAN是一台外置存储设备 ,可以装入多块盘,在单块盘出现故障后 还能继续工作。使用 存储区域网络,在主机层面就像使用普通硬盘一样。例如,SAN为主机提供 16TB的逻辑单元号 ( LogicalUnitNumber, LUN),使用体验和 16TB的普通盘完全相同。
盘本身只提供线性地址空间, 主机访问盘时通常按照逻辑区块地址( LogicalBlockAddress, LBA) 读/写数据,比如指定将 64KB数据写入盘的 LBA地址为 1TB偏移处。盘本身不具备数据管理能力,无法直接存放一张阳片 、一首音乐 、一段视频,可以通过在盘上格式化文件系统 ( FileSystem) 来解决这个问题,文件系统对外体现为树形结构的目录和文件,应用和使用 者可以放入图片、音频、视频文件,简单易用。但是,不管是单机的文件系统还是集群的文件系统,都不利于更多的机器共享使用 ,于是,20世纪 80年代,业界发明网络附加 存储 ( NetworkAttachStorage, NAS),它通过网络文件系 统 ( Network File System,NFS) 协议或通用互联网文件系统 ( CommonInternetFileSystem, CIFS) 协议提供文件共享服务,主机通过 NFS或 CIFS客户端指定 NAS的网络 IP地址访问共享文件夹 ,实现数据的过 NAS的共享文件服务可提供很好的数据分享平台,但是随着访问客户端数目 的增加,再加上每个客户端存储的文件越来越多,海呈文件存储的难题呈现在我们眼前。
文件系统目录深度和海量文件存储扩展性的矛盾。文件系统目录树是纵向设计 的,为了满足应用 ,用户 按如同图书目录的方式一级一 级地管理文件。如果不同的客户端主机存放上亿的文件,而且目录深度是几十层,那么将是矩阵式的乘法效应,这对 NAS来说是巨大的挑战。
· 文件系统基千目录的功能影响海量文件存储的横向扩展设计 。典型问 题如文 件系统的目录访问权限 ( AccessControlList, ACL) 继承、目录配额( DirectoryQuota) 。一且在某层目录设置权限 、配额,就需要将信息同步 到下面 的子目录和文件,这会存在难度很大 的同步设计。
· 主机挂载 NAS时采用的可移植操作系统接口 ( PortableOperatingSystemInterface,POSIX),本身并不是为海 量扩展而设计的。主机基千 POSIX访问 NAS时采用的虚拟文件系统 ( VirtualFileSystem, VFS)接口并未 针对海量文件进行优化 设计,在单个文件系统达到上亿量级时 ,其通用设计逻辑会消 耗主机的大量资源,从而导致性能严重下降。
为了解决海量文件存储的难题,20世纪 90年代,对象存储技术诞生了 。随着公共云对象服务 AWSS3、阿里云对象存储 OSS的逐步成熟 ,对象存储服务在海量文 件场景下的独特竞争力逐步体现出来。对象存储服务采用桶和对象的平坦模式数据组织模型,对比文件系统树形目录结构数据模型,元数据管 理大大简化,从而 便千横向扩展 。同时,对象存储采用 域名系统 ( DomainNameSystem, DNS) 作为访问的入口,可将域名和多个网 络 IP关联,轻松实现网络扩展。