一、虚拟化技术: 常见的虚拟化技术:虚拟化主要厂商及产品先容 VMware:VMware Workstation、vSphere
Microsoft:VirtualPC、Hyper-V
RedHat:KVM、RHEV
Citrix:Xen
Oracle:Oracle VM VirtualBox
虚拟化与云计算的关系:虚拟化是一种技术,顾名思义,就是将不可拆分的实体资源变成可以自由分别的逻辑资源,从而实现资源的整合、隔离、在分配,云计算就是利用了虚拟化技术的这个特点。云计算是一种服务模式(IAAS)),其思想就是把各种资源整合起来,然后租给有需要的用户,其中的资源包罗处理器(CPU)、内存、存储、网络和其它基本的计算资源。通常我们通过虚拟化本事把这些资源分割打包提供给用户利用。 虚拟化平台先容: KVM是linux内核模块,它需要CPU指令集(Intel-VT/AMD-V)的支持,是一种硬件辅助虚拟化技术。QEMU是一个虚拟化的仿真工具,通过ioctl与内核模块交互完成对硬件的虚拟化支持。 Libvirt是一个对虚拟化管理的接口和工具,提供客户端步伐,例如: virsh ,virt-manager 选中 Linux主机验证虚拟化支持:查看/proc/cpuinfo文件(CPU的指令集)中的vmx和svm、查看内核模块 grep -Po "vmx|svm" /proc/cpuinfo 查看内核模块:lsmod | grep kvm Windows主机验证虚拟化支持:利用securable软件来验证 虚拟化实验拓扑图 1、linux虚拟化平台安装: qemu-kvm:为kvm提供底层体系设备仿真支持 libvirt-daemon:libvirtd 守护进程,管理虚拟机 libvirt-client:客户端软件,提供客户端管理下令( virsh ) libvirt-daemon-driver-qemu: libvirtd连接qemu的驱动 利用10主机设置虚拟化平台,2个CPU,4G内存 在处理器中选择虚拟化 虚拟化平台的软件包已经默认整合在体系安装光盘中,利用yum举行安装虚拟化平台
开启libvirtd服务,查看安装版本 常用virsh管理下令: virsh list [--all] | 列出虚拟机 | virsh start/shutdown | 启动/关闭虚拟机 | virsh destroy | 逼迫制止虚拟机 | virsh define/undefine | 创建/删除虚拟机 | virsh console | 连接虚拟机的 console | virsh edit | 修改虚拟机的设置 | virsh autostart | 设置虚拟机自启动 | virsh dominfo | 查看虚拟机择要信息 | virsh domiflist | 查看虚拟机网卡信息 | virsh domblklist | 查看虚拟机硬盘信息 | virsh net-list [--all] | 列出虚拟网络 | virsh net-start | 启动虚拟交换机 | virsh net-destroy | 逼迫制止虚拟交换机 | virsh net-define | 根据xml文件创建虚拟网络 | virsh net-undefine | 删除一个虚拟网络设备 | virsh net-edit | 修改虚拟交换机的设置 | virsh net-autostart | 设置开机自启动 | 2、虚拟化网络: 网络管理下令:virsh:提供管理各虚拟机的下令接口,支持交互/非交互模式,查看/创建/制止/关闭.. ..格式:virsh 控制指令 [资源名称] [参数] 虚拟网络控制指令: net-list [--all]:列出虚拟网络,默认只显示已启用的设备,将没有启动的设备也显示需要加上--all参数。
net-start:启动虚拟交换机
net-destroy:逼迫制止虚拟交换机
net-define:根据xml文件创建虚拟网络
net-undefine:删除一个虚拟网络设备
net-autostart:设置开机自启动
创建虚拟网桥: 可以在官方地点https://libvirt.org/format.html中查看网络设置模板: 创建 网桥文件/etc/libvirt/qemu/networks/vbr.xml,必须在/etc/libvirt/qemu/networks/的目录下 - <network>
- <name>vbr</name> //网桥的名称
- <forward mode='nat'/> //工作的模式,以nat模式工作
- <bridge name='vbr' stp='on' delay='0'/> //网桥映射的设备名称
- <ip address='192.168.100.254' netmask='255.255.255.0'> //网桥的IP地址和子网掩码
- <dhcp>
- <range start='192.168.100.128' end='192.168.100.200'/>//如果网桥没有地址会自动分配该网段的地址
- </dhcp>
- </ip>
- </network>
复制代码  高版本可以需要需要安装ebtables、iptables、dnsmasq依赖包,重启libvirt服务  创建网桥:virsh net-define /etc/libvirt/qemu/networks/vbr.xml  设置开机自启动: virsh net-autostart vbr  启动该虚拟网桥:virsh net-start vbr,查看状态:  制止虚拟网桥:virsh net-destroy vbr  删除虚拟网桥:virsh net-undefine vbr  删除了虚拟网桥在创建虚拟网桥就需要重新创建虚拟网桥文件才气创建  3、创建Linux虚拟机 虚拟机由虚拟设置文件和存储文件构成。 虚拟设置文件(*.xml):文件默认路径:/etc/libvirt/qemu/,定义了虚拟机的设备、例如:CPU、内存、网卡等。 存储文件(*.img):文件默认路径:/var/lib/libvirt/images/,仿真虚拟机磁盘,存储所有数据信息。 例如我们要创建 vmhost虚拟机就需要创建vmhost.img文件和创建vmhost. xml文件
 虚拟机磁盘(存储文件):虚拟机磁盘可以利用块设备、逻辑卷设备、文件仿真等。其中文件仿真模式具有易迁移、易扩展、支持多种磁盘格式、设置方便等特点,在云平台上被广泛利用。在文件仿真中被广泛采用的ROW格式具有:支持弹性空间、支持后端盘复用、支持快照、支持压缩。
