kvm安装与配置

author author     2022-08-04     687

关键词:

一、KVM安装

1、安装前准备

环境准备

IP			主机名			操作系统
192.168.56.11		linux-node1		centos7

禁用Selinux,禁用防火墙

接下来,开始安装

(1)首先查看是否支持虚拟化

[[email protected] ~]# grep -E -o ‘svm|vmx‘ /proc/cpuinfo 
vmx
vmx
vmx
vmx

有结果,说明支持虚拟化。

我这里用的是虚拟机,在处理器配置页面,选择了“虚拟化Intel VT-x/EPT或AMD-V/RVI(V)”,支持虚拟化。

如果是物理机,而且执行执行上面的命令没有返回结果,那么就得去BIOS中找Virtualization Technology或者VT关键字,设置为enabled或on。

(2)安装KVM

yum -y install qemu-kvm qemu-kvm-tools libvirt

安装完后,启动libvirt

systemctl start libvirtd    

systemctl enable libvirtd     #设置开机启动

libvirtd用来管理kvm

启动libvirtd后,执行ifconfig

[[email protected] ~]# ifconfig
eth0: flags=4163mtu 1500
        inet 192.168.56.11  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::20c:29ff:fe83:fcc2  prefixlen 64  scopeid 0x20
        ether 00:0c:29:83:fc:c2  txqueuelen 1000  (Ethernet)
        RX packets 411241  bytes 334142719 (318.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 431982  bytes 449719632 (428.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10loop  txqueuelen 0  (Local Loopback)
        RX packets 252754  bytes 20684384 (19.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 252754  bytes 20684384 (19.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:c5:ce:47  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

自动创建了一个virbr0网卡,地址是192.168.122.1,这是安装kvm时都会创建的。

执行ps aux|grep dns

[[email protected] ~]# ps -ef|grep dns
nobody     2529      1  0 Sep04 ?        00:00:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       2530   2529  0 Sep04 ?        00:00:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

libvirt启动了一个dnsmasq进程,这个进程有dns和dhcp的功能,帮助我们分配地址。

二、使用KVM安装虚拟机

1、安装前准备

(1)准备虚拟机硬盘

qemu-img命令用于创建虚拟硬盘

[[email protected] ~]# whereis qemu-img
qemu-img: /usr/bin/qemu-img /usr/share/man/man1/qemu-img.1.gz
[[email protected] ~]# rpm -qf /usr/bin/qemu-img 
qemu-img-1.5.3-105.el7_2.7.x86_64

rpm -qf用于查看一个已经安装的文件属于哪个软件包

qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G

-f raw        是创建虚拟机磁盘的文件格式
/opt/CentOS-7-x86_64.raw   是文件名称
10G           是文件大小

(2)准备镜像

使用xftp往192.168.56.11主机里上传一个centos镜像

[[email protected] /opt]# ll /opt/CentOS-7-x86_64-DVD-1511.iso 
-rw-r--r-- 1 qemu qemu 4329570304 Sep  4 01:55 /opt/CentOS-7-x86_64-DVD-1511.iso

(3)使用virt-install工具安装虚拟机

virt-install其实就是一个python写的脚本 。它是qemu-kvm工具的人性化实现。可以利用该工具在终端下创建KVM guest主机。

直接用yum安装

yum -y install virt-install
[[email protected] ~]# whereis virt-install
virt-install: /usr/bin/virt-install /usr/share/man/man1/virt-install.1.gz

[[email protected] ~]# cat /usr/bin/virt-install 
#!/bin/sh

exec "/usr/share/virt-manager/virt-install" "[email protected]"


[[email protected] ~]# more /usr/share/virt-manager/virt-install
#!/usr/bin/python2 -tt
#
# Copyright 2005-2014 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.

安装kvm guest主机

virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 2048 --cdrom=/opt/CentOS-7-x86_64-DVD-1511.iso --disk path=/opt/CentOS-7-x86_64.raw --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

--virt-type kvm      #虚拟机类型是kvm
--name               #虚拟机名称
--ram                #内存
--cdrom              #磁盘镜像
--disk               #虚拟磁盘路径
--network            #默认是default,虚拟机装好后,用此网段的地址
--graphics           #使用的图形界面
--noautoconsole      #使用本选项指定不自动试图连接到客户机控制台

执行完成后,会有如下提示

Starting install...
Creating domain...
Domain installation still in progress.You can reconnect to
the console to complete the installation process.

查看系统的端口占用情况

netstat -lntp|grep 5900

vnc的端口是从5900开始的。使用vnc连接时,默认不用输入端口号

使用vnc连接后,进入CentOS7的安装界面

CentOS7安装时,默认的网卡名称不是eth0,为了标准化,在安装之前,先修改网卡名称。进入安装界面后,敲击tab键,来进行修改

在vmlinuz initrd=initrd.img......语句后面添加
net.ifnames=0 biosdevname=0

往下的步骤就是安装操作系统,选择时区、语言、密码、软件最小安装、分区等等,这些步骤可以在网上查到,不再详述。

安装完后点击reboot

注意: 注意: 注意:新安装的虚拟机它是无法启动的。

(4)使用virt工具管理虚拟机

显示虚拟机

[[email protected] ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     CentOS-7-x86_64                shut off


virsh list --all  #显示本地所有的虚拟机(活动的+不活动的)
virsh list        #显示本地活动虚拟机

启动虚拟机

[[email protected] ~]# virsh start CentOS-7-x86_64
Domain CentOS-7-x86_64 started


[[email protected] ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     CentOS-7-x86_64                running

再次使用TightVNC连接虚拟机,这时可以连接。

由于是最小化安装,所以很多软件包都没有安装,先配置网卡,调通网络,进行yum安装。

(5)配置虚拟机网卡

配置网卡

[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_PEERDNS=yes
#IPV6_PEERROUTES=yes
#IPV6_FAILURE_FATAL=no
NAME=eth0
#UUID=b662ea05-2764-49e2-9eba-94c4fff38456
DEVICE=eth0
ONBOOT=yes
[[email protected] ~]# ip ad li
1: lo:mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:45:2f:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.22/24 brd 192.168.122.255 scope global dynamic eth0
       valid_lft 2920sec preferred_lft 2920sec
    inet6 fe80::5054:ff:fe45:2f9d/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0:mtu 1500 qdisc noqueue state DOWN 
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.124.1/24 brd 192.168.124.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic:mtu 1500 qdisc pfifo_fast state DOWN qlen 500
    link/ether 52:54:00:13:0d:2e brd ff:ff:ff:ff:ff:ff
[[email protected] ~]#

这样就可以yum安装软件了

yum install net-tools

yum install vim screen mtr nc nmap tree lrzsz openssl-devel gcc glibc gcc-c++ make zip dos2unix systat

(6)进程分析

[[email protected] ~]# ps -ef|grep kvm
root        844      2  0 Sep04 ?        00:00:00 [kvm-irqfd-clean]
qemu      17214      1 12 14:58 ?        00:02:13 /usr/libexec/qemu-kvm -name CentOS-7-x86_64 -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -cpu Nehalem -m 2048 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 317f5d1e-6fd1-47f3-bb86-fa4505d3ef30 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-CentOS-7-x86_64/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/opt/CentOS-7-x86_64.raw,if=none,id=drive-virtio-disk0,format=raw -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive if=none,id=drive-ide0-0-0,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=23,id=hostnet0,vhost=on,vhostfd=24 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:45:2f:9d,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-CentOS-7-x86_64/org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -device usb-tablet,id=input0 -vnc 0.0.0.0:0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on
root      17219      2  0 14:58 ?        00:00:00 [kvm-pit/17214]
root      17593  17549  0 15:16 pts/3    00:00:00 grep --color=auto kvm

通过查看进程我们可以看到,我们启动的一个虚拟机,从宿主机的角度看,就是启动了一个进程,这个进程通过qemu用户启动。

如果我们kill掉这个进程,虚拟机就像断电一样,关机了。

三、虚拟化管理工具介绍

1、Libvirt介绍

libvirt可以管理的虚拟化:
Xen
KVM
VMware
VirtualBox
Hyper-V

libvirt需要后台启动一个libvirtd进程

如果停止了libvirtd进程,虚拟机仍然运行。这说明libvirtd进程停止后,虚拟机会独立运行,但不再受libvirt管理。

2、libvirt管理虚拟机

进入/etc/libvirt/qemu目录,我们可以看到一个xml文件

[[email protected] /etc/libvirt/qemu]# ll
total 4
-rw------- 1 root root 3886 Sep  4 02:51 CentOS-7-x86_64.xml
drwx------ 3 root root   40 Sep  4 02:29 networks
[[email protected] /etc/libvirt/qemu]#

libvirt是通过这个xml文件来管理虚拟机的

[[email protected] /etc/libvirt/qemu]# vim CentOS-7-x86_64.xml 


WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit CentOS-7-x86_64
or other application using the libvirt API.
这段话是说,这个文件是自动生成的,而且不能更改。
如果想编辑,需要使用virsh edit CentOS-7-x86_64
或者调用libvirt API

3、virsh常用参数

当我们需要使用virsh来执行某个命令时,需要使用virsh --help来查看virsh提供哪些参数及功能。

备份xml文件

[[email protected] /etc/libvirt/qemu]# virsh dumpxml CentOS-7-x86_64 > backup.xml
[[email protected] /etc/libvirt/qemu]# ls
backup.xml  CentOS-7-x86_64.xml  networks

关闭虚拟机

virsh shutdown CentOS-7-x86_64

启动虚拟机

virsh start CentOS-7-x86_64

挂起虚拟机

virsh suspend CentOS-7-x86_64

恢复虚拟机

virsh resume CentOS-7-x86_64

创建快照

virsh snapshot-create CentOS-7-x86_64

注意:raw格式不支持创建快照

virsh snapshot-list  #查看快照

以上可以对比vmware workstation的功能

4、虚拟机调优

(1)cpu调整

修改cpu数量

在使用virt-install安装虚拟机时就可以指定cpu个数

[[email protected] ~]# virt-install --help|grep cpu
  --vcpus VCPUS         Number of vcpus to configure for your guest. Ex:
                        --vcpus 5
                        --vcpus 5,maxcpus=10,cpuset=1-4,6,8
                        --vcpus sockets=2,cores=4,threads=2,
  --cpu CPU             CPU model and features. Ex:
                        --cpu coreduo,+x2apic
                        --cpu host
使用--vcpus可以指定客户机cpu的个数
可以实现动态修改
但是不能超过cpu个数最大值

修改cpu个数

编辑xml文件
[[email protected] /etc/libvirt/qemu]# virsh edit CentOS-7-x86_64<vcpu placement=‘auto‘ current="1">4</vcpu>把原来文件中的static改成auto,添加current="1",再把原来值由1改为4
<vcpu placement=‘auto‘ current="1">4</vcpu>

修改后,重启客户机

virsh shutdown CentOS-7-x86_64
virsh start CentOS-7-x86_64

然后再执行如下命令即可

virsh setvcpus CentOS-7-x86_64 2 --live

(2)内存调整

修改

virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd balloon 512

查看

virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon

登录到客户机执行free -m查看是否与修改的一致。

扩容有风险,操作需谨慎


本文出自 “JackyWang” 博客,请务必保留此出处http://jackyxin.blog.51cto.com/1976631/1851363

kvm的安装与基本使用(代码片段)

目录文章目录目录HostOS配置优化安装CentOSGNOME图形界面相关安装包及其作用安装KVMvirsh指令Libvirt/KVM的网络模式1、vSwitch使用Bridge模式2、vSwitch使用NAT模式3、vSwitch使用Routed模式4、vSwitch使用Isolated模式测试虚拟机及网络连通性HostOS... 查看详情

centos7kvm的安装与配置及创建虚拟机

我是在VMwareWorkation上做的实验进入到系统后,关闭iptables或者firewalld,关闭selinux。并且检查cpu参数是否支持虚拟化:[[email protected]~]#systemctlstopfirewalld[[email protected]~]#systemctlstopiptables[[email protected]~]# 查看详情

2018kvm(代码片段)

目录一、在windowsserver12上安装iscsi服务二、KVM宿主机的配置1、安装iscsi客户端插件分区2.1用fdisk分区2.2用parted进行分区2.3挂载ISCSI三、Centos7.5上安装kvm1、首先确定CPU开启虚拟化支持2、关闭centos自带的防火墙3、查看是否支持虚拟机... 查看详情

kvm的配置安装

云计算是一种模式支持按需付费的方式,存在公有云,私有云,混合云等,还有云计算的模式是基于虚拟化技术产生的。当起8个多实例的tomcat和起8个虚拟机每个虚拟机跑一个tomcat的区别是:tomcat只见互不影响。便于管理。kvm与q... 查看详情

部署kvm虚拟化平台(代码片段)

...主机上的镜像,后面再用mount.cifs//192.168.142.1/ISO/mnt第三步:安装KVM#安装桌面环境组件包yumgroupinstall"GNOMEDesktop"-y#安装KVM模块yuminstallqemu-kvm-y#安装KVM调试工具yuminstallqemu-kvm-tools-y#安装构建虚拟机的命令行工具yuminstall 查看详情

centos7.4——kvm虚拟化一安装配置及基本操作

KVM的安装配置与基本操作目录第一部分实验环境第二部分安装图形界面第三部分配置KVM虚拟化第四部分创建桥接网卡第五部分KVM虚拟环境中安装系统第六部分克隆第七部分其它命令第一部分实验环境Linux服务器一台IP地址:192.168.... 查看详情

kvm虚拟机的日常管理与配置(代码片段)

...行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVMlinux虚拟机必须配置此服务。#chkconfigacpidon#serviceacpidrestartvirsh关机#virshshutdownoeltest01 (2)强制关闭电源#virshdestroywintest014.通过配置文件启动虚拟机#virshcreate/etc/libvirt/... 查看详情

kvm虚拟机安装与使用

一、安装KVM安装KVM模块、管理工具、libvirt命令行安装     [[email protected]~]#yuminstall-ykvmvirt-managerlibvirt     注:      KVM:虚拟化模块& 查看详情

centos7上安装并配置kvm,以及通过kvm安装centos系统(代码片段)

笔记内容:CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统笔记日期:2018-03-0728.5Centos7上安装KVM28.6配置网卡28.7创建虚拟机安装CentOS728.8虚拟机管理Centos7上安装KVM首先我们需要一台配置较高的CentOS7虚拟机,当然用物理机也可以... 查看详情

centos6的kvm安装和配置

kvm安装和配置宿主机环境:Centos6.6最近在玩kvm,小小总结一下。1、检查CPU是否支持KVM需要有CPU的支持(IntelVT或AMDSVM),在安装KVM之前检查一下CPU是否提供了虚拟技术的支持:#egrep‘vmx|svm‘/proc/cpuinfo#modprobe-ls|grepkvm #查看内核... 查看详情

kvm安装与使用

一:基础:1安装yumgrouplist yum -ygroupinstall"虚拟化""虚拟化平台" "虚拟化工具""虚拟化客户端" Virtualization虚拟化VirtualizationClient 虚拟化客户端VirtualizationTools 虚拟化工具VirtualizationPlatform 虚拟化平台 查看详情

如何为ubuntu15.04安装和配置kvm

...统体系架构。说了这么多,我们就来看看如何为Ubuntu15.04安装和配置KVM。验证CPU是否支持硬件虚拟化要跑KVM必需要确保你Linux系统所在的CPU是支持硬件虚拟化的,不然将无法正常使用。我们可以在终端中执行如下命令进行验证:eg... 查看详情

kvm安装与使用(代码片段)

官方文档:https://www.linux-kvm.org/page/Documents安装桌面环境和虚拟化主机yumgroupinstall-y"GNOME桌面""虚拟化主机""virtualization-platform""network-file-system-client""remote-system-management"#查看虚拟化主机组信息yumgroupinfo"虚拟化主机"设 查看详情

centos7kvm的安装与部署

一、安装kvm 1、安装kvm和必要的包yuminstallqemu-kvmqemu-imgvirt-managerlibvirtlibvirt-pythonpython-virtinstlibvirt-clientvirt-installvirt-viewer 2、启用libvirtd服务与设置开机启动systemctlstartlibvirtdsystemctlenable 查看详情

kvm虚拟化安装配置及克隆管理

一、安装图形界面二、配置KVM虚拟化三、创建桥接网卡四、KVM环境中安装系统五、克隆六、其他命令实验拓扑:母机CentosLinux7.4:192.168.80.100虚拟机CentosLinux7.4:192.168.80.111克隆机CentosLinux7.4:192.168.80.112Win10真机:192.168.80.88安装环境:se... 查看详情

安装kvm模块配置网络

1.vmware安装centos6.664位(略) 其中有几个注意的地方:a.内存给2gb.磁盘给50g,或者再单独分一个磁盘,用来存储虚拟机文件c.最关键的一步,在创建虚拟机时,cpu是需要配置一下虚拟化的如图2.  安装kvm前的准备工作a.清... 查看详情

安装配置kvm虚拟机(代码片段)

...要在虚拟机配置界面的处理器选项中开启虚拟机化功能。安装KVM工具包[root@localhost~]#yum-yinstallqemu- 查看详情

kvm虚拟机安装配置

原创博文安装配置KVMhttp://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvmhttp://www.cnblogs.com/elvi/p/7718582.htmlkvm系统安装http://www.cnblogs.com/elvi/p/7718623.htmlKVM克隆&快照http://www.cnblogs.com/elvi/p/771862 查看详情