zoukankan      html  css  js  c++  java
  • OpenStack Ironic 常见问题

    whole disk和partition 镜像

    whole disk镜像部署可以支持windows,但是不能自定义分区(可以通过cloud-init实现),分区表是做镜像的人确定好的,partition image支持按照flavor中规定的root,swap分区来自动进行磁盘分区。
    partition image方式部署的机器将kernel和ramdisk都存放在tftp server上,每次启动都需要访问tftp,whole disk部署的服务器启动时不需要访问tftp server。
    更新:partition image也支持从本地启动,需要设置特别的元数据,文档在https://docs.openstack.org/project-install-guide/baremetal/draft/advanced.html#local-boot-with-partition-images

    coreos deploy image和 ramdisk deploy image

    coreos image是社区媒体dailybuild使用的,也是社区推荐的选项,ramdisk image支持更多的元素,比如raid部署(使用agent_ilo)。
    spec:https://specs.openstack.org/openstack/ironic-specs/specs/kilo-implemented/whole-disk-image-support.html

    raid的进展

    hardware raid目前只有ilo和drac的服务器支持raid部署,需要build专门的包含hpe raid管理软件的ramdisk镜像支持,社区正在做software raid的方案,通过agent启动后使用raid-md来做raid,
    软raid: https://blueprints.launchpad.net/ironic/+spec/inband-raid-configuration
    现有的raid支持: https://docs.openstack.org/developer/ironic/deploy/raid.html

    console的实现,原理,scott和shellinabox的区别

    通过SOL(serial over lan),即通过网络转发串口的方式来将console暴漏给用户,ironic使用的是ipmitool 的sol activate命令。默认是通过shellinabox展示给user,可以通过网页查看,像nova看虚拟机一样,也可以通过scott,暴露出来的是ip+端口,可以通过telnet访问。

    root@ubuntu:~# ipmitool -I lanplus -H 172.16.6.222 -U root -P password sol activate
    [SOL Session operational. Use ~? for help]

    LTS debian ttyS1

    debian login:

    裸机和ironic控制器的网络通信

    裸机管理有两种情况,一种是通过flat网络通信,裸机和控制器在同一个二层网络里,网络架构比较简单,这里不展开了。

    但是更合理的情况是,裸机使用multi tenancy来管理网络,Ironic裸机和控制器在不同的vlan里,裸机部署时需要向控制器tftp服务请求镜像,这就需要在三层打通部署tftp所在的控制器网络和部署网络。如果是通过partion image部署,裸机部署完成后,每次开机时,也要向tftp请求镜像(使用partition image且不从本地启动的情况下),这样就又需要打通tftp到instance vlan。不过如果通过whole disk方式部署裸机就不需要这么麻烦了,whole disk部署的服务器启动时不需要访问tftp server.

    通过物理交换机配置比较麻烦,我们可以通过neutron router上打通不同vlan,下面上海二楼的环境为例。

    当前的环境如下:

    1. 控制器位于172.16.140.51上,物理网关地址为172.16.140.1
    2. 裸机的部署网络配置为vlan 160,172.16.160.0/24网段,只是在交换机上创建了对应的vlan,没有物理网关
    3. 控制器上部署了tftp服务,dns服务,ironic服务,neutron服务

    操作步骤:

    1. 创建neutron vlan140网络,网关声明为172.16.140.100 这里要避开物理网关
    2. 创建neutron vlan160网络,网关声明为172.16.160.1
    3. 创建router,不设置网关,既不激活snat
    4. 在router中添加到vlan140网络的接口,接口ip不输入或者输入网关172.16.140.100
    5. 在router中添加到vlan160网络的接口,接口ip不输入或者输入网关172.16.160.1
    6. 在控制器上添加一条路由router add -net 172.16.160.0/24 gw 172.16.140.100

    这样就使得控制器172.16.140.51能和部署网络172.16.160.0/24互通,能够完成部署工作。如果是使用wholedisk的镜像进行部署,那么这样的网络已经足够。如果需要部署partition格式的镜像,还需要按照上面的方式打通instance网络。

  • 相关阅读:
    docker笔记(1)
    解决MySQL8 #1227 – Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this ...
    nginx if判断&&和||写法
    泡泡后台Couchbase缓存使用经验分享
    ARTS-WEEK-007
    ARTS-WEEK-006
    ARTS-WEEK-005
    ARTS-WEEK-004
    ARTS-WEEK-003
    总结httpclient资源释放和连接复用
  • 原文地址:https://www.cnblogs.com/zhangyufei/p/7761924.html
Copyright © 2011-2022 走看看