Cinder创建volume操作流程详解(Part I)

需积分: 0 0 下载量 137 浏览量 更新于2024-08-04 收藏 360KB DOCX 举报
"Cinder创建volume的操作流程" 在OpenStack环境中,Cinder是负责块存储管理的服务,它提供了创建、删除、扩展以及挂载卷(volume)等操作。本节主要聚焦于Cinder创建volume的过程,这是一个多步骤的操作,涉及到多个组件的交互。以下是创建volume的详细步骤: 1. **发起创建请求**: - 用户(可能是OpenStack的终端用户或其它应用程序)通过OpenStack的图形界面(GUI)或API接口向cinder-api发送请求,请求创建一个特定大小和类型的volume。 2. **cinder-api处理**: - 当用户在GUI中点击“Create Volume”按钮时,cinder-api接收到POST类型的REST API请求,包含volume的基本信息,如名称、类型、大小和可用区(AvailabilityZone)。 - cinder-api在接收到请求后,会在日志文件(例如:/opt/stack/logs/c-api.log)中记录相关信息,表明接收到创建1GB volume的请求。 - 接着,cinder-api启动一个名为volume_create_api的工作流(Flow),用于协调后续操作。这个工作流的状态会经历PENDING、RUNNING和SUCCESS这三个阶段。 3. **调度过程(cinder-scheduler)**: - cinder-api完成初步处理后,会通过Messaging服务(通常使用RabbitMQ)向cinder-scheduler发送消息,指示需要创建volume。 - cinder-scheduler接收到消息后,会根据预设的调度算法来决定哪个存储节点(Storage Node)最适合创建volume。这可能基于多种因素,如负载均衡、存储容量、性能需求等。 4. **执行创建操作(cinder-volume)**: - 一旦scheduler确定了最佳存储节点,它会通过Messaging服务向该节点的cinder-volume服务发送消息。 - 存储节点的cinder-volume服务接收到消息后,会调用相应的驱动程序(driver)与具体的volume provider(如 Cinder 后端的LVM、iSCSI或NFS等)进行交互,实际在存储设备上创建volume。 这个流程分为三个部分进行详细探讨: - 第一部分(本节内容):介绍cinder-api接收请求并启动工作流的处理过程。 - 第二部分:深入解析cinder-scheduler如何执行调度算法,选择合适的存储节点。 - 第三部分:详细阐述cinder-volume如何在选定的存储节点上创建volume。 理解这一过程对于优化OpenStack存储性能和管理存储资源至关重要。在实际操作中,可能还需要考虑如QoS(服务质量)、快照、复制等因素,这些都是Cinder服务的重要组成部分。