kvm

1. 什么是云计算?

云计算是一种按量付费的模式,云计算的底层是通过虚拟化技术来实现。

2. 云计算的服务类型

1) IAAS 基础设施即服务(infrastructure as an service) 虚拟机 ecs openstack
2)PAAS 平台即服务(platform as an service ) php,java docker容器 +k8s
3)SAAS 软件即服务(software as an service ) 企业邮箱服务 cdn服务 rds数据库 开发+运维
在这里插入图片描述

3. 为什么要用云计算

小公司:10台物理机20w+、租用idc机房5w+、100M宽带10W(成本高)
10台云主机,前期投入小,扩展灵活,风险小
大公司:闲置服务器计算资源,虚拟机,出租(超卖)
超卖:64G服务器,64台1G == 320台1G; 64台大公司自己的业务,264台 租出去
国企,银行

公有云 谁都可以租
私有云 只有公司内部使用
混合云 有自己的私有云 + 租的公有云

4. 云计算的基础KVM虚拟化

宿主机:内存4G+ 纯净的系统CentOS7

4.1 什么是虚拟化

虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

4.2 虚拟化软件的差别

1)linux虚拟化软件:

软件名 特点
qemu 软件纯模拟全虚拟化软件,特别慢!兼容性好!
xen(半) 性能特别好,需要使用专门修改之后的内核,兼容性差! redhat 5.5 xen kvm
KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核 centos6+集成kvm内核;性能较好,兼容较好

2)vmware workstations: 图形界面
3)virtual box: 图形界面 Oracle

4.3 安装kvm虚拟化管理工具
主机名 ip地址 内存 虚拟机
kvm01 10.0.0.11 4G(后期调整到2G) cpu开启vt虚拟化
kvm02 10.0.0.12 2G cpu开启vt虚拟化
install libvirt virt-install qemu-kvm
KVM:Kernel-based Virtual Machine  

libvirt  :虚拟机的管理软件 libvirt: kvm,xen,qemu,lxc....
virt virt-install virt-clone  :虚拟机的安装工具和克隆工具
qemu-kvm  qemu-img (qcow2,raw)   :管理虚拟机的虚拟磁盘 

环境要求:
1)centos 7.4 7.6
2)vmware 宿主机 kvm虚拟机
3)内存4G,cpu开启虚拟化 IP:10.0.0.11
在这里插入图片描述
需要基础源,安装管理kvm的工具

# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum install libvirt virt-install qemu-kvm -y 
# systemctl start libvirtd.service 
# systemctl enable libvirtd.service
4.4 安装一台kvm虚拟机

准备:iso镜像,VNC-Viewer-6.19.325 宿主机(微软的远程桌面)
vnc:远程的桌面管理工具 向日葵 微软的远程桌面
在这里插入图片描述
10.0.0.11 宿主机(建议虚拟机内存不要低于1024M,否则安装系统特别慢)

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

vnc:10.0.0.11:5900

--virt-type kvm      虚拟化的类型(qemu) 
--os-type=linux      系统类型 
--os-variant rhel7   系统版本 
--name centos7       虚拟机的名字  
--memory 1024        虚拟机的内存 
--vcpus 1            虚拟cpu的核数 --disk /opt/centos2.raw,format=raw,size=10 
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso  
--network network=default   使用默认NAT的网络 
--graphics vnc,listen=0.0.0.0  
--noautoconsole

在这里插入图片描述
注意:云主机都没有swap分区
在这里插入图片描述

4.5 kvm虚拟机的virsh日常管理和配置
命令 含义
virsh list --all 列表list(–all)
virsh start web01 开机start
virsh shutdown web01 关机shutdown(虚拟机有系统)
virsh destroy web01 拔电源关机destroy
reboot 重启reboot(虚拟机有系统)
virsh dumpxml centos7 >centos7-off.xml 导出配置dumpxml
virsh destroy web01
virsh undefine web01
删除undefine
推荐:先destroy,在undefine
virsh define /opt/vm_centos7.xml 导入配置define
virsh edit web01 修改配置edit(自带语法检查)
virsh domrename kd web01 重命名domrename (低版本不支持)
virsh suspend web01 挂起suspend
virsh resume web01 恢复resume
virsh vncdisplay web01 查询vnc端口号vncdisplay
virsh autostart web01 开机启动autostar,前提:systemctl enable libvirtd;
virsh autostart --disable web01 取消开机启动autostart --disable
vish console web01 控制台登录
4.5.1 kvm虚拟机详细介绍及命令

