kvm虚拟化

查看cpu是否支持虚拟化

#如果回显有vmx或者svm,说明硬件支持虚拟化
grep -E '(svm|vmx)' /proc/cpuinfo

kvm部署与使用

本次系统环境,戴尔R330,Centos7.6

[root@kvm-188 shell]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 
[root@kvm
-188 shell]# uname -r 3.10.0-957.el7.x86_64
[root@kvm
-188 shell]# getenforce Enforcing
[root@kvm
-188 shell]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) 6月 14 16:56:18 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... 6月 14 16:56:19 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. 6月 14 17:00:25 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon... 6月 14 17:00:26 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@kvm
-188 shell]# hostname -I 192.168.122.1 10.17.9.188

安装kvm

安装依赖包

yum install libvirt*  virt-*  qemu-kvm* -y

安装软件说明内容:

libvirt    # 虚拟机管理
virt       # 虚拟机安装克隆
qemu-kvm   # 管理虚拟机磁盘

启动服务

[root@kvm ~]# systemctl start libvirtd.service
[root@kvm ~]# systemctl status libvirtd.servic

安装VNC软件,连接kvm虚拟机,安装系统使用:

  下载vnc软件方法,tightvnc官网:http://www.tightvnc.com

                        

创建虚拟机

[root@kvm-188 shell]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name dev01_201 --memory 16384 --vcpus 4 --disk /data/dev01_201.raw,format=raw,size=500 --cdrom /data/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0,port=5901 --noautoconsole

开始安装......
正在分配 'dev01_201.raw'                                                                               | 500 GB  00:00:00     
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

参数说明:

--name       虚拟机名字
--memory     虚拟机内存大小
--vcpus      cpu个数
--disk       磁盘文件
--cdrom      镜像文件
--graphics vnc,listen=0.0.0.0,port=5901    启动监听地址和端口,vns连接使用

在启动的同时使用vnc连接,进入系统安装

KVM虚拟机管理操作

virsh命令常用参数总结

基础操作:
list                 查看虚拟机列表,列出域  
list --all           查看所有
start                启动虚拟机    
shutdown             关闭虚拟机

配置管理操作:
dumpxml               导出主机配置信息
undefine              删除主机
define                导入主机配置
domrename             对虚拟机进行重命名       

开机自启动管理
autostart                 虚拟机开机启动
autostart --disable       取消虚拟机开机启动 

KVM虚拟机配置文件位置

[root@kvm ~]# ll /etc/libvirt/qemu/centos7.xml

修改KVM虚拟机配置的方法

[root@kvm ~]# virsh edit centos7

CentOS 7.X 版本console登录

在KVM(虚拟机)下开机启动并启动服务

systemctl enable serial-getty@ttyS0.service

systemctl start serial-getty@ttyS0.service

在宿主机访问

virsh console centos7 ## CentOS7是虚拟机名称

提示:进去之后回车多次即可通过账号密码登录,退出执行Ctrl+]

 

kvm虚拟机网络管理

1. 桥接网卡,宿主机执行:

[root@kvm-188 ~]# virsh iface-bridge em1 br0
使用附加设备 br0 生成桥接 eth0 失败
已启动桥接接口 br0

执行成功后,查看网卡配置:

[root@kvm-188 shell]# cat /etc/sysconfig/network-scripts/ifcfg-em1 
DEVICE=em1
ONBOOT=yes
BRIDGE="br0"

[root@kvm-188 shell]# cat /etc/sysconfig/network-scripts/ifcfg-br0 
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="10.17.9.188"
NETMASK="255.255.255.0"
GATEWAY="10.17.9.254"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"

2. 修改虚拟机网络配置

[root@kvm-188 ~]# virsh edit centos7(虚拟机名字)
修改前:
    <interface type='network'>
      <mac address='52:54:00:42:bf:bc'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
修改后:
    <interface type='bridge'>
      <mac address='52:54:00:42:bf:bc'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

3. 虚拟机中执行:

 修改kvm虚拟机网卡配置文件和宿主机网关一样

TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=IP地址
NETMASK=子网掩码
GATEWAY=网关
DNS1=dns服务器

4. 修改完后重启虚拟机

virsh shutdown centos7  关机
virsh start  centos7   启动

克隆虚拟机

1. 查看虚拟机状态,必须是关闭状态(克隆db01_202)

[root@kvm-123 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 1     dev01_201                      running
 -     db01_202                       关闭

2. 开始克隆,执行virsh-clone命令

[root@kvm-123 ~]# virt-clone  --original  db01_202  --name db01_203 --file /data/db01_203.raw
WARNING  设置图形设备端口为自动端口,以避免相互冲突。
正在分配 'db01_203.raw'                                                                     | 200 GB  00:04:40     

成功克隆 'db01_203'

--name 新克隆虚拟机的名字
--file 新克隆虚拟机的磁盘文件

3. 启动虚拟机,修改IP

[root@kvm-123 ~]# virsh start db01_203 
域 db01_203 已开始

[root@kvm-123 ~]# virsh console db01_203
连接到域 db01_203
换码符为 ^]     #  会卡在这里,按回车登陆

删除虚拟机

查看所有虚拟机

[root@kvm-123 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 1     db01_203                       running
 2     db01_202                       running
 3     dev01_201                      running
 -     git_201                        关闭
 -     moban_200                      关闭

删除git_201,只是删除了虚拟机的配置文件

虚拟机运行中,可以强制停止
[root@kvm-123 ~]# virsh destroy git_201
域 git_201 被删除

# 删除虚拟机配置文件
[root@kvm-123 ~]# virsh undefine git_201
域 git_201 已经被取消定义


[root@kvm-123 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 1     db01_203                       running
 2     db01_202                       running
 3     dev01_201                      running
 -     moban_200                      关闭

删除磁盘文件,和日志文件

# 查找所有相关文件
find / -name "*git_200*" -type f

# 删除磁盘文件和日志文件
rm /data/git_200.raw -f
rm /var/log/libvirt/qemu/git_200.log -f

调整磁盘大小

[root@kvm-233 data]# ll -h
总用量 813G
-rwxr-xr-x. 1 qemu qemu      4.3G 6月  14 17:20 CentOS-7-x86_64-DVD-1810.iso
-rw-------. 1 qemu qemu      200G 11月  4 22:01 db01_202.raw
-rw-------. 1 qemu qemu      200G 11月  4 22:01 db01_203.raw
-rw-------. 1 qemu qemu      500G 11月  4 22:01 dev01_201.raw
-rw-------  1 qemu qemu      500G 11月  4 22:01 git_201.raw
drwxr-xr-x  5 root root        46 10月 31 11:44 logs
-rw-------  1 root root      400G 11月  4 22:01 moban.raw
drwxr-xr-x  7 root uploadcdn   80 10月 24 21:21 webroot
-rw-------  1 qemu qemu      500G 11月  4 22:01 wiki_205.raw

# 调整磁盘大小 [root@kvm
-233 data]# qemu-img resize moban.raw -100G Image resized. [root@kvm-233 data]# qemu-img resize moban.raw -100G Image resized. [root@kvm-233 data]# ll -h 总用量 812G -rwxr-xr-x. 1 qemu qemu 4.3G 6月 14 17:20 CentOS-7-x86_64-DVD-1810.iso -rw-------. 1 qemu qemu 200G 11月 4 22:01 db01_202.raw -rw-------. 1 qemu qemu 200G 11月 4 22:01 db01_203.raw -rw-------. 1 qemu qemu 500G 11月 4 22:02 dev01_201.raw -rw------- 1 qemu qemu 500G 11月 4 22:02 git_201.raw drwxr-xr-x 5 root root 46 10月 31 11:44 logs -rw------- 1 root root 200G 11月 4 22:02 moban.raw drwxr-xr-x 7 root uploadcdn 80 10月 24 21:21 webroot -rw------- 1 qemu qemu 500G 11月 4 22:02 wiki_205.raw
原文地址:https://www.cnblogs.com/root0/p/11025301.html