云计算(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. redis如何后台启动

    当安装好redis之后,运行redis-server命令之后,显示如图所示: 但是这样没有办法在这个tab下做任何操作了,因为这个时候使用Ctrl+c之后,就变成了这个样子 然后就关闭了,那么我想让r ...

  2. 【译】python configparser中默认值的设定

    在做某一个项目时,在读配置文件中,当出现配置文件中没有对应项目时,如果要设置默认值,以前的做法是如下的: try: apple = config.get(section, 'apple') excep ...

  3. TensorFlow—softmax_cross_entropy_with_logits函数详解

    softmax_cross_entropy_with_logits函数原型: tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=pred ...

  4. linux下的文件解压命令

    说一下tar命令的参数含义:z,使用gzip解压,x:extract解压,v:显示详细信息,f:使用归档在当前文件夹. 在解压时出现了解压失败,原因是没有sudo,无法创建文件夹.

  5. day_10 py 字典

    #!/usr/bin/env/python#-*-coding:utf-8-*-'''字典: (就是增加个索引名字,然后归类了一下) infor = {键:值,键:值} 列表存储相同的信息随着列表里面 ...

  6. hadoop Codec

  7. windous----常用命令集合

    Windous常用命令 winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程 ...

  8. 虎牙直播运维负责人张观石 | SRE实践指南

    虎牙直播运维负责人张观石 本文是根据虎牙直播运维负责人张观石10月20日在msup携手魅族.Flyme.百度云主办的第十三期魅族开放日<虎牙直播平台SRE实践>演讲中的分享内容整理而成. ...

  9. spark运行wordcount程序

    首先提一下spark rdd的五大核心特性: 1.rdd由一系列的分片组成,比如说128m一片,类似于hadoop中的split2.每一个分区都有一个函数去迭代/运行/计算3.一系列的依赖,比如:rd ...

  10. Zabbix unreachable poller processes more than 75% busy

    “Zabbix poller processes more than 75% busy”警报问题解决 虽然Zabbix的监控警报各种有,碰到最多的几个莫过于内存耗尽,网络不通,IO太慢还有这个“Zab ...