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