当我们添加额外的节点时,堆栈更新功能不适用于卷扩展方案

问题描述

我有一个带有3个节点的堆栈模板,每个节点都有一个附加的卷!现在,我用附加节点和该节点的附加卷更新了我的模板!这将导致模板中节点的user_data更新!并且当我执行堆栈更新功能时,它给我错误:无效的卷:卷01e40c6e-4467-42fe-ba9d-ce7012db8978状态必须可用或正在下载以保留,但是当前状态正在使用中。

显示节点(更改了user_data的节点),是的,它当前正在使用中!那么如何使用带有卷的openstack的堆栈更新功能来更新堆栈?

以下是我在该节点上创建的文件user_data,因此添加节点也会更新此user_data:

cat << 'EOF' > mydata.json
            {
              "hosts":{
                "nodes":{
                  "node-1":{
                    "my_lan":{
                      "hostname":"node-1","ip":"~node-1-my_lan-ip~","interface": "eth0"
                    }
                  },"node-2":{
                    "my_lan":{
                      "hostname":"node-2","ip":"~node-2-my_lan-ip~","interface": "eth0"
                    }
                  }
                }

解决方法

我们有一个类似的用例,我们创建两个单独的堆栈,一个用于vm,另一个用于cinder卷。

首先创建cinder卷堆栈,然后将cinder卷ID与vm堆栈关联。

这个用例可以很好地控制维护煤渣的体积和vm。

显然,VM用户数据中的任何更改都将重新创建vm,而不是重新生成操作,而这正是您正在运行的。