云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源

云计算到底是什么?

按定义:云计算指的是一种使用模式,是基于互联网的,是弹性计算,按需付费,快速扩展
按分类:公有云,私有云,和混合云,按需选择
安分层;iaas基础设施即服务 paas平台即服务 saas软件即服务

其中包括:网络,存储,服务器,虚拟化,操作系统,中间件,运行环境,数据,应用

  kvm:内核级的虚拟化技术(硬件虚拟化技术)

到底有哪些虚拟化?
1.服务器虚拟化
2.卓面虚拟化
3.应用虚拟化

云计算和虚拟化的区别:云计算不等于虚拟化,但是云计算需要用的虚拟化技术。

Centos7上软件包安装

  检查机器是否开启了cpu虚拟化

grep -E '(vmx|svm)' /proc/cpuinfo

  安装qemu-kvm libvirt virt-install

yum install -y qemu-kvm libvirt \ yum install -y virt-install

qemu-kvm:是kvm在用户空间的管理工具
libvirt:是用来管理kvm虚拟机的

virt-install:是用来安装虚拟机

  启动libvrit

systemctl enable libvirtd
systemctl start libvirtd

  启动成功之后在宿主机上会创建一个虚拟网卡virbr0,ip地址为192.168.122.1,virbr0是当安装好libvirt生成的

Centos7上虚拟机安装

  1.创建一个10G的raw格式的虚拟机的磁盘

qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G

qwmu-img create:使用命令来创建

-f:类型

/opt/CentOS-7-x86_64.raw:硬盘所在地址及名称

10G:大小

  2.安装虚拟机

virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 1024 --cdrom=/post_cloud/CentOS-7-x86_64-DVD-1511.iso --disk path=/opt/CentOS-7-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

virt-install:使用virt-install工具来安装虚拟机
--virt-type:指定安装模式
--name:虚拟机名称
--ram:内存,默认是m单位,可以指定为G
--cdrom:镜像地址
--disk:虚拟机硬盘地址
--network:网络,默认default
--graphics vnc,listen=0.0.0.0 :图形管理工具vnc,监听0.0.0.0,端口是从5900递增

  3.使用TightVNC链接到192.168.10.225,自动安装系统

192.168.10.225宿主机地址,默认是5900端口

输入:net.ifnames=0 biosdevname=0(修改网卡名称)

  4.连接到宿主机

查看虚拟机:virsh list --all,如不加上--all,则显示正在启动的虚拟机

[root@bigdata005 post_cloud]# virsh list --all

Id              名称             状态

 - CentOS-7-x86_64 关闭
----------------------------------------------------

  5.虚拟机管理  

打开虚拟机:virsh start CentOS-7-x86_64

关闭虚拟机:virsh shutdown CentOS-7-x86_64

管理虚拟机配置文件:virsh edit CentOS-7-x86_64.xml

  进入到/etc/libvirt/qemu下有一个虚拟机的配置文件CentOS-7-x86_64.xml:包括内存,硬盘,cpu,网卡信息等,libvirt是通过此配置文件来管理虚拟机的。

  通过vi来打开cat CentOS-7-x86_64.xml ,会看到警告“此配置是自动生成的配置,你不能手动修改它,如果要修改,请通过‘virsh edit CentOS-7-x86_64.xml’ 来修改”

  6.虚拟机配置

  在centos7之后cpu和内存,内存支持热添加和热删除,前提是宿主机和虚拟机必须是centos7系统

cpu热添加
<vcpu placement='static'>1</vcpu> //原配置文件
<vcpu placement='auto' current="1">4</vcpu> //修改后的配置文件,最大4个cpu,目前使用了1个
virsh setvcpus CentOS-7-x86_64 2 --live //使用virsh添加虚拟机cpu个数

内存热添加
首先过滤一下
[root@bigdata005 qemu]# virsh --help |grep monitor
qemu-monitor-command QEMU 监控程序命令
qemu-monitor-event QEMU Monitor Events
Domain Monitoring (help keyword 'monitor')
查看当前虚拟机内存大小
[root@bigdata005 qemu]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon
balloon: actual=1024

把内存限制在512m
virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd balloon 512

  ##在编辑xml之后要重启虚拟机

  7.后续配置

  当创建好虚拟机之后,宿主机执行ifconfig(开启的虚拟机默认使用dhcp来获取192.168.122.0/24的网段的ip地址,通过桥接网卡virbr0来进行nat转换,来进行访问网络,虚拟机ip为192.168.10.245)

