❶ 分布式存储与软件定义存储的区别
什么是分布式存储
关于分布式存储实际上并没有一个明确的定义,甚至名称上也没有一个统一的说法,大多数情况下称作 Distributed Data Store 或者 Distributed Storage System。
其中维基网络中给 Distributed data store 的定义是:分布式存储是一种计算机网络,它通常以数据复制的方式将信息存储在多个节点中。
在网络中给出的定义是:分布式存储系统,是将数据分散存储在多台独立的设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
尽管各方对分布式存储的定义并不完全相同,但有一点是统一的,就是分布式存储将数据分散放置在多个节点中,节点通过网络互连提供存储服务。这一点与传统集中式存储将数据集中放置的方式有着明显的区分。
什么是软件定义存储
SDS 的全称是 Software Defined Storage ,字面意思直译就是软件定义存储。关于 SDS 的定义可以参考全球网络存储工业协会(Storage Networking Instry Association,SNIA),SNIA 在 2013 正式把 软件定义存储(SDS) 列入研究对象。
SNIA 对软件定义存储(SDS) 的定义是:一种具备服务管理接口的虚拟化存储。 SDS 包括存储池化的功能,并可通过服务管理接口定义存储池的数据服务特征。另外 SNIA 还提出 软件定义存储(SDS) 应该具备以下特性:
自动化程度高 – 通过简化管理,降低存储基础架构的运维开销
标准接口 – 支持 API 管理、发布和运维存储设备和服务
虚拟化数据路径 – 支持多种标准协议,允许应用通过块存储,文件存储或者对象存储接口写入数据
扩展性 – 存储架构具备无缝扩展规模的能力,扩展过程不影响可用性以及不会导致性能下降
透明度 – 存储应为用户提供管理和监控存储的可用资源与开销
分布式存储与软件定义存储的区别与联系
软件定义存储(SDS) 的着重点在于存储资源虚拟化和软件定义,首先在形态上,软件定义存储(SDS)区别于传统的“硬件定义”存储,它不依赖专属的硬件,可以让存储软件运行在通用服务器上,可避免硬件绑定以及有效降低硬件采购成本;拥有标准 API 接口和自动化工具,有效降低运维难度。存储资源虚拟化,支持多种存储协议,可整合企业存储资源,提升存储资源利用率。但从定义上来说,但 软件定义存储(SDS) 从部署形式上来看,并不一定是分布式或者是集中式的,也就是说 SDS 不一定是分布式存储(虽然常见的 软件定义存储(SDS) 更多的是分布式的),SDS 存储内部有可能是单机运行的,不通过网络分散存放数据的,这种形式的软件定义存储(SDS) 的扩展性就可能有比较大的局限。
分布式存储,它的最大特点是多节点部署, 数据通过网络分散放置。分布式存储的特点是扩展性强,通过多节点平衡负载,提高存储系统的可靠性与可用性。与 软件定义存储(SDS)相反,分布式存储不一定是软件定义的,有可能是绑定硬件的,例如 IBM XIV 存储,它本质上是一个分布式存储,但实际是通过专用硬件进行交付的。那么就依然存在硬件绑定,拥有成本较高的问题。
❷ 软件定义存储(SDS)这个概念是什么时候出现的
说到软件定义存储(SDS)的由来,不得不先说一下SDN与SDDC。
SDN起源于2006年斯坦福大学的Clean Slate研究课题。2009年,Mckeown教授正式提出了SDN概念。通过将网络设备的控制平面与数据平面分离开来,并实现可编程化控制,实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。在2012年8月,VMware在其VMworld 2012大会上首次提出软件定义数据中心(Software Defined Data Center,简称SDDC)的概念。作为VMware软件定义数据中心五大组成部分(计算、存储、网络、管理和安全)之一,软件定义存储(SDS)的概念也首次被提出。
❸ 所谓的软件定义存储SDS与传统存储有什么不同
超融合核心的分布式存储也是软件定义存储(SDS)的一种形态,而超融合架构本质上也是一种软件定义存储(SDS)和虚拟化融合部署的模式。所以软件定义存储与传统存储的区别可以参考超融合与传统架构的区别,详情如下:
一、架构和资源管理模式对比如下以SmartX 超融合产品为例,分别给出了下超融合架构和传统架构的部署区别和资源管理模式区别。
从上图可以看出,超融合架构在整个产品运维周期中,不仅大量操作被自动化,运维简单,而且时间短,效率高。可以有效降低人员要求,将 IT 人员解放出来进行更创新的活动。
5、采购成本和总拥有成本的降低在客户最关注的成本方面,服务器+超融合软件(或超融合一体机),相比服务器加传统中高端存储的成本,有较大幅度的降低。但除了采购成本,超融合在总拥有成本上都有大幅降低。关于超融合在成本方面的优势可以访问官方技术博客:《超融合相比传统FC SAN架构有什么成本优势?》
可以看到,超融合通过创新的架构,以更优的成本让IT基础架构更敏捷、能力更强,而这些特性,将为用户加快数字化转型奠定坚实基础。
❹ 什么是软件定义存储
软件定义存储(SDS)是一种能将存储软件与硬件分隔开的存储架构。不同于传统的网络附加存储(NAS)或存储区域网络(SAN)系统,SDS一般都在行业标准系统或X86系统上执行,从而消除了软件对于专有硬件的依赖性。
通过将存储软件与硬件分离,您可以根据需求扩展您的存储能力,而不是仓促地添置专有硬件。分离后,您还可以在需要时升级或降级硬件。基本上,SDS可以大幅提高您的灵活性和降低TCO成本。做得比较好的公司有华为、紫光西数、元核云、XSKY。
❺ Ceph 架构与原理
Ceph 是一个开源项目,它提供软件定义的、统一的存储解决方案 。Ceph 是一个具有高性能、高度可伸缩性、可大规模扩展并且无单点故障的分布式存储系统 。
Ceph 是软件定义存储解决方案
Ceph 是统一存储解决方案
Ceph 是云存储解决方案
高可用性
高扩展性
特性丰富
Ceph独一无二地统一的系统提供了对象存储、块存储和文件存储功能。Ceph存储集群由几个不同的软件守护进程组成(比较重要的两个是MON和OSD),每个守护进程负责Ceph的一个独特功能并将值添加到相应的组件中。
RADOS是CEPH存储系统的核心,也称为Ceph 存储集群。Ceph的数据访问方法(如RBD,CephFS,RADOSGW,librados)的所有操作都是在RADOS层之上构建的。当Ceph 集群接收到来自客户端的请求时,CRUSH算法首先计算出存储位置,最后将这些对象存储在OSD中,当配置的复制数大于1时,RADOS负责的形式将数据分发到集群内的所有节点,最后将这些对象存储在OSD中。当配置的复制数大于1时,RADOS负责数据的可靠性,它复制对象,创建副本并将它们存储在不同的故障区域中。
RADOS包含两个核心组件: OSD和MON
OSD 是Ceph 存储集群中最重要的一个基础组件,他负责将实际的数据以对象的形式存储在每一个集群节点的物理磁盘中。对于任何读写操作,客户端首先向MON请求集群MAP,然后客户端旧可以直接和OSD进行I/O操作。
一个Ceph 集群包含多个OSD。一个典型的Ceph集群方案会为集群节点上的每个物理磁盘创建一个ODS守护进程,这个是推荐的做法。OSD上的每个对象都有一个主副本和几个辅副本,辅副本分散在其他OSD。一个OSD对于一些对象是主副本,同时对于其他对象可能是辅副本,存放辅副本的OSD主副本OSD控制,如果主副本OSD异常(或者对应的磁盘故障),辅副本OSD可以成为主副本OSD。
OSD是有一个已经存在的Linux文件系统的物理磁盘驱动器和OSD服务组成。Ceph 推荐OSD使用的文件系统是XFS。OSD的所有写都是先存到日志,再到存储.
MON 负责监控整个集群的健康状况。它以守护进程的形式存在,一个MON为每一个组件维护一个独立的MAP,如OSD,MON,PG,CRUSH 和MDS map。这些map 统称为集群的MAP。MON 不为客户端存储和提供数据,它为客户端以及集群内其他节点提供更新集群MAP的服务。客户端和集群内其他节点定期与MON确认自己持有的是否是集群最新的MAP.一个Ceph集群通常包含多个MON节点,但是同一时间只有一个MON。
librados是一个本地的C语言库,通过它应用程序可以直接和RADOS通信,提高性能
Ceph 块存储,简称 RBD,是基于 librados 之上的块存储服务接口。RBD 的驱动程序已经被集成到 Linux 内核(2.6.39 或更高版本)中,也已经被 QEMU/KVM Hypervisor 支持,它们都能够无缝地访问 Ceph 块设备。Linux 内核 RBD(KRBD)通过 librados 映射 Ceph 块设备,然后 RADOS 将 Ceph 块设备的数据对象以分布式的方式存储在集群节点中
RGW,Ceph对象网关,也称做RADOS网关,它是一个代理,可以将HTTP请求转换为RADOS,也可以把RADOS转换为HTTP请求,从而提供restful接口,兼容S3和Swift。Ceph对象网关使用Ceph对象网关守护进程(RGW)与librgw、librados交互。Ceph对象网关支持三类接口:S3、Swift、管理API(通过restful接口管理Ceph集群)。RGW有自己的用户管理体系
Ceph 元数据服务器服务进程,简称 MDS。只有在启用了 Ceph 文件存储(CephFS)的集群中才需要启用 MDS,它负责跟踪文件层次结构,存储和管理 CephFS 的元数据。MDS 的元数据也是以 Obejct 的形式存储在 OSD 上。除此之外,MDS 提供了一个带智能缓存层的共享型连续文件系统,可以大大减少 OSD 读写操作频率。
CephFS在RADOS层之上提供了一个兼容POSIX的文件系统。它使用MDS作为守护进程,负责管理其元数据并将它和其他数据分开。CephFS使用cephfuse模块(FUSE)扩展其在用户空间文件系统方面的支持(就是将CephFS挂载到客户端机器上)。它还允许直接与应用程序交互,使用libcephfs库直接访问RADOS集群。
Ceph管理器软件,可以收集整个集群的所有状态。有仪表板插件
一个对象通常包含绑定在一起的数据和元数据,并且用一个全局唯一的标识符标识。这个唯一的标识符确保在整个存储集群中没有其他对象使用相同的对象ID,保证对象唯一性。基于文件的存储中,文件大小是有限制的,与此不同的是,对象的大小是可以随着大小可变的元数据而变得很大。对象不使用一个目录层次结构或树结构来存储,相反,它存储在一个包含数十亿对象且没有任何复杂性的线性地址空间中。对象可以存储在本地,也可以存放在地理上分开的线性地址空间中,也就是说,在一个连续的存储空间中。任何应用程序都可以基于对象ID通过调用restful API从对象中获取数据。这个URL可以以同样的方式工作在因特网上,一个对象ID作为一个唯一的指针指向对象。这些对象都以复制的方式存储在OSD中,因为能提供高可用性。
对于Ceph集群的一次读写操作,客户端首先联系MON获取一个集群map副本,然后使用对象和池名/ID将数据转换为对象。接着将对象和PG数一起经过散列来生成其在Ceph池中最终存放的那一个PG。然后前面计算好的PG经过CRUSH查找来确定存储或获取数据所需的主OSD的位置。得到准确的OSD ID之后,客户端直接联系这个OSD来存取数据。所有这些计算操作都由客户端来执行,因此它不会影响Ceph集群的性能。一旦数据被写入主OSD,主OSD所在节点将执行CRUSH查找辅助PG和OSD的位置来实现数据复制,进而实现高可用。
简单地说,首先基于池ID将对象名和集群PG数应用散列函数得到一个PG ID,然后,针对这个PG ID执行CRUSH查找得到主OSD和辅助OSD,最后写入数据。
PG是一组对象地逻辑集合,通过复制它到不同的OSD上来提供存储系统的可靠性。根据Ceph池的复制级别,每个PG的数据会被复制并分发到Ceph集群的多个OSD上。可以将PG看成一个逻辑容器,这个容器包含多个对象,同时这个逻辑容器被映射到多个OSD。
计算正确的PG数对一个Ceph存储集群来说是至关重要的一步。PG数计算公式如下
Ceph池是一个用来存储对象的逻辑分区,每个池都包含一定数量的PG,进而实现把一定数量的对象映射到集群内部不同OSD上的目的。每一个池都是交叉分布在集群所有节点上的,这样就能提供足够的弹性。池可以通过创建需要的副本数来保障数据的高可用性。
Ceph的池还支持快照功能,我们可以使用ceph osd pool mksnap命令来给特定的池制作快照。此外,Ceph池还允许我们为对象设置所有者和访问权限。
数据管理始于客户端向Ceph池中写数据。一旦客户端准备写数据到Ceph池中,数据首先写入基于池副本数的主OSD中。主OSD再复制相同的数据到每个辅助OSD中,并等待它们确认写入完成。只要辅助OSD完成数据写入,就会发送一个应答信号给主OSD。最后主OSD再返回一个应答信号给客户端,以确认完成整个写入操作。
❻ 有了解软件定义存储的吗,寻专业解答
两个问题,分开来答。作者是来自我们Dell EMC中国研发集团的张卫兵▼▼▼什么是软件定义存储(SDS)?什么是软件定义存储(SDS),我们来看SNIA(Storage Networking Instry Association)给的定义:SNIA defines SDS as Virtualized storage with a service management interface. SDS includes pools of storage with data service characteristics that may be applied to meet the requirements specified through the service management interface. SNIA将软件定义存储(Software-defined Storage, SDS)定义为:拥有服务管理界面的虚拟化存储。SDS包含拥有数据服务特性的存储资源池,可以用于满足服务管理接口制定的存储需求。理解起来可能会比较抽象,我们先来看传统存储。传统的存储设备(NAS,SAN)大多是搭建在专门设计的硬件上,实现存储资源的集中管理和使用。比如在硬件层面定制大量的缓存用于加速数据读写,又如在硬件层面使用多处理单元实现高性能和高可用(HA)。对于传统存储,硬件和软件在设计之初就是紧密耦合在一起的。在软件层面,除了基本的存储路径,还需很多工作来驱动和使用特殊硬件资源。专用的硬件和软件为传统存储带来的性能的提高,但也带来了开发和运维的复杂性。不同厂商,甚至同一厂商的不同产品,存储设备的管理和使用的方式也不尽相同,进一步提高了运维的复杂性。每台存储设备都是相对孤立的系统,存储资源的管理和使用无法方便快捷的整合。在软件定义存储这个概念出现之前,存储行业还经历和很长一段时间分布式存储系统的发展过程。分布式存储系统可以看作是软件定义存储的雏形阶段,它通过软件将存储资源池化管理,对外提供文件和块存储服务。随着虚拟化时代的到来,对IT基础设施池化管理使用的需求越来越多,软件定义基础设施也随之兴起,在存储领域的软件定义解决方案就是软件定义存储(SDS)。软件定义存储剥离特定的硬件设备和硬件架构,更多的在存储的功能性上思考数据中心/企业的存储业务需求。软件定义存储将存储管理服务(Control Plane)从存储基础架构(Data Plane)里剥离出来,但仍然保持并扩展每个阵列独有的价值和特性。软件定义存储的实现方式,为企业提供了选择的便捷性和灵活性,可以帮助企业运行其业务,并满足弹性增减和和快速部署。但软件定义存储还不仅是将存储资源虚拟池化,由于传统存储存在上述诸多痛点,人们希望软件定义存储能够解决这些问题。所以软件定义存储除了提供虚拟化存储资源池之外还要支持:软件与硬件低耦合 – 软件定义存储支持的设备不应局限于专门的硬件,还需要支持通用硬件。可伸缩 - 在不影响可用性和性能的情况下,支持存储设施容量的无缝伸缩。自动化 - 通过高度的自动化简化存储资源管理,以降低维护存储设施的成本。标准化接口 - 提供标准化的API用于存储设备的管理、配置和维护。虚拟数据路径 – 在数据面支持文件/块/对象存储的读写接口。透明性 – 为消费者提供结合系统资源容量和成本,对自己使用和存储资源进行管控的能力。第二个问题:软件定义存储有哪些产品?应用情况如何?纯存储形态:开源存储Ceph,Gluster,HDFS等 Ceph和Gluster作为优秀的开源软件定义存储解决方案,在云计算和企业内部存储方面有着广泛的应用;HDFS作为大数据分析的后端存储,也有着很大的用户群体。商业化存储ECS, IsilonSD Edge等 ECS(Elastic Cloud Storage)是一款软件定义存储产品,支持云应用级别的对象存储。 IsilonSD Edge是软件定义的NAS存储产品,适合中小企业使用。超融合形态:商业化超融合产品:Dell EMC VxRail,VMware vSAN VxRail是一款虚拟化环境中的超融合产品,集成软件定义存储功能。 VMware vSAN是VMware提供的超融合基础架构解决方案。 软件定义存储在各类企业中有着广泛的应用,并且在蓬勃的发展。值得一提的是,很多传统的存储产品也在优化架构和增加功能,结合软件定义存储的需求发展,融入软件定义存储的行列。