ROW(Redirect On Write)写时重定向技术原理: ROW技术利用指针指向原始盘(装有利用体系的磁盘)所有块。若一个块要被改写,存储体系将指向该块的指针指向前端盘的新位置,然后在前端盘完成数据改写。原始盘(装有利用体系的磁盘)始终是只读的。通俗来讲就是创建了一个新的虚拟机,该虚拟机的磁盘通过ROW技术创建一个前端盘(软连接)指向装有利用体系的磁盘(原始盘),但只能只读原始盘中的数据,该虚拟利用的干系下令和利用都是原始盘的下令(读利用),如果对该虚拟机举行和原始盘中装有的利用体系不相同的设置(写利用)时,就需要通过ROW技术的指针重定向,让指向原始盘中原来的数据磁盘指向新的前端盘中的数据磁盘(软连接指向新数据的数据块)。此时前端盘中占用的数据相对于原始盘的数据量很少很少,节约的体系磁盘空间。  虚拟机磁盘管理:qemu-img是虚拟机的磁盘管理下令,支持非常多的磁盘格式,例如raw、qcow2、vdi、vmdk等等 下令格式:qemu-img 子下令 子下令参数 块文件名称 大小
常用子下令有:
- create:创建一个磁盘
- info:查看磁盘信息
创建raw原始磁盘格式和qcow2写时重定向磁盘格式。-f:指定创建的磁盘格式。查看磁盘,此时通过软连接创建的该磁盘所占用的空间很小。  创建虚拟机磁盘,将原始盘拷贝到/var/lib/libvirt/images目录下,-b:指定原始盘 qemu-img create -f qcow2 -b cirros.qcow2 vmhost.img 20G  查看磁盘信息:qemu-img info vmhost.img  创建立置文件:设置文件一样寻常通过模板生成。我们根据需要修改对应的设置既可以模板文件泉源:官方网站https://libvirt.org/formatdomain.html
   创建立置文件  - <domain type='kvm'> //虚拟机类型
