cinder swift的区别

[原]OpenStack入门以及一些资料之(一、cinder,swift存储)

2014-4-29阅读1144评论0

注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。


存储入门


存储技术

DAS(Direct Attached Storage):将存储设备通过SCSI线缆或FC(FiberChannel)直接连接到服务器上。

NAS(Network Attached Storage):按照TCP/IP协议进行通信,以文件的I/O方式进行数据传输。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS(common Internet file system)对外提供文件访问服务。

SAN(Storage Area Network):SAN是一种通过网络方式连接存储设备和应用服务器的架构,这个网络专用于服务器和媰设备支架的访问。SAN代表的是一种专用于存储的网络架构,与协议和设备类型无关。有FC SAN和IP SAN两种方案。


存储方式

对象存储,基于文件系统,通过文件系统来存储访问数据。

块存储,是以块为基本单元的存储方式,其传输不存在数据打包/解包的过程,可提供更高的传输性能

文件存储设备通过以太网与服务器连接。服务器通过NFS、CIFS、HTTP、FTP等协议进行数据访问。数据通过以太网传输,有打包/解包的过程。


iSCSI

iSCSI是网络存储标准,其核心是在TCP/IP网络上传输SCSI协议,用TCP/IP报文、和ICSI报文封装SCSI报文,使得SCSI命令和数据可以在普通一台网络上进行传输。


Raid(redundantarray of independent disks,独立磁盘冗余数组),不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。

RAID 0,将数据按磁盘的个数来进行分段。速度最快,没有冗余,如果一个磁盘(物理)损坏,则所有的数据都会丢失。

RAID 1,两组以上的N个磁盘相互作备份,在一些多线程操作系统中能有很好的读取速度,但写入的速度有微小的降低。可靠性最高。

RAID 2,是RAID 0 的改良版,以汉明码的方式将数据进行编码后分区为独立的比特,写入硬盘。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,RAID 2至少要三台磁盘驱动器方能运作。

RAID 3,4,5,6

RAID 1+0,先镜射在分区数据,再将所有硬盘分为两组,视为是RAID 0 的最低组合,然后将这两组各视为RAID 1运作。

RAID0+1则是与之相反,先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0 运作。

性能上,RAID 0+1比RAID 1+0有着更快的读写速度。

可靠性上,当RAID1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。

因此,RAID 10远较RAID 01常用,零售主板绝大部份支持RAID0/1/5/10,但不支持RAID 01。

LVM(logic volumemanagement)逻辑卷管理:

LVM是建立在磁盘分区和文件系统之间的一个逻辑层,来为文件系统屏蔽下层磁盘文件分区布局,提供一个逻辑的盘卷,再在盘卷上来建立文件系统。

物理卷(physical volume,PV),指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备,与普通物理存储介质的区别是该设备包含有LVM相关的管理参数。

卷组(volume group,VG),卷组是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个“LVM分区”(逻辑卷)。

逻辑卷(logical volume,LV),LVM的逻辑卷类似于非LVM系统中的硬盘分区,它建立在卷组智商,是一个标准的块设备,在逻辑卷上可以建立文件系统。

物理块(physical extent,PE),物理卷以大小相等的物理块为存储的基本单位,同时也是LVM寻址的最小单元。

逻辑块(logical extent,LE),逻辑卷以大小相等的逻辑块为存储的基本单位,在同一个卷组中,LE的大小和PE是相等的,并且一一对应。

卷组描述区域(VolumeGroupDescription Area,VGDA),和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作室,就会根据VGDA建立的应设计值来访问实际的物理位置。

创建逻辑卷步骤

1, 创建分区

2, 创建物理卷

3, 创建卷组

4, 激活卷组

5, 创建逻辑卷

6, 创建文件系统


虚拟化镜像格式——raw:是一种原生的二进制镜像格式,具备高度可移植性。可以直接挂在到物理机;也可以转换成其他格式的虚拟机镜像(如果其他格式需要转换,有时候还需要它作为中间格式);占用的存储空间可以由记录的数据决定,可以在原盘追加空间;不支持snapshot(可以使用版本管理软件对raw格式的文件做版本管理从而达到snapshot的能力)。

其他一些格式:cow,qcow,qcow2,vmdk(VMware),vdi(virtualBox),ami(amazon)

参考:存储基础入门

虚拟化存储入门

逻辑卷管理(LVM)入门

---------------------------------------------------------------------------

OpenStack块存储服务——cinder:目前,cinder对本地存储和NAS的支持比较不错,可以提供完整的Cinder API V2支持,而对于其他类型的存储设备,Cinder的支持会受到一些限制。

volumetype是卷的一种标识,各个OpenStack的发行者可根据自身对系统的约束来定义卷类型的使用。

参考:Openstack之Cinder服务初探

---------------------------------------------------------------------------


