云计算的目标就是为用户提供计算机基础设施服务。在云计算模式下,所有计算机资源都是由云计算厂商进行集中管理,用户只需要按需付费,即可获得所需要的服务。这使得用户(企业)不用关心底层的基础设施建设,可以略过一系列复杂的硬件部署、软件安装等步骤,直接使用云计算厂商提供的计算、存储和网络等资源即可。这对于用户来说,是将部署计算机资源从购买产品转换为购买服务。
通俗的例子:比如常见的水电站。我们每天都要用到水和电,但是并不是每家每户每个企业都去建立自己的发电厂和水井等设施。我们只需要缴纳一定的费用就可以享受这样的服务。
云计算中的“云”可以简单理解为任何可以通过互联网访问的服务,那么根据其可以提供的服务类型,云计算有一下3种落地方式:
软件定义存储的诞生背景:各种新型技术的不断进步以及互联网行业的快速发展带来了巨大的存储需求。随着存储系统的多样化,急需一种高效、统一的存储软件以管理不同的存储,并可以在不同的存储之间根据用户的需求进行相应的调度。
计算、存储和网络3个基础设施的发展推动了软件定义存储的发展。软件定义存储通常包括两个部分:控制平面和数据平面。
OpenSDS:最早由华为提出,旨在为存储业界提供标准化的软件定义存储控制平面,从而为用户解决存储过于复杂的问题。由于当前存储管理过于复杂,后端涉及各种各样的存储设备供应商,虚拟化技术等,部署和使用极不方便。OpenSDS开放了统一、标准化的软件定义存储控制器架构。最上层向用户提供统一的接口;中间层用来处理基本的调度和管理,最下层接入不同的存储后端支持。从而管理不同的存储后端,提供统一标准的结构,给用户提供一个更加整洁、灵活的使用方式。
Libvirt是由Redhat开发的一套开源软件工具。其在host端通过管理存储池和卷来为虚拟机提供存储资源。libvirt可以与多种虚拟机交互,包括 KVM/QEMU、Xen、LXC、Virtual Box、VMware ESX及Hyper-V等。另外,libvirt支持多种后端存储类型,如本地文件系统、网络文件系统、iSCSI、LVM等。
OHSM是企业级开源数据存储管理器。它在高成本和低成本的存储介质之间自动移动数据。OHSM系统的存在是因为高速存储设备(如硬盘驱动器)比慢的设备(如光盘和磁带驱动器)更昂贵(每字节存储)。理想的情况是所有数据都可以在高速设备上使用,但这对于许多用户来说是非常昂贵的。相反,OHSM将企业的大部分数据存储在较慢设备上,然后在需要的时候将数据复制到更快的磁盘驱动器上,从而实现动态的数据管理。动态的数据管理能更灵活、充分地利用后端存储资源。
分布式存储就是将多台独立的设备通过某种网络通信连接起来,组成一个大的集群,从而使集群中不同设备的硬盘驱动器、固态硬盘等介质组成一个大规模的存储资源池。分布式存储系统一般包含三大组件:元数据服务器(也称主控服务器)、客户端及数据服务器
元数据服务器是分布式存储系统的核心,主要在系统中提供以下服务:
客户端面向用户,最主要的任务是提供接口给用户,使用户能够访问数据资源。常见的方式是给用户提供可移植操作系统接口,以便能够虚拟文件系统对接;其次向用户提供基于用户态的用户访问接口。另外,其他的分布式系统向用户提供RESTful接口支持。从而使用户可以通过HTTP的方式访问文件资源。
Hadoop是一个软件编程框架模型,利用计算机集群处理大规模的数据集进行分布式存储和分布式计算。Hadoop由4个模块组成,即Hadoop Common、HDFS(Hadoop Distributed File System)、Hadoop YARN及Hadoop MapReduce。其中,HDFS和Hadoop MapReduce是主要模块。HDFS是是一个分布式存储系统,为海量数据提供存储服务。而Hadoop MapReduce是一个分布式计算框架,用来为海量数据提供计算服务。
GlusterFS是一个开源分布式存储系统,具有强大的横向扩展能力,能够灵活地结合物理、虚拟的云资源实现高可用的企业级性能存储。借助TCP/IP或infiniBand RDMA网络将物理分布的网络存储资源聚集在一起,并使用统一的全局命名空间来管理数据。同时,GlusterFS基于可堆砌的用户空间设计,可以为不同的数据负载提供优质的性能。相比于传统的SAN 和NAS,GlusterFS容量可以按照比例扩展;廉价且使用简单,可以完全建立在已有的文件系统上;扩展和容错能力比较合理且复杂度低;适应性强,部署方便,对环境依赖低。
ceph作为一种分布式存储系统,通过统一的平台提供对象存储、块存储和文件存储,具有强大的伸缩性,能够为用户提供PB或EB级的数据存储空间。ceph的优点在于,它充分利用了各个节点的存储能力和计算能力。在存储数据时通过哈希算法计算出数据的存储位置,实现了集群中的负载均衡;并采用crush、哈希环等方法,使它可以避免传统单点故障的问题,在大规模集群中仍然能保持稳态。目前,一些开源云计算项目都已经开始支持ceph。例如,在openstack中,ceph可以对接openstack的Cinder后端存储、Glance的镜像存储以及虚拟机的数据存储。
Sheepdog作为一种分布式存储系统,主要用于为虚拟机提供块存储服务。sheepdog采用了完全对称的结构,没有元数据服务器的中心节点,没有单点故障、性能可以线性扩展。当集群中有新节点加入时,sheepdog能自动检测并将新节点加入到集群中,数据自动实现负载均衡。目前KVM/QEMU、Openstack、Libvirt等都很好的支持了Sheepdog。Sheepdog总体包括了集群管理和存储管理两大部分,运行后将启动两种类型的进程:sheep和dog。其中sheep进程作为守护进程兼备节点路由及对象存储功能;dog进程作为管理进程可管理整个集群。在sheepdog对象存储系统中,getway负责从QEMU的块设备驱动上接收io请求,并通过哈希算法计算出目标节点,将io转发到相应的节点上。