码迷,mamicode.com
首页 > 其他好文 > 详细

Cloud & KVM

时间:2021-01-18 11:00:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:最大   国际   api   base   structure   script   pass   逻辑   lib   

CLOUD


一、云计算

什么是云计算

  • 基于互联网的相关服务的增加、使用和交付模式
  • 这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池
  • 这些资源能够被快速提供,只需要投入很少的管理工作,或与服务供应商进行很少的交互
  • 通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源

国际知名云服务商

  • 国外:亚马逊AWS、微软Azure、IBM SCE+

  • 国内:华为云、阿里云、百度云、腾讯云



云计算三大服务模式


IaaS

  • IaaS(Infrastructure as a Service),基础设施服务
  • 提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序
  • IaaS 通常分为三种用法:公有云、私有云、混合云

PaaS

  • PaaS(Platform-as-a-Service)意思是:平台即服务
  • 以服务器平台或者开发环境作为服务进行提供,就成为了PssS。如淘宝
  • PaaS 运营商所需提供的服务,不仅仅是单纯的基础平台,还针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务
  • 简单地说,PaaS 平台是指云环境中的应用基础设施服务,也可以说是中间件即服务

SaaS

  • SaaS(Software-as-a-Service)软件即服务
  • 是一种通过 Internet 提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务
  • 用户不用再购买软件,而是向提供商租用基于WEB的软件,来管理企业经营活动,不用对软件进行维护,提供商会债权管理和维护软件,同时也提供软件的离线操作和本地数据存储

技术图片



二、KVM

1、虚拟化概念

virtualization 资源管理

  • x 个物理资源 -----> y 个逻辑资源
  • 一般情况为x < y,即由少量物理资源生成多个逻辑资源,如1台主机生成多台虚拟机
  • 从技术层面来说,x > y 也可,但是不实用。
  • 实现的程度有:完全、部分、硬件辅助(CPU)

虚拟化主要厂商及产品

系列 PC/服务器版代表
VMware VMware Workstation、vSphere
Microsoft VirtualPC、Hyper-V
RedHat KVM、RHEV
Citrix Xen
Oracle Oracle VM VirtualBox

2、KVM


2.1、KVM虚拟化服务平台的组成

  • 三层:最低层KVM内核、硬件仿真工具QEMU、管理的接口工具Libvirt
    • KVM:这是已经集成到 LINUX 内核的模块,它需要CPU 支持,采用硬件辅助虚拟化技术 Intel-VT,AMD-V,内存的相关如 Intel 的 EPT 和 AMD 的 RVI 技术
    • QEMU:一个虚拟化的仿真工具,通过 ioctl 与内核 KVM 交互完成对硬件的虚拟化支持
    • Libvirt:一个对虚拟化管理的接口和工具,提供用户端程序 virsh ,virt-install,virt-manager,virt-view 与用户进行交互
~]# lsmod | grep kvm                        # 查看内核
kvm_intel             174841  9 
kvm                   578518  1 kvm_intel
irqbypass              13503  3 kvm

]$ ps -efww | grep -i qemu


2.2、安装KVM虚拟化平台必备软件

  • qemu-kvm
    • 为 KVM 提供底层仿真支持
  • libvirt-daemon
    • libvirtd 守护进程,管理虚拟机
  • libvirt-client
    • 用户端软件,提供客户端管理命令
  • libvirt-daemon-driver-qemu
    • libvirtd 连接 qemu 的驱动
‘可选功能:‘
virt-install                        # 系统安装工具
virt-manager                        # 图形管理工具
virt-v2v                              # 虚拟机迁移工具
virt-p2v                              # 物理机迁移工具

‘安装‘
]# yum -y install   qemu-kvm     libvirt-daemon     libvirt-client     libvirt-daemon-driver-qemu

]# systemctl start libvirtd

2.3、KVM 虚拟机的组成

  • 内核虚拟化模块
  • 系统设备仿真
  • 虚拟机管理程序(LIBVIRT)

  • 一个 XML 文件(虚拟机配置的声明文件)
    • /etc/libvirt/qemu/
  • 磁盘镜像文件(虚拟机的硬盘)
    • /var/lib/libvirt/images/
]# ls /etc/libvirt/qemu/
tedu_node01.xml  tedu_node02.xml tedu_node03.xml  tedu_node04.xml

]# ls /var/lib/libvirt/images/
tedu_node01.img tedu_node02.img tedu_node03.img  tedu_node04.img



3、virsh 命令工具


3.1、虚拟机管理

格式:
virsh  控制指令  [虚拟机名称]  [参数]

list [--all]                           # 列出正在运行的虚拟机。--all 所有的
start|shutdown|reboot                  # 启动、停止、重启
destroy                                # 强制停止 
define|undefine                        # 创建、删除
console                                # 连接到虚拟机

