声明:本博客欢迎转发,但请保留原作者信息! 内容系本人学习、研究和总结,如有雷同,实属荣幸!
新浪微博:@支支zHi小冬
博客地址:http://xiaodongzhi.github.io/
联系邮箱:517341003@qq.com
openstack版本信息:ocata
Cinder架构简述
- Cinder API:提供cinder的REST API,通常部署在控制节点。 - Cinder Scheduler:负责Cinder请求调度,与nova-scheduler类似,根据请求中的调度条件,如volume-type,size等选择合适的后端存储来进行块存储管理。 - Cinder-volume:通过cinder-driver与各个厂商的存储设备进行交互,来进行块存储操作。
Cinder创建磁盘流程图
Cinder API
重点讲下api中的几个task:
ExtractVolumeRequestTask:
1、参数校验,包含镜像创建卷时,卷属性与磁盘属性是否冲突,如磁盘容量小于镜像大小。 2、获取availabilityzone信息,创建时指定>snapshot>sourcevolume>defaultavailabilityzone
QuotaReserveTask:
预留Quota信息 检查cinder的配额,是否有足够配额用以创建磁盘。如果够,会更新quota信息减一。
EntryCreateTask:
数据库中创建volume信息。
QuotaCommitTask:
更新Quota信息到数据库
VolumeCastTask:
1、创建磁盘信息任务。从请求信息中获取host(就是创建卷的后端存储信息)。snapshot>sourcevolid>sourcereplicaid 2、如果从请求中获取到host信息,则直接调用cinder-volume的rpc接口在该host上创建卷 3、如果请求中未获取到host信息,则调用cinder-scheduler的rpc接口创建volume。
Cinder Scheduler
主要简单描述下scheduler中的几个Task:
ExtractSchedulerSpecTask:
获取用于调度的信息:
{
'volume_id': volume.id,
'snapshot_id': snapshot_id,
'image_id': image_id,
'volume_properties': {
'size': utils.as_int(volume.size, quiet=False),
'availability_zone': volume.availability_zone,
'volume_type_id': volume_type_id,
},
'volume_type': list(dict(vol_type).items()),
}
ScheduleCreateVolumeTask:
1、根据调度信息信息调度host(后端存储) 1.1、查询符合条件的host 1.2、weigh host 1.3、选取最合适的主机 2、在选择的host上创建磁盘
Cinder Volume
cinder volume的处理机制与cinder api 和schedule一致,均通过任务队列完成。类似于工作流。
linear_flow相关介绍,参考这里
顺序执行:
1、ExtractVolumeRefTask
2、OnFailureRescheduleTask
3、ExtractVolumeSpecTask
4、NotifyVolumeActionTask
创建卷的主业务任务,详解见下一章
5、CreateVolumeFromSpecTask
6、CreateVolumeOnFinishTask
转自:http://stacker.top/blog/2016/12/02/Cinder%E4%BB%A3%E7%A0%81%E8%B5%B0%E8%AF%BB%E7%B3%BB%E5%88%97%E4%B8%80-%E5%88%9B%E5%BB%BA%E7%A3%81%E7%9B%98-%E4%B8%80-cinder-api/
相关推荐
Nova是OpenStack的核心组件之一,负责处理计算实例生命周期管理,如创建、删除虚拟机以及资源调度。它是一个分布式系统,由多个服务构成,如计算服务(Nova Compute)、调度服务(Nova Scheduler)和API服务等。 ...
Cinder创建卷过程是OpenStack中的一种核心过程,涉及到Cinder服务架构、Cinder-API、Cinder-Scheduler、Cinder-Volume等多个组件。只有全面了解Cinder的架构和工作机制,才能更好地使用Cinder提供的功能。
openstack所有组件下载脚本 直接在linux系统中执行即可
在提到的"四大组件源码"中,Cinder、Swift、Glance和Keystone是OpenStack的核心组件,它们各自承担着关键的职责。 1. Cinder: Cinder是OpenStack中的块存储服务,主要用于提供持久化的块设备,这些设备可以被挂载...
6. 从卷启动:OpenStack Cinder还支持从卷启动实例的功能,即在创建虚拟机时,可以指定使用一个已存在的卷作为系统盘,这样可以快速克隆出多个相同的实例,节省时间和资源。 四、Cinder卷驱动 Cinder的灵活性体现...
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
OpenStack是一个开源的云计算平台,用于构建私有云和公共云服务。它的核心组件包括Keystone、Nova、Cinder和Quantum(现称为Neutron),这些组件分别负责身份管理、计算、块存储和网络服务。以下是对这些组件源码...
### OpenStack源码分析—NOVA模块 #### 一、OpenStack与NOVA概述 OpenStack作为一款开源的云计算管理平台,提供了丰富的功能和服务来帮助用户构建和管理云基础设施。在其众多服务中,Nova(计算服务)是核心组成...
OpenStack Nova是OpenStack云平台的核心组件之一,主要负责计算资源的管理,包括虚拟机的生命周期管理、调度、网络配置和存储操作等。在进行OpenStack Nova源码分析时,我们需要深入了解其架构、核心模块以及关键...
Nova是OpenStack项目的核心组件之一,负责计算服务的管理,包括虚拟机的生命周期管理、资源调度、网络配置等。在OpenStack社区下载的nova源码中,你可以深入了解这个开源云计算平台如何处理IaaS(基础设施即服务)的...
Cinder Plugin 会与 OpenStack Cinder API 交互,在 Cinder 中创建一个新的 Volume,并返回给 Docker Daemon。 3. **挂载 Volume**:用户将 Volume 挂载到容器中时,Docker Daemon 会调用 Cinder Plugin 的 `mount`...
OpenStack之块存储服务(Cinder)是OpenStack中提供块存储服务的组件,主要功能是为虚拟机实例提供虚拟磁盘管理服务。Cinder的前身是Nova中的“nova-volume”组件,OpenStack F 版以后就将其从Nova中被剥离出来作为一...
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装