服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux基础 - 虚拟化介绍(KVM)

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

2023-10-07 14:51Passerby_Wang Linux

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

一、概述

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

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

 

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

系列

常见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、点击图标创建一台新的虚拟机

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

 

 

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

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

 

注:

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”

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

 

 

注:

1)Use CDROM or DVD

使用光盘或 DVD 

2)Use ISO image

使用ISO镜像

3)Automatically detect operating system based on install media

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

 

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

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

 

 

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

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

 

注:

1)Enable storage for this virtual machine

为虚拟机启用存储

2)Create a disk image for the virtual machine

为虚拟机创建磁盘映像

3)Select or create custom storage

选择或创建自定义存储

 

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

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

 

 

注:

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的配置并生成新的虚拟机



wangwu #新的虚拟机名称

89d57c2c-5eef-4e30-8b6c-e58851564f84 #输入新的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的配置并生成新的虚拟机

zhaolv 	#新的虚拟机名称
56568905-bde4-4c4a-98b0-8a8f5bba1e88	#输入新的UUID值
... ... ...


	#输入新磁盘路径
... ... ...

... ... ...

	#输入新的MAC地址

... ... ...
[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

到此这篇关于 标题 的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/Passerby_Wang/article/details/127816891

延伸 · 阅读

精彩推荐
  • LinuxLinux系统下破解SAM密码

    Linux系统下破解SAM密码

    用linux启动,并挂载Windows的系统分区把c:\windows\system32\config\目录下的SAM和system复制出来 也可以用WINPE,DOS引导盘,都可以的,只要把SAM和system复制出来就...

    Linux教程网4942020-04-06
  • LinuxLinux下使用Speedtest测试网速的方法

    Linux下使用Speedtest测试网速的方法

    Speedtest是用来测试网络性能的开源软件!Linux下如何使用Speedtest测试网速呢?下面小编将为大家带来Linux下使用Speedtest测试网速的方法;有需要的朋友一起去...

    脚本之家4902019-06-09
  • LinuxLinux文件和文件夹权限操作方法

    Linux文件和文件夹权限操作方法

    这篇文章主要介绍了Linux文件和文件夹权限操作方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    小汉丶7982022-09-03
  • Linux如何在 Linux 上使用 cron 定时器

    如何在 Linux 上使用 cron 定时器

    cron 定时器是一个可以按照计划自动运行命令的工具。定时器作业称为 cronjob,创建于 crontab 文件中。这是用户自动操作电脑的最简单也是最古老的方法。...

    Linux中国11822021-08-04
  • LinuxLinux tee 命令是个啥?我们通过例子来看一下

    Linux tee 命令是个啥?我们通过例子来看一下

    Linux tee 命令从标准输入读取数据,同时写入到标准输出和文件中。也就是说,tee 命令的结果是,你既可以在屏幕上看到命令的输出,同时还可以将输出保...

    TIAP3982022-11-09
  • Linux在 Linux 上用密码加密和解密文件

    在 Linux 上用密码加密和解密文件

    age 是一个简单的、易于使用的工具,允许你用一个密码来加密和解密文件。age 能帮你这样做。它是一个小型且易于使用的工具,允许你用一个密码加密一...

    Linux中国5342021-07-18
  • Linux三种方法实现Linux系统调用

    三种方法实现Linux系统调用

    这篇文章主要介绍了三种方法实现Linux系统调用,感兴趣的朋友可以参考一下...

    Linux教程网12022021-11-01
  • Linux通过rpm包安装、配置及卸载mysql的详细过程

    通过rpm包安装、配置及卸载mysql的详细过程

    通过rpm包安装、配置及卸载mysql的详细过程,需要的朋友可以参考下。 ...

    Linux教程网3682020-01-05