storage, especially cinder(2)
来源:互联网 发布:建站公司网站源码 编辑:程序博客网 时间:2024/05/20 19:14
前面说到并非所有的存储都是文件存储,一般说存储类型分为三种,文件存储,块存储,对象存储。
在mark link 1中有个不错的讲解,我的理解是,
块存储:
将没有格式化过的裸盘映射给server(虚拟的,物理的)使用,而这里所谓的“裸盘”,可以是物理概念上的一块硬盘,也可以是逻辑上的一块硬盘(实际上由若干
部分组成,每一部分都在不同的物理硬盘上),对server来说二者没有区分,server要使用时,必须要对映射的裸盘格式化,比较大的弊端是不利于数据共享,因为
一个裸盘分给某个server后,就像是该server的一个磁盘,其他server无法共享。
文件存储:
一般意义上的文件系统都属于文件存储,FTP,NFS服务器都属于文件存储的应用,非常适合做共享,我们平时从FTP server上下载数据即是如此,由于文件系统组织
数据的方法,大量读写时效率低下(分布式时有较大提升)。
对象存储:
不清楚这个是什么时候开始火起来的,接触到这个概念也是从openstack的swift之后,存储读写快,不利于共享,文件存储读写慢,利于共享,对象存储为了取二者
优点,去其缺点而存在,文件存储中,一个文件被放在不同的块中,链表结构,通过上一个块知道下一个块的位置,并行读写效率差,而对象存储将元数据放在元数据
服务器上,通过访问元数据服务器知道数据存在哪些OSD上(object storage device),可以并发读写。
btw:实际上swift在xfs(不是绝对在xfs之上,但官方说明对xfs支持最好)基础之上提供对象存储的能力,严格意义上swift不是文件系统,它没有目录结构(虽然容器
数目可以无限),同时以rest 方式提供服务,没有文件系统传统意义的POSIX接口(read,write,open等语法)
在Cinder中,默认的driver是LVMVolumeDriver提供块存储,LVM在每个主机创建Volume Group,虚机选定compute node之后,使用使用lvcreate创建一个块设备供
虚机使用,查看LVMDriver,最后都是调用lvm的命令。
mark link 2有一段话说的很好,引用一下:
在面对极具弹性的存储需求和性能要求下,单机或者独立的SAN越来越不能满足企业的需要。如同数据库系统一样,块存储在scale up的瓶颈下也面临着scale out的
需要。我们可以用以下几个特点来描述分布式块存储系统的概念:
分布式块存储可以为任何物理机或者虚拟机提供持久化的块存储设备
分布式块存储系统管理块设备的创建、删除和attach/deattach。
分布式块存储支持强大的快照功能,快照可以用来恢复或者创建新的块设备
分布式存储系统能够提供不同IO性能要求的块设备
于是从不同的存储类型说到分布式块存储,分布式块存储目前最火的项目应该是Ceph莫属,事实上Ceph对外接口也支持提供文件存储,对象存储,还是很强大的。
由于Ceph也提供对象存储,一定程度上不想专门配置swift的情况下,可以使用Ceph作为替代。(使用Ceph做drive人在cinder/volume/rbd.py中RADOS)
btw,创建flavor时候,我们需要指定RAM,root disk,swap disk, Ephemeral disk
RAM是内存
root disk: 提供boot loader,根分区,这个是一个系统必须的,将base image拷贝到root disk,如果是boot from volume时,不需要用到此root disk;
swap disk:交换空间,内存不够了用这个;
Ephemeral disk:这个不知道怎么翻译合适,(切换openstack到中文)临时磁盘,临时磁盘中的东西随着instance关机会丢失;
实际上这三种disk上的数据都是临时的,instance关机后都没了,mark link 4有说明。
如果想要持久化的数据,两种,一是创建volume,boot from volume,二是attach volume给instance,即使instance没了,创建新instance,可以将volume重新attach。
指定root,swap,ephemeral后,从image启动instance,我们在/var/lib/nova/instance/xxxx对应的instance下可以看到:
disk, disk.local, disk.swap
分别对应root disk,ephemeral disk和swap disk,使用"qemu-img info "命令查看详情可以更加了解。
而如果是boot from image,我们就看不到disk(即root disk),而是在libvirt.xml中看到device:vda对应的是一个volume
mark link:
1.http://www.zhihu.com/question/21536660
2.https://www.ustack.com/block-storage-overview/
3.http://m.blog.csdn.net/blog/juvxiao/22614663
4.http://s3.51cto.com/wyfs02/M00/58/81/wKiom1SzO_yx7eeKAAHZ-kM_WKU929.jpg
- storage, especially cinder(2)
- storage, especially cinder(1)
- storage -cinder(2)
- OpenStack Storage Services --- Cinder
- storage - cinder(1)
- openstack Storage 组件 Swift 和 Cinder
- OpenStack: Storage 组件 Swift 和 Cinder(转)
- 发现 OpenStack: Storage 组件 Swift 和 Cinder
- Cinder
- especially targeted
- Implementing OpenStack Cinder with NetApp Storage on the Rackspace Private Cloud Software
- 精彩C#-->especially 绘图
- 【辨异】specially, especially
- Check of pool cinder-volumes/cinder-volumes-pool failed (status:2). Manual repair required!
- 2、storage主流程
- Torch教程(2)-Storage
- Storage
- Openstack liberty 中Cinder-api启动过程源码分析2
- MFZC-测试文章1
- AsyncTask的用法
- 自动贩卖机测试用例-划分等价类
- 宿命论与非宿命论新解
- 关于HashTable怎么理解
- storage, especially cinder(2)
- MFZC-测试文章2
- MySQL各版本的区别
- Linux系统下挂载、卸载新硬盘的方法
- POJ3494---Largest Submatrix of All 1’s(单调栈)
- 百度地图最新版本sdk使用系列(四)-开启卫星地图,实时交通图,实现标注覆盖物等功能
- 乐恩斯在线英语免费送课啦~外教一对一
- jquery--实现数字的自动累加
- 数据结构:二叉树的链式存储实现