kvm 虚拟化

1. 什么是虚拟化?

虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

2. 为什么要用虚拟化?

1.计算机的硬件配置越来越高,虚拟化可以充分利用计算机的高配置.

3虚拟化的应用场景

  1. 服务器安装各种php,python,go环境,ruby,java
  2. 在同一个服务器上运行同一个服务的不同版本.(php5.5 php7.2等)
  3. 机房的迁移,可以很好的解决硬件和系统的依赖.
  4. openstack环境,软件发布方式

4目前市场常见的虚拟化技术有哪些

目前市场上比较常见的有四种云主机虚拟化技术,分别是Hyper-V、Virtuozzo、Xen和VMware

5.环境准备(宿主机最好是CentOS7.4/7.6)

5.1. 设置宿主机的内存

kvm 虚拟化_第1张图片
image.png

5.2. 打开宿主机的虚拟化功能

kvm 虚拟化_第2张图片
image.png

5.3. 挂载光盘,创建虚拟机的时候能用到(对镜像没啥要求)

kvm 虚拟化_第3张图片
image.png

5.4. 连接宿主机,创建镜像文件()

[root@wyf opt]# cd /opt/
[root@wyf opt]# dd if=/dev/cdrom of=CentOS-7.5-x86_64-DVD-1804.iso

6. kvm虚拟化管理软件的安装

yum install libvirt virt-install qemu-kvm -y

KVM:Kernel-based Virtual Machine

libvirt 作用:虚拟机的管理软件
libvirt: kvm,xen,qemu,lxc....

virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具

qemu-kvm qemu-img (qcow2,raw)作用:管理虚拟机的虚拟磁盘

虚拟化软件:

qemu 软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好!
xen(半) 性能特别好,需要使用专门修改之后的内核,兼容性差! redhat 5.5 xen
KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核 centos6 kvm
性能较好,兼容较好

7. 安装一台kvm虚拟机

systemctl start libvirtd.service
systemctl status libvirtd.service
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom CentOS-7.5-x86_64-DVD-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

注释
--virt-type kvm 虚拟化的类型(qemu)
--os-type=linux 系统类型
--os-variant rhel7 系统版本
--name centos7 虚拟机的名字
--memory 1024 虚拟机的内存
--vcpus 1 虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=10
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso
--network network=default 使用默认NAT的网络
--graphics vnc,listen=0.0.0.0
--noautoconsole 加上此参数可以在后台运行

8. Windows 上安装vnc-service

kvm 虚拟化_第4张图片
image.png

9. 连接宿主机

kvm 虚拟化_第5张图片
image.png

IP是宿主记得IP 端口是5900+

连接上宿主机后会出现CentOS的安装界面

9.1. 选择语言

kvm 虚拟化_第6张图片
image.png

kvm 虚拟化_第7张图片
image.png

kvm 虚拟化_第8张图片
image.png

9.2. 配置磁盘

kvm 虚拟化_第9张图片
1.png
kvm 虚拟化_第10张图片
2.png
kvm 虚拟化_第11张图片
3.png
kvm 虚拟化_第12张图片
4.png
kvm 虚拟化_第13张图片
5.png
kvm 虚拟化_第14张图片
6.png
kvm 虚拟化_第15张图片
7.png
kvm 虚拟化_第16张图片
8.png
kvm 虚拟化_第17张图片
9.png

9.3.关闭KDUMP

kvm 虚拟化_第18张图片
10.png
kvm 虚拟化_第19张图片
11.png

9.3.关闭KDUMP

kvm 虚拟化_第20张图片
12.png

9.4. 配置网络

kvm 虚拟化_第21张图片
13.png
kvm 虚拟化_第22张图片
14.png

9.5. 配置时区

kvm 虚拟化_第23张图片
15.png

9.6. 重启虚拟机

kvm 虚拟化_第24张图片
16.png

9.7. 配置root密码

kvm 虚拟化_第25张图片
17.png
kvm 虚拟化_第26张图片
18.png
kvm 虚拟化_第27张图片
19.png

等待安装完成,reboot

到此步一个虚拟机就完成了**

