1. 什么是虚拟化?
虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。
2. 为什么要用虚拟化?
1.计算机的硬件配置越来越高,虚拟化可以充分利用计算机的高配置.
3虚拟化的应用场景
- 服务器安装各种php,python,go环境,ruby,java
- 在同一个服务器上运行同一个服务的不同版本.(php5.5 php7.2等)
- 机房的迁移,可以很好的解决硬件和系统的依赖.
- openstack环境,软件发布方式
4目前市场常见的虚拟化技术有哪些
目前市场上比较常见的有四种云主机虚拟化技术,分别是Hyper-V、Virtuozzo、Xen和VMware
5.环境准备(宿主机最好是CentOS7.4/7.6)
5.1. 设置宿主机的内存
image.png5.2. 打开宿主机的虚拟化功能
image.png5.3. 挂载光盘,创建虚拟机的时候能用到(对镜像没啥要求)
image.png5.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
image.png9. 连接宿主机
image.pngIP是宿主记得IP 端口是5900+
连接上宿主机后会出现CentOS的安装界面
9.1. 选择语言
image.pngimage.png
image.png
9.2. 配置磁盘
1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png9.3.关闭KDUMP
10.png 11.png9.3.关闭KDUMP
12.png9.4. 配置网络
13.png 14.png9.5. 配置时区
15.png9.6. 重启虚拟机
16.png9.7. 配置root密码
17.png 18.png 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 <domain> 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
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/centos3.raw'/>
<target dev='vda' bus='virtio'/>
修改磁盘的路径
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/data/centos3.raw'/>
<target dev='vda' bus='virtio'/>
保存退出
启动虚拟机
[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连接虚拟机
image.png
image.png
image.png
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的控制台
image.png
[root@wyf ~]# ssh root@192.168.122.212
root@192.168.122.212'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 root@192.168.122.212
root@192.168.122.212's password:
Last login: Tue May 21 00:22:43 2019 from gateway
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# hostname
localhost.localdomain
网友评论