博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KVM虚拟化,云平台
阅读量:4229 次
发布时间:2019-05-26

本文共 6394 字,大约阅读时间需要 21 分钟。

KVM 

介绍

virtualization 资源管理

一台物理机虚拟出多台虚拟机

多个物理机虚拟出一台虚拟机(看应用在哪的情况下)

完全虚拟化

部分虚拟化

硬件辅助(CPU)

 

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

KVM/QEMU/LIBVIRTD

KVM是Linux内核的模块,他需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT ,AMD-V,内存的相关如Intel的EPT和AMD的RVI技术

QEMU是一个虚拟化的仿真工具,通过ioctl与内核kvm交互完成对硬件的虚拟化支持

Libvirt是一个对虚拟化管理的接口和工具,提供用户端程序virsh, virt-install, virt-manager ,virt-view与用户交互

必备软件:

qemu-kvm

为 kvm 提供底层仿真支持

libvirt-daemon

libvirtd 守护进程,管理虚拟机

linvirt-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 satrt libvirtd

 

kvm虚拟机的组成

内核虚拟化模块(KVM)

系统设备仿真(QEMU)

虚拟机管理程序(LIBVIRT)

一个XML文件(虚拟机配置声明文件)

位置 /etc/libvirt/qemu/

一个磁盘镜像文件(虚拟机的硬盘)

位置 /var/lib/libvirt/images

 

提供管理各虚拟机的命令接口

支持交互式,查看/创建/停止/关闭....

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

 virsh nodeinfo  查看KVM节点(服务器)信息

virsh dominfo 虚拟机名称  #查看指定虚拟机信息

list [--all] 列出虚拟机

start | shutdown | reboot 虚拟机启动,停止,重启

destroy 强制停止虚拟机

define | undefine 根据xml文件 创建/删除  虚拟机

console  连接虚拟的

edit   修改虚拟机的配置(和vim差不多)

autostart  设置虚拟机自启

domiflist  查看虚拟机网卡信息

domblklist 查看虚拟机硬盘信息

blockresize  --path [磁盘文件绝对路径]  --size  50G openstack虚拟机名字  扩展磁盘

------------------------------------------------------------------------------------------------

虚拟网络管理

net-list [--all]  列出虚拟网络

net-start 启动虚拟交换机

net-destroy 强制停止虚拟交换机

net-define 根据xml文件 创建虚拟网络

net-undefine 删除一个虚拟网络设备

net-edit 修改虚拟交换机的配置

net-autostart 设置虚拟交换机机自启动

特点\类型 RAW QCOW2

KVM默认

I/O效率 >较高
占用空间
压缩 不支持 支持
后端盘复用 不支持 支持
快照 不支持 支持

 

qemu-img 虚拟机的磁盘管理命令,支持非常多的磁盘格式,例如raw,qcow2,vdi,vmdk等等

create 创建一个磁盘 

convert 转换磁盘格式

info 查看磁盘信息

resize 扩展磁盘空间

创建新的镜像盘文件

qemu-img create qcow2格式    /var/lib/libvirt/images/node.img磁盘路径  50G大小

查询镜像盘文件的信息

qemu-img info  /var/lib/libvirt/images/node.img磁盘路径

-b 使用后端模板文件

qemu-img create -b  后端模板文件  -f  qcow2(磁盘格式) A,img(磁盘文件名)

#后端模板文件可以qemu-img  info tedu_node05.img磁盘文件 --->backing file:后端盘文件

 

 

 

 

 base-vm   A(虚拟机名称)       #真机上克隆虚拟机

virsh start A       #启动虚拟机

virsh console A      #连接虚拟机

ifconfig         

lsblk

df -h     #Ctrl + ] 退出虚拟机

 virsh domblklist A       #查看虚拟机的文件路径

目标     源

------------------------------------------------
vda        /var/lib/libvirt/images/A.img

