|--- api-ref
|--- cinder  //cinder的核心代码
    | --- api           //cinder-api服务的具体实现
        | --- contrib   //存放cinder所有的扩展资源
        | --- middleware
        | --- openstack
        | --- v1/2/3    //cinder的核心资源,包含三个版本,主要涵盖了volume、volume type、snapshot的管理操作
        | --- views
        | --- ...
    | --- backup        //cinder-backup服务的具体实现,用于将volume备份到其他存储系统
        | --- api.py    //对RPC调用的一层封装,供其他模块导入
        | --- chunkeddriver.py
        | --- driver.py     //定义了各种backup driver的基类
        | --- drivers   //以driver的形式支持不同类型的备份存储系统
            | --- ceph.py
            | --- glusterfs.py
            | --- google.py
            | --- nfs.py
            | --- posix.py
            | --- swift.py
            | --- tsm.py
        | --- manager.py    //cinder-backup的核心代码,其中BackupManager类用于执行接收到的RPC请求
        | --- rpcapi.py     //定义了该服务提供给RPC调用的接口 BackupAPI
    | --- brick
    | --- cmd           //一些启动脚本和工具性脚本
    | --- common
    | --- compute       //导入Compute API,默认为cinder.compute.nova.API,定义了一些通过Nova客户端实现快照处理等操作的方法
    | --- consistencygroup
    | --- db
    | --- hacking
    | --- image         //实现使用Glance作为后端的镜像服务,有些操作通过Glance客户端调用Glance中的相应方法实现
    | --- keymgr        //用于秘钥管理
    | --- locale
    | --- objects
    | --- replication   //管理卷的副本,卷的副本是一个对HA(Hign Availablity)和容灾恢复(Disaster Recovery)相当关键的存储功能
    | --- scheduler     //cinder-scheduler服务的具体实现
        | --- rpcapi.py     //openstack各个服务代码所在的目录都会有一个rpcapi.py文件,定义了该服务所能提供的RPC接口
        | --- manager.py    //SchedulerManager类用于接受RPC请求,在一些参数验证之后,将请求交由具体的调度器来处理,它在RPC客户端和具体的服务之间起到一个桥梁的作用
        | --- filters       //所有filter的实现都位于该目录
        | --- weights       //所有weights的实现都位于该目录
        | --- ...
    | --- tests
    | --- transfer      //处理卷所有权转换相关的请求,例如卷从一个租户转换到另一个租户
    | --- volume        //cinder-volume服务的具体实现
        | --- api.py            //对RPC调用做了一层封装,其他模块需要导入的是api模块
        | --- configuration.py  //为所有driver的实现提供一些配置相关的支持
        | --- driver.py         //定义了各种driver的基类
        | --- drivers           //所有具体driver的具体实现都位于该目录下
        | --- flows
        | --- group_types.py
        | --- manager.py        //cinder-volume最为核心的代码,其中VolumeManager类用于执行接收到的RPC请求,所有有关Volume生命周期管理的函数都包含在内
        | --- qos_specs.py
        | --- rpcapi.py         //定义了提供给RPC调用的VolumeAPI
        | --- targets
        | --- throttling.py
        | --- utils.py
        | --- volume_types.py
    | --- zonemanager   //扩展cinder对FC的支持
|--- etc
|--- setup.cfg      //openstack中各个组件的源码地图,是我们浏览openstack最为依仗的文件,该文件中比较特殊的命名空间“console_scripts”中的每一项都表示一个可执行的脚本,这些脚本在部署时被安装,这就是各组件的入口。
|--- setup.py

标签: Cinder