这是 OpenStack 实施经验分享系列的第 6 篇。
在项目实施过程中,经常会有添加删除网卡的需求。比如一个运行数据库的 instance,初始只有一个网卡,数据库服务和备份共用这块网卡,后来为提高性能以及合规的要求需要加一块网卡专门做备份用。长久以来,Horizon 界面只支持在部署时为 instance 配置网卡,事后添加删除网卡只能用命令行,本节就来演示这个操作。
添加网卡
我们现在有一个 instance “c1”,有一块 vlan111 的网卡,IP 为 17.17.111.5。
当前有两个 vlan 网络 “vlan111” 和 “vlan112”。
执行命令 nova interface-attach 为 “c1” 添加一块 “vlan112” 的网卡,分配到的 IP 为 17.17.112.9。
在 instance 的控制台中可以看到新网卡为 eth1,但没有获取到 IP。
其原因是当前操作系统中还没有 eth1 的配置,编辑 /etc/network/interfaces 添加 eth1。
然后执行 ifup eth1 启用该网卡,这次 17.17.112.9 的 IP 就获取到了。
删除网卡
下面演示如何删除网卡,用到的命令是:
nova interface-detach
<server> 用来指定 instance。
<port_id> 是要删除网卡对应的 port。
可以通过 neutron port-list 查看 port 信息。
比如我们要删除 IP 为 17.17.111.5 的这个网卡,命令如下:
instance 控制台中看到 eth0 已经没有了,只剩下 eth1。
在 horizon 中操作
Horizon 在 Newton 版本中加入了添加删除网卡的操作。instance 的操作列表中可以看到 “Attach Interface” 和 “Detach Interface”。
添加网卡,只需在下拉列表中选择网卡所属的网络。
删除网卡也很简单,直接选择网卡对应的 port。
GUI 总是跟随 CLI 的,我们期待 horizon 在新版本中加入更多实用的操作。
下一节我们将讨论另一个常见的网络操作场景:为 instance 配置静态 IP。