qemu-img info /var/lib/libvirt/images/A.img   #复制上面的路径,查看虚拟机磁盘信息

image: /var/lib/libvirt/images/A.img

file format: qcow2
virtual size: 30G (32212254720 bytes)   #虚拟机磁盘大小
disk size: 28M
cluster_size: 65536
backing file: .node_base.qcow2 (actual path: /var/lib/libvirt/images/.node_base.qcow2)  #后端盘
Format specific information:
    compat: 1.1
    lazy refcounts: false

virsh blockresize --path /var/lib/libvirt/images/A.img(磁盘路径) --size 50G A(虚拟机名字)   #扩展磁盘

 qemu-img info /var/lib/libvirt/images/A.img            #查看虚拟机磁盘大小

 ssh root@192.168.1.137                     #连接虚拟机上看磁盘变化

lsblk 

LANG=C     #语言改为英文才能分区扩容

 growpart /dev/vda 1  #分区扩容,growpart  磁盘 分区序号(这里指第一个分区)

df -h

/dev/vda1        30G  912M   30G   3% /

xfs_growfs  /     #扩容文件系统(挂载目录)

 

/sbin/lsmod | grep kvm  #输出关于kvm版本的信息则已装入kvm模块

 

 

COW技术原理

copy on write,写时复制

直接映射原始磁盘的数据内容

当数据有修改要求时,在修改之前自动讲旧数据拷贝存入前端盘后,对前端盘进行修改

原始盘终是只读的

 

 

创建xml文件

编辑:virsh edit 虚拟机名

  2   <name>C</name> #虚拟机名称

 4   <memory unit='KiB'>1488282</memory>     #这里指内存大小1G,两项要一致

 5   <currentMemory unit='KiB'>1488282</currentMemory>

 6   <vcpu placement='static'>2</vcpu>  #虚拟的CPU个数

 24     <disk type='file' device='disk'>

 25       <driver name='qemu' type='qcow2'/>
 26       <source file='/var/lib/libvirt/images/A.img'/>   #磁盘路径
  </disk>

     37     <interface type='bridge'>   

     38       <mac address='52:54:00:c0:b0:31'/>
     39       <source bridge='vbr'/>          #虚拟交换机
     40       <model type='virtio'/>
    </interface>

xml配置文件定义了一个虚拟机的名称,虚拟磁盘,cpu,虚拟交换机,网卡,内存等

默认位置:/etc/libvirt/qemu/虚拟机名.xml

导出xml配置文件

查看:virsh dumpxml  虚拟机名

备份:virsh dumpxml  虚拟机名  > 虚拟机名.xml

 

 


实验:创建虚拟机C

cp /var/lib/libvirt/images/.node_base.xml    /etc/libvirt/qemu/C.xml 要和虚拟机名一样

cd  /var/lib/libvirt/images

qemu-img create -f qcow2 -b .node_base.qcow2 C.img 30G   #创建虚拟机

vim /etc/libvirt/qemu/C.xml        

<name>C</name>

<source file='/var/lib/libvirt/images/C.img'/>
 

 virsh define /etc/libvirt/qemu/C.xml    #定义xml文件

virsh start C              #开启虚拟机

virsh console C             #连接

网卡及配置文件

 vim /etc/sysconfig/network-scripts/ifcfg-eth0

# Generated by dracut initrd

DEVICE="eth0"         #驱动名称,
ONBOOT="yes"         #开启开机自启
NM_CONTROLLED="no"     #不接受NetworkManager控制
TYPE="Ethernet"         #类型
BOOTPROTO="dhcp"       #协议(dhcp/static/none)
PERSISTENT_DHCLIENT="yes"       
 

 

 

 

 

 

 

 

云平台

介绍

• 基于互联网的相关服务的增加、使用和交付模式

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

 

IaaS

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

 

PaaS

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

 

SaaS

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

 

 

Openstack