edit                              # 修改配置
autostart                         # 设置自启动
domiflist                         # 查看虚拟机网卡信息
domblklist                        # 查看虚拟机硬盘信息

‘修改虚拟机配置,要生效,必须先关机,再启动,直接重启无用。‘

3.2、虚拟网络管理

virsh 

net-list [--all]                  # 列出虚拟网络
net-start                         # 启动虚拟交换机
net-destroy                       # 强制停止虚拟交换机
net-define                        # 根据XML文件创建虚拟网络
net-undefine                      # 删除一个虚拟网络设备
net-edit                          # 修改虚拟交换机的配置
net-autostart                     # 设置虚拟交换机自启动


4、qemu-img 磁盘管理

常用镜像盘类型

特点、类型 RAW QCOW2
KVM 默认
I/O 效率 较高
占用空间
压缩 不支持 支持
后端盘复用 不支持 支持
快照 不支持 支持

qemu-img 命令

  • 磁盘管理命令,支持非常多的磁盘格式:raw、qcow2、vdi、vmdk 等等。
‘命令格式‘
qemu-img  命令 参数 块文件名称 大小

常用命令
create                  # 创建一个磁盘
convert                 # 转换磁盘格式
info                    # 查看磁盘信息
resize                  # 扩容磁盘空间

-f			# 指定格式
-b			# 使用后端模板

]$ qemu-img create -b .node_base.img -f qcow2 nsd1907.img


5、COW 技术

COW:Copy ON Write 写时复制

  • 直接映射原始盘的数据内容
  • 当数据有修改要求时,在修改前自动将旧数据拷贝存入前端盘后,对前端盘进行修改
  • 原始盘(后端盘)始终是只读的

6、xml 管理

  • XML 文件:虚拟机配置的声明文件(用于标明虚拟机的硬件配置参数)
‘配置调整格式‘
virsh edit 虚拟机名


]# virsh edit node
<domain type=‘kvm‘>
  <name>test1</name>
  <uuid>a13c82eb-ede8-4f73-be64-9cb365bed20f</uuid>
  <memory unit=‘KiB‘>1488282</memory>                                      # 内存
  <currentMemory unit=‘KiB‘>1488282</currentMemory>                        # 最大内存
  <vcpu placement=‘static‘>2</vcpu>                                        # CPU
  
  <os>
    <type arch=‘x86_64‘ machine=‘pc-i440fx-rhel7.0.0‘>hvm</type>
    <boot dev=‘hd‘/>
    <bootmenu enable=‘yes‘/>
    <bios useserial=‘yes‘/>
  </os>
  
  <features>
    <acpi/>
    <apic/>
  </features>
  
  <cpu mode=‘host-passthrough‘ check=‘none‘/>
  <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/test1.img‘/>
      <target dev=‘vda‘ bus=‘virtio‘/>
      <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x05‘ function=‘0x0‘/>
    </disk>
		... ... ...
		<interface type=‘bridge‘>                                     # 网络
      <mac address=‘52:54:00:be:3d:34‘/>
      <source bridge=‘vbr‘/>
      <model type=‘virtio‘/>
      <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x03‘ function=‘0x0‘/>
    </interface>



7、创建虚拟机

cd /var/lib/libvirt/image/
qemu-img create -b .node_base_qcow2 -f qcow2 node.img  20G      # 创建磁盘镜像文件

cd /etc/libvirt/qemu/
cp .node_base_xml  node.xml                  # 拷贝模板 
vim node.xml                                 # 修改配置声明文件参数

virsh define node.xml                        # 定义xml文件。即创建虚拟机


‘网络配置文件‘
]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.20"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"



8、virsh 扩容磁盘

虚拟机创建后,进行的磁盘扩容

基本思路:

  • 硬盘扩容
  • 分区扩容
  • 文件系统扩容(格式化)
virsh demblklist 虚拟机名                  # 先查看虚拟机硬盘信息
virsh blockresize --path [硬盘信息的绝对路径] --size  扩容后容量  虚拟机名

virsh domblklist test1
virsh blockresize --path /var/lib/libvirt/images/test1.img --size 50G test1

LNAG=C                        # 语言必须设置为英文
lsblk                         # 查看硬盘设备是否有多余空间
growpart /dev/vda 1           # 扩容第一个分区
blkid	
xfs_growfs /                  # 扩容文件系统
df -h                         # 查看扩容结果



Cloud & KVM

标签:最大   国际   api   base   structure   script   pass   逻辑   lib   

原文地址:https://www.cnblogs.com/SHUN-The-Unique-Soul/p/14287149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!