虚拟化技能介绍
虚拟化与云盘算的关系
虚拟化是什么
虚拟化是一种技能,顾名思义,就是将不可拆分的实体资源变成可以自由划分的逻辑资源,从而实现资源的整合、隔离、再分配,云盘算就是利用了虚拟化技能的这个特点。
云盘算是什么
云盘算是一种服务模式(IAAS),其头脑就是把各种资源整合起来,然后租给有须要的用户、此中的资源包括处理器(CPU)、内存、存储、网络和其他基本的盘算资源。通常我们通过虚拟化手段把这些资源分割打包提供给用户使用。
常见虚拟化技能
虚拟化主要厂商及产品
系列 | PC/服务器版代表 | VMware | VMware Workstation、vSphere | Microsoft | VirtualPC、Hyper-V | RedHat | KVM、RHEV | Cetrix | Xen | Oracle | Oracle VM VirtualBox |
虚拟化平台安装
Linux内核模块管理下令
下令 | 下令形貌 | lsmod | 查看已经加载的内核模块 | modprobe | 加载内核模块 | sysctl | 设置内核参数 | rmmod | 卸载内核模块 |
Linux验证虚拟化支持指令集
- [root@ecs ~]# grep -Po "vmx|svm" /proc/cpuinfo
- vmx
- vmx
复制代码
KVM/QEMU/LIBVIRTD
KVM是Linux内核模块,它须要CPU指令集的(Intel-VT,AMD-V)支持,是一种硬件辅助虚拟化技能
QEMU是一个虚拟化的仿真工具,通过ioctl与内核模块交互完成对硬件的虚拟化支持
Libvirt是一个对虚拟化管理的接口和工具,提供客户端步伐,比方:virsh,virt-manager
构建虚拟化平台工具软件包
软件包 | 服务 | quem-kvm
| 虚拟化仿真步伐 | libvirt-daemon | 核心守护历程 | libvirt-client | 客户端步伐 | libvirt-daemon-driver-qemu | QEMU管理模块 | libvirt-daemon-driver-network | 网络管理模块 | dnsmasq | DHCP、DNS服务 |
安装虚拟化服务
- [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
复制代码
虚拟化网络
虚拟网络管理下令
下令 | 下令形貌 | virsh net-list [--all] | 列出虚拟网络 | virsh net-start | 启动虚拟网络设备 | virsh net-destroy | 制止虚拟网络设备 | virsh net-define | 根据 xml 文件创建虚拟网络 | virsh net-undefine | 删除一个虚拟网络设备 | virsh net-edit | 修改虚拟网络设备的配置 | virsh net-autostart | 设置开机自启动 |
创建虚拟网桥
- # 官网手册: 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
复制代码
虚拟机配置管理
虚拟机原理概述
虚拟配置文件(*.xml)
文件默认路径:/etc/libvirt/qemu/
用途:界说了虚拟机的设备,比方:CPU、内存、网卡等
存储文件(*.img)
文件默认路径:/var/lib/libvirt/images/
用途:仿真虚拟磁盘,存储所有数据信息
虚拟机磁盘可以使用块设备、逻辑卷设备、文件仿真等。
此中文件仿真模式具有易迁移、易扩展、支持多种磁盘格式、配置方便等特点,在云平台上被广泛使用。
在文件仿真中被广泛采用的COW格式具有:支持弹性空间、支持后端盘复用、支持快照、支持压缩的特点。
Copy On Write写时拷贝技能
COW技能使用指针指向原始盘所有块。
若一个块要被改写,起首把数据从原始盘拷贝到前端盘,然后在前端盘举行改写,最后把数据指针指向改写过的数据。
原始盘始终是只读的。
虚拟机磁盘管理
qemu-img
qemu-img是虚拟机的磁盘管理下令,支持非常多的磁盘格式,比方:raw、qcow2、vdi、vmdk等
qemu-img下令格式:
qemu-img 子下令 子下令参数 块文件名称 大小
常用子下令有:
create 创建磁盘
info 查看磁盘信息
克隆磁盘
- [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
- <domain type="kvm">
- <name>vmhost</name>
- <memory unit="KB">1048576</memory>
- <currentMemory unit="KB">1048576</currentMemory>
- <vcpu placement="static">2</vcpu>
- <os>
- <type arch="x86_64" machine="pc">hvm</type>
- <boot dev="hd" />
- <bootmenu enable="yes" />
- <bios useserial="yes" />
- </os>
- <features>
- <acpi />
- <apic />
- </features>
- <cpu mode="host-passthrough" />
- <clock offset="localtime" />
- <on_poweroff>destroy</on_poweroff>
- <on_reboot>restart</on_reboot>
- <on_crash>restart</on_crash>
- <devices>
- <emulator>/usr/libexec/qemu-kvm</emulator>
- <disk type="file" device="disk">
- <driver name="qemu" type="qcow2" />
- <source file="/var/lib/libvirt/images/vmhost.img" />
- <target dev="vda" bus="virtio" />
- </disk>
- <interface type="bridge">
- <source bridge="vbr" />
- <model type="virtio" />
- </interface>
- <channel type="unix">
- <target type="virtio" name="org.qemu.guest_agent.0" />
- </channel>
- <serial type="pty" />
- <console type="pty">
- <target type="serial" />
- </console>
- <memballoon model="virtio" />
- </devices>
复制代码
创建虚拟机
- [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 + ]
复制代码
虚拟机管理下令
下令 | 下令形貌 | virsh list [--all] | 列出虚拟机 | virsh start/shutdown | 启动/关闭虚拟机 | virsh destroy | 强制制止虚拟机 | virsh define/undefine | 创建/删除虚拟机 | virsh console | 连接虚拟机的 console | virsh edit | 修改虚拟机的配置 | virsh autostart | 设置虚拟机自启动 | virsh dominfo | 查看虚拟机择要信息 | virsh domiflist | 查看虚拟机网卡信息 | virsh domblklist | 查看虚拟机硬盘信息 |
云服务类型
三大服务模式
IaaS: 基础办法服务,Infrastructure-as-a-service
PaaS: 平台服务,Platform-as-a-service
SaaS: 软件服务,Software-as-a-service
公有云、私有云、混合云
公有云:是第三方的云供应商,通过互联网为广大用户提供的一种按需使用的服务器资源,是一种云基础办法。
私有云:是一个企业或组织的专用云环境。一样平常在企业内部使用,不对外提供服务,因此它也被视为一种企业云。
混合云:是在私有云的基础上,组合其他公有云资源,从而答应在不同云环境之间共享应用和数据的使用方式。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |