Linux基础 - 虚拟化介绍(KVM)

Posted Passerby_Wang

tags:

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

‍‍🏡博客主页:  Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主

🌐所属专栏:『Linux基础』

🌌上期文章:  Linux基础 - 服务管理(systemd)

📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 关注、点赞、收藏、评论。

目录

一、概述

二、常见的虚拟化厂商及产品

三、安装虚拟化服务器平台(KVM)

1、主要软件包

2、准备工作

1)准备一台设备(这里博主准备一台Centos7的服务器)

2)关闭SELinux、防火墙(可能导致虚拟机内部无法通信)

3)安装KVM相关包,命令如下

3、启动libvirtd服务端

1)命令

2)实例

4、打开管理工具

1)命令

2)实例

5、点击图标创建一台新的虚拟机

6、选择安装操作系统的方式,这里选择“Local install media (ISO image or CDROM)”后,点击“ForWard”

7、查找安装介质,选择“Use ISO image”,点击“Browse...”选择ISO镜像位置后点击“ForWard”

8、设置内存大小和CPU数量,设置完毕后点击“ForWard”

9、创建虚拟磁盘,勾选“Enable storage for this virtual machine”,创建并设置磁盘容量,点击“ForWard”

10、准备开始安装,设置好虚拟机名称,点击“Finish”

四、操作虚拟机

1、使用virsh命令工具

1)常用格式

2)命令

3)实例

2、查看虚拟化信息

查看KVM节点(服务器)信息

1)命令

2)实例

列出虚拟机状态

1)命令

2)实例

查看指定虚拟机的信息

1)命令

2)实例

3、虚拟机开关机操作

启动|重启|关闭 指定的虚拟机

1)命令

2)实例

强制关闭指定的虚拟机

1)命令

2)实例

将指定的虚拟机设为|取消开机自动运行

1)命令

2)实例

五、使用xml文件管理虚拟机

1、xml配置文件

1)介绍

2)相关命令

3)实例(创建、修改、删除虚拟机)

创建虚拟机

删除虚拟机

修改虚拟机

复制虚拟磁盘文件

六、虚拟化相关内容推荐

1、VMware 虚拟机下载与安装

2、VMware安装Centos 7(完整版图文教程)

3、VMware安装Ubuntu 16.04(完整版图文教程)

4、VMware虚拟机安装Ubuntu时页面显示不全的解决方法


一、概述

        虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

        虚拟化的资源管理,是将一个或多个物理资源整合或分解为一个或多个逻辑资源,其实现程度分为完全、部分、硬件辅助等。

二、常见的虚拟化厂商及产品

系列

常见PC/服务器端版本

VMware

VMware Workstation、vSphere

Microsoft

VirtualPC、Hyper-V

RedHat

KVM、RHEV

Oracle

Oracle VM VirtualBox

Citrix

Xen

三、安装虚拟化服务器平台(KVM)

1、主要软件包

qemu-kvm #为kvm提供底层仿真支持

libvirt-daemon  #libvirtd守护进程,管理虚拟机

libvirt-client #用户端软件,提供客户端管理命令

libvirt-daemon-driver gemu #libvirtd 连接gemu的驱动

virt-manager #图形管理工具

2、准备工作

1)准备一台设备(这里博主准备一台Centos7的服务器)

2)关闭SELinux、防火墙(可能导致虚拟机内部无法通信)

3)安装KVM相关包,命令如下

yum -y install kvm bridge-utils virt-v2v libgesttfs-tools libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 lsbvirt-java.noarch libvirt-python.x86_64 libiscsidbus-devel virt-clone tunctl virt-manager python-virtinst virt-vieeer virt-top dejavu-lgc-sans-fonts nfs-utils epel-release

3、启动libvirtd服务端

libvirtd 为管理虚拟机提供服务接口,提供DNS、DHCP等功能

1)命令

systemctl restart libvirtd

systemctl restart libvirtd

2)实例

[root@wangwu ~]# systemctl restart libvirtd

[root@wangwu ~]# systemctl restart libvirtd

4、打开管理工具

1)命令

virt-manager

2)实例

[root@wangwu ~]# virt-manager

5、点击图标创建一台新的虚拟机

 

6、选择安装操作系统的方式,这里选择“Local install media (ISO image or CDROM)”后,点击“ForWard”

 

注:

1)Local install media (ISO image or CDROM)

本地安装介质(ISO镜像或CDROM)

2)Network Install(HTTPFTPor NFS)

网络安装(HTTP、FTP或NFS)

3)Network Boot(PXE)

网络引导(PXE)

4)Import existing disk image

导入现有磁盘镜像

7、查找安装介质,选择“Use ISO image”,点击“Browse...”选择ISO镜像位置后点击“ForWard”

 

