zoukankan      html  css  js  c++  java
  • 第 6 章 Cinder

    Attach Volume (Part I)

     

    Volume 的最主要用途是作为虚拟硬盘提供给 instance 使用。

    Volume 是通过 Attach 操作挂载到 instance 上的。

     

     

    上一节成功创建了基于 LVM provider 的 volume。每个 volume 实际上是存储节点上 VG 中的一个 LV。

    通常情况存储节点和计算节点是不同的物理节点,存储节点上本地的 LV 如何挂载到计算节点的 instance 上呢?

    解决方案是使用 iSCSI,如下图所示:

    iSCSI 是 Client-Server 架构,有 target 和 initiator 两个术语。

    Target        提供 iSCSI 存储资源的设备,简单的说,就是 iSCSI 服务器。

    Initiator   使用 iSCSI 存储资源的设备,也就是 iSCSI 客户端。

     

    Initiator 需要与 target 建立 iSCSI 连接,执行 login 操作,然后就可以使用 target 上面的块存储设备了。

    Target 提供的块存储设备支持多种实现方式,实验环境中使用的是 LV。

    Cinder 的存储节点 cinder-volume 默认使用 tgt 软件来管理和监控 iSCSI target,在计算节点 nova-compute 使用 iscsiadm 执行 initiator 相关操作。

     

    下面来看看 Attach 操作的流程图:

    1、向 cinder-api 发送 attach 请求

    2、cinder-api 发送消息

    3、cinder-volume 初始化 volume 的连接

    4、nova-compute 将 volume attach 到 instance

     

    详细分析:

    1、向cinder-api发送attach请求

    客户(可以是 OpenStack 最终用户,也可以是其他程序)向 cinder-api 发送请求:“请将这个 volume attach 到指定的 instance 上。”

    这里将 volume “volume1” attach 到 instance ”c2”上。

    attach 操作之前,c2 上的虚拟磁盘如下:

    进入 GUI 操作菜单 Project -> Volumes -> Volumes

    选择 volume “volume1”,点击“Manage Attachments”

    在 “Attach to Instance”下拉列表中,选择instance “c2”

    点击 ”Attach Volume”

    cinder-api 将接收到 attach volume 的请求,attach 请求实际上包含两个步骤:

    1、初始化 volume 的连接

    Volume 创建后,只是在 volume provider 中创建了相应存储对象(比如 LV),这时计算节点是无法使用的。

    Cinder-volume 需要以某种方式将 volume export 出来,计算节点才能够访问得到。

    这个 export 的过程就是“初始化 volume 的连接”。

    Initialize_connection 的具体工作主要由 cinder-volume 完成。

     

    2、Attach volume

    初始化 volume 连接后,计算节点将 volume 挂载到指定的 instance,完成 attach 操作

    Attach 的具体工作主要由 nova-compute 完成。

     

    cinder-api 发送消息

    cinder-api 分两步完成 attach 操作,所以会先后向 RabbitMQ 发送了两条消息:

    1、初始化 volume 的连接

    cinder-api 没有打印发送消息的日志,只能通过源代码查看 /opt/stack/cinder/cinder/volume/api.py,方法为 initialize_connection

     

    2、Attach volume

    cinder-api 没有打印发送消息的日志,只能通过源代码查看 /opt/stack/cinder/cinder/volume/api.py,方法为 attach

     

     --------------------------------------------------引用来自-------------------------------------------------------------

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587743&idx=1&sn=b180de0f491d27f9dae8de9a4ef13a5d&chksm=8d308106ba47081089c6bf817880f842270526f872965a64ce69ba458193d90dc69e6bf93596&scene=21#wechat_redirect

  • 相关阅读:
    Linux Shell编程(25)——I/O 重定向
    Linux Shell编程(24)——命令替换
    Linux Shell编程(23)——文本处理命令
    Linux Shell编程(22)——时间/日期 命令
    Linux Shell编程(21)——复杂命令
    玩转大数据,顺利渡过34岁裁退危机!
    传统企业IT架构如何能更好的支撑企业互联网业务的转型
    业务技术协同线上化的硬盘式研发管理实践
    做一个美女图片大全那种的网站怎么提高网站流量?
    Eclipse曾经的行业之王,为何堕落了?
  • 原文地址:https://www.cnblogs.com/gsophy/p/11065662.html
Copyright © 2011-2022 走看看