美文网首页
OpenStack 学习

OpenStack 学习

作者: 下里巴人也 | 来源:发表于2017-11-21 15:52 被阅读88次

    比较好的参考资料:
    https://github.com/ntk148v/awesome-openstack
    http://blog.csdn.net/u010305706/article/details/52206175
    https://www.baidu.com/link?url=dk_kov2ZKWZZk5i50WwdUfI_aJYD6UiwHTJmb8QbO9OKBOeXVg8aOxRx4ZdHlELC6zaSi4_6NjSOVo6YIxTRWa&wd=&eqid=89f2abc5000147fb000000025a12bf9b

    1. 如何学习OpenStack

    参考:如何学习OpenStack
    有一句说的很对:
    如何学习和了解OpenStack,其实和你如何了解一个开源软件,其实差不多。国内由于很多原因,很多人都喜欢看中文的资料去了解和熟悉一个开源软件,这样其实效率是很低的。

    【一万小时法则】一项研究显示,在任何领域取得成功的关键跟天分无关,只是练习的问题,需要练习1万个小时——10年内,每周练习20小时,大概每天3小时。中国有句古话“十年磨一剑”,其道理可谓异曲同工,没有几个会拒绝成功。但站立在金字塔顶的成功者,往往是少数人。

    OpenStack资料汇总

    1. Openstack的项目管理的网站
      可以看到Opentstack项目的组件的Blueprints和bugs列表,阅读这些你就基本可以了解到Openstack过去,现在和未来.
    2. 查看各公司贡献,模块开发数据分析
    3. IRC会议
    4. 如何提交代码中文资料和视频

    2. OpenStack简介及创建虚机原理

    参考:openstack创建虚机
    组件逻辑关系图:

    OpenStack新建云主机流程图:


    (1)界面或命令行通过RESTful API向keystone获取认证信息。
    (2)keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。
    (3)界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。
    (4)nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。
    (5)keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。
    (6)通过认证后nova-api和数据库通讯。

    (7)初始化新建虚拟机的数据库记录。
    (8)nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。
    (9)nova-scheduler进程侦听消息队列,获取nova-api的请求。
    (10)nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。
    (11)对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。
    (12)nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。
    (13)nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。
    (14)nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)
    (15)nova-conductor从消息队队列中拿到nova-compute请求消息。
    (16)nova-conductor根据消息查询虚拟机对应的信息。
    (17)nova-conductor从数据库中获得虚拟机对应信息。
    (18)nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。
    (19)nova-compute从对应的消息队列中获取虚拟机信息消息。
    (20)nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。
    (21)glance-api向keystone认证token是否有效,并返回验证结果。
    (22)token验证通过,nova-compute获得虚拟机镜像信息(URL)。
    (23)nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。
    (24)neutron-server向keystone认证token是否有效,并返回验证结果。
    (25)token验证通过,nova-compute获得虚拟机网络信息。
    (26)nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。
    (27)cinder-api向keystone认证token是否有效,并返回验证结果。
    (28)token验证通过,nova-compute获得虚拟机持久化存储信息。
    (29)nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。

    3. OpenStack 上传镜像

    官方Centos OpenStack镜像下载地址
    执行环境变量:

    . /etc/openstack-control-script-config/demo-openrc

    查看openstack所有镜像:

    glance image-list


    上传镜像:

    glance image-create --name "centos6-1710" --file CentOS7.2.qcow2.tar.gz --disk-format qcow2 --container-format bare --visibility public --progress

    可能出现如下错误:


    原因可能是:
    1)/etc/glance/glance-api.conf 或/etc/glance/glance-registry.conf配置中未设置如下设置
    [paste_deploy]
    flavor = keystone
    2)glance配置时,demo这个用户未添加权限,切换为admin用户就可以: 执行环境变量:
    . /etc/openstack-control-script-config/admin-openrc
    再上传镜像
    可以看到镜像上传成功了:

    4. OpenStack 实例类型查看和添加

    nano 查看当前已有实例类型配置

    openstack flavor list

    示例:

    openstack添加实例类型

    openstack flavor create --id 1 --vcpus 2 --ram 4096 --disk 100 m2.nano

    执行结果:
    也可以在horizon中创建:

    5. OpenStack neutron使用

    参考:http://www.cnblogs.com/popsuper1982/p/3800233.html
    https://www.csdn.net/article/2015-06-18/2825000
    openstack查看当前网络

    openstack network list

    执行结果:

    openstack创建网络

    openstack network create 【network name】

    执行结果:

    创建虚拟网络(网络名为vmnet):

    openstack network create --share --external --provider-physical-network provider --provider-network-type flat vmnet

    创建子网(bds-net):

    openstack bds-net create --networkprovider --allocation-poolstart=10.1.1.10,end=10.1.1.240 --dns-nameserver114.114.114.114 --subnet-range10.1.1.0/24 provider

    openstack为一个网络创建一个子网网络

    openstack subnet create --network provider
    --allocation-pool start=${START_IP_ADDRESS},end=${END_IP_ADDRESS}
    --dns-nameserver ${DNS_RESOLVER} --gateway ${PROVIDER_NETWORK_GATEWAY}
    --subnet-range ${PROVIDER_NETWORK_CIDR} provider
    执行结果:

    相关文章

      网友评论

          本文标题:OpenStack 学习

          本文链接:https://www.haomeiwen.com/subject/gvpdvxtx.html