安装KVM工具包以及用宿主创建多个虚拟机

2024-01-09 07:30

本文主要是介绍安装KVM工具包以及用宿主创建多个虚拟机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

yum install qemu-kvm qemu-kvm-tools libvirt libvirt-client virt-manager virt-install
ifconfig     virbr0 #验证是否生成NAT网卡virbr0

在这里插入图片描述

systemctl start libvirtd 启动libvirtd

systemctl enable libvirtd    设成开机自启动

在这里插入图片描述
类似于我们VMware中的某个网卡,如果在我们的VMware中,把某个网卡设置成NAT的话,那么和这个网卡的功能是一样的
在这里插入图片描述
我把我的虚拟机网卡设置成NAT,那么它会通过源地址转换的方式,把一个虚拟机的地址转换成我宿主机的地址,出去上网,做源地址转换,相当于我们VMware station中的VMnet8

装完之后默认就是开机自启动,最好重启下,重启完之后,它就自己生成网卡。
网卡装完之后,这个网段默认是打开的,可以强制更改(跟VMware station一样)
在这里插入图片描述

grep 192.168.122.* /etc/libvirt/ -R

在这里插入图片描述
其中红色圈出来的这两个文件,定义了这个文件
在这里插入图片描述
在这里插入图片描述
/etc/libvirt/qemu/networks/default.xml 在这个xml文件中可以改配置

KVM管理工具:

libvirt

使用最多的KVM虚拟化管理工具和应用程序接口,即通过libvirt调用KVM创建虚拟机,libvirt是KVM通用的访问
API,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、virtualBox等虚拟化方案。

virsh:

是一个常用的管理KVM虚拟化的命令行工具,常用于管理运行在单个宿主机上的虚拟机,virsh是一个使用C语言编写调
用libvirt API的虚拟化管理命令行工具。

virt-manager:

virt-manager是一个虚拟化管理图形软件,其底层也是调用libvirt API来完成对虚拟机的操作,包括虚拟机的
创建、删除、启动、停止以及一些简单的监控功能等。

openstack:

openstack是一个开源的虚拟化编排工具,常用于构建大规模的虚拟化环境,用于管理成千上万虚拟机的创建、启
动、删除等整个生命周期。

libvirt结构图:
在这里插入图片描述

环境准备好了,虚拟化也打开了,无论你是使用的inter还是AMD,提前检查好,一个是VMX,一个是SVM

cat /proc/cpuinfo | grep vmx/svm
grep -E "vmx|svm" /proc/cpuinfo | wc -l    如果你是多核CPU,那么这个地方显示出来的值,一定不是0

如果这个地方的值为0,那么就表示你没有开。这个地方,要么是和你CPU核心数一样的值,要么是0

virt-install     无论你是unbuntu或者是centos的虚拟机都是一样的

在你装虚拟机的时候,如果这个命令如果你什么都不装,那就会报错
提示有几个选项必须要加

