本文首发于烂泥行天下。
KVM虚拟化学习已经有一段时间了,现在虚拟化软件比较多,对比了下目前使用比较多的VMware Vsphere。发现在不进入VM系统的情况下,Vsphere可以查看VM的IP地址,。如下:
同时你也会发现,Vsphere只能查看VM的IP地址,不能查看其他的信息。如果要查看的话,只能登录到VM系统中查看。而且要查看VM的IP地址的话,我们还需要在VM的系统中安装好vmtools这个软件包。
当然,我们也可以通过描述来解决查看虚拟机的相关情况。如下:
此时再来对比KVM中的VM我们会发现,KVM不能通过类似于Vsphere方法来查看VM的IP地址。
难道说KVM不支持吗?
错的,KVM也是可以支持的。而且KVM比Vsphere更简单,不需要安装任何软件包,只需要在VM的XML配置文件中添加一行命令就可以搞定。
具体操作如下,登录KVM,找到一台VM。如下:
ssh [email protected]
修改KVM虚拟机VM的XML配置,添加<title>参数,在该参数中可以自定义VM的信息,包括VM的IP、hostname等等。具体操作如下:
virsh edit xp
保存该VM配置文件,然后启动该VM,如下:
virsh start xp
然后使用virsh list –title命令查看,如下:
通过上图我们可以很容易的看到,目前虚拟机XP的IP地址是192.168.1.202。这个和我们在前面配置文件中填写的<title>参数一样。
这样就达到了,在VM运行时查看VM的IP地址的目的。
<title>参数,没有在virt-install命令中,而是在virsh命令中,我们可以通过man virsh,进行查看。如下:
注意以上我们测试是VM运行时,查看VM的相关信息。那如果VM没有运行呢?
该如何查看VM的IP地址呢?
我们还可以通过<description>参数,来添加相关的描述。如下:
virsh edit win7
然后使用virsh desc win7命令查看,如下:
通过上图我们可以很容易的看到,目前虚拟机win7处于关闭状态,但是我们可以看到win7的IP地址是192.168.1.201。这个和我们在前面VM配置文件中填写的<description>参数一样。
注意:<description>参数是virt-install命令支持的,virsh不支持。有关<description>参数的使用,我们可以通过man virt-install查看得到,如下:
virt-install命令支持<description>参数,那说明我们可以在安装虚拟机时添加有关VM的描述信息。使用命令如下:
virt-install -n win7 -r 2048 --vcpus=1 --os-type=windows -l http://192.168.1.102/G71_X64_IE10_V5.2.iso -f /dev/vg1/win7 --bridge=br0 -m 00:16:3E:12:D7:5D --vnc --vnclisten=0.0.0.0 --vncport=5999 --description "192.168.1.201_win7_20140926" -x "--device=eth0 ip=192.168.1.220 netmask=255.255.255.0 gateway=192.168.1.1"
注意上面这条命令也是比较有意思的,比如,我现在网络中就只有一台服务器,而这台服务器上目前只有一个web应用,而系统的镜像文件存放在这台服务器上。我现在要求在这台服务器上不安装其他软件,也不在其他配置的话。如何让网络中的其他KVM服务器通过这个镜像文件,来网络安装系统。
而通过上述这个命令就可以达到要求。