[root@bigdata005 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.225 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::92b1:1cff:fe08:b615 prefixlen 64 scopeid 0x20<link>
inet6 fdf3:28cb:d1d4:0:92b1:1cff:fe08:b615 prefixlen 64 scopeid 0x0<global>
ether 90:b1:1c:08:b6:15 txqueuelen 1000 (Ethernet)
RX packets 4402351 bytes 5161838911 (4.8 GiB)
RX errors 0 dropped 247173 overruns 0 frame 0
TX packets 1401714 bytes 136669997 (130.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 41

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 224789 bytes 19780270 (18.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 224789 bytes 19780270 (18.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:51:15:0c txqueuelen 0 (Ethernet)
RX packets 7261 bytes 558397 (545.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7307 bytes 12530206 (11.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::fc54:ff:feb4:e2af prefixlen 64 scopeid 0x20<link>
ether fe:54:00:b4:e2:af txqueuelen 500 (Ethernet)
RX packets 7261 bytes 660051 (644.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9126 bytes 12625026 (12.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

  其中virbr0是当安装好libvirt生成的,vnet0是个虚拟机来匹配的,默认是通过nat模式来上网的。所以在192.168.10.225宿主机上是连接不上192.168.122.245这个虚拟机的ip。最好是桥接过去。

  配置桥接网卡

1.创建桥接网卡

#!/bin/bash
brctl show
brctl addbr br0
brctl addif br0 eth0(此步骤之后,会连不上宿主机,最好是使用脚本来修改)
ip addr del dev eth0 192.168.10.225/24
ifconfig br0 192.168.10.225/24 up
route add default gw 192.168.10.254

2.virsh edit CentOS-7-x86_64

<interface type='bridge'>
<source bridge='br0'/>

3.重启虚拟机

virsh shutdown CentOS-7-x86_64
virsh start CentOS-7-x86_64

4. 修改虚拟机网卡配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.226
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=114.114.114.114

5.重启网卡

systemctl restart network

到此步骤,已经拥有了一台虚拟机,不过还有疑问。

疑问一:virsh到时是什么鬼??

这个是在安装libvirt安装上的,libvirt是一套开源的用来管理虚拟机的共计,不仅仅管理kvm,也可以管理zen。组成部分是有三块,有一个后台的进程,有一个api的库,还有各种工具,

比如virsh,可以在宿主机中对创建的vkm虚拟机进行管理

疑问二:如果libvirt在宿主机中挂掉了,创建的虚拟机会怎么样??

ps -aux |grep linvirt
如果libvirt down掉,仍然可以使用TightVNC来链接kvm虚拟机,但是宿主机就不能使用virsh来管理虚拟机了。只要重启就可以了。

其他

1.kvm是linux的内核模块,需要安装QEMU(内核态的工具),是一种软件的虚拟化的产品,本身已经很强大。

2.Hypervisor:中间件,比如windos下的vSphere。

3.top命令下us(用户控件)和sy(内核空间),文章讲解

4.Intel VT-x ,AMD-V/RVI(V) 不同厂家的虚拟化技术

5.查看qemu-kvm的安装包:rpm -ql qemu-kvm

6.云计算不能创建一个无限大的虚拟机,创建的虚拟机不能超过物理机的大小

7.如果在安装虚拟机的时候给内存是1024的话,不会开启图形界面

8.创建的kvm虚拟机在linux系统上体现的是一个进程如果kill掉这个进程,虚拟机也会kill掉,可以像管理进程一样来管理虚拟机 (使用ps -aux |grep kvm)

9.在centos7之后cpu和内存,内存支持热添加和热删除,前提是宿主机和虚拟机必须是centos7系统

10.一般使用shutdown,在start,这样的好处是,在shutdown的时候,可能会有些报错,可以看一下报错,不然restart重启的话可能不成功

virsh命令

https://blog.csdn.net/xxoo00xx00/article/details/49802367

https://blog.csdn.net/chdhust/article/details/7697471

https://www.cnblogs.com/chris-cp/p/4222372.html

https://www.cnblogs.com/ck1020/category/905469.html

云计算概述及Centos7下安装kvm虚拟机的更多相关文章

  1. Centos7.4安装kvm虚拟机(使用virt-manager管理)

    之前介绍了使用WebVirtMgr或Openstack来部署及管理kvm虚拟机,下面简单介绍centos7.4下使用virt-manager部署及管理kvm虚拟机的做法: 0)KVM是什么 KVM(K ...

  2. Centos7下搭建KVM虚拟机

    PRE-INSTALL ============================================================= kvm相关安装包及其作用 qemu-kvm 主要的K ...

  3. vmware安装kvm虚拟机

    1. 概述 本篇博客主要使用运行在win10专业版上的vmware workstation 15 pro虚拟化软件,安装centos7.7最小化系统,并在centos7上安装kvm虚拟机,实现快速创建 ...

  4. (转)CentOS7安装KVM虚拟机详解

    原文:https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7%E5%AE%89%E8%A3%85KVM%E8%99%9A%E ...

  5. Centos7使用pxe安装KVM虚拟机

    Centos7使用pxe安装KVM虚拟机 一.安装服务所需的软件 [root@localhost ~]yum install nginx dhcp vsftpd syslinux -y [root@l ...

  6. centos7安装kvm虚拟机

    一 centos7安装kvm虚拟机 1.验证CPU是否支持KVM 结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的. [root@centos ~]# egrep '(vmx| ...

  7. 在centos7中限制kvm虚拟机可访问的资源

    最近通过艰苦卓绝的度娘(我很想用谷歌,可是,你懂的),终于搞明白如何在centos7中限制kvm虚拟机可访问的资源了.度娘给出的结果中,大部分都说的很对,然而,却很难照着做,主要原因有两点:1.网上的 ...

  8. CentOS 7.5 安装KVM虚拟机(Windows)

    一.KVM环境搭建1.检测系统是否支持cat /proc/cpuinfo | egrep 'vmx|svm' KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查 ...

  9. 6、安装kvm虚拟机

    6.1.虚拟机开启虚拟化: 6.2.检查linux虚拟机cpu是否开启了虚拟化: egrep -o 'vmx|svm' /proc/cpuinfo vmx 6.3.安装kvm管理和安装kvm虚拟机的软 ...

随机推荐

  1. http 本地服务器设置任意IP访问对应的文件夹

    使用软件:wamp 一.配置apache的host访问路径 打开下面“wamp\bin\apache\Apache2.4.4\conf\”路径下的httpd.conf文件,然后我希望将“自定义IP”的 ...

  2. Ubuntu设置DNS永久生效

    环境查看 设置临时生效,修改配置文件/etc/resolv.conf nameserver 202.96.134.133 重启失效 设置永久生效,修改网卡配置文件/etc/network/interf ...

  3. hdu4847 Wow!Such Doge!【字符串】【暴力】

    Wow! Such Doge! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  4. ORM 简介 单表操作

    cls超 Django基础五之django模型层(一)单表操作 本节目录 一 ORM简介 二 单表操作 三xxx 一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型 ...

  5. Js高设笔记 & 声明变量与初始化变量

    第三章 数据类型   P25 1, var message;   //age变量尚未声明 alert(message);  //"undefined" alert(age);   ...

  6. 把MP3保存到数据库中

    使用JdbcUtils得到连接con java.sql包下的Interface Blob----其实现类SerialBlob Blob是一个可以存储二进制文件的容器. BLOB常常是数据库中用来存储二 ...

  7. Java8 CompletableFuture

    http://colobu.com/2016/02/29/Java-CompletableFuture/ http://www.deadcoderising.com/java8-writing-asy ...

  8. dp的斜率优化

    对于刷题量我觉得肯定是刷的越多越好(当然这是对时间有很多的人来说. 但是在我看来我的确适合刷题较多的那一类人,应为我对知识的应用能力并不强.这两天学习的内容是dp的斜率优化.当然我是不太会的. 这个博 ...

  9. 2018/04/24 PHP 设计模式之注册树模式

    之前学习了工厂模式和单例模式,明白了他们的意义. 但是我们在之后的使用中会发现一个问题,在新建一个实例的时候还是需要调用一个单例或者工厂,之后还是造成了代码和耦合和不好处理. 下面开始说一下: -- ...

  10. Monkey测试执行_真机测试(2)

    提:按照前面的<Monkey环境搭建>先把环境搭建好. 此处为真机测试: 1.首先需要将手机连接到PC,测试连接是否正常,可在cmd里输入adb devices来进行验证: 2.输入adb ...