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. 设置宿主机的内存
5.2. 打开宿主机的虚拟化功能
5.3. 挂载光盘,创建虚拟机的时候能用到(对镜像没啥要求)
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
9. 连接宿主机
IP是宿主记得IP 端口是5900+
连接上宿主机后会出现CentOS的安装界面
9.1. 选择语言
9.2. 配置磁盘
9.3.关闭KDUMP
9.3.关闭KDUMP
9.4. 配置网络
9.5. 配置时区
9.6. 重启虚拟机
9.7. 配置root密码
等待安装完成,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连接虚拟机
设置虚拟机开机自启动
原理是利用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的控制台
[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