• OpenStack是一个由NASA(美国国家航空航天局)

和Rackspace合作研发并发起的项目
• OpenStack是一套IaaS解决方案
• OpenStack是一个开源的云计算管理平台
• 以Apache许可证为授权

 

 

什么是云?

• 对于到底什么是云计算,至少可以找到100种解释
• 现阶段广为接受的是美国国家标准与技术研究院
(NIST)定义:
– 云计算是一种按使用量付费的模式,这种模式提供可
用的、便捷的、按需的网络访问, 进入可配置的计算
资源共享池(包括网络,服务器,存储,应用软件,
服务),这些资源能够被快速提供,只需投入少量的
管理工作,或与服务供应商进行很少的交互

云计算三大服务模式

 

知名云服务商

国外:亚马逊云AWS,微软Azure,IBM SCE+

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

 

华为云产品介绍

全面覆盖各应用领域

– 弹性计算ECS、存储、安全、数据库、区块链、 ......

 

• 弹性云服务器 ECS(Elastic Compute Service)

– 是一种弹性可伸缩的计算服务(虚拟机),助您降低
IT 成本,提升运维效率,使您更专注于核心业务创新

 

华为云控制台

注册华为云用户

使用华为云web控制台

云服务器选型要点

• 重点注意事项

– 计费方式(包年包月、按需付费)
– 规格(CPU/内存/硬盘)
– 镜像(Linux系统)
– 登录方式(设密码)
– 计费方式(按带宽、按流量)

选购一台ECS云服务器:

• 选型 --> 立即购买 --> 接受许可协议 -->

• 提交申请 --> 确认实例

 

ECS基本操作

• 基本管理:开机、关机、停止、重启、远程登录
• 更多操作:更改配置、重装系统、换系统

 

• 远程控制协议

– RDP(端口号3389),适用于Windows服务器
– SSH(端口号22),适用于Linux服务器、防火墙等设备

 

• 常用SSH管理工具

– PC端:Xshell、SecureCRT、Putty等
– 手机端:iTerminal、Termius、阿里云APP等

 

创建网站

• 在云服务器上启用Web服务
– 安装 httpd 软件包
– 启动名为 httpd 的系统服务,并设置开机自动运行
[root@svr1 ~]# yum -y install httpd 
.. ..
[root@svr1 ~]# systemctl restart httpd  
[root@svr1 ~]# systemctl enable httpd
[root@svr1 ~]# systemctl status httpd
.. .. Active: active (running) .. ..
 

特别注意事项

– ECS实例需开放Web服务端口
22 —— Linux服务器远程控制
80 —— 普通网站服务
443 —— 加密网站服务

 

从互联网访问刚建立的网站,查看页面效果

转载地址:http://ariqi.baihongyu.com/

你可能感兴趣的文章
一个有趣的python项目---一个好玩的网站
查看>>
git常用命令总结
查看>>
Protobuf了解一下?
查看>>
超越Selenium的存在---Pyppeteer
查看>>
复仇者联盟4:终局之战剧透
查看>>
Msgpack有没有兴趣了解一下?
查看>>
探索一家神秘的公司
查看>>
PDF转Word完全免费?这么好的事情我怎么不知道????
查看>>
数据解读---B站火过蔡徐坤的“鬼畜“区巨头们
查看>>
Squid代理服务器搭建亿级爬虫IP代理池
查看>>
JupyterNotebook‘s Magic
查看>>
在Linux 上部署Jenkins和项目
查看>>
Python+requests+unittest+excel实现接口自动化测试框架
查看>>
那些年我们听过的互联网公司的套路?
查看>>
谈谈python里面那些高级函数
查看>>
40行代码带你免费看《海贼王-和之国》篇章
查看>>
搭建炫酷的服务器监控平台
查看>>
垃圾分类:人机搭配,干活不累
查看>>
Nginx
查看>>
Memcached,session共享
查看>>