计算节点的存储主要用来给虚拟机提供系统盘空间(和cinder的后端存储不同),所以我们一般会把虚拟机的磁盘目录(默认是/var/lib/nova/instances)作为单独的挂载点,提供一个较大的空间,依赖可以满足创建虚拟机对存储空间的需求,而来可以满足虚拟机迁移的需求。关于计算节点上的存储方案;一般有以下三种:

1,使用独立的共享存储

这种方案需要一个独立的共享存储节点,典型的是使用NFS服务器,意味着虚拟机和它的存储不在一个节点上,对应的,对这两类节点的要求也不一样:计算节点可能需要更多地CPU和内存,而存储节点需要关注磁盘IO性能。

优势:

1、降低计算节点维护成本,不影响虚拟机当前的运行状态

2、计算节点的宕机不会引起虚拟机的磁盘数据丢失

3、虚拟机迁移功能效率更高

4、共享存储可以用作他用

劣势:

1、需要额外的存储节点

2、一些重负载的虚拟机可能会影响其他虚拟机的性能,无论是否在同一节点

3、因为需要通过网络访问存储资源,性能不会很好

2,使用统一共享存储

不使用独立的存储节点(典型的如Ceph、sheepdog等),而是将计算节点上的存储连接起来形成一个存储池,提供共享、高可靠、高可用的存储特性。

优势:

1、不需要额外的存储节点

2、充分利用分布式存储的优势

劣势:

1、因为中间层的存在,会失去对磁盘的逻辑管理

2、对虚拟机数据的恢复变得复杂

3、这种方式仍然需要从网络访问存储资源,降低性能

3,本地存储

最常见的方式,不需要额外的配置。

优势:

1、重负载的虚拟机不会对其他节点的虚拟机造成影响

2、因为是直接磁盘IO,性能是最好的(配合SSD效果更好)

劣势:

1、无共享,意味着一个节点宕机会造成该节点上虚拟机数据不可用

2、虚拟机迁移变得复杂

参考:计算节点上的存储

---------------------------------------------------------------------------


Cinder


0、简介及基本概念


OpenStack 到 Folsom 版本有比较大的改变,其中之一就是将之前在 Nova 中的部分持久性块存储功能(Nova-Volume)分离了出来,独立为新的组件 Cinder。主要核心是对卷的管理,允许对卷、卷的类型、卷的快照进行处理。它并没有实现对块设备的管理和实际服务,而是为后端不同的存储结构提供了统一的接口,不同的块设备服务厂商在 Cinder 中实现其驱动支持以与 OpenStack 进行整合。在CinderSupportMatrix中可以看到众多存储厂商如 NetAPP、IBM、SolidFire、EMC 和众多开源块存储系统对 Cinder 的支持。Havana 版本中 Cinder 新增特性如下:

  • Volume-Resize:在可用情况下调整卷大小。
  • Volume-Backup-To-Ceph:现在卷可以备份到 Ceph 集群中。
  • Volume-Migration:现在不同用户间可以透明地转移和交换卷。
  • QoS:增加限速相关的元信息供 Nova 和其 Hypervisor 使用。
  • More-Drivers:更多的存储厂商加入和完善了自己的 Cinder 驱动,如 Huawei、Vmware、Zadara。

1、架构

图1:


图2:
                                                 /- ( LDAP )
                             [ Auth Manager ] ---
                                    |            \- ( DB )
                                    |
                                    |
                   cinderclient     |
                  /             \   |
[ Web Dashboard ]-               -[ api ] -- < AMQP > -- [ scheduler ] -- [ volume ] -- ( iSCSI )
                  \             /   |
                   novaclient       |
                                    |
                                    |
                                    |
                                 < REST >



2、服务


  • API service:Cinder-api 是主要服务接口,负责接受和处理外界的API请求,并将请求放入RabbitMQ队列,交由后端执行。 Cinder目前提供Volume API V2
  • Scheduler service: 处理任务队列的任务,并根据预定策略选择合适的Volume Service节点来执行任务。目前版本的cinder仅仅提供了一个Simple Scheduler,该调度器选择卷数量最少的一个活跃节点来创建卷。
  • Volume service: 该服务运行在存储节点上,管理存储空间,塔处理cinder数据库的维护状态的读写请求,通过消息队列和直接在块存储设备或软件上与其他进程交互。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。
  • cinder-backup– Provides a means to back up a Cinder Volume to various backup targets.
  • 为了支持不同类型和型号的存储,当前版本的Cinder为Volume Service如下drivers。当然在Cinder的blueprints当中还有一些其它的drivers,以后的版本可能会添加进来。
    • 本地存储LVM,Sheepdog
    • 网络存储NFS,RBD (RADOS)
    • IBM:XIV,Storwize V7000, SVC storage systems
    • Netapp:NFS存储;ISCSI存储则需要OnCommand 5.0和Data ONTAP 7-mode storage systems with installed iSCSI licenses
    • EMC:VNX,VMAX/VMAXe
    • Solidfire:Solidfire cluster