[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

[root@wyf ~]# virsh start centos7 
Domain centos7 started

[root@wyf ~]# virsh autostart centos7
Domain centos7 marked as autostarted

10. 虚拟机管理命令

查看当前所有虚拟机

virsh list --all

开机


[root@wyf ~]# virsh start web01
Domain web01 started

关机

[root@wyf ~]# virsh shutdown web01 
Domain web01 is being shutdown

断电的方式关机

[root@wyf ~]# virsh destroy centos7
Domain centos7 destroyed

导出虚拟机配置文件


[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

[root@wyf ~]# virsh dumpxml >centos3.xml
error: command 'dumpxml' requires  option
[root@wyf ~]# virsh dumpxml centos7 >centos3.xml
[root@wyf ~]# ll
total 20
-rw-r--r--  1 root root 5148 May 20 18:18 1.xml
-rw-------. 1 root root 1448 Aug  9  2018 anaconda-ks.cfg
-rw-r--r--  1 root root 3851 May 20 23:49 centos3.xml
-rw-r--r--  1 root root 3851 May 20 23:46 centos7.xml
[root@wyf ~]# virsh undefine centos7
Domain centos7 has been undefined
[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     web01                          shut off
 -     web02                          shut off

导入一个虚拟机

[root@wyf ~]# virsh edit centos7
error: failed to get domain 'centos7'
error: Domain not found: no domain with matching name 'centos7'

[root@wyf ~]# virsh define centos3.xml 
Domain centos7 defined from centos3.xml

[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

修改虚拟机的磁盘目录(扩容)

[root@wyf ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

[root@wyf data]# cd /opt/

[root@wyf opt]# ll
total 5677200
-rw------- 1 root root 10737418240 May 20 14:02 centos2.raw
-rw------- 1 root root 10737418240 May 20 23:43 centos3.raw
-rw-r--r-- 1 root root        3851 May 20 23:49 centos3.xml
-rw-r--r-- 1 qemu qemu  4470079488 May 20 13:05 CentOS-7.5-x86_64-DVD-1804.iso
-rw-r--r-- 1 root root      197120 May 20 15:17 oldboy.qcow2

[root@wyf opt]# mv centos3.raw /data/

[root@wyf opt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 -     centos7                        shut off
 -     web01                          shut off
 -     web02                          shut off

[root@wyf opt]# virsh start centos7 
error: Failed to start domain centos7
error: Cannot access storage file '/opt/centos3.raw': No such file or directory

[root@wyf opt]# virsh edit centos7

      
      
      
修改磁盘的路径
 
      
      
      
保存退出
启动虚拟机
[root@wyf opt]# virsh edit centos7
Domain centos7 XML configuration edited.

[root@wyf opt]# virsh start centos7 
Domain centos7 started

重命名虚拟机

[root@wyf opt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running
 5     centos7                        running
 -     web01                          shut off
 -     web02                          shut off

[root@wyf opt]# virsh domrename centos7 centos3
error: Requested operation is not valid: cannot rename active domain

[root@wyf opt]# virsh shutdown centos7
Domain centos7 is being shutdown

[root@wyf opt]# virsh domrename centos7 centos3
Domain successfully renamed

挂起虚拟机

[root@wyf opt]# virsh start centos3 
Domain centos3 started

[root@wyf opt]# virsh suspend centos3
Domain centos3 suspended

恢复虚拟机

[root@wyf opt]# virsh resume centos3 
Domain centos3 resumed

查看虚拟机对应的端口

[root@wyf opt]# virsh vncdisplay centos3
:1

上述为第一个端口或5901

wndows vnc-server连接虚拟机


kvm 虚拟化_第28张图片
image.png

kvm 虚拟化_第29张图片
image.png

kvm 虚拟化_第30张图片
image.png

kvm 虚拟化_第31张图片
image.png

设置虚拟机开机自启动

原理是利用libvirtd.service开机自启动以后开启虚拟机

[root@wyf opt]# virsh autostart centos3
Domain centos3 marked as autostarted

取消开机自启动

[root@wyf opt]# virsh autostart --disable centos3
Domain centos3 unmarked as autostarted

手动设置虚拟机开机自启动

[root@wyf opt]# cd /etc/libvirt/qemu/
[root@wyf qemu]# ll
total 28
drwxr-xr-x 2 root root   25 May 21 00:13 autostart
-rw------- 1 root root 4418 May 20 15:38 centos2.xml
-rw------- 1 root root 4076 May 21 00:06 centos3.xml
drwx------ 3 root root   42 May 20 13:07 networks
-rw------- 1 root root 4412 May 20 16:44 web01.xml
-rw------- 1 root root 4412 May 20 16:56 web02.xml
[root@wyf qemu]# ln -s /etc/libvirt/qemu
qemu/            qemu.conf        qemu-lockd.conf  
[root@wyf qemu]# ln -s /etc/libvirt/qemu/centos3.xml  /etc/libvirt/qemu/autostart/centos3.xml

[root@wyf qemu]# cd autostart/
[root@wyf autostart]# ll
total 0
lrwxrwxrwx 1 root root 29 May 20 14:05 centos2.xml -> /etc/libvirt/qemu/centos2.xml
lrwxrwxrwx 1 root root 29 May 21 00:16 centos3.xml -> /etc/libvirt/qemu/centos3.xml

设置虚拟机console的控制台


kvm 虚拟化_第32张图片
image.png
[root@wyf ~]# ssh [email protected]
[email protected]'s password: 
Last login: Tue May 21 00:22:13 2019
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@localhost ~]# reboot
开机后再次连接
[root@wyf ~]# ssh [email protected]
[email protected]'s password: 
Last login: Tue May 21 00:22:43 2019 from gateway
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# hostname
localhost.localdomain

你可能感兴趣的:(kvm 虚拟化)