新浪大神推荐使用element proliant-tools制作deploy image。element proliant-tools会在ipa ramdisk中安装一个rpm包hpssacli(HP的RAID管理工具),和一个python module proliantutils(里面ProliantHardwareManager继承了ironic_python_agent.hardware:GenericHardwareManager,实现了get_clean_steps/create_configuration/delete_configuration)。

DIB_DEV_USER_USERNAME=devuser
DIB_DEV_USER_PASSWORD=devuser
DIB_DEV_USER_PWDLESS_SUDO=true
disk-image-create centos7 ironic-agent devuser proliant-tools -o ironic-deploy
利用dib制作带有proliant-tools的deploy镜像
ironic --ironic-api-version 1.15 node-set-target-raid-config $ironic_node_uuid '{\"logical_disks\": [{\"size_gb\": \"MAX\", \"disk_type\": \"hdd\", \"raid_level\": \"1\", \"is_root_volume\": true, \"volume_name\": \"root_volume\"}, {\"size_gb\": \"MAX\", \"disk_type\": \"hdd\", \"number_of_physical_disks\": 4, \"raid_level\": \"5\", \"volume_name\": \"data_volume\"}]}'
ironic --ironic-api-version 1.15 node-set-provision-state $ironic_node_uuid clean --clean-steps '[{\"interface\": \"raid\", \"step\": \"delete_configuration\"}, {\"interface\": \"raid\", \"step\": \"create_configuration\"}]' # 注意steps之间的先后顺序ironic --ironic-api-version 1.15 node-show $ironic_node_uuid

社区代码支持HP机器的raid,怎么开发其他加的raid?

如需支持其他机型做raid,需要做的是实现所需机型的HardwareManager,继承自ironic_python_agent.hardware:GenericHardwareManager,实现get_clean_steps/create_configuration/delete_configuration。

这种需求,建议为不同机型提供相应的deploy image,里面封装相应的HardwareManager及底层Raid管理工具即可。对于你的需求,可以提供两个deploy image。一个封装HP的HardwareManager适配,用于HP机型做RAID;另一个则封装DELL的HardwareManager适配,用于DELL机型做RAID;

目前可以根据ramdisk添加raid管理工具按照官方划分raid的json格式 通过api发送请求,另外再研究下dib制作hp deploy镜像。

ironic如何支持部署时按需RAID?的更多相关文章

  1. [Java] 解决spring的xml标签内不能自由增加说明的难题,方便调试、部署时进行批量屏蔽

    作者:zyl910 以往我们想在spring的xml配置文件中增加说明文本时,只能使用xml注释(<!-- 注释 -->).这对于"调试.部署时想批量屏蔽部分bean" ...

  2. Nginx+Tomcat+Memcached 实现集群部署时Session共享

    Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...

  3. ionic项目ios真机部署(不需开发者账号)

    ionic项目ios真机部署(不需开发者账号) 安装ionic和cordova npm install -g ionic npm install -g cordova 创建一个新项目 ionic st ...

  4. C# Winform打包部署时添加注册表信息实现开机自启动

    1.原理:需要开机自启动的程序,需要将其启动程序的路径写到注册表中指定的文件夹下 2. 写入注册表的方式有两种 a.在生成安装程序时配置 b.在程序运行时,动态配置 方法一:使用VS2010自带的打包 ...

  5. Tomcat部署时war和war exploded的区别

    转自徐刘根的Tomcat部署时war和war exploded区别以及平时踩得坑 一.war和war exploded的区别 在使用IDEA开发项目的时候,部署Tomcat的时候通常会出现下边的情况: ...

  6. Suring开发集成部署时问题记录

    前言 开发时一定要用管理员模式打开VS或者VSCODE进行开发,同时不要在nuget上直接下载,要去github上下载源代码调试.第一方便调试,第二Surging迭代较快,nuget版本往往不是最新的 ...

  7. 解决IDEA Java Web项目没问题,但部署时出错的问题

    如果确定代码没问题,那多半是项目中用到的库没有被Tomcat复制到部署位置的lib目录下. 点击调试/运行,看到控制台Tomcat在部署,但一直不弹出浏览器页面,Tomcat控制台报错如下: 是在Ar ...

  8. [DEBUG] QAT Nginx for docker 部署时"--with-ld-opt"出错

    layout: post title: [DEBUG] QAT Nginx for docker 部署时"--with-ld-opt"出错 subtitle: 记一次debug经历 ...

  9. Android项目部署时,发生AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class错误

    这个错误也是让我纠结了一天,当时写的项目在安卓虚拟机上运行都很正常,于是当我部署到安卓手机上时,点击登陆按钮跳转到用户主界面的时候直接结束运行返回登陆界面.    当时,我仔细检查了一下自己的代码,并 ...

随机推荐

  1. http协议,tcp协议,ip协议,dns服务之前的关系和区别

    长期以来都有一个问题,大家都在说http协议,tcp协议,ip协议,他们之间到底什么区别,有什么用,没人告诉我,最近看了这本<图解http>明白了一些,以下图片摘自这本书 一.理解一个传输 ...

  2. rnn,lstm and JuergenSchmidhuber

    JuergenSchmidhuber 是瑞士的一位牛人,主要贡献是rnn, lstm. google的deep mind新作,Human-level control through deep rein ...

  3. 3.初识Cron表达式

    Cron: 计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思.在Linux中,我们经常用到 cron 服务器来完成这项工作.cron服务器可以根据配置文件约定的时间来执行特定的作务. ...

  4. 知识总结和记录——Bootstrap

    官方地址:https://getbootstrap.com 中文地址:http://www.bootcss.com/ 使用V3版本的Bootstrap,下载的是用于生产环境的Bootstrap. 目录 ...

  5. LeetCode46. Permutations

    Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3] O ...

  6. 1189: [HNOI2007]紧急疏散evacuate

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3831  Solved: 1119[Submit][Status][Discuss] Descript ...

  7. ARM S3C2440 时钟初始化流程

    1.设置lock time 2.设置分频系数 3.设置CPU到异步工作模式 4.设置 FCLK 了解 芯片的时钟原理图,以及寄存器的作用 了解芯片的晶振频率,锁相环,分频系数,以及有哪些时钟

  8. Linux终端显示控制字符

    在Linux中, 我们时常要将一个命令的输出作为另外一个命令的输入进行下一步处理操作. 有时, 如果一个命令的输出中有不可见的控制字符时, 有可能会导致后续操作出错. 而这些控制字符很可能是不可打印的 ...

  9. webpack4 单独抽离打包 css 的新实现

    webpack4 单独抽离打包 css 的新实现 前言 之前我们使用的打包 css 无非两种方式:① 将 css 代码打包进 入口 js 文件中:② 使用第三方插件(extract-text-webp ...

  10. php红包算法函数[优化]

    php红包算法 <?php header("Content-Type: text/html;charset=utf-8");//输出不乱码,你懂的 $total=10000; ...