Linux基础 - 虚拟化介绍(KVM)
一、概述
虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化的资源管理,是将一个或多个物理资源整合或分解为一个或多个逻辑资源,其实现程度分为完全、部分、硬件辅助等。
二、常见的虚拟化厂商及产品
系列 |
常见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的配置并生成新的虚拟机 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
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。