注:

1)Use CDROM or DVD

使用光盘或 DVD 

2)Use ISO image

使用ISO镜像

3)Automatically detect operating system based on install media

自动检测操作系统上的基础安装介质

8、设置内存大小和CPU数量,设置完毕后点击“ForWard”

 

9、创建虚拟磁盘,勾选“Enable storage for this virtual machine”,创建并设置磁盘容量,点击“ForWard”

 

注:

1)Enable storage for this virtual machine

为虚拟机启用存储

2)Create a disk image for the virtual machine

为虚拟机创建磁盘映像

3)Select or create custom storage

选择或创建自定义存储

10、准备开始安装,设置好虚拟机名称,点击“Finish”

注:

1)Name:虚拟机名称

2)OS:系统名称

3)Install:安装操作系统方式

4)Memory:内存大小

5)CPUs:处理器数量

6)Storage:存储容量与位置

7)Customize configuration before install:安装前自定义配置

8)Network selection:网络设置

四、操作虚拟机

1、使用virsh命令工具

 virsh命令工具提供管理各虚拟机的命令接口,支持交互模式,包括查看、创建、停止、关闭等功能。

1)常用格式

virsh 控制指令 虚拟机名称 参数

2)命令

virsh

3)实例

[root@wangwu~]#virsh #启动virsh命令工具

欢迎使用virsh,虚拟化的交互式终端

输入:'help'来获得命令的帮助信息

'quit'退出

virsh #

2、查看虚拟化信息

查看KVM节点(服务器)信息

1)命令

virsh nodeinfo

2)实例

[root@wangwu ~]# virsh nodeinfo #查看KVM节点(服务器)信息

CPU 型号: x86_64

CPU: 1

CPU 频率: 2600 MHz

CPU socket: 1

每个 socket 的内核数: 1

每个内核的线程数: 1

NUMA 单元: 1

内存大小: 1,048,576 KiB

列出虚拟机状态

1)命令

virsh list --all

2)实例

[root@wangwu ~]# virsh list --all #列出所有虚拟机的状态

Id Name  State

6 centos7.0 shut off

查看指定虚拟机的信息

1)命令

virsh dominfo 虚拟机名称

2)实例

[root@wangwu ~]# virsh dominfo centos7.0        #查看centos7.0虚拟机的信息

Id: 6

名称: centos7.0

UUID: 78fa5915-c060-4731-b4c5-bd4aaaea8fee

OS 类型: hvm

状态: running

CPU: 1

CPU 时间: 28.7s

最大内存: 1048576 KiB

使用的内存: 1048576 KiB

持久: 是

自动启动: 禁用

管理的保存: 否

安全性模式: none

安全性 DOI: 0

3、虚拟机开关机操作

启动|重启|关闭 指定的虚拟机

1)命令

virsh start 虚拟机名称

virsh reboot 虚拟机名称

virsh shutdown 虚拟机名称

2)实例

[root@wangwu ~]# virsh start centos7.0  #启动centos7.0虚拟机

Domain centos7.0 started

[root@wangwu ~]# virsh list #验证

Id Name    State

6  centos7.0  running
[root@wangwu ~]# virsh shutdown centos7.0  #关闭centos7.0虚拟机

Domain centos7.0 is being shutdown

[root@wangwu ~]# virsh list --all  #验证

Id Name    State

- centos7.0  shut off

强制关闭指定的虚拟机

1)命令

virsh destroy 虚拟机名称

2)实例

[root@wangwu ~]# virsh destroy centos7.0 #强制关闭centos7.0虚拟机

Domain centos7.0 destroyed

[root@wangwu ~]# virsh list --all  #验证

Id Name    State

- centos7.0  shut off

将指定的虚拟机设为|取消开机自动运行

1)命令

virsh autostart 虚拟机名称

virsh autostart --disable 虚拟机名称

2)实例

[root@wangwu ~]# virsh autostart centos7.0 # 设置centos7.0虚拟机自启动           

 Domain centos7.0 marked as autostarted

[root@wangwu ~]# virsh dominfo centos7.0 #验证

Id:

Name: centos7.0

... ... ...

Autostart: enable

... ... ...
[root@wangwu ~]# virsh autostart --disable centos7.0 # 取消centos7.0虚拟机自启动  

Domain centos7.0 unmarked as autostarted

[root@wangwu ~]# virsh dominfo centos7.0 #验证

Id:

Name: centos7.0     

... ... ...

Autostart: disable

... ... ...

五、使用xml文件管理虚拟机

1、xml配置文件

1)介绍

xml配置文件定义了一个虚拟机的名称、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置,默认位于/etc/libvirt/qemu/虚拟机名.xml

2)相关命令

virsh dumpxml 虚拟机名 #查看xml配置文件