Cinder通过添加不同厂商的指定drivers来为了支持不同类型和型号的存储。具体可以参考Cinder官方的支持列表 CinderSupportMatrix


3、Cinder 如何支持典型存储


从目前的实现来看,Cinder 对本地存储和 NAS 的支持比较不错,可以提供完整的 Cinder API V2 支持,而对于其它类型的存储设备,Cinder 的支持会或多或少的受到限制,下面是 Rackspace 对于 Private Cloud 存储给出的典型配置:

1.本地存储

对于本地存储,cinder-volume 可以使用 LVM 驱动,该驱动当前的实现需要在主机上事先用 LVM 命令创建一个 cinder-volumes 的卷组,当该主机接受到创建卷请求的时候,cinder-volume 在该卷组 上创建一个逻辑卷,并且用 openiscsi 将这个卷当作一个 iscsi tgt 给输出.当然还可以将若干主机的本地存储用 sheepdog 虚拟成一个共享存储,然后使用 sheepdog 驱动。

2.EMC

图 5. EMC 块存储架构
3.Netapp

图 6. Netapp 块存储架构

HuaWei

图 7. HuaWei 块存储架构


传统存储与 OpenStack 云存储对比

表 2.对比
传统存储架构 openstack 云存储架构
海量数据承载能力
扩展方式是通过增加硬件配置实现,属于 Scaleup 方式

存储系统可以达到 PB 级别的扩展空间更适合海量数据的存储、ScaleOut
高可用 昂贵的硬件保证系统的高可用 通过系统自身的机制,即软件完成的自动化、智能机制来保证系统可用性
存储资源动态调配的能力 存储资源分配给应用后,难以回收再分配 计算和存储资源虚拟化,可以按照需求分配,动态调整
低资源利用率,高能耗 35%-75%的 TCO 节省,30%以上的软硬件成本节省,CPU 利用率提升到 60%-80%,70%-80%运营成本节约
运维效率和成本 运维效率低,维护成本高,硬件准备周期长
部署时间缩短到分钟级,减少硬件准备周期

管理复杂度



