KVM虚拟机配置

First Post:

Last Update:

Word Count:
2.9k

Read Time:
11 min

KVM虚拟机配置

概念

Linux下的内核虚拟化模块
Windows下的虚拟化软件Hyper-V
企业化:EXSI
虚拟化的前提:硬件虚拟化()
Intel虚拟CPU:Intel VT

KVM:就是Keyboard Video Mouse的缩写。KVM 交换机通过直接连接键盘、视频和鼠标 (KVM) 端口,让您能够访问和控制计算机。KVM 技术无需目标服务器修改软件。这就意味着可以在 Windows 的 BIOS 环境下,随时访问目标计算机。KVM 提供真正的主板级别访问,并支持多平台服务器和串行设备。
KVM 技术已经从最初的基础SOHO办公型,发展成为企业 IT 基础机房设施管理系统。可以从kvm 客户端管理软件轻松的直接访问位于多个远程位置的服务器和设备。KVM over IP 解决方案具备完善的多地点故障转移功能、符合新服务器管理标准 (IPMI) 的直接界面,以及将本地存储媒体映射至远程位置的功能。
中文名
KVM
全称
Keyboard Video Mouse
本质
计算机技术
优点
支持多平台服务器和串行设备
地位
网络中的管理设备
功能
支持串口overIP远程调试串口设备

工作原理
首先简要介绍一下虚拟化技术及其涉及的元素。 虚拟化解决方案的底部是要进行虚拟化的机器。这台机器可能直接支持虚拟化,也可能不会直接支持虚拟化;那么就需要系统管理程序的支持。系统管理程序,或称为 VMM,也称为Hypervisor,可以看作是平台硬件和操作系统的抽象化。
在某些情况中,这个系统管理程序就是一个操作系统;此时,它就称为主机操作系统。
系统管理程序之上是客户机操作系统,也称为虚拟机(VM)。这些 VM 都是一些相互隔离的操作系统,将底层硬件平台视为自己所有。但是实际上,是系统管理程序为它们制造了这种假象。
使用 KVM 引用内核虚拟机,使用 KVM 引用系统管理程序(用来启动一台新虚拟机)。
更加简单的一种虚拟化是操作系统虚拟化,其中一台计算机可以运行相同类型的多个操作系统。这种虚拟化可以将一个操作系统的多个服务器隔离开来 (这意味着全都必须使用相同类型和版本的操作系统)。
要对所有电子线路板进行三防处理。

特点

KVM是键盘(Keyboard)、显示器(Video)、鼠标(Mouse)的缩写。KVM技术的核心思想是:通过适当的键盘、鼠标、显示器的配置,实现系统和网络的集中管理;提高系统的可管理性,提高系统管理员的工作效率;节约机房的面积,降低网络工程和服务器系统的总体拥有成本;避免使用多显示器产生的辐射,营建健康环保的机房。利用KVM多主机切换系统,系统管理员可以通过一套键盘、鼠标、显示器在多个不同操作系统的主机或服务器之间进行切换并实施管理。

一、切换器(KVM)一般应用在哪些领域?

信息控制中心 、呼叫中心、证券/金融交易系统、银行数据中心、工业控制环境、教学环境、测试中心等所有多服务器或多计算机工作环境。

二、切换器(KVM)的基本特点。

即插即用的设计,操作起来方便简单。可支持PC、SUN和MAC等各种品牌计算机和服务器。适用于NETWARE、WIN95/98/2000/ME/XP/NT、UNIX、OS/2等各种操作系统和应用软件。可适配VGA、SVGA和XGA等各种分辨率显示器。有自动扫描、热键切换和OSD菜单等强大功能。

三、切换器(KVM)有关的名词解释。

1. 输入接口
输入接口是切换器的主要参数,指其输入的接口方式和接口数量。切换器一般有4路、8路、32路甚至更多的输入接口,使用BNC插头或复合视频接口。
2. 输出接口
输出接口指切换器的输出接口方式,一般为BNC插头或复合视频接口。
3. 带宽
带宽又叫频宽,是指在固定的的时间内可传输的资料数量,亦即在传输管道中可以传递数据的能力。在数字设备中,频宽通常以bps表示,即每秒可传输之位数。在模拟设备中,频宽通常以每秒传送周期或赫兹Hz来表示。频宽对基本输入输出系统(BIOS)设备尤其重要,如快速磁盘驱动器会受低频宽的总线所阻碍。
4. 切换器方式
切换方式是指KVM切换器在从一台设备转换到控制另外一台设备时所采用的切换方式。一般的产品都是通过按钮、hot-key(热键)和屏幕菜单来操作了。
5. 支持分辨率
支持分辨率主要是指KVM切换器在有其中控制的机器向其输出信号时所能显示的分辨率,也就是视频窗口的宽度和高度上的像素数量。
6. 热插拔
热插拔是指可以直接增加或移除主机而无需关闭电源。
7. 热键切换
指用定义键进行切换。
8. 多用户
两个以上用户操作主机。
9. 级联
两个以上切换器操作八个以上主机。
10. 即插即用
无需驱动程序随时安装使用。
11. 多平台
适于所有操作系统和软件环境
12. 机架式
可安装在19英寸机架上
四、使用切换器(KVM)的优越性。
相对于数据仓库和互联网这些发展极快和服务器数量增加极快的公司来说,采用切换器(KVM)的优越性将体现在以下几个方面:
1. 节省空间:
对于这些发展极为快速的行业而言,原先所用的空间相对有限,而搬迁则会造成服务的停顿。在这些情况下,减少键盘、鼠标和显示器的数量,可以为新增加的服务器腾出大量的空间。
2.提高效率:
可以想象,当系统或网络维护人员穿梭于服务器、各种机柜所组成的丛林中,寻找出故障的机器时,效率是不会提高的。而这低效率,不但浪费了有限的人力资源,而且使出现的故障得不到及时的修复,使网络或数据中心出现不应有的停顿。能实现在由一套键盘、鼠标、显示器组成的控制台登陆所有的机器,势必将极大地提高系统或网络维护人员的工作效率。
3.加强管理:
工作效率的提高,意味着网络或数据中心得到了有效的管理,从而提高了这些系统的稳定性和安全性。
4.节约成本:
网络运营成本,尤其是那些必须24小时不间断运行的网络及数据中心的运行成本,逐渐成为网络经营商们成功的关键因素。同时,硬件软件费用、人员费用以及场地费用也是公司运营费用的主要组成部分。
5.远程管理:
系统的远程维护和管理也是这些大型系统所面临的重要问题。系统的管理和维护人员不可能24小时在机房里值班,而机器故障却可能在任何时候发生,因信息的交通堵塞而造成系统长时间的不稳定将极大地损坏企业的形象或产生重大的损失。通过远程的键盘、鼠标和显示器来实现系统的远程管理、维护是保证系统24小时不间断、稳定运行的重要手段。
6.环保节能:
使用KVM Switch可避免使用多台显示器,从而减少辐射,节省空调、能源等的消耗,营造健康环保节能的工作环境。
因此,实现一个用户使用一套键盘、鼠标、显示器去访问和操作一台以上主机的功能将为不少的企业节省了空间和服务器外设产品资源,有效提高大规模应用的管理能力。

