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

news2024/12/23 7:52:11

‍‍🏡博客主页:  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/5197.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爬取医药卫生知识服务系统的药品数据——超详细流程

爬取医药卫生知识服务系统的药品数据——超详细流程 文章目录爬取医药卫生知识服务系统的药品数据——超详细流程前言一、寻找药品数据二、爬取药品ID1.资源获取2.数据提取3.资源保存4.主函数5.总体代码三、爬取药品信息1.加载资源ID2.获取数据3.数据提取4.保存信息5.主函数6.总…

SpringBoot-属性绑定和bean属性校验

目录 属性绑定 自定义类属性绑定 第三方bean属性匹配 规则:松散绑定&#xff08;宽松绑定&#xff09; Bean属性校验 属性绑定 属性绑定&#xff1a;我们可以使用配置文件对类的属性进行赋值绑定。 自定义类属性绑定 我们自定义一个类&#xff0c;在此使用yml文件进行类…

【滤波器】基于matlab实现微波带低通高通带通滤波器设计

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

python科研做图系列之雷达图

文章目录参考资料matplotlib库画的复现一个 pyecharts的雷达图尝试在上面的基础上&#xff0c;把pyecharts 导出存为一般的png图尝试在上面的基础上&#xff0c;把pyecharts 导出存为一般的矢量图用pygal画雷达图参考资料 参考知乎 CSDN给出了一些参数 matplotbib库雷达图官网 …

Python实现九九乘法表的几种方式,入门必备案例~超级简单~

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 们在学习Python的过程中需要不断的积累和练习&#xff0c;这样才能够走的更远&#xff0c; 今天一起来学习怎么用Python写九九乘法表~ 第一种方法&#xff1a;for-for 代码&#xff1a; for i in range(1, 10):for j in…

数据挖掘面试经总结【私人版,仅供参考】

1特征归一化 1.1为什么需要对数值类型的特征做归一化&#xff1f; 线性函数归一化零均值归一化 1.2在对数据进行预处理时&#xff0c;应该怎样处理类别型特征&#xff1f; 序号编码独热编码二进制编码 1.3什么是组合特征&#xff1f;如何处理高维组合特征&#xff1f; 例…

【python】云打印实现

这两天为了实现云打印功能找了很多相关的文章 记录一下这一篇&#xff0c;python云打印实现-朝花夕拾&#xff0c;代码通过监听文件夹有无产生新文件来判断是否执行&#xff0c;我尝试运行了下没问题&#xff0c;于是打算转载一下 程序运行结果 由于对方的代码和我实现的有点出…

【Maven】你好,Maven >>> 与Maven的初次见面~

个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的道路上摸爬滚打&#xff0c;记录学习的过程~ 与Maven的初次见面~一、了解Maven二、Maven的…

Flink双流join导致数据重复

大家都知道flink sql 中 left join 数据不会互相等待&#xff0c;存在 retract 问题&#xff0c;会导致写入 kafka 的数据量变大&#xff0c;就会导致出现数据重复的问题。 举例&#xff1a;即常见的曝光日志流&#xff08;show_log&#xff09;通过 log_id 关联点击日志流&am…

SQL:数据去重的三种方法

1、使用distinct去重 distinct用来查询不重复记录的条数&#xff0c;用count(distinct id)来返回不重复字段的条数。用法注意&#xff1a; distinct【查询字段】&#xff0c;必须放在要查询字段的开头&#xff0c;即放在第一个参数&#xff1b;只能在SELECT 语句中使用&#…

spring整合fastdfs客户端

解决Dependency ‘com.github.tobato:fastdfs-client:1.27.2’ not found 错误问题。 一、 将fastdfs客户端git下来 git https://github.com/happyfish100/fastdfs-client-java.gitcd fastdfs-client-java然后将fastdfs-client-java构建到本地maven仓库 mvn clean install&…

Pandas的数据结构

Pandas的数据结构 处理CSV 文件 CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。 Pan…

【强化学习】深入浅出强化学习--机器人找金币

文章目录Grid_mdp.py定义和初始化从环境状态构建观测值ResetStepRenderingClose注册环境参考文章Grid_mdp.py 定义和初始化 首先自定义环境&#xff0c;自定义的环境将继承gym.env环境。在初始化的时候&#xff0c;可以指定环境支持的渲染模式&#xff08;例如human,rgb_arra…

项目实战 | YOLOv5 + Tesseract-OCR 实现车牌号文本识别

项目实战 | YOLOv5 Tesseract-OCR 实现车牌号文本识别 最近看到了各种各样的车牌识别&#xff0c;觉得挺有意思&#xff0c;自己也简单搞一个玩玩&#x1f63c;。 传统的图像处理算法我也不太会&#xff0c;就直接用深度学习的方法实现吧。 文章目录项目实战 | YOLOv5 Tesser…

docker基础篇——万字解读小鲸鱼

目录 前言 为什么会出现docker&#xff1f; 背景 docker理念 容器和虚拟机比较 容器发展简史 容器虚拟化技术 Why Docker docker的基本组成 镜像(image) 容器(container) 仓库(repository&#xff09; 总结 第一个docker镜像——hello-world run干了什么 …

Spring Boot与Shiro实现权限管理04

1.实现用户管理 1.1 用户列表 首先创建dto&#xff0c;用于请求与响应数据的传输。在common包下创建dto包&#xff0c;在该包下创建UserDto.java类。 Data AllArgsConstructor NoArgsConstructor public class UserDto implements Serializable {private Integer id;private…

云原生|kubernetes|本地存储hostpath-provisioner部署以及无token密码方式登陆dashboard的部署

前言&#xff1a; kubernetes的存储类大家应该都知道&#xff0c;常用的有nfs-client-provisioner这样插件形式&#xff0c;其实还有一种本地存储类的插件&#xff0c;只是这个估计很冷门&#xff0c;生产上网络存储持久卷还是主流的&#xff0c;本文将介绍一种本地存储类插件…

Linux基本命令简单介绍

Linux基本命令前言ls命令pwd命令cd命令touch命令mkdirrmdir指令rm命令前言 本文主要简单介绍一下高频使用的Linux基本命令和一些比较快捷的热键&#xff1b; 废话不多说&#xff0c;直接进入主题&#xff01;&#xff01;&#xff01; ls命令 语法&#xff1a; ls 选项目录…

OSPF高级配置——虚链路介绍与配置

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.虚链路及其配置 1.虚链路概述 2.配置虚链路的规则及特点 …

进程的状态

目录前言一、运行态二、终止态三、阻塞态四、挂起态五、Linux中的其他进程状态1. R(running)&#xff1a;运行态2. S(sleeping)&#xff1a;睡眠状态3. D(disk sleeping):阻塞状态4. Z和X状态:死亡与僵尸5. T(Stopping):暂停状态6.t(tracing stopping):追踪暂停状态总结前言 在…