kvm虚拟机由两个文件组成(虚拟磁盘文件,配置文件:cpu, 内存,网络)

配置文件路径:/etc/libvirt/qemu/*.xml
磁盘文件路径:/opt/*.raw

1)创建一台web01kvm虚拟机

# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web01 --memory 1024 --vcpus 1 --disk /opt/web01.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

2)迁移web01kvm虚拟机

备份web01配置文件
# virsh dumpxml web01 >/opt/vm_web01.xml
导入虚拟机
# virsh define /opt/vm_web01.xml 

3)删除web01kvm虚拟机

#停止web01
[root@kvm1 ~]# virsh destroy web01 
#undefine只是删除配置文件
[root@kvm1 ~]# virsh undefine web01 

问题:kvm虚拟机关一台少一台原因?

virsh undefine xxx
之前执行过undefine命令导致配置文件消失,但是直接undefine不会杀死kvm虚拟机的进程,所以现在是进程还在,配置文件消失,当关机的时候,进程也消失了,所以kvm虚拟机会关一台消失一台。
解决办法:
查看/etc/libvirt/qemu/*.xml,如果没有
# ls /etc/libvirt/qemu/web01.xml 
ls: cannot access /etc/libvirt/qemu/web01.xml: No such file or directory

# virsh dumpxml web01 >/opt/vm_web01.xml 
# virsh define /opt/vm_web01.xml

# ls /etc/libvirt/qemu/web01.xml 
/etc/libvirt/qemu/web01.xml

生产建议:磁盘文件和配置文件名称一致

方法一:修改文件名称
# virsh dumpxml centos7 |grep raw
  <driver name='qemu' type='raw'/>
  <source file='/opt/centos2.raw'/>
# virsh shutdown centos7     #先关机再修改
# mv /opt/centos2.raw /opt/centos7.raw 
# virsh edit centos7      #使用edit修改文件
# virsh dumpxml centos7 |grep raw
 <driver name='qemu' type='raw'/>
 <source file='/opt/centos7.raw'/>
 <driver name='qemu' type='raw'/>
开启重新读取磁盘文件
# virsh start centos7 
方法二:重命名
# virsh domrename centos7 kd
# virsh list --all
 -     kd                             shut off

4)挂起恢复虚拟机(开机之后的才能挂起)

# virsh suspend kd 
# virsh list --all
 6     kd                             paused
# virsh resume kd 
# virsh list --all
 6     kd                             running

问题:虚拟机挂起,导致时间不同步,要做时间同步(定时任务)

5)查询vnc端口号vncdisplay

# virsh vncdisplay kd 
:1

在这里插入图片描述
6)设置kvm虚拟机开机自启(只要libvirt服务启动kvm虚拟机就会启动)

设置为开机自启
# virsh autostart web01 
关闭开机自启
# virsh autostart web01 --disable
查看kvm虚拟机是否为开机自启
# ls /etc/libvirt/qemu/autostart/
web01.xml

6)console登录
在vnc查看ip,xshell远程登录
在这里插入图片描述

centos7的kvm虚拟机:
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@localhost ~]# reboot
[root@kvm01 ~]# virsh console web01 
使用Ctrl+]退出

特点:

console和vnc:就算虚拟机没有网络,都可以管理虚拟机
console:不需要安装vnc客户端,可以复制粘贴
console比vnc用的更广
4.6 kvm虚拟机虚拟磁盘管理和快照管理

raw: 裸格式,占用空间比较大,不支持快照功能,不方便传输 ,读写性能较好 ;总50G 占用5G,传输50G
qcow2: qcow(copy on write)占用空间小,支持快照,性能比raw差一点,方便传输 总50G 占用5G,传输5G

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/oldboy.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7.2-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
4.6.1 磁盘工具的常用命令

qemu-img info,create,resize,convert
查看虚拟磁盘信息 :

qemu-img info  test.qcow2
qemu-img info /opt/centos2.raw

创建一块qcow2格式的虚拟硬盘:

qemu-img create -f qcow2 test.qcow2 2G

调整磁盘容量(qcow2只能扩容不能缩容:缩容会丢数据 raw可以缩容)

qemu-img   resize  test.qcow2 +20G

raw转qcow2( -c 压缩 )

qemu-img convert -f raw -O qcow2 centos7.raw kd.qcow2 -c

virsh edit web01:

    <disk type
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值