二、 实验

环境:Arch Linux x86_64
2.1虚拟机关机模式下开启虚拟化引擎后再开机

1
cat /proc/cpuinfo | egrep 'vmx|svm'

安装virt

1
2
3
sudo pacman -S virt-manager libvirt
sudo systemctl enable libvirtd
sudo systemctl start libvirtd

查看

1
lsmod | grep kvm 

启动

1
sudo virt-manager

查看网络

1
virsh net-list --all

启动网络

1
2
sudo virsh net-start default
sudo virsh net-autostart default

启动虚拟机

1
virsh start XXXX_new # 启动虚拟机

安装

1
virt-install --name rhel-server-7.4-x86_64-dvd.iso --disk path=/dev/sdb1  --check path_in_use=off --graphics spice --vcpus=1 --ram 1024 --location=/root/test/rhel-server-7.4-x86_64-dvd.iso --network bridge=br1 --os-type=linux --os-variant=rhel7

网路设置

使用brctl命令创建网桥br1

1
brctl addbr br1

删除网桥br1

1
brctl delbr br1

将eth0端口加入网桥br1

1
brctl addif br1 eth0

删除网桥br1的端口eth0

1
brctl delif br1 eth0

查询网桥信息

1
2
brctl show
brctl show br1

开启路由转发

1
2
sudo -i
echo 1 > /proc/sys/net/ipv4/ip_forward

防火墙设置

1
2
sudo -i
iptables -t nat -A POSTROUTING -j MASQUERADE

遇到的问题

问题一:

1
2
3
4
sudo virsh net-start default

error: Failed to start network default
error: internal error: Failed to initialize a valid firewall backend

在启动虚拟机网络时报错, libvirtError: internal error: Failed to initialize a valid firewall backend,查资料,如下解决

1
sudo pacman -S ebtables dnsmasq firewalld

注意,要将当前用户加入kvm组,否则没有kvm权限

1
2
3
4
sudo groupadd kvm
sudo usermod -aG kvm root
sudo usermod -aG docker ${USER}
sudo systemctl restart libvirtd

创建虚拟机

采用图形化界面创建虚拟机

1
virt-manager

进去之后选择File-> New Virtual Machine ,选择一个下载好的ISO即可

选择安装之后就会在/var/lib/libvirt/images/生成一个虚拟机磁盘

采用命令创建虚拟机

virt-install安装

1
2
virt-install --name=win7 --os-variant=win7 --ram 512 --vcpus=1 --disk path=/home/kvm_imgs/win7.img,size=30,format=qcow2,bus=virtio --accelerate --disk device=cdrom,path=/opt/win7.iso --disk device=cdrom,path=/opt/virtio-win-0.1.102.iso --vnc --vncp
ort=5922 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole

如果img文件或者qcow2文件已经自带了系统,就用 –boot=hd ; 如果是本身有网卡驱动的镜像就不要用 model=virtio )

比如下面这种创建方法:

1
virt-install --name=systemname --vcpu=4 --ram=8196 --disk path=path_of_img_or_qcow2,format=qcow2 --boot=hd --network bridge=br0,model=virtio --vnc --vncport=123456 --vnclisten=0.0.0.0 --noautoconsole

br20.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<network>
<name>br20</name>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='br20' stp='on' delay='0'/>
<ip address='192.168.30.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.30.50' end='192.168.30.200'/>
</dhcp>
</ip>
</network>

运行虚拟机

ref: https://www.cnblogs.com/huanglinxin/p/10148572.html

ref: https://blog.csdn.net/ningjiu9/article/details/82053200

ref: https://blog.csdn.net/github_27924183/article/details/76914322

ref: https://wiki.archlinux.org/title/KVM_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

ref: https://blog.csdn.net/qq_25868251/article/details/84879475

打赏点小钱
支付宝 | Alipay
微信 | WeChat