实验:
虚拟化有两种类型:
Hypervisor直接在安装在宿主机的逻辑上:
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。
Hypervisor安装在宿主机的操作系统上:
物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。
KVM是什么?
KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor:
它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购。
它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
它从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中。
它需要支持虚拟化扩展的 CPU。
它是完全开源的。
KVM相关命令:
一、查看当所有运行的kvm虚拟主机 virsh list --all
二、关机 virsh shutdown kvm1.amber.com
三、开机 virsh start kvm1.amber.com
四、强制关闭电源 virsh destroy kvm1.amber.com
五、设置虚拟机伴随宿主机启动 virsh autostart kvm1.amber.com
六、导出虚拟机配置 virsh dumpxml kvm1.amber.com>/导出的目录
七、删除虚拟机 (1)virsh destroy 虚拟机名称
(2)virsh undefine 虚拟机名称
八、虚拟机克隆 virt-clone -o 克隆的主机 -n 克隆后的主机名 -f 克隆的的虚拟机存放的位置。
九、删除克隆的虚拟机同删除虚拟机步骤一样
十、虚拟机磁盘格式转换(raw转qcow2)
Yum -y install libguestfs-tools //libhuestfs-tools gongju 实现转换
Virsh shutdown 虚拟机名称 //转换前需要关闭虚拟机
qemu-img convert -f raw -O qcow2 /data_kvm/centos1/centos-1.img /data_kvm/centos1/centos-1.qcow2 //转换时间可能有些长,耐心等待
十一、创建快照(创建快照磁盘格式必须是qcow2,否则无法创建)
virsh snapshot-create centos1
列出快照
virsh snapshot-list 虚拟机名称
恢复快照
virsh snapshot-revert 虚拟机名 快照号
如:# virsh snapshot-revert centos1 1457180938
删除快照
virsh snapshot-delete 虚拟机名 快照号
virsh snapshot-delete centos1 1457180938
一. 搭建环境
centos7系统安装完成后,需要勾选上KVM虚拟化功能
[root@localhost ~]# hostnamectl set-hostname kvm
[root@localhost ~]# bash
ssh环境优化
设置DNS反向解析
#是否反解DNS,设置为NO可以让客户端连接服务器更快
[root@kvm ~]# vim /etc/ssh/sshd_config
UseDNS no #取消DNS注释,改为NO
防火墙优化
[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# setenforce 0
已完成所有开局优化,重启系统
[root@kvm ~]# reboot
二、 安装KVM
安装KVM基本组件
[root@kvm ~]# yum -y groupinstall "GNOME Desktop" #安装 GNOME 桌面环境 如果装了图形界面不需要装了
[root@kvm ~]# yum -y install qemu-kvm #安装KVM 模块
[root@kvm ~]# yum -y install qemu-kvm-tools #KVM 调试工具,可不安装
[root@kvm ~]# yum -y install virt-install #构建虚拟机的命令行工具
[root@kvm ~]# yum -y install qemu-img #qemu 组件,创建磁盘、 启动虚拟机等
[root@kvm ~]# yum -y install bridge-utils #网络支持工具
[root@kvm ~]# yum -y install libvirt #虚拟机管理工具
[root@kvm ~]# yum -y install virt-manager #图形界面管理虚拟机
[root@kvm ~]# reboot #重启
设置开启启动界面的显示模式
[root@kvm ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
**将 系 统 的 默 认 运 行 target 更 改 为graphical.targe。 重启后系统将进入图形化界面**
进行一些检查
[root@kvm ~]# cat /proc/cpuinfo | grep vmx # 检测CPU是否支持虚拟化
[root@kvm ~]# cat /proc/cpuinfo | grep vmx
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec ibpb ibrs stibp arat spec_ctrl intel_stibp arch_capabilities
[root@kvm ~]# lsmod | grep kvm #查看KVM模块是否已安装
kvm_intel 170086 0
kvm 566340 1 kvm_intel
irqbypass 13503 1 kvm
[root@kvm ~]# systemctl start libvirtd #开启libvirtd服务
[root@kvm ~]# systemctl enable libvirtd #开机启动libvirtd服务
设置KVM网络为桥接
宿主服务器安装完成 KVM, 首先要设定网络, 在 libvirt 中运行 KVM 网络有两种方法: NAT 和 Bridge, 默认是NAT。
1.用户模式, 即 NAT 方式, 这种方式是默认网络, 数据包由 NAT 方式通过主机的接口进行 传送, 可以访问外网,但是无法从外部访问虚拟机网络。
2.桥接模式, 这种模式允许虚拟机像一台独立的主机一样拥有网络, 外部的机器可以直接 访问到虚拟机内部, 但需要网卡支持,一般有线网卡都支持。 这里以 Bridge(桥接) 为例。
修改ens33网卡
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none #原本的修改为none
#IPADDR=192.168.40.111
#NETMASK=255.255.255.0
#GATEWAY=192.168.40.2
#DNS=192.168.40.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=59555b6e-bcf4-4fe0-9454-efa54bf2f877
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
新建桥接网卡
[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
OTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.40.111
NETMASK=255.255.255.0
GATEWAY=192.168.40.2
[root@kvm ~]# systemctl restart network #重启网卡
**
创建KVM存储和镜像数据的目录、上传centos7镜像
[root@kvm ~]# mkdir -p /data_kvm/store #镜像位置和虚拟机存储,如果想分开也可以在创建一个目录
[root@kvm ~]# ls /data_kvm/store/
CentOS-7-x86_64-Everything-1804.iso
[root@kvm ~]# virt-manager #图形界面敲,打开虚拟系统管理器
安装步骤
创建存储池
创建存储卷
创建虚拟机
剩下的就和正常安装虚拟机一样的步骤了
安装完成后记得查看有没有网
[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.40.143 netmask 255.255.255.0 broadcast 192.168.40.255
inet6 fe80::5f3:ac6e:ef76:f14d prefixlen 64 scopeid 0x20<link>
ether 52:54:00:8b:cc:c3 txqueuelen 1000 (Ethernet)
RX packets 17193 bytes 89142321 (85.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15105 bytes 871102 (850.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:0b:2f:7d txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
没网的话网卡改成dhcp动态
[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=96855a60-dc02-4f66-8fd0-df0cc6fa38bc
DEVICE=eth0
ONBOOT=yes
重启网卡
systemctl restart network
通过vnc或者xshell等远程工具连接
用shell部署一个lnmp环境测试一下虚拟机的功能是否可以正常使用
https://blog.csdn.net/weixin_54632015/article/details/113465122