KVM安装虚机

Posted y_zilong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM安装虚机相关的知识,希望对你有一定的参考价值。

#查看是否支持虚拟化
[root@kvm1 ~]# egrep 'vmx|svm' /proc/cpuinfo |wc -l
8

#libvirt安装

#libvirt,提供hypervisor及虚机管理的API
#virt-install,虚拟机安装工具,rhel中,叫python-virtinst
#bridge-utils,linux网桥管理工具包,复制桥接网络的管理
#virt-manager,图形化管理工具

[root@kvm1 ~]# yum install -y libvirt libvirt-client virt-install virt-manager qemu-kvm

#启动libvirt守护进程
[root@kvm1 ~]# systemctl start libvirtd
[root@kvm1 ~]# systemctl enable libvirtd
1、nat
libvirt默认使用了一个名为default的nat网络,这个网络默认使用virbr0作为桥接接口,使用dnsmasq来为使用nat网络的虚拟机提供dns及dhcp服务,dnsmasq生效后的配置文件默认保存在以下路径:

#mac&&ip绑定的配置文件
/var/lib/libvirt/dnsmasq/default.hostsfile

#dhcp分配到虚拟机的ip地址列表
/var/lib/libvirt/dnsmasq/default.leases

#default网络的配置文件
/etc/libvirt/qemu/networks/default.xml

#查看
virsh net-list
virsh net-dumpxml default
2、bridge

#安装工具
[root@kvm1 ~]# yum install -y bridge-utils

#查看linux桥
[root@kvm1 ~]# brctl show

#创建一个网桥及配置文件
[root@kvm1 ~]# nmcli connection add type bridge con-name br0 ifname br0

#查看配置文件
[root@kvm1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=dhcp
NAME=br0
DEVICE=br0
ONBOOT=yes

#将物理网卡桥接到网桥,直接更改两个配置文件
#IP地址在网桥接口上配置
[root@kvm1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
BRIDGE=br0
TYPE=Ethernet
NAME=eth0
DEVICE=eth0
ONBOOT=yes

[root@kvm1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0 
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=10.0.0.100
PREFIX=24
GATEWAY=10.0.0.2
DNS1=114.114.114.114

#重启网卡
[root@kvm1 ~]# systemctl restart network

#可以查看到IP地址绑定在了网桥接口br0上
[root@kvm1 ~]# ifconfig 
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::20c:29ff:fe3a:29e6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3a:29:e6  txqueuelen 1000  (Ethernet)
        RX packets 650  bytes 33885 (33.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 86  bytes 10852 (10.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:3a:29:e6  txqueuelen 1000  (Ethernet)
        RX packets 82880  bytes 101862490 (97.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28832  bytes 2583300 (2.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
3、配置存储池
#查看现有的存储池
virsh pool-list --all
#发现会有一个默认的存储池default,就是/var/lib/libvirt/images
4、创建磁盘
#默认创建的文件在:/var/lib/libvirt/images
[root@kvm1 ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/centos7-yzl.qcow2 10G
Formatting '/var/lib/libvirt/images/centos7-yzl.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off 

[root@kvm1 ~]# ll -h /var/lib/libvirt/images/centos7-yzl.qcow2 
-rw-r--r-- 1 root root 193K Jul  5 09:18 /var/lib/libvirt/images/centos7-yzl.qcow2

#把iso文件上传到/usr/local/src/
[root@kvm1 ~]# ls /usr/local/src/
CentOS-7-x86_64-DVD-2003.iso
5.1、virt-manager 创建虚机
5.2、virt-install 创建虚机

选项:
# --noautoconsole,不自动连接到虚机控制台。默认行为是调用一个 VNC 客户端显示 图形控制台,或者运行 “virsh” “console”命令显示文本控制台。 
# --import,跳过操作系统安装过程,围绕一个存在的磁盘映像建立客户机。引导使用的 设备是通过”–disk” or “–file”指定的第一个设备。 
# --vnc,在客户机中设置一个虚拟控制台并且将其导出为一个 VNC 服务。除非”–vncpo rt” 参数也已提供,VNC 服务将运行在 5900 或其之上第一个未用的端口号。实际的 V NC 显示,可以使用”virsh”的”vncdisplay”命令(或者使用 virt-viewer 处理这个细节) 
# --vncport=VNCPORT,为客户机 VNC 控制台请求一个永久、静态的指定端口号。当其 他客户机自动选择端口号时不鼓励使用此选项,因为可能产生冲突。

#安装虚机vm01
#创建一个虚机,1G内存,2个CPU,10G磁盘,网络桥接到br0,并将ISO文件加载到光驱
#默认会创建磁盘镜像,放在/var/lib/libvirt/images目录下
[root@kvm1 ~]# virt-install --virt-type kvm --name vm01 --ram 1024 --vcpus 2 --cdrom=/usr/local/src/CentOS-7-x86_64-DVD-2003.iso --disk path=/var/lib/libvirt/images/centos7-yzl.qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
[root@kvm1 ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/cent7-yzl.qcow2 30G
Formatting '/var/lib/libvirt/images/cent7-yzl.qcow2', fmt=qcow2 size=32212254720 encryption=off cluster_size=65536 lazy_refcounts=off 
#虚机vm01
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=10.0.0.120
GATEWAY=10.0.0.2
PREFIX=24
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=386e1e45-306b-4639-adae-e3220e04d6ad
DEVICE=eth0
ONBOOT=yes
[root@localhost ~]# 

以上是关于KVM安装虚机的主要内容,如果未能解决你的问题,请参考以下文章

启动第一个 KVM 虚机 - 每天5分钟玩转 OpenStack

Centos 7.4 启动第一个 KVM 虚机 实验And问题总结

启动第一个 KVM 虚机 - 每天5分钟玩转 OpenStack

KVM---虚拟机网络管理

KVMNova 通过 libvirt 管理 QEMU/KVM 虚机

kvm虚拟机管理