虚拟化与云计算的关系
虚拟化是一种技术、顾名思义,就是将不可拆分的实体资源变成可以自由划分的逻辑资源,从而实现资源的整合、隔离、在分配,云计算就是利用了虚拟化技术的这个特点。
(大白话来说就是:虚拟化是用软件把一台物理服务器的CPU、内存、硬盘等资源切成多个相互隔离的小块,每块都能独立当一台完整电脑用,且可按需随时调整大小)
云计算是一种服务模式(IAAS),其思想就是把各种资源整合起来,然后租给有需要的用户,其中的资源包括处理器(CPU)、内存、存储、网络和其它基本的计算资源。通常我们通过虚拟化手段把这些资源分割打包提供给用户使用。
(大白话来说就是: 云计算就是先把一大堆CPU、内存、硬盘和网络用虚拟化切成很多小份,然后像水电一样按需租给用户用的服务模式。)
一、实验
实验主机
主机名称 IP地址 配置 ecs 192.168.88.125 2 CPU, 4G mem
虚拟化平台安装
命令 命令描述 lsmod 查看已经加载的内核模块 modprobe 加载一个内核模块 sysctl 设置内核参数 rmmod 卸载内核模块
1、部署虚拟化平台
[root@ecs ~]# grep -Po "vmx|svm" /proc/cpuinfo
vmx
vmx
虚拟化服务
[root@ecs ~]# dnf install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu libvirt-daemon-driver-network dnsmasq
[root@ecs ~]# systemctl enable --now libvirtd
[root@ecs ~]# lsmod |grep kvm
kvm_intel 174841 6
kvm 578518 1 kvm_intel
irqbypass 13503 1 kvm
[root@ecs ~]# virsh version
Compiled against library: libvirt 8.0.0
Using library: libvirt 8.0.0
Using API: QEMU 8.0.0
Running hypervisor: QEMU 6.2.0
虚拟网桥
# 官网手册: https://libvirt.org/docs.html
[root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml
<network>
<name>vbr</name>
<forward mode='nat'/>
<bridge name='vbr' stp='on' delay='0'/>
<ip address='192.168.100.254' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.128' end='192.168.100.200'/>
</dhcp>
</ip>
</network>
# 创建网桥
[root@ecs ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml
Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml
# 设置开机自启动
[root@ecs ~]# virsh net-autostart vbr
Network vbr marked as autostarted
# 启动网桥
[root@ecs ~]# virsh net-start vbr
Network vbr started
# 验证状态
[root@ecs ~]# virsh net-list --all
Name State Autostart Persistent
-----------------------------------------
vbr active yes yes
[root@ecs ~]# ifconfig vbr # 验证
命令 命令描述 virsh net-list [--all] 列出虚拟网络 virsh net-start 启动虚拟网络设备 virsh net-destroy 停止虚拟网络设备 virsh net-define 根据 xml 文件创建虚拟网络 virsh net-undefine 删除一个虚拟网络设备 virsh net-edit 修改虚拟网络设备的配置 virsh net-autostart 设置开机自启动
Linux 虚拟机
克隆磁盘
[root@ecs ~]# cp cirros.qcow2 /var/lib/libvirt/images/
[root@ecs ~]# cd /var/lib/libvirt/images/
[root@ecs ~]# qemu-img create -F qcow2 -f qcow2 -b cirros.qcow2 vmhost.img 20G
[root@ecs ~]# qemu-img info vmhost.img #查看信息
虚拟机配置文件
[root@ecs ~]# vim vmbase.xml
02: <name>vmhost</name> # 必改配置
03: <memory unit="KB">1048576</memory>
04: <currentMemory unit="KB">1048576</currentMemory>
05: <vcpu placement="static">2</vcpu>
25: <source file="/var/lib/libvirt/images/vmhost.img" /> # 必改配置
29: <source bridge="vbr" />
创建虚拟机
[root@ecs ~]# virsh define vmbase.xml
[root@ecs ~]# virsh list --all
Id Name State
----------------------------------------------------
- vmhost shut off
[root@ecs ~]# virsh start vmhost
Domain vmhost started
[root@ecs ~]# virsh console vmhost # 两次回车
Connected to domain vmhost
Escape character is ^]
login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
cirros login:
退出使用 ctrl + ]
管理命令(1)
命令 命令描述 virsh list [--all] 列出虚拟机 virsh start/shutdown 启动/关闭虚拟机 virsh destroy 强制停止虚拟机 virsh define/undefine 创建/删除虚拟机 virsh console 连接虚拟机的 console
管理命令(2)
命令 命令描述 virsh edit 修改虚拟机的配置 virsh autostart 设置虚拟机自启动 virsh dominfo 查看虚拟机摘要信息 virsh domiflist 查看虚拟机网卡信息 virsh domblklist 查看虚拟机硬盘信息