virt-install --help  查看该命令如何使用,其中80%以上用不到
usage: virt-install --name NAME --ram RAM STORAGE INSTALL [options]使用指定安装介质新建虚拟机。optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--connect URI 使用 libvirt URI 连接到 hypervisor通用选项:
-n NAME, --name NAME          客户端事件名称
--memory MEMORY               配置虚拟机内存分配。例如:--memory 1024 (in MiB)--memory 512,maxmemory=1024
--vcpus VCPUS                 为虚拟机配置的 vcpus 数。例如:--vcpus 5--vcpus 5,maxcpus=10,cpuset=1-4,6,8--vcpus sockets=2,cores=4,threads=2,
--cpu CPU CPU                 型号及功能。例如:--cpu coreduo,+x2apic--cpu host
--metadata METADATA           配置虚拟机元数据。例如:--metadata name=foo,title="My pretty title",uuid=...--metadata description="My nice long description"安装方法选项:
--cdrom CDROM                 光驱安装介质
-l LOCATION, --location LOCATION安装源(例如:nfs:host:/path、http://host/pathftp://host/path)
--pxe                         使用 PXE 协议从网络引导
--import                      在磁盘映像中构建虚拟机
--livecd                      将光驱介质视为 Live CD
-x EXTRA_ARGS, --extra-args EXTRA_ARGS附加到使用 --location 引导的内核的参数
--initrd-inject INITRD_INJECT使用 --location 为 initrd 的 root添加给定文件
--os-variant DISTRO_VARIANT在其中安装 OS 变体的虚拟机,比如'fedora18'、'rhel6'、'winxp' 等等。
--boot BOOT                   配置虚拟机引导设置。例如:--boot hd,cdrom,menu=on--boot init=/sbin/init (for containers)
--idmap IDMAP                 为 LXC 容器启用用户名称空间。例如:--idmap uid_start=0,uid_target=1000,uid_count=10设备选项:
--disk DISK                   使用不同选项指定存储。例如:--disk size=10 (new 10GiB image in default location)--disk /my/existing/disk,cache=none--disk device=cdrom,bus=scsi--disk=?
-w NETWORK, --network NETWORK配置虚拟机网络接口。例如:--network bridge=mybr0--network network=my_libvirt_virtual_net--network network=mynet,model=virtio,mac=00:11...--network none--network help
--graphics GRAPHICS           配置虚拟机显示设置。例如:--graphics vnc--graphics spice,port=5901,tlsport=5902--graphics none--graphics vnc,password=foobar,port=5910,keymap=ja
--controller CONTROLLER配置虚拟机控制程序设备。例如:--controller type=usb,model=ich9-ehci1
--input INPUT                 配置虚拟机输入设备。例如:--input tablet--input keyboard,bus=usb
--serial SERIAL               配置虚拟机串口设备
--parallel PARALLEL           配置虚拟机并口设备
--channel CHANNEL             配置虚拟机沟通频道
--console CONSOLE             配置虚拟机与主机之间的文本控制台连接
--hostdev HOSTDEV             将物理 USB/PCI/etc主机设备配置为与虚拟机共享
--filesystem FILESYSTEM将主机目录传递给虚拟机。例如:--filesystem /my/source/dir,/dir/in/guest--filesystem template_name,/,type=template
--sound [SOUND]               配置虚拟机声音设备模拟
--watchdog WATCHDOG           配置虚拟机 watchdog 设备
--video VIDEO                 配置虚拟机视频硬件。
--smartcard SMARTCARD配置虚拟机智能卡设备。例如:--smartcard mode=passthrough
--redirdev REDIRDEV           配置虚拟机重定向设备。例如:--redirdev usb,type=tcp,server=192.168.1.1:4000
--memballoon MEMBALLOON配置虚拟机 memballoon 设备。例如:--memballoon model=virtio
--tpm TPM                     配置虚拟机 TPM 设备。例如:--tpm /dev/tpm
--rng RNG                     配置虚拟机 RNG 设备。例如:--rng /dev/random
--panic PANIC                 配置虚拟机 panic 设备。例如:--panic default虚拟机配置选项:
--security SECURITY           设定域安全驱动器配置。
--numatune NUMATUNE           为域进程调整 NUMA 策略。
--memtune MEMTUNE             为域进程调整内粗策略。
--blkiotune BLKIOTUNE为域进程调整 blkio 策略。
--memorybacking MEMORYBACKING为域进程设置内存后备策略。例如:--memorybacking hugepages=on
--features FEATURES           设置域 <features> XML。例如:--features acpi=off--features apic=on,eoi=on
--clock CLOCK                 设置域 <clock> XML。例如:--clock offset=localtime,rtc_tickpolicy=catchup
--pm PM                       配置 VM 电源管理功能
--events EVENTS               配置 VM 生命周期管理策略
--resource RESOURCE           配置 VM 资源分区(cgroups)虚拟化平台选项:
-v, --hvm                     客户端应该是一个全虚拟客户端
-p, --paravirt                这个客户端一个是一个半虚拟客户端
--container                   这台虚拟机需要一个容器客户端
--virt-type HV_TYPE           要使用的管理程序名称(kvm、qemu、xen
等等)
--arch ARCH                   模拟的 CPU 构架
--machine MACHINE             要模拟的机器类型其它选项:
--autostart                  引导主机时自动启动域。
--wait WAIT                  等待安装完成的分钟数。
--noautoconsole              不要自动尝试连接到客户端控制台
--noreboot                   完成安装后不要引导虚拟机。
--print-xml [XMLONLY]输出所生成域 XML,而不是创建虚拟机。
--dry-run                    完成安装步骤,但不要创建设备或者定义
虚拟机。
--check CHECK                启用或禁用验证检查。例如:--check path_in_use=off--check all=off
-q, --quiet                  禁止无错误输出
-d, --debug                  输入故障排除信息使用 '--option=?' 或者 '--option help' 查看可用子选项
有关示例及完整选项语法,请查看 man page。

创建NAT网络虚拟机:
创建一台虚拟机,并使用默认的NAT网络,可以使虚拟机连接外网。

上传镜像并安装Centos 7.X虚拟机:

ll /usr/local/src/CentOS-7-x86_64-Minimal-1908.iso  #提前上传安装镜像
-rw-r--r-- 1 root root 987758592 Nov 20 12:03 /usr/local/src/CentOS-7-x86_64-Minimal-
1908.isoqemu-img create -f qcow2 /var/lib/libvirt/images/centos.qcow2 20G #创建qcow2格式磁盘  (qcow2 #精简磁盘,后期随着虚拟机的存储增长而增长,前期比较节省空间)(还有一个叫raw #裸磁盘,创建之后立即占据所有空间,后期性能高,但是在做虚拟机迁移的时候要把所有的内存都考过去)创建默认网络虚拟机virt-install --virt-type kvm --name centos7 --ram 1024 --vcpus 2 --
cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1908.iso --disk
path=/var/lib/libvirt/images/centos.qcow2 --network network=default --graphics
vnc,listen=0.0.0.0 --noautoconsole

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
因为光驱位置选的是绝对路径,所以,我们可以再任何场合情况下去执行,当出现
在这里插入图片描述
表示已经开始安装,这个时候用virt-manager命令去打开
在这里插入图片描述
装完之后要重新登录才行
重新登录后敲virt-manager出现下图
在这里插入图片描述PS:该对话框的设置如下图:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

双击电脑图标,出现的这个界面只有60s

在这里插入图片描述在下方输入参数:net.ifnames=0 biosdevname=0回车,开始安装虚拟机

在这里插入图片描述

补充:有的人安装小窗口弹不出来
首先第一步:安装yum install qemu-kvm-tools libvirt libvirt-client virt-manager virt-install
第二步:退出终端重新登录
如果退出之后打virt-manager命令还是弹不出来,那就看你连SSH的会话连接上,点右键,点属性,在SSH下的“隧道”里面把“转发X11”连接第二个选项打开,且和你的Xmanager数值一致

在虚拟机配置里面网卡先不要打开,我们后面主要用到的是桥接网络

装好之后直接reboot,PS:它第一次起不来,会关机,再开机之后以后就可以正常开机了。切第一次没有内核,重新启动后,才可以被我们的宿主机管理

修改网卡配置文件,只要把最后一行的“no”改成“yes”保存退出,就可以了

在这里插入图片描述
ifup eth0把网卡打开
ip ad
在这里插入图片描述
拿到地址之后,ping baidu.com看一下是否能上外网

yum install net-tools

安装好之后,看一下它通过DHCP拿到的IP地址当中它的网关是谁

route -n

在这里插入图片描述

iptables -t nat -vnL

在这里插入图片描述
在生产环境中,一个事物可以影响我们的性能,它会基于iptables进行地址转换,其次是我们的其他的虚拟机或者其他服务,没有办法直接访问虚拟机
如果这哥192.168.122.74这个地址想改,我们可以进行如下操作:
把装好的KVM虚拟机删除

grep 192.168.* /etc/libvirt/ -R  
vim /etc/libvirt/qemu/networks/default.xml

修改好之后,再次安装虚拟机,打开网络,看能不能拿到地址

这篇关于安装KVM工具包以及用宿主创建多个虚拟机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/586355

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas