一、 存储
1、DAS
1)存储更多的依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等)
2)直连式存储与服务器主机之间的连接通道通常采用SCSI连接,随着服务器CPU的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SCSI通道将会成为IO瓶颈;服务器主机SCSI ID资源有限,能够建立的SCSI通道连接有限。
3)升级扩展,只能由原设备厂商提供,往往受原设备厂商限制。
4)U盘,移动硬盘都属于直连存储,直连存储在同一时间只能供一台主机使用
2、NAS
1)NAS存储也称为附加存储,就是存储设备通过标准的网络拓扑结构添加到一群计算机上。NAS是文件级的存储方法
2)NAS是即插即用的产品,NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档
3)NAS 缺点是连接NAS的网络除了处理用户正常传输外,还使用网络进行数据备份和恢复,当并行访问量大时,会出现卡顿
3、SAN
1)SAN是通过光纤通道交换机连接存储阵列和服务器主机,最后成为一个专用网络
2)SAS综合了DAS和NAS两种存储的优势,以及利用阵列,使n块磁盘同时提供存储,提高了数据访问的速度,适用于大型应用或数据库系统
3)SAN 缺点是由于使用光纤通道通信。所以成本昂贵
4、NAS与SAN 的主要区别体现在NAS的操作系统在NAS存储上,SAN的操作系统在客户端主机上
二、块存储 、文件存储 对象存储
1、块存储
磁盘阵列,硬盘,系统识别出来的是硬盘,需要制作文件系统
优点:
1)通过Raid与LVM等手段,对数据提供了保护。
2)组合多块廉价硬盘,成为大容量逻辑盘,提高了容量。
3)写入数据的时候,由于是多块磁盘组合出来的逻辑盘,所以几块磁盘可以并行写入的,提升了读写效率。(raid0)
4)块存储多采用SAN架构组网,传输速率以及封装协议的原因,使得传输速度与读写速率得到提升。
缺点:
1)SAN架构需购买光纤卡,光纤交换机,造价成本高。
2)数据无法共享: 在服务器不做集群 的情况下,块存储裸盘映射给主机,在格式化后使用对主机来说相当于本地磁盘,那么此主机的本地磁盘不能给其他主机使用,无法共享数据
3)文件系统无法共享:不同的操作系统使用不同的文件系统,格式化后,不同文件系统间的数据是无法共享的,虽然其他主机可以挂载,但是数据不能识别
2、文件存储
典型设备 FTP 、NFS服务器
为了为了克服上述文件无法共享的问题,所以有了文件存储
文件存储即拿一台服务器/笔记本,只要装上合适的操作系统与软件,就可以架设FTP与NFS服务了,架上该类服务之后的服务器,就是文件存储的一种了。
主机可以直接对文件存储进行文件的上传下载,与块存储不同,主机是不需要再对文件存储进行格式化的,因为文件管理功能已经由文件存储自己搞定了
优点:
1)造价低:随便一台机器就可以了,另外普通以太网就可以,根本不需要专用的SAN网络,所以造价低。
2)方便文件共享
缺点:
读写速率低,传输速率慢
3、对象存储
典型设备:内置大容量硬盘的分布式服务器
1)区分data/metadata + OSD (Object-based Storage Device):
metadata(元数据服务器)里边主要负责存储对象 的属性即
对象的数据被分开存在哪些分布式服务器中
OSD(Object-based Storage Device)具体 存储数据的分布式
服务器,主要负责存储文件的数据部分
2)对象存储软件以及大容量硬盘
3)专门文件系统的文件服务器:对象存储软件是有专门的文件系统的,所以OSD对外又相当于文件服务器
三、cinder 包含如下几个组件:
cinder-api: 接收 API 请求,调用 cinder-volume 执行操作。
cinder-volume : 管理 volume 的服务,与 volume provider协调工作,管理 volume 的生命周期。运行 cinder-volume 服务的节点被称作为存储节点。
cinder-scheduler: scheduler 通过调度算法选择最合适的存储节点创建 volume。
volume provider: 数据的存储设备,为 volume 提供物理存储空间。 cinder-volume 支持多种volume provider,每种 volume provider 通过自己的 driver 与cinder-volume 协调工作。 Message Queue Cinder 各个子服务通过消息队列实现进程间通信和相互协作。因为有了消息队列,子服务之间实现了解耦,这种松散的结构也是分布式系统的重要特征。
Database: Cinder 有一些数据需要存放到数据库中,一般使用 MySQL。数据库是安装在控制节点上的,比如在我们的实验环境中,可以访问名称为“cinder”的数据库。
四、cinder流程:
用户向cinder-api发送请求,cinder-api接收API请求后将消息放入消息队列,通过cinder-scheduler处理消息队列 里请求,选择合适节点创建volume,由cinder-volume管理volume,volume provider为volume提供存储空间
实验
创建cinder数据库
设置权限使所有客户端可以登录数据库
创建cinder用户
在Ctrl节点上
将admin role赋予Cinder user和service project
创建cinder和cinderv2服务项 :块存储服务要求2个服务项
创建块存储服务API的endpoints:
初始化数据库即向数据库填充数据
重启nova服务
启动cinder-api 、cinder-scheduler服务并设置开机启动
在cinder存储节点上
添加一块磁盘做pv
在控制节点上 检查存储服务