- <name>vmhost</name> //虚拟机名称
- <memory unit='KB'>1048576</memory> //最大内存,当前设置为1G
- <currentMemory unit='KB'>1048576</currentMemory> //当前内存,当前设置为1G
- <vcpu placement='static'>2</vcpu> //CPU的数量
- <os> //系统引导参数
- <type arch='x86_64' machine='pc'>hvm</type>//64位架构,一次性加载2^64
- <boot dev='hd'/> //启动设备为hd硬盘
- <bootmenu enable='yes'/> //开启系统引导提示信息
- <bios useserial='yes'/> //开启系统引导提示信息
- </os>
- <features> //电源管理
- <acpi/>
- <apic/>
- </features>
- <cpu mode='host-passthrough'>//cpu的种类,host-passthrough表示使用和真机相同的CPU
- </cpu>
- <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'/>//该虚拟机硬盘为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'></serial>//串口、用来配置键盘鼠标
- <console type='pty'>//用来配置键盘鼠标
- <target type='serial'/>
- </console>
- <memballoon model='virtio'></memballoon>
- </devices>
- </domain>
复制代码  虚拟机管理下令: list [--all]:列出虚拟机
start、shutdown、reboot:虚拟机启动,制止,重启
destroy:逼迫制止虚拟机
define、undefined:根据xml文件创建/删除虚拟机
Console:连接虚拟机终端 edit:修改虚拟机的设置
dominfo:查看虚拟机择要信息
autostart:设置虚拟机自启动
domiflist:查看虚拟机网卡信息
domblklist:查看虚拟机硬盘信息 创建虚拟机:virsh define /etc/libvirt/qemu/vmhost.xml  开启虚拟机:virsh start vmhost  连接虚拟机  按Ctrl+] 退出  virsh shutdown和reboot为温和的关机和重启相当于poweroff和reboot virsh destroy:逼迫关闭为暴力的关机相当于关闭电源 virsh edit:修改虚拟机设置,大概直接修改/etc/libvirt/qemu/vmhost.xml设置文件(需要重启才气生效)。  virsh dominfo:查看虚拟机信息  virsh autostart:设置开机自启动  virsh domblklist/domiflist:查看虚拟机硬盘和网卡的信息,虚拟机中的vda磁盘指向真机中的/var/lib/libvirt/images/vmhost.img文件,vnet0为虚拟机中的eth0网卡  virsh undefine:删除虚拟机。虚拟机其实只有三个文件1.xml文件,2.img文件,3.运行的实例running,前两个不占用CPU内存,只有第三个实例占用内存CPU,利用undefine下令只xml文件,其他两个都还在。需要传递删除虚拟机,就手动删除img文件,手动关闭虚拟机运行实例。 利用undefine删除虚拟机img文件和运行实例都还在。  此时需要手动删除img文件和关闭运行实例  二、公有云简概述 云服务的三大模式:
laaS:底子办法服务,Infrastructure-as-a-service PaaS:平台服务,Platform-as-a-service
SaaS:软件服务,Software-as-a-service 云计算是一种服务模式: 底子办法服务(IAAS),其思想就是把各种资源整合起来,然后租给有需要的用户,其中的资源包罗处理器(CPU)、内存、存储、网络和其它基本的计算资源。
平台服务(PAAS),除底子办法外还提供如:编程语言,运行环境,技术支持,乃至针对该平台而举行的应用体系开发、优化等服务,也就是中间件服务。
软件服务(SAAS),是一种通过Internet提供软件的模式,客户可以根据自己现实需求,通过互联网向厂商定购所需的应用软件服务。 公有云、私有云、混合云:
公有云是第三方的云供应商,通过互联网为广大用户提供的一种按需利用的服务器资源,是一种云底子办法。 私有云是一个企业或组织的专用云环境。一样寻常在企业内部利用,不对外提供服务,因此它也被视为一种企业云。 混合云是在私有云的底子上,组合一个或多个公有云资源,从而允许在差别云环境之间共享应用和数据的利用方式。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |