云计算之KVM虚拟化最佳实践

网友投稿 245 2022-11-13

云计算之KVM虚拟化最佳实践

一.云计算出现的背景

在云计算出现之前,大部分企业的数据服务的数据中心一般是以IDC托管的形式,一般企业买设备放到IDC机房托管,然后安装系统,部署服务,购买域名绑定,到外网访问的一系列的流程过程。

但是这些传统的做法对于初创的企业来说存在一些问题:

1.资源的利用率很低;

2.资源分配不合理;

3.自动化能力差;

4.初始成本高;

从传统数据中心到创业型企业的大量涌入,从解决问题以及中小企业的服务需求,逐渐演变出了云计算的概念和实践:

二.云计算概念

简单概括:

1.云计算是一种资源使用交付的模式;

2.云计算必须通过网络来使用;

3.弹性计算,按需付费,快速扩展;

对于底层网络和硬件等,不需要关心太多,都是由云计算提供商来服务提供的。

一般云计算分类如下图:

公有云指的是一般云提供商提供的公网云服务,比如阿里云,腾讯云等

私有云指的是一般企业内部搭建的云服务,使用的软件有开源的openstack,cloudstack等。

混合云指的是公有云和私有云混合使用,一般的企业可能会混用。

云计算分层如下图:

Saas:软件层;面向的是最终的用户

Paas:平台层;面向开发人员

Iaas:基础设施服务;面向运维人员

三.虚拟化

云计算并不等同于虚拟化,只是云计算中运用到了虚拟化技术。

在这里介绍虚拟化的一种技术KVM (Kernel-based Virtual Machine)

结构简单,包含两部分:

。设备驱动/dev/kvm

。针对模拟PC硬件的用户空间组件

KVM需要cpu虚拟化功能的支持,只可以在具有虚拟化支持的CPU上运行,即具有VT功能的intel CPU和具有AMD cpu.

在硬件虚拟化技术的支持下,内核的KVM模块和QEMU的设备模拟协同工作,就构成了一整套与物理计算机系统完全一致的虚拟化计算机软硬件系统:

libvirt介绍

libvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,起作用于包括Xen,kvm在内的各种虚拟化工具提供一套方便,可靠的编程接口,即实现Linux虚拟化功能的接口,支持各种虚拟机监控程序。

四.KVM实战

准备环境:CentOS7 VMware虚拟机上模拟  2G内存  50G硬盘  开启虚拟化功能  CentOS6的镜像文件

安装虚拟化软件:

yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install –y

设置开机自启动以及启动服务

[root@linux-node1 /opt]# systemctl start libvirtd

[root@linux-node1 /opt]# systemctl enable libvirtd

上传镜像,创建虚拟硬盘空间10G

[root@linux-node1 /opt]# qemu-img create -f raw /opt/CentOS-6-x86_64.raw 10G

Formatting '/opt/CentOS-6-x86_64.raw', fmt=raw size=10737418240

创建虚拟机

[root@linux-node1 /opt]# virt-install --virt-type kvm --name CentOS-6-x86_64 --ram 2048 --cdrom=/opt/CentOS-6-x86_64-Minimal-1511.iso --disk path=/opt/CentOS-6-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

- -virt-type:指定虚拟机类型(kvm、qemu、xen)

- -name:指定虚拟机的名称

- -ram:指定内存大小

- -cpu:指定cpu的核数(默认为1)

- -cdrom:指定镜像

- -disk:指定磁盘路径(即上文创建的虚拟磁盘)

- -network:指定网络类

安装客户端TightVNC连接虚拟机

连接后需要手动安装系统

kvm的管理

virt-install   #建立kvm虚拟机virsh list   #查看正在运行的KVM虚拟机virsh list --all    #查看所有KVM虚拟机virsh start name    #启动KVM虚拟机virsh shutdown name  #正常关闭KVM虚拟机virsh destroy name   #强制关闭KVM虚拟机(类似于直接断电)virsh suspend name   #挂起KVM虚拟机virsh resume name   #恢复挂起的KVM虚拟机virsh dumpxml name   #查看KVM虚拟机配置文件virsh edit name   #编辑KVM虚拟机的xml配置文件virsh undefine name   #彻底删除KVM虚拟机,不可逆,如果想找回来,需要备份/etc/libvirt/qemu的xml文件)

[root@linux-node1 /opt]# virsh list --all

Id    Name                           State

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

2     CentOS-6-x86_64                running

设置cpu核数

virsh setvcpus CentOS-6-x86_64 2 --live

设置内存

[root@linux-node1 ~]# virsh qemu-monitor-command CentOS-6-x86_64 --hmp --cmd balloon 1024[root@linux-node1 ~]# virsh qemu-monitor-command CentOS-6-x86_64 --hmp --cmd info balloonballoon: actual=1024

网络设置

brctl addbr br0brctl addif br0 eth0ip addr del dev eth0 192.168.56.11/24ifconfig br0 192.168.56.11/24 uproute add default gw 192.168.56.2

[root@linux-node1 ~]# virsh edit CentOS-6-x86_64

Domain CentOS-6-x86_64 XML configuration edited.

本文图片来自于unixhot.com,理论知识来自赵班长讲解总结。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈Java封装、继承、多态特性
下一篇:封装对信号完整性产生的影响概述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~