Linux虚拟化——KVM安装步骤
- 格式:doc
- 大小:2.57 MB
- 文档页数:27
KVM安装步骤及基本操作KVM(Kernel-based Virtual Machine)是一种基于Linux内核的开源虚拟化技术,可以将服务器硬件资源划分为多个虚拟机来运行不同的操作系统。
安装KVM的步骤及基本操作如下:1.系统要求在安装KVM之前,需要确保系统满足以下要求:-64位操作系统- 支持虚拟化技术的CPU(例如Intel的VT-x或AMD的AMD-V)-至少4GB的内存-大于40GB的可用磁盘空间- 安装了最新的Linux内核2.安装KVM软件包首先,使用适用于你的Linux发行版的软件包管理器来安装KVM软件包。
例如,在Ubuntu上可以使用apt命令:```sudo apt updatesudo apt install qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils```3.启用虚拟化扩展4.创建网络桥接KVM使用网络桥接来连接虚拟机和物理网络。
创建网络桥接需要使用bridge-utils软件包。
在终端中执行以下命令创建桥接网络:```sudo brctl addbr br0sudo brctl addif br0 ens33```其中,ens33是你的物理网络接口的名称。
可以使用ip a命令查看你的接口名称。
5.配置网络连接```sudo nano /etc/network/interfaces```在文件中添加以下行来配置网络桥接:```auto br0iface br0 inet dhcpbridge_ports ens33保存文件并退出。
6. 启动libvirt服务执行以下命令启动libvirt服务:```sudo systemctl start libvirtdsudo systemctl enable libvirtd```7.创建虚拟机使用virt-install命令创建虚拟机。
KVM--安装及初步使⽤KVM是Kernel-based Virtual Machine的简称,是⼀个开源的虚拟化模块,今天我将在CentOS7的操作系统上安装KVM,以下是我的安装步骤.⼀.环境信息系统: CentOS 7.2 IP: 10.0.0.12/24在虚拟机安装时,需要启⽤CPU的虚拟化功能⼆. KVM安装步骤1. 安装qemu-kvm和libvirt[root@kvm-node1 ~]# yum install -y qemu-kvm libvirt ###qemu-kvm⽤来创建虚拟机硬盘,libvirt⽤来管理虚拟机2. 安装virt-install[root@kvm-node1 ~]# yum install -y virt-install ###⽤来创建虚拟机3. 启动libvirtd,并将它设为开机启动,启动后使⽤ifconfig查看,发现会多出来⼀块virbr0的⽹卡,ip默认为192.168.122.1/24,说明libvirtd启动成功,如果默认没有ifconfig命令,使⽤yuminstall -y net-tools安装[root@kvm-node1 ~]# systemctl start libvirtd && systemctl enable libvirtd[root@kvm-node1 ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.0.0.12 netmask 255.255.255.0 broadcast 10.0.0.255inet6 fe80::5505:5aa:3f96:f3f8 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:51:09:70 txqueuelen 1000 (Ethernet)RX packets 22459 bytes 29147955 (27.7 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 5161 bytes 587757 (573.9 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1 (Local Loopback)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 52:54:00:fb:b1:55 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0经过以上三步,KVM安装成功,下⾯开始使⽤KVM创建虚拟机.三. 使⽤KVM创建虚拟机(CentOS7)1. 使⽤qemu命令创建⼀个10G的硬盘(最⼩10,G,可以更多),硬盘的名称为: CentOS-7-x86_64.raw[root@kvm-node1 ~]# qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10GFormatting '/opt/CentOS-7-x86_64.raw', fmt=raw size=10737418240[root@kvm-node1 ~]# ll -h /opttotal 0-rw-r--r-- 1 root root 10G Aug 2207:59 CentOS-7-x86_64.raw2. 使⽤virt-install创建名称为CentOS-7-x86_64的虚拟机,在创建之前,先上传⼀个CentOS7的ISO镜像,最好在根⽬录下创建⼀个ISO的⽬录⽂件夹[root@kvm-node1 ~]# virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 1024 --cdrom=/ISO/CentOS-7-x86_64-Everything-1611.iso --disk path=/opt/CentOS-7-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 Starting install...Creating domain... | 0 B 00:03Domain installation still in progress. You can reconnect tothe console to complete the installation process.这时候使⽤TightVNC⼯具,连接主机IP 10.0.0.12,设置安装操作系统的⽹卡名称为eth0,如图所⽰安装步骤和我们平时安装操作系统的⽅法⼀样,安装完成后,可以使⽤virsh list --all显⽰KVM上所有的虚拟机[root@kvm-node1 ~]# virsh list --allId Name State----------------------------------------------------- CentOS-7-x86_64 shut off ### 可以看到虚拟机的名称和状态四. 管理KVM1. 使⽤virsh启动KVM中的虚拟机[root@kvm-node1 ~]# virsh start CentOS-7-x86_64Domain CentOS-7-x86_64 started启动后,使⽤VNC连接⼯具,登录后可以看到⽹卡的名称为eth0,默认没有ip地址,是因为⽹卡没有激活,将ONBOOT改为yes,重启⽹卡,可以看到ip地址为192.168.122.0⽹段的当KVM中的虚拟机启动后,可以在/etc/libvirt/qemu⽬录下,看到启动的虚拟机的信息[root@kvm-node1 ~]# cd /etc/libvirt/qemu[root@kvm-node1 qemu]# pwd/etc/libvirt/qemu[root@kvm-node1 qemu]# ls -lhtotal 4.0K-rw------- 1 root root 3.8K Aug 2208:18 CentOS-7-x86_64.xmldrwx------ 3 root root 42 Aug 2207:51 networksCentOS-7-x86_64.xml就是启动的虚拟机的信息,当我们使⽤vim编辑器查看时,会提⽰如下信息:<!--WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BEOVERWRITTEN AND LOST. Changes to this xml configuration should be made using:virsh edit CentOS-7-x86_64or other application using the libvirt API.-->看到提⽰需要修改虚拟机的信息,需要使⽤命令 virsh edit CentOS-7-x86_64,是⽤这条命令后,我们可以看到很多虚拟机的信息,包括vcpu,memory等2. CPU热添加(KVM⽀持CPU的热添加,不过局限是宿主机和虚拟机的系统相同才⾏,这⾥宿主机是CentOS7,虚拟机也是CentOS7,所以可以模拟CPU热添加,不过真实⽣产环境不建议这样操作)[root@kvm-node1 ~]# virsh edit CentOS-7-x86_646 <vcpu placement='static'>1</vcpu> 修改为:<vcpu placement='auto' current="1">4</vcpu>##意思是当前cpu为1核,最多可以有4核,修改完虚拟机的配置⽂件,必须关闭虚拟机再启动,配置才能⽣效[root@kvm-node1 ~]# virsh shutdown CentOS-7-x86_64 ##关闭虚拟机Domain CentOS-7-x86_64 is being shutdown[root@kvm-node1 ~]# virsh list --all ##查看虚拟机状态Id Name State----------------------------------------------------- CentOS-7-x86_64 shut off[root@kvm-node1 ~]# virsh start CentOS-7-x86_64 ##启动虚拟机Domain CentOS-7-x86_64 started[root@kvm-node1 ~]# virsh list --allId Name State----------------------------------------------------3 CentOS-7-x86_64 running先通过VNC⼯具查看虚拟机的cpu信息在宿主机上通过命令添加核数[root@kvm-node1 ~]# virsh setvcpus CentOS-7-x86_64 2 --live ##虚拟机的cpu添加到2core再通过VNC⼯具查看虚拟机CPU信息3. 内存热添加(还是不建议⽣产中使⽤,知道功能就⾏了)通过VNC连接虚拟机,查看虚拟机内存[root@kvm-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon ## 查看当前虚拟机的内存balloon: actual=1024[root@kvm-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd balloon 512 ## 修改当前虚拟机的内存为512 [root@kvm-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon ## 查看修改的内存信息已经改变成了512 balloon: actual=512使⽤VNC⼯具连接虚拟机,查看内存是否有变:4. ⽹卡配置(如何将KVM虚拟机中的⽹卡改为桥接模式,让局域⽹的其他⽤户可以正常访问)[root@kvm-node1 ~]# brctl show ##查看已有⽹桥bridge name bridge id STP enabled interfacesvirbr0 8000.525400fbb155 yes virbr0-nicvnet0创建⼀个脚本,删除ens33⽹卡的ip信息,新建⼀个桥接⽹卡,并且将ens33⽹卡的ip信息富裕新建的桥接⽹卡[root@kvm-node1 ~]# vim br0.sh#!/bin/bashbrctl addbr br0 #创建⼀个桥接⽹卡br0brctl addif br0 ens33 #将ens33⽹卡的桥接信息转到br0⽹卡ip addr del dev ens33 10.0.0.12/24 #将ens33⽹卡的ip信息删除ifconfig br0 10.0.0.12/24 up #将ens33⽹卡的ip信息这只到br0⽹卡上route add default gw 10.0.0.2 #添加⽹关[root@kvm-node1 ~]# chmod u+x br0.sh[root@kvm-node1 ~]# ./br0.sh使⽤ifocnfig查看⽹卡的ip信息,可以看到br0的地址已经变为了10.0.0.12/24[root@kvm-node1 ~]# ifconfigbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.0.0.12 netmask 255.255.255.0 broadcast 10.0.0.255inet6 fe80::20c:29ff:fe51:970 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:51:09:70 txqueuelen 1000 (Ethernet)RX packets 553 bytes 41723 (40.7 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 680 bytes 63511 (62.0 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet6 fe80::5505:5aa:3f96:f3f8 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:51:09:70 txqueuelen 1000 (Ethernet)RX packets 6107998 bytes 8708309251 (8.1 GiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 534420 bytes 68906654 (65.7 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1 (Local Loopback)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 52:54:00:fb:b1:55 txqueuelen 1000 (Ethernet)RX packets 6685 bytes 278745 (272.2 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 6981 bytes 34351624 (32.7 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet6 fe80::fc54:ff:fe6b:5fee prefixlen 64 scopeid 0x20<link>ether fe:54:00:6b:5f:ee txqueuelen 1000 (Ethernet)RX packets 16 bytes 1650 (1.6 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 987 bytes 52236 (51.0 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0使⽤命令修改KVM虚拟机的信息[root@kvm-node1 ~]# virsh edit CentOS-7-x86_6469 <interface type='network'> 修改为:<interface type='bridge'> ##桥接71 <source network='default'/> 修改为:<source bridge='br0'/>修改完成后关闭虚拟机,启动虚拟机,通过VNC⼯具修改ip为10.0.0.14/24,尝试ping宿主机是否可以ping通,并通过ssh连接[root@kvm-node1 ~]# virsh shutdown CentOS-7-x86_64Domain CentOS-7-x86_64 is being shutdown[root@kvm-node1 ~]# virsh start CentOS-7-x86_64Domain CentOS-7-x86_64 started通过本地的ssh软件,尝试连接,可以连接,并且可以看到IP信息以上就是CentOS7中KVM的安装和简单管理.。
银河麒麟服务器操作系统KVM 虚拟化软件适配手册目录1概述 (2)1.1系统概述 (2)1.2环境概述 (2)1.3VIRT-MANAGER 及相关软件简介 (2)1.4VIRT-MANGER 架构及原理 (2)1.4.1KVM (3)1.4.2QEMU (3)1.4.3LIBVIRT (3)2VIRT-MANAGER 使用方法 (4)1)安装VIRT-MANAGER 及相关软件 (4)2)配置LIBVIRT (4)3)启动LIBVIRT 服务 (4)4)启动VIRT-MANAGER (4)5)创建存储池 (4)6)创建虚拟机 (6)7)启动虚拟机 (14)8)关闭虚拟机 (14)9)添加虚拟设备 (14)1概述1.1系统概述银河麒麟服务器操作系统主要面向军队综合电子信息系统、金融系统以及电力系统等国家关键行业的服务器应用领域,突出高安全性、高可用性、高效数据处理、虚拟化等关键技术优势,针对关键业务构建的丰富高效、安全可靠的功能特性,兼容适配长城联想、浪潮、华为、曙光等国内主流厂商的服务器整机产品,以及达梦、金仓、神通、南大通用等主要国产数据库和中创、金蝶、东方通等国产中间件,满足虚拟化、云计算和大数据时代,服务器业务对操作系统在性能、安全性及可扩展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服务器操作系统。
1.2环境概述1.3virt-manager 及相关软件简介virt-manager 是虚拟机管理器(Virtual Machine Manager)应用程序的缩写,也是管理工具的软件包名称。
是用于管理虚拟机的图形化的桌面用户接口。
其工作流程依赖libvirt 的API 实现,能够提供诸如虚拟机生命周期管理,虚拟机CPU,内存,磁盘,网卡,显卡,终端等虚拟资源的管理功能。
virsh 是用于管理虚拟化环境中的客户机和Hypervisor 的命令行工具,与virt-manager 等工具类似,它也是通过libvirt API 来实现虚拟化的管理。
如何在Linux系统中安装虚拟化软件在Linux系统中安装虚拟化软件可以帮助我们创建和管理虚拟机,实现有效的资源利用和灵活的应用部署。
本文将介绍如何在Linux系统中安装虚拟化软件,以供读者参考。
一、了解虚拟化软件虚拟化软件是一种能够模拟硬件和操作系统功能的软件,可以在一台物理主机上创建多个虚拟机实例。
常见的虚拟化软件包括VMware、VirtualBox、KVM等,本文以KVM为例进行介绍。
二、准备工作在安装虚拟化软件之前,需要确保Linux系统已经安装了KVM相关的软件包,并且系统的硬件支持虚拟化。
1. 检查系统是否支持虚拟化打开终端,输入以下命令检查CPU是否支持虚拟化技术:```shellgrep -E "(vmx|svm)" /proc/cpuinfo```如果有输出结果,则表示系统支持虚拟化。
如果没有输出结果,则表示系统不支持虚拟化,需要更换支持虚拟化的CPU或启用虚拟化选项。
2. 检查KVM相关软件包是否已安装打开终端,输入以下命令检查KVM相关软件包是否已安装:```shelldpkg -l | grep kvm```如果没有输出结果,表示KVM相关软件包未安装,可以通过以下命令安装:```shellsudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager```三、安装虚拟化软件在系统准备工作完成后,即可开始安装虚拟化软件。
1. 安装KVM打开终端,输入以下命令安装KVM:```shellsudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager```安装过程中,系统可能会要求输入管理员密码,根据提示进行操作。
KVM虚拟化(一)——介绍与简单使用KVM(Kernel-based Virtual Machine)是一种基于Linux内核的开源虚拟化技术,它允许在一台物理服务器上运行多个虚拟机。
KVM使用了Linux内核的虚拟化扩展,支持x86、x86-64、ARM等处理器架构。
KVM的核心思想是将Linux内核转化为一个虚拟化的管理层,这个管理层被称为Hypervisor。
Hypervisor负责管理虚拟机的创建、销毁和调度,同时它也负责为虚拟机提供一些虚拟设备,如虚拟CPU、虚拟内存、虚拟磁盘等。
KVM虚拟机运行在用户空间下,由Linux内核作为宿主机。
KVM的优势包括:1.性能高效:由于KVM直接运行在硬件上,因此虚拟机与宿主机几乎没有性能差异。
2. 安全可靠:KVM利用Linux内核的安全机制,可以隔离虚拟机之间,提供更高的安全性。
3. 灵活性:KVM虚拟机能够支持多种操作系统,如Linux、Windows、FreeBSD等。
4. 易于管理:KVM提供了丰富的管理工具,如virsh和virt-manager,可以方便地创建、配置和监控虚拟机。
下面我们来看一下KVM的简单使用。
首先需要确认宿主机是否支持KVM虚拟化。
可以通过以下命令来确认:```shellegrep -c '(vmx,svm)' /proc/cpuinfo```如果输出结果大于0,则表示宿主机支持KVM虚拟化。
接下来,我们需要安装KVM软件包。
在大多数Linux发行版中,kvm 和libvirt已经默认安装。
如果没有安装,可以通过以下命令来安装:```shellsudo apt-get install qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils```安装完成后,我们可以通过以下命令来确认KVM是否安装成功:```shellvirsh list```如果输出结果是空的,则表示KVM安装成功。
linux虚拟化常用命令当谈到Linux虚拟化,我们可以提到许多常用命令。
虚拟化技术允许在一台物理主机上运行多个虚拟机实例,这使得服务器资源能够更有效地使用。
在本文中,我们将介绍一些常用的Linux虚拟化命令,并逐步回答以下主题:如何创建和管理虚拟机、如何配置网络、如何迁移虚拟机以及如何监视和管理虚拟化环境。
1. 创建和管理虚拟机在Linux虚拟化中,最常用的工具之一是KVM(Kernel-based Virtual Machine)。
使用KVM,我们可以通过以下步骤创建和管理虚拟机:- 安装和配置KVM:首先,我们需要在Linux主机上安装KVM软件包。
在大多数基于Debian的发行版上,可以使用apt-get包管理器来安装KVM。
然后,我们需要确保主机的处理器具有硬件虚拟化扩展(如Intel VT或AMD-V)。
最后,我们需要加载KVM内核模块,这可以通过使用modprobe命令来实现。
- 创建虚拟机:一旦安装和配置了KVM,我们就可以使用virt-install 命令创建虚拟机。
该命令允许我们指定虚拟机的名称、磁盘映像、内存和处理器的数量等参数。
- 启动和停止虚拟机:使用virsh命令行工具可以启动和停止虚拟机。
例如,要启动一个名为"vm1"的虚拟机,我们可以使用以下命令:virsh start vm1。
同样,使用virsh destroy vm1命令可以停止该虚拟机。
- 管理虚拟机:KVM还提供了一些其他命令,可以用于管理虚拟机。
例如,使用virsh list命令可以列出当前运行的虚拟机。
使用virsh edit 命令可以编辑虚拟机的配置文件。
使用virsh migrate命令可以迁移虚拟机到其他物理主机。
2. 配置网络网络配置是在虚拟化环境中的另一个重要方面。
下面是一些常用的命令,可以用来配置Linux虚拟机的网络:- ifconfig命令:它用于配置和管理网络接口。
linux下配置和安装KVM虚拟机的步骤最近要在外⽹搞⼀套监控系统,正好有⼀台服务器配置⽐较⾼,也没跑什么重要的业务,就拿来划了⼀个KVM虚拟机,可能是平时各种虚拟机⽤的⽐较多,配置起来感觉⽐想象中简单的多,简单记录下过程准备⼯作宿主机为centos 6.8 64位,检查宿主机CPU是否⽀持虚拟化:cat /proc/cpuinfo | egrep '(vmx|svm)' | wc -l;结果⼤于0表⽰⽀持安装kvmKVM核⼼软件包:复制代码代码如下:yum install kvm libvirt python-virtinst qemu-kvm virt-viewer bridge-utils如果服务器上有桌⾯环境,想使⽤图形界⾯管理器virt-manager,可以安装完整的KVM环境:复制代码代码如下:yum groupinstall Virtualization 'Virtualization Client' 'Virtualization Platform' 'Virtualization Tools'验证内核模块是否加载:lsmod | grep kvm启动虚拟机管理接⼝服务:/etc/init.d/libvirtd start设置开机启动:chkconfig libvirtd on启动libvirtd后,会⾃动创建了⼀个⽹卡,并启动dnsmasq服务,⽤来为虚拟机分配IP地址创建虚拟机下载虚拟机要安装的ISO系统镜像⽂件,之后需创建存储池,指定在宿主机上虚拟机磁盘的存储位置,创建存储⽬录:mkdir -p /opt/kvm定义⼀个储存池和绑定⽬录:virsh pool-define-as vmspool --type dir --target /opt/kvm建⽴并激活存储池:virsh pool-build vmspoolvirsh pool-start vmspool使⽤存储池创建虚拟机,并通过vnc连接:virt-install \--hvm \ #全虚拟化--name=zabbix \#虚拟机名字--ram=4096 \ #分配内存--vcpus=4 \ #分配CPU数--cdrom=/opt/kvm/iso/CentOS-7-x86_64-DVD-1511.iso \ #使⽤的ISO--virt-type=kvm \ #虚拟机类型--disk path=/opt/kvm/zabbix.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=100 \ #磁盘⼤⼩,格式--network netwrok=default \ #⽹络设置,defalut为NAT模式--accelerate \ #KVM内核加速--graphics vnc,listen=0.0.0.0,port=5922,password=123123\ #vnc配置--force \--autostart之后使⽤vnc客户端连接宿主机IP:5922,即可使⽤图形安装系统;也可以选择nographics模式,⽆需vnc在命令⾏下安装,建议使⽤vnc安装完成后会⽣成:虚拟机的配置⽂件:/etc/libvirt/qemu/zabbix.xml虚拟硬盘⽂件:/opt/kvm/zabbix.qcow2NAT⽹络配置⽂件:/etc/libvirt/qemu/networks/default.xml配置⽹络KVM可以配置两种:NAT⽹络: 虚拟机使⽤宿主机的⽹络访问公⽹,宿主机和虚拟机能互相访问,但不⽀持外部访问虚拟机桥接⽹络:虚拟机复⽤宿主机物理⽹卡,虚拟机与宿主机在⽹络中⾓⾊完全相同,⽀持外部访问配置NAT⽹络默认会有⼀个叫default的NAT虚拟⽹络,查看NAT⽹络:virsh net-list --all如果要创建或者修改NAT⽹络,要先编辑default.xml:virsh net-edit default重新加载和激活配置:virsh net-define /etc/libvirt/qemu/networks/default.xml启动NAT⽹络:virsh net-start defaultvirsh net-autostart default启动NAT后会⾃动⽣成⼀个虚拟桥接设备virbr0,并分配IP地址,查看状态:brctl show正常情况下libirtd启动后就会启动virbr0,并⾃动添加IPtables规则来实现NAT,要保证打开ip_forward,在/etc/sysctl.conf中:net.ipv4.ip_forward = 1sysctl -p启动虚机并设置⾃动获取IP即可,如果想⼿动指定虚拟机IP,要注意配置的IP需在NAT⽹段内配置桥接⽹络系统如果安装了桌⾯环境,⽹络会由NetworkManager进⾏管理,NetworkManager不⽀持桥接,需要关闭NetworkManger:chkconfig NetworkManager offchkconfig network onservice NetworkManager stopservice network start不想关闭NetworkManager,也可以在ifcfg-br0中⼿动添加参数"NM_CONTROLLED=no"创建⽹桥:virsh iface-bridge eth0 br0创建完后ifconfig会看到br0⽹桥,如果eth0上有多个IP,更改下相应的⽂件名,如:ifcfg-eth0:1改为ifcfg-br0:1编辑虚拟机的配置⽂件,使⽤新的⽹桥:virsh edit zabbix找到⽹卡配置,改为:<interface type='bridge'><mac address='52:54:00:7a:f4:9b'/><source bridge='br0'/><model type='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface>我是⽤的br0,为虚拟机添加多块⽹卡只需复制多个interface,并确保mac address和PCI地址不同即可重新加载配置:virsh define /etc/libvirt/qemu/zabbix.xml重启虚拟机:virsh shutdown zabbixvirsh start zabbix之后使⽤VNC连接虚拟机并设置下⽹络即可常⽤操作KVM相关操作都通过vish命令完成,参数虽然多,但是功能⼀⽬了然,很直观创建虚拟机快照:virsh snapshot-create-as --domain zabbix --name init_snap_1也可以简写成:virsh snapshot-create-as zabbix init_snap_1快照创建后配置⽂件在/var/lib/libvirt/qemu/snapshot/zabbix/init_snap_1.xml查看快照:snapshot-list zabbix删除快照:snapshot-delete zabbix init_snap_1排错1、ERROR Format cannot be specified for unmanaged storage.virt-manager 没有找到存储池,创建储存池即可2、KVM VNC客户端连接闪退使⽤real vnc或者其它vnc客户端连接kvm闪退,把客户端设置中的ColourLevel值设置为rgb222或full即可3、virsh shutdown ⽆法关闭虚拟机使⽤该命令关闭虚拟机时,KVM是向虚拟机发送⼀个ACPI的指令,需要虚拟机安装acpid服务:yum -y install acpid && /etc/init.d/acpid start否则只能使⽤virsh destroy 强制关闭虚拟机以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Linux KVM虚拟机PVE使用指南1引言KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。
使用 KVM 可允许多个包括 Linux 和 Windows 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等PVE使用图形化安装方式,支持裸机安装,管理界面是WEB方式,易于操作,浏览器(fireox,chrome等)支持JAVA即可以进行guest OS的图形管理,无须安装客户端,方便快捷。
本文将详细介绍PVE的安装,使用,部署优化等各方面的内容。
2KVM/QEMU体系架构2.1总体架构QEMU作为一个开源的硬件模拟器项目,除了支持x86体系架构之外,还支持ARM、MIPS、PowerPC、IA64等多种硬件架构。
QEMU采用模块化设计的方法,因此,还能支持多种多样的外设硬件,并且能够方便地进行扩充。
除了支持KVM之外,QEMU还支持全模拟化和kqemu加速模块等方式,这三种方式的架构区别如图5-6所示。
第一种模式是通过kqemu模块实现内核态的加速。
通过在内核中加入kqemu 的相关模块,在用户态的QEMU则通过访问/dev/kqemu设备文件接口调用改进型加速。
在这种模式中,主要针对虚拟机和宿主机运行于统一架构的情况下进行虚拟化。
第二种模式是在用户态直接运行QEMU,由QEMU对目标机的所有指令进行翻译后执行,相当于全虚拟化。
在这种模式下,可以运行各种不同形态的体系结构,如Android开发环境中即使用了QEMU来为其模拟ARM运行环境,但是在这种模拟环境下,每一条目标机的执行指令都需要耗费少则数个,多则成千上万个宿主机的指令周期来模拟实现,速度方面不太理想。
第三种模式则是KVM官方提供的kvm-qemu加速模式。
运行在内核态的KVM 模块通过/dev/kvm字符设备文件向外提供操作接口。
Centos7安装kvm虚拟机(centos6也可以)1.本教程以vmware虚拟机为例子,在其中的centos7虚拟机上安装kvm虚拟机首先开启虚拟化模块2.安装qemu-kvm 、libvirtyum install-y qemu-kvm libvirt,其中qemu-kvm用来创建虚拟机硬盘,libvirt 用来管理虚拟机qemu下载地址:https:///(多种版本)3.安装virt-install,yum -y install virt-install(virt-install用来创建虚拟机)4.启动libvirtd并且设置开机自启动,systemctl start libvirtd 、systemctl enable libvirtd5.创建虚拟机硬盘,(使用qemu来创建一个虚拟机硬盘,大小可以自定义),qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G,硬盘名称为CentOS-7-x86_64.raw,硬盘大小为10G6.也可以用qcow2格式,此格式支持快照但是速度没有raw的快,命令方式类似,qemu-img create -f qcow2 /opt/centos.qcow2 10G7.在根目录下创建一个文件夹iso,将centos7的镜像上传到此目录下8.利用virt-install 创建一个名称为CentOS-7-x86_64的虚拟机,内存为10249.virt-install --virt-type kvm --name=centos --ram 1024 --vcpus=16 --cdrom=/iso/centos.iso --disk path=/data2/centos.raw --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5988, --force--autostart10.如果启动报错:ERROR internal error: process exited while connecting to monitor: 2019-05-10T17:10:20.075431Z qemu-kvm: -drivefile=/root/window.iso,format=raw,if=none,id=drive-ide0-0-1,readonly=o n: could not open disk image /root/window.iso: Could not open'/root/window.iso': Permission deniedDomain installation does not appear to have been successful.If it was, you can restart your domain by running:virsh --connect qemu:///system start windowsotherwise, please restart your installation.表示权限不足可以编辑配置文件 vi /etc/libvirtd/qemu.conf文件取消#user=”root” #group=”root”注释然后重启libvirtd systemctl restart libvirtd11.其中--name表示名称,ram表示内存为1024M,--vcpus表示cpu核数,cdrom 表示镜像所在目录,disk表示创建的虚拟机硬盘位置,port指定哪个端口安装时通过vnc连接就用哪个端口连接,安装多台机器时可以指定不同的端口然后来分别安装不同的操作系统,--graphics表示指定图形界面工具表示安装成功12.接下来通过vnc来连接虚拟机进行安装,地址为宿主机地址,端口为5988(防火墙提前开放端口)如果报错提示如下:修改成rgb222连接即可13.然后开始正常的系统安装过程,不在赘述14.安装成功后可以通过命令virsh list --all上述表示虚拟机是关闭状态开启kvm虚拟机命令virsh start CentOS-7-x86_64,关闭虚拟机命令为virsh shutdown CentOS-7-x86_64 重启为virsh reboot CentOS-7-x86_64有的时候virsh shutdown 命令不能关闭虚拟机,此时要在虚拟机(不是宿主)内安装acpid软件并设置开机自启动,然后就可以执行shutdown|reboot来关闭和重启了了yum -y install acpidservice acpid startchkconfig acpid on如果想连接此虚拟机还是要通过vnc来连接登陆安装net-tools 安装后才可以执行ifconfig命令ip地址走的是宿主机的虚拟网卡virbr0,宿主机网卡如下:上图中的虚拟机默认的是nat模式,内部的虚拟机可以访问外部网络,但是外部网络无法访问内部的虚拟机(xshell无法连接),可以通过配置成桥接的方式来实现xshell连接内部虚拟机15.配置桥接网络:系统如果安装了桌面环境,网络由NetworkManager来管理,它不支持桥接网络,所以需要先关闭NetworkManager,一定要关闭,否则容易报错,配置完桥接后还要启动NetworkManager要不桌面无法使用,是黑屏状态。
KVM使用说明范文KVM,即Kernel-based Virtual Machine,是一种用于Linux平台的开源虚拟化架构。
它允许用户在Linux操作系统上创建和管理虚拟机,将一台物理服务器分割成多个独立的虚拟机,每个虚拟机可以运行自己的操作系统和应用程序。
KVM是基于Linux内核的模块化架构,利用硬件虚拟化支持来提供高性能的虚拟化解决方案。
一、KVM安装配置1.硬件要求在安装KVM之前,首先需要确保硬件满足以下条件:- 64位的处理器,支持硬件虚拟化扩展(如Intel的VT-x或AMD的AMD-V);-至少4GB的内存;-虚拟机使用的磁盘空间和网络带宽的要求根据具体需求确定。
2.操作系统要求KVM可以在多种Linux发行版上运行,包括Red Hat Enterprise Linux、CentOS、Ubuntu等。
3.安装KVM使用以下命令可以在Ubuntu上安装KVM:```sudo apt updatesudo apt install qemu-kvm libvirt-daemon-system virtinst bridge-utils```4.配置网络桥接在KVM中,可以选择使用桥接网络或NAT网络。
桥接网络可以使虚拟机直接连接到宿主机所连接的网络上,提供更好的网络性能和灵活性。
要配置网络桥接,首先需要创建一个网桥,可以使用以下命令:```sudo brctl addbr br0sudo brctl addif br0 eth0```其中,eth0是物理网卡的名称。
```auto br0iface br0 inet dhcpbridge_ports eth0bridge_stp offbridge_fd 0bridge_maxwait 0```重启网络服务以使配置生效:```sudo systemctl restart networking```5.创建和管理虚拟机使用virt-manager工具可以方便地创建和管理虚拟机,该工具提供了图形化的界面。
Linux虚拟化——KVM安装步骤1、先查看cpu是否支持kvmKVM 需要有 CPU 的支持(Intel vmx 或 AMD svm),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持:egrep '(vmx|svm)' --color=always /proc/cpuinfo如果输出的结果包含VMX,它是Intel处理器虚拟机技术标志:如果包含SVM,它是AMD 处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用KVM,另处linux发行版本必须在64bit环境中才能使用KVM。
2、BIOS中开启Virtual Technolege在主板BIOS中开启CPU的Virtual Technolege(VT,虚化技术),不同主板所在菜单不同例如:华硕主板开启虚拟化Intel主板开启虚拟化3、安装KVM服务器安装KVM 虚拟机和安装其他服务器一样,在选择操作系统类型是选择“Virtual Host”即可,其它步骤可参考“AiSchool平台安装指导”中操作系统安装部分。
如果使用此服务器管理其他KVM 主机,需要额外安装openssh-askpass 软件包。
注:(已安装好的操作系统,里面有重要资料无法重新安装的可以在已有的系统上安装如下软件包yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst openssh-askpass或者如下图,安装需要的组4、检查kvm模块是否安装使用以下命令显示两个模块则表示安装完成[root@vm76 ~]# lsmod | grep kvmkvm_intel 54285 0kvm 333172 1 kvm_intel以上表明安装完成5、配置宿主机1、关闭防火墙(如不用)chkconfig iptables offservice iptables stop2、执行如下命令打开文件selinux配置文件。
vi /etc/selinux/config将该文件中的参数SELINUX的取值修改为disabled。
SELINUX=disabled保存退出。
3、配置yum安装cd /etc/yum.repos.d/mv CentOS-Base.repo CentOS-Base.repo.bakvi CentOS-Media.repo请修改为红色部分(请根据系统版本进行修改)baseurl=file:///media/CentOS_6.5_Final/file:///media/cdrom/file:///media/cdrecorder/enabled=1保存退出,然后插入光盘,正常情况ls /media/CentOS_6.5_Final如出现以上信息则表明已自动加载光驱,如没有则运行以下命令手动加载mkdir -p /media/CentOS_6.5_Finalmount /dev/cdrom /media/CentOS_6.5_Final4、配置桥接vi /etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0BOOTPROTO=staticONBOOT=yesTYPE=BridgeIPADDR=192.168.111.76NETMASK=255.255.255.0GATEWAY=192.168.111.1DNS1=222.246.129.80修改以上IP、子网掩码、网关和DNS等vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0HWADDR=D4:3D:7E:72:7F:02BRIDGE=br0TYPE=EthernetUUID=80df0181-06d4-499c-a69d-2ce5233fa7cbONBOOT=yesNM_CONTROLLED=yes添加BRIDGE=br0,不在以上的可删除。
重启网络,使配置生效service network restart5、配置主机名vi /etc/hosts将该文件空行中添加如下内容,配置本地IP(192.168.111.76)和主机名(vm76)。
192.168.111.76 vm766、安装安装FTPyum -y install vsftpd以上配置完后,重启机器reboot6、virt-manager管理界面KVM管理工具为virt-manager,需要图形化管理。
服务器类型“VirtualHost”安装后没有图形化界面,安装虚拟机和管理虚拟机需要在windows pc上远程起图形化界面进行管理。
在其他linux服务器上(和KVM宿主机在同一局域网,网络连通)安装或者在KVM宿主机上安装。
yum install virt-manager*yum install openssh-askpass*双击启动windows pc上远程起图形化界面进行管理的操作如下:1、CRT配置2、pc机上安装xmingXming-6-9-0-31-setup.exe下载地址:/projects/xming/3、CRT退出,再次登录下,使配置生效在CRT上执行xhost +access control disabled, clients can connect from any hostvirt-manager点击文件---Add ConnectionHypervisor默认QEMU/KVM,勾选Connect to remote host,主机名:输入KVM宿主机IP地址,若需要启动virt-manager自动连接kvm宿主机,需要勾选Autoconnect,如果不需要自动连接则不需要勾选,点击“连接”按钮输入yes,点击“OK”按钮输入宿主机root密码,点击“OK”按钮连接成功,如下:7、宿主机KVM配置a、宿主机介绍1)、在virt-manager界面选择宿主机Ip地址,右键选择“Details”;2)、当前主机CPU和内存使用情况3)、虚拟机NAT模式下网络DHCP网络段和起止IP,我们是使用的网桥模式,非NAT 模式;b、虚拟机存储器配置1、修改虚拟机磁盘的默认格式默认是raw,修改为qcow22. 在storage只有default本地存储器3. 添加网络存储器,点击“+”按钮,填写添加存储器的名称,选择要添加存储器的类型,这里添加本地磁盘路径(首先到宿主机创建iso目录,mkdir -p /opt/iso),存储iso镜像文件4. 输入挂在的目录路径5. 可以看到刚添加的存储器上传CentOS6.5至/opt/iso目录下,点击Volumes后面刷新按钮,可以看到刚才上传的ISO文件。
8、KVM虚拟机创建a. 点击左上角“新建”创建虚拟机,在名称后填写新建虚拟机名称,选择安装操作系统方式,本次使用已上传到/opt/iso目录的ISO镜像文件。
点击“前进”按钮。
b. 选择使用ISO映像,点击“浏览”,在Storage点击ISO,选择CentOS6.5镜像,选择操作系统的类型和操作系统的版本信息,KVM上版本信息较少,选择大致一样即可。
点击“前进“。
c. 调整内存大小和虚拟CPU数量,根据虚拟机上服务对实际内存和CPU资源的消耗进行合理分配(建议所有虚拟机的总资源不大于物理资源)。
点击“前进“。
d. 勾选“在计算机硬盘中创建磁盘映像”选择硬盘的大小,根据实际需要选择虚拟硬盘大小;建议勾选立即分配整个磁盘;(选择管理的或者其它现有存储,这个可以在特定的分区先创建映像文件,然后再选择)。
点击“前进“。
e. 若在宿主机网络已配置bridge,网络默认选择br0,点击“完成“按钮。
f. 会出现如下安装界面。
之后为linux操作系统安装此处不再介绍(请参考“AiSchool平台安装指导”中操作系统安装部分)g、虚拟机挂载光驱h、修改IO缓存模式,点击“应用“,关机,启动使配置生效i、修改虚拟机的UTC时间配置,不然每次重启时间不对kvm虚拟机采用utc时间,需要先修改配置文件使用KVM虚拟机的时间与虚拟主机同步。
virsh edit aischool_wy_77把<clock offset='utc'/>修改为<clock offset='localtime'/>9、虚拟机维护a、图形界面点击虚拟机右键可以看到如下功能选择“打开“,可以维护虚拟机的各项配置b、命令行基本维护virsh命令管理,可交互式或直接运行如下命令(以下以虚拟机centos6.4_77为例)(注:在宿主机运行下面的命令)1、列出正运行的虚拟机virsh list2、启动一个虚拟机virsh start centos6.4_773、在启动宿主机器时开始[不开始]一个虚拟机virsh autostart [--disable] centos6.4_774、重启一个虚拟机virsh reboot centos6.4_775、虚拟机的状态可被保存到一个文件中以方便稍后恢复。
如下命令会将虚拟机的状态保存到一个以日期命名的文件中:virsh save centos6.4_77 centos77-20140409.state一旦保存,虚拟机将不再运行。
6、一个经保存后的虚拟机可以用如下命令唤醒:virsh restore centos77-20140409.state7、要关闭一个虚拟机,输入:virsh shutdown centos6.4_778、CDROM设备可以通过如下命令挂载到虚拟机上:virsh attach-disk centos6.4_77 /dev/cdrom /media/cdrom9、强制关闭电源virsh destroy centos6.4_7710、通过配置文件启动虚拟机virsh create /etc/libvirt/qemu/centos6.4_77.xml11、导出KVM虚拟机配置文件virsh dumpxml centos6.4_77 > /etc/libvirt/qemu/centos6.4_77.xml.bak12、删除kvm虚拟机(该命令只是删除centos6.4_77的配置文件,并不删除虚拟磁盘文件),注意先关闭虚拟机virsh undefine centos6.4_7713、重新定义虚拟机配置文件(通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机)mv /etc/libvirt/qemu/centos6.4_77.xml.bak /etc/libvirt/qemu/centos6.4_77.xml virsh define /etc/libvirt/qemu/centos6.4_77.xml14、编辑KVM虚拟机配置文件(virsh edit将调用vi命令编辑/etc/libvirt/qemu/centos6.4_77.xml配置文件。