Linux基础 - 虚拟化介绍(KVM)
Posted Passerby_Wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础 - 虚拟化介绍(KVM)相关的知识,希望对你有一定的参考价值。
🏡博客主页: Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主
🌐所属专栏:『Linux基础』
🌌上期文章: Linux基础 - 服务管理(systemd)
📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 关注、点赞、收藏、评论。
目录
2)关闭SELinux、防火墙(可能导致虚拟机内部无法通信)
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”
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(完整版图文教程)
3、VMware安装Ubuntu 16.04(完整版图文教程)
4、VMware虚拟机安装Ubuntu时页面显示不全的解决方法
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个数: | 根据自己实际电脑情况调整 |
VM | VM开启虚拟化和和虚拟化CPU计数器 |
/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)的主要内容,如果未能解决你的问题,请参考以下文章