virsh dumpxml 虚拟机名 > 虚拟机名.xml #备份xml配置文件

virsh edit 虚拟机名 #编辑xml配置文件对虚拟机的配置进行调整

virsh define xml配置文件 #根据修改后的独立xml文件定义新虚拟机

virsh undefine 虚拟机名 #通过删除xml文件删除虚拟机

3)实例(创建、修改、删除虚拟机)

创建虚拟机

[root@wangwu ~]# uuidgen #生成新的UUID值

89d57c2c-5eef-4e30-8b6c-e58851564f84

[root@wangwu ~]# virsh edit centos7.0 #编辑虚拟机centos7.0的配置并生成新的虚拟机

<domain type='kvm'>

<name>wangwu</name> #新的虚拟机名称

<uuid>89d57c2c-5eef-4e30-8b6c-e58851564f84</uuid> #输入新的UUID值

... ... ...

#若修改name、uuid、disk、mac,会自动保存为新虚拟机
[root@wangwu ~]# virsh list --all             #验证

Id Name    State

- centos7.0  shut off #旧的虚拟机

- wangwu   shut off #新的虚拟机

删除虚拟机

[root@wangwu ~]# virsh undefine centos7.0

Domain centos7.0 has been undefined

#删除旧的虚拟机避免出现多个虚拟机的磁盘或MAC地址冲突
[root@wangwu ~]# virsh list --all             #验证

Id Name    State

- wangwu   shut off #新的虚拟机

修改虚拟机

[root@wangwu ~]# uuidgen #生成新的UUID值
56568905-bde4-4c4a-98b0-8a8f5bba1e88
[root@wangwu ~]# virsh edit wangwu	#编辑虚拟机centos7.0的配置并生成新的虚拟机
<domain type='kvm'>
<name>zhaolv</name> 	#新的虚拟机名称
<uuid>56568905-bde4-4c4a-98b0-8a8f5bba1e88</uuid>	#输入新的UUID值
... ... ...
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/zhaolv.qcow2'/>	#输入新磁盘路径
... ... ...
</disk>
... ... ...
<interface type='network'>
<mac address='74:24:00:61:56:07'/>	#输入新的MAC地址
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03
' function='0x0'/>
</interface>
... ... ...
[root@wangwu ~]# virsh list --all             #验证
Id 	Name 	   State
- 	wangwu   shut off	#旧的虚拟机
- 	zhaolv 	  shut off	#新的虚拟机

复制虚拟磁盘文件

[root@wangwu ~]# cd /var/lib/libvirt/images

[root@wangwu images]# cp wangwu.qcow2 zhaolv.qcow2

[root@wangwu images]# ls #验证

wangwu.qcow2 zhaolv.qcow2

六、虚拟化相关内容推荐

1、VMware 虚拟机下载与安装

VMware 虚拟机下载与安装_Passerby_Wang的博客-CSDN博客_vmware虚拟机下载目录一、下载二、安装一、下载1、打开官网地址https://www.vmware.com/cn.html(下载需要注册账号,注册地址Registration | VMware Customer Connect)2、登录账号后,搜索栏输入“VMware Workstation Pro”回车确认,也可滚动鼠标向下查找。3、选择适合自己的版本,这里点击“VMware Workstation 16.1.2Pro for Windows”跳转到下载页面。...https://blog.csdn.net/Passerby_Wang/article/details/120910719?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166789674316782425177098%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166789674316782425177098&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-120910719-null-null.nonecase&utm_term=vm&spm=1018.2226.3001.4450

2、VMware安装Centos 7(完整版图文教程)

VMware安装Ubuntu 16.04(完整版图文教程)_Passeby_Wang的博客-CSDN博客_vmware安装ubuntu使用虚拟机软件通过软件来模拟真实计算机的一类软件程序一台物理机可运行多个虚拟机每个虚拟机提供一个相对独立的操作系统环境https://py-wang.blog.csdn.net/article/details/123745479?spm=1001.2014.3001.5502

3、VMware安装Ubuntu 16.04(完整版图文教程)

VMware安装Centos 7(完整版图文教程)_Passerby_Wang的博客-CSDN博客_centos7 vmwareVMware安装Centos 7.5(完整版图文教程)超详细!!!https://blog.csdn.net/Passerby_Wang/article/details/121726704?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166789674316782425177098%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166789674316782425177098&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-121726704-null-null.nonecase&utm_term=vm&spm=1018.2226.3001.4450

4、VMware虚拟机安装Ubuntu时页面显示不全的解决方法

VMware虚拟机安装Ubuntu时页面显示不全的解决方法_Passerby_Wang的博客-CSDN博客_ubuntu显示不全一、问题描述二、解决方式-1三、解决方式-2https://py-wang.blog.csdn.net/article/details/124075121?spm=1001.2014.3001.5502

