云计算概述与KVM虚拟化

云计算概述与KVM虚拟化

云计算概述

  • 传统数据中心面临的问题:

    • 资源利用率低
    • 资源分配不合理
    • 自动化能力差
  • 云计算

    • 云计算是一种使用模式
    • 基于网络来使用
    • 弹性计算,按需付费,快速拓展
    • 投入和少的管理工作
  • 云计算的分类

    • 私有云: openstack,数据安全性比较高,灵活。
    • 公有云:安全性比较敏感。
    • 混合云:融合公私有云灵活的服务公司
  • 云计算的分层:

    • PAAS:所有的都归自己管理
    • IAAS(基础设施即服务):网络,存储,服务器,虚拟化由供应商管理;(云主机)
    • PAAS(平台即服务):网络,存储,服务器,系统,中间件,运行环境由供应商管理;代码和产生数据自己管理
    • SAAS(软件即服务):所有的都是运营商管理;比如说企业邮,安全宝,流量宝等等

KVM介绍

QEMU创建虚拟机

环境准备

  • vmvare支持嵌套虚拟化:开启虚拟机的InterVT(同时要开启物理机)
  • 检查cpuINFO信息
[root@linux-node1 ~]# grep -E "(vmx|svm)" /proc/cpuinfo    #检查cpu是否支持vmx或者svm
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx hypervisor lahf_lm tpr_shadow vnmi ept vpid tsc_adjust arat
  • 软件安装
[root@linux-node1 ~]# yum -y install qemu-kvm qemu-kvm-tools libvirt(管理虚拟机的工具)
[root@linux-node1 ~]# yum -y install virt-install(安装虚拟机用的)
  • 软件启动
[root@linux-node1 ~]# systemctl enable libvirtd
[root@linux-node1 ~]# systemctl start libvirtd
[root@linux-node1 ~]# ifconfig 
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:79:0d:48  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 虚拟机安装的需求

    • 磁盘
    • 镜像
[root@linux-node1 ~]# qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G    # -f:指定格式,创建一个10G的CentOS-7-x86_64.raw的虚拟机磁盘
[root@linux-node1 ~]# virt-install --virt-type kvm --name CentOS7-x86_64 --ram 1024 --cdrom=/opt/CentOS-7-x86_64-Minimal-1708.iso --disk path=/opt/CentOS-7-x86_64.raw --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole   #创建虚拟机

kvm安装步骤

  • 创建虚拟机磁盘
  • 创建虚拟机
  • windows快速安装VNC

[](http://www.tightvnc.com/downl...
连接ip是虚拟机的ipnet.ifnames(不是kvm的),然后按下tab按键,输入net.ifnames=0 biosdevname=0(这样便于网卡管理)
正常开始安装

  • 查看所有的机器
[root@linux-node1 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     CentOS7-x86_64                 running
  • 启动虚拟机
[root@linux-node1 ~]# virsh start CentOS7-x86_64
[root@linux-node1 ~]# virsh shutdown CentOS7-x86_64
  • windows VNCvnc连接(5900)

需要确认KVM虚拟机的网卡是否开启

虚拟机管理

  • 回到宿主机
ps -ef | grep kvm

libvirt介绍

管理虚拟化进程,如果这个进程挂了的话,不影响KVM虚拟机的进程,只是影响管理。

[root@linux-node1 ~]# cd /etc/libvirt/qemu                     #管理地址
[root@linux-node1 qemu]# ls
CentOS7-x86_64.xml  networks
[root@linux-node1 qemu]# vim CentOS7-x86_64.xml                # 不能直接vim修改,
[root@linux-node1 qemu]# virsh edit CentOS7-x86_64             #管理KVM,但是openstack就不能这么搞了

宿主机和虚拟机都要是(centos7以上的系统):支持热添加CPU和内存

热添加CPU

[root@linux-node1 qemu]# virsh edit CentOS7-x86_64 
 <vcpu placement='static'>1</vcpu>
 # 改成:
 <vcpu placement='auto' current="1">4</vcpu>   #代表当前是1,最大是4(前提需要保证宿主机的cpu个数和虚拟机一致)
 [root@linux-node1 qemu]# virsh setvcpus CentOS7-x86_64 2 --live    #这样就可以了

热添加内存

[root@linux-node1 ~]# virsh --help | grep monitor
    qemu-monitor-command           QEMU Monitor Command
    qemu-monitor-event             QEMU Monitor Events
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS7-x86_64 --hmp --cmd info balloon   #查看虚拟机内存
balloon: actual=1024
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS7-x86_64 --hmp --cmd  balloon 512   #热修改内存
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS7-x86_64 --hmp --cmd info balloon
balloon: actual=512

网络桥接

  • 宿主机配置
[root@linux-node1 ~]# brctl show
bridge name    bridge id        STP enabled    interfaces
virbr0        8000.525400790d48    yes        virbr0-nic
                            vnet0
[root@linux-node1 ~]# brctl addbr br0    #创建桥接网卡
[root@linux-node1 ~]# brctl addif br0 ens32   #桥接到宿主机(会断网,建议用脚本)
# 此时断网了,就要手动上到宿主机执行
[root@linux-node1 ~]# ip addr del dev ens32 192.168.56.11/24    # 删除宿主机IP配置
[root@linux-node1 ~]# ifconfig br0 192.168.56.11/24 up          # 桥接网络设置为出口
[root@linux-node1 ~]# route add default gw 192.168.56.2         # 添加网关
ping qq.com
  • 修改虚拟机的xml配置
[root@linux-node1 ~]# virsh edit CentOS7-x86_64
<interface type='network'>
      <mac address='52:54:00:71:c9:f9'/>
      <source network='default'/>
改为:
<interface type='bridge'>
      <mac address='52:54:00:71:c9:f9'/>
      <source bridge='br0'/>
  • 重启KVM虚拟机
  • 配置KVM虚拟机的网卡配置和br0在一个网段即可(静态IP)

相关推荐