当前位置: > 虚拟化 Virtualization > KVM >

KVM 虚拟机管理

时间:2019-12-24 15:25来源:linux.it.net.cn 作者:IT


环境架构说明:

宿主机环境:由vmware虚拟出来的Centos7,具体看上一章节

宿主机IP地址:172.16.175.133
虚拟机网络

在安装kvm后,宿主机上会多生成一个192.168.122.1命名为virbr0的桥接网卡来构建虚拟机网络,虚拟机生成后会获取一个192.168.122.0/24段获取一个IP地址,利用virbr0来进行桥接网络。

kvm虚拟机启动后,kvm的虚拟机IP地址为192.168.122.0/24子网的一个IP地址,目前kvm虚拟机可以通过ssh使用,可以访问外网。此时的kvm虚拟机是通过DHCP方式来获取IP地址进行通信的。
libvirt 管理kvm虚拟机

virsh是按照libvirt后的一个命令。

使用virsh命令可以对虚拟机进行操作:

# list 默认显示正在运行的,--all显示为所有的
virsh list --all




如图可以看到虚拟机的ID,名称和状态,名称需要唯一。

目前虚拟机状态为running,如果虚拟机的状态为shut off可以使用命令进行启动虚拟机

# 使用virsh --help查看命令的更多其他用法
virsh start CentOS-7
virsh shutdown CentOS-7

libvirt是一套开源的用来管理虚拟机的工具,由两部分组成:

1. `libvirtd`的后台进程。
2. api的库。
3. 各种工具。

如果libvirtd进程停止,不影响虚拟机的运行,但是不能使用工具来管理虚拟机了。

修改配置文件后需要对kvm虚拟机进行重启操作
动态修改内核数

# 通过该方式来对虚拟机的xml配置文件进行修改,
# 对应配置文件位置为 /etc/libvirt/qemu/CentOS-7.xml
# 推荐使用命令对xml文件进行修改,命令修改会检查你修改的是否正确。
# 该操作是动态修改kvm虚拟机cpu核数
virsh edit CentOS-7
    # 对应字段修改为以下配置
    <vcpu placement='static'>1</vcpu
    <vcpu placement='auto' current="1">4</vcpu>   # 1代表当前核数,4代表最大核数
# 重启kvm虚拟机
virsh shutdown CentOS-7
virsh start CentOS-7
# 动态修改cpu核数
virsh setvcpus CentOS-7 2 --live

动态修改内存数

# 修改kvm虚拟机xml配置中关于内存的配置
virsh edit CentOS-7
    <memory unit='KiB'>2048000</memory>  # 内存最大大小
    <currentMemory unit='KiB'>1048576</currentMemory>    # 内存当前大小
# 重启kvm虚拟机
virsh shutdown CentOS-7
virsh start CentOS-7
# 查看内存
virsh qemu-monitor-command CentOS-7 --hmp --cmd info balloon
# 动态增加内存
virsh qemu-monitor-command CentOS-7 --hmp --cmd balloon 1524

kvm桥接网络配置

# 创建桥接网卡
# 查看当前网络状态
brctl show
# 新建桥接网卡 br0
brctl addbr br0
# br0 桥接到eht0上,执行这一步后会断开网络
brctl addif br0 eth0
# 删除eht0上的IP地址
ip addr del dev eth0 172.16.175.133/24
# 将IP地址设置到br0上,并启动
ifconfig br0 172.16.175.133/24 up
# 添加到网关地址的路由
route add default gw 172.16.175.2   
# 192.168.56.11 宿主机的IP地址
# 192.168.56.2 为宿主机的网关地址

由于brctl addif br0 eth0操作会是网络断开,所以这一系列命令应该在宿主机的脚本中执行。

修改xml配置,让kvm虚拟机使用桥接网卡

# 修改使用桥接模式,以及使用br0网卡
virsh edit CentOS-7
    <interface type='bridge'>
          <mac address='52:52:52:52:52:52:52' />
          <source bridge='br0' />

重启kvm虚拟机使配置生效。

修改kvm虚拟机网卡配置。

cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTU=static
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=172.16.175.13
    NETMASK=255.255.255.0
    GATEWAY=172.16.175.2

重启kvm虚拟机网卡

systemctl restart network

修改kvm虚拟机dns配置

cat /etc/resolv.conf
    # Generated by NetworkManager
    nameserver 172.16.175.2

网络联通,一切正常。
(责任编辑:IT)
------分隔线----------------------------