参考:

  1. OpenStack 存储剖析:http://www.ibm.com/developerworks/cn/cloud/library/1402_chenhy_openstackstorage/
  2. Openstack之Cinder服务初探:http://blog.csdn.net/luo_brian/article/details/8592692
  3. Openstack Havana 块存储服务 Cinder 配置经历:http://www.tuicool.com/articles/mIZrqm

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘贴.待开发的功能:1.支持自动生成约束2.开发设置页面3.做一个浏览器插件,支持不需要下载整个工程,可即时操作当前蓝湖浏览页面4.支持Flutter语言模板生成5.支持更多平台,如Sketch等6.支持用户自定义语言模板
现实生活中,我们听到的声音都是时间连续的,我们称为这种信号叫模拟信号。模拟信号需要进行数字化以后才能在计算机中使用。目前我们在计算机上进行音频播放都需要依赖于音频文件。那么音频文件如何生成的呢?音频文件的生成过程是将声音信息采样、量化和编码产生的数字信号的过程,我们人耳所能听到的声音频率范围为(20Hz~20KHz),因此音频文件格式的最大带宽是20KHZ。根据奈奎斯特的理论,音频文件的采样率一般在40~50KHZ之间。奈奎斯特采样定律,又称香农采样定律。...............
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿遍又亿遍,久久不能离开!看着小仙紫姐姐的蹦迪视频,除了一键三连还能做什么?突发奇想,能不能把舞蹈视频转成代码舞呢?说干就干,今天就手把手教大家如何把跳舞视频转成代码舞,跟着仙女姐姐一起蹦起来~视频来源:【紫颜】见过仙女蹦迪吗 【千盏】一、核心功能设计总体来说,我们需要分为以下几步完成:从B站上把小姐姐的视频下载下来对视频进行截取GIF,把截取的GIF通过ASCII Animator进行ASCII字符转换把转换的字符gif根据每
【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至2022年4月底。我已经将这篇博客的内容写为论文,上传至arxiv:https://arxiv.org/pdf/2204.10160.pdf欢迎大家指出我论文中的问题,特别是语法与用词问题在github上,我也上传了完整的项目:https://github.com/Whiffe/Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset关于自定义ava数据集,也是后台
因为我既对接过session、cookie,也对接过JWT,今年因为工作需要也对接了gtoken的2个版本,对这方面的理解还算深入。尤其是看到官方文档评论区又小伙伴表示看不懂,所以做了这期视频内容出来:视频在这里:本期内容对应B站的开源视频因为涉及的知识点比较多,视频内容比较长。如果你觉得看视频浪费时间,可以直接阅读源码:goframe v2版本集成gtokengoframe v1版本集成gtokengoframe v2版本集成jwtgoframe v2版本session登录官方调用示例文档jwt和sess
【Android App】实战项目之仿微信的私信和群聊App(附源码和演示视频 超详细必看)
用Android Studio的VideoView组件实现简单的本地视频播放器。本文将讲解如何使用Android视频播放器VideoView组件来播放本地视频和网络视频,实现起来还是比较简单的。VideoView组件的作用与ImageView类似,只是ImageView用于显示图片,VideoView用于播放视频。...
采用MATLAB对正弦信号,语音信号进行生成、采样和内插恢复,利用MATLAB工具箱对混杂噪声的音频信号进行滤波
随着移动互联网、云端存储等技术的快速发展,包含丰富信息的音频数据呈现几何级速率增长。这些海量数据在为人工分析带来困难的同时,也为音频认知、创新学习研究提供了数据基础。在本节中,我们通过构建生成模型来生成音频序列文件,从而进一步加深对序列数据处理问题的了解。
基于yolov5+deepsort+slowfast算法的视频实时行为检测。1. yolov5实现目标检测,确定目标坐标 2. deepsort实现目标跟踪,持续标注目标坐标 3. slowfast实现动作识别,并给出置信率 4. 用框持续框住目标,并将动作类别以及置信度显示在框上
数字电子钟设计本文主要完成数字电子钟的以下功能1、计时功能(24小时)2、秒表功能(一个按键实现开始暂停,另一个按键实现清零功能)3、闹钟功能(设置闹钟以及到时响10秒)4、校时功能5、其他功能(清零、加速、星期、八位数码管显示等)前排提示:前面几篇文章介绍过的内容就不详细介绍了,可以看我专栏的前几篇文章。PS.工程文件放在最后面总体设计本次设计主要是在前一篇文章 数字电子钟基本功能的实现 的基础上改编而成的,主要结构不变,分频器将50MHz分为较低的频率备用;dig_select
1.进入官网下载OBS stdioOpen Broadcaster Software | OBS (obsproject.com)2.下载一个插件,拓展OBS的虚拟摄像头功能链接:OBS 虚拟摄像头插件.zip_免费高速下载|百度网盘-分享无限制 (baidu.com)提取码:6656--来自百度网盘超级会员V1的分享**注意**该插件必须下载但OBS的根目录(应该是自动匹配了的)3.打开OBS,选中虚拟摄像头选择启用在底部添加一段视频录制选择下面,进行录制.
Meta公司在9月29日首次推出一款人工智能系统模型:Make-A-Video,可以从给定的文字提示生成短视频。基于**文本到图像生成技术的最新进展**,该技术旨在实现文本到视频的生成,可以仅用几个单词或几行文本生成异想天开、独一无二的视频,将无限的想象力带入生活
音频信号叠加噪声及滤波一、前言二、信号分析及加噪三、滤波去噪四、总结一、前言之前一直对硬件上的内容比较关注,但是可能是因为硬件方面的东西可能真的是比较杂,而且需要渗透的东西太多了,所以学习进展比较缓慢。因为也很少有单纯的硬件学习研究,总是会伴随着各种理论需要硬件做支撑,所以还是想要慢慢接触理论学习。但是之前总找不到切入点,不知道从哪里开始,就一直拖着。最近稍微接触了一点信号处理,就用这个当作切入点,开始接触理论学习。二、信号分析及加噪信号处理选用了matlab做工具,选了一个最简单的语音信号处理方
腾讯云 TRTC 实时音视频服务体验,从认识 TRTC 到 TRTC 的开发实践,Demo 演示& IM 服务搭建。
音乐音频分类技术能够基于音乐内容为音乐添加类别标签,在音乐资源的高效组织、检索和推荐等相关方面的研究和应用具有重要意义。传统的音乐分类方法大量使用了人工设计的声学特征,特征的设计需要音乐领域的知识,不同分类任务的特征往往并不通用。深度学习的出现给更好地解决音乐分类问题提供了新的思路,本文对基于深度学习的音乐音频分类方法进行了研究。首先将音乐的音频信号转换成声谱作为统一表示,避免了手工选取特征存在的问题,然后基于一维卷积构建了一种音乐分类模型。
C++知识精讲16 | 井字棋游戏(配资源+视频)【赋源码,双人对战】
本文主要讲解如何在Java中,使用FFmpeg进行视频的帧读取,并最终合并成Gif动态图。
在本篇博文中,我们谈及了 Swift 中 some、any 关键字以及主关联类型(primary associated types)的前世今生,并由浅及深用简明的示例向大家讲解了它们之间的奥秘玄机。