Linux桌面虚拟化技术KVM介绍及其安装

KVM的简介:

KVM,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使 用Linux自身的调度器迚行管理,所以相对亍Xen,其核心源码很少。KVM目前已成为学术界的主流VMM 之一。KVM的虚拟化需要硬件支持(如Intel VT技术戒者 AMD V技术)。是基亍硬件的完全虚拟化。而 Xen 早期则是基亍软件模拟的 Para-Virtualization。 

Linux 内核的虚拟机(Kernel-based Virtual Machine)。是第一个整合到 Linux 内核的虚拟化技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准迚程,你可以 在用户空间启劢客户机操作系统。 

常见的虚拟化产品对比介绍

Vmware         Window上最常用的虚拟化

KVM rhel6_x64

xun [kernel-xun] rhel5


虚拟化技术:

仿真虚拟化[对硬件没有要求,性能最低]

半虚拟化[虚拟机可以使用物理真机,性能高,需要改内核]

全虚拟化


vmware 支持仿真虚拟化 xen 半虚拟化

REHL5自带xen, 安装时需要安装内核  

rpm -ivh  kernel-xen-xxx.rpm

kvm 全虚拟化   RHEL6 自带kvm 


开始安装

1、把虚拟机内存调成 2G 以上,因为我们要在 VMware虚拟中安装KVM,然后在 KVM中再安装虚拟机 

安装环境:

主机名:linux_rhel-7.2
网络模式:桥接
IP:192.168.175.143
内存:2G以上
CPU个数:根据自己实际电脑情况调整
VMVM开启虚拟化和和虚拟化CPU计数器
2、关闭NetworkManager,开始桥接

/etc/init.d/NetworkManager shop
chkconfig --level 2345 NetworkManager
chkconfig --levle 2345 network on

 配置eth0和bro网卡

cd /etc/sysconfig/network-scritps/
ls 
vim ifcfg-eth0

删除原来的配置文件修改成这个:

eth0网卡:

    DEVICE=eth0

    TYPE=Ethernet

    BRIDGE=br0

    BOOTPROTO=none

br0网卡:

        DEVICE=br0

        ONBOOT=yes

BOOTPROTO=dhcp

#IPADDR=192.168.175.99

#NETMASK=255.255.255.0

#GATEWAY=192.168.175.2

#DNS1=8.8.8.8

TYPE=Bridge

NAME=br0

service network restart
ifconfig  ##查看是否eth0没有IP,br0获取到了IP

3、安装KVM组件

yum install -y kvm virt-manager libvirt   ###安装
service libvirtd start   ###开启KVM
lsmod |grep kvm     ###查看KVM模块是否开启

如果没有显示查看KVM虚拟机是否开启虚拟化


查看虚拟机的运行情况

virsh list 

echo $LAGN 当前的字符串格式

修改格式:echo ‘zh_CN.UTF-8‘ 

如果中文格式开启虚拟机报错则修改为:echo ‘en_US.UTF-8‘

开启KVM

virt-manager

虚拟机相关命令

virsh start 新建的虚拟机名称 #启动虚拟机 

virsh shutdown 新建的虚拟机名称 #关闭虚拟机

 

解决 shutdown关不了KVM 虚拟机的问题:

解决方法: 在安装好的 KVM的Linux虚拟机中安装并启劢 acpi服务 

virsh shutdown 命令使用发送 acpi挃令来控制虚拟机的电源, 

而 kvm虚拟机最小化安装的 linux系统时默认是没有安装 acpi 服务的,

所以并丌会做处理。只需要在虚拟机里安装和启劢 acpid服务即可,  

安装:

yum install acpid -y 

service  acpid  start  //启劢 acpic服务

chkconfig --list acpid 

开机挂载:

vim /etc/fstab   #记得设置开机自劢挂载 sdb1,不然后开机启动不了虚拟机 

/dev/sdb1     /var/lib/libvirt/images ext4    defaults        0 0 

查询UUID:

blkid    通过UUID实现自动挂载,防止盘位置变动造成找不到盘:

自动挂载:

blkid | echo "`awk ‘/dev/sbd1 {print $2}‘` /var/lib/libvirt/images ext4 defaults 0 0" >>/etc/fstab



本文出自 “13181770” 博客,请务必保留此出处http://13191770.blog.51cto.com/13181770/1956233

以上是关于Linux基础 - 虚拟化介绍(KVM)的主要内容,如果未能解决你的问题,请参考以下文章

KVM

kvm介绍

Linux KVM 虚拟化技术

kvm使用详解

云计算基础-虚拟化软件介绍

1.Linux 桌面虚拟化技术 KVM