云计算概述及Centos7下安装kvm虚拟机
云计算(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 名称 状态
2 - 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 41lo: 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 0virbr0: 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 0vnet0: 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.2542.virsh edit CentOS-7-x86_64
<interface type='bridge'> <source bridge='br0'/>3.重启虚拟机
virsh shutdown CentOS-7-x86_64 virsh start CentOS-7-x86_644. 修改虚拟机网卡配置
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.1145.重启网卡
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虚拟机的更多相关文章
- Centos7.4安装kvm虚拟机(使用virt-manager管理)
之前介绍了使用WebVirtMgr或Openstack来部署及管理kvm虚拟机,下面简单介绍centos7.4下使用virt-manager部署及管理kvm虚拟机的做法: 0)KVM是什么 KVM(K ...
- Centos7下搭建KVM虚拟机
PRE-INSTALL ============================================================= kvm相关安装包及其作用 qemu-kvm 主要的K ...
- vmware安装kvm虚拟机
1. 概述 本篇博客主要使用运行在win10专业版上的vmware workstation 15 pro虚拟化软件,安装centos7.7最小化系统,并在centos7上安装kvm虚拟机,实现快速创建 ...
- (转)CentOS7安装KVM虚拟机详解
原文:https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7%E5%AE%89%E8%A3%85KVM%E8%99%9A%E ...
- Centos7使用pxe安装KVM虚拟机
Centos7使用pxe安装KVM虚拟机 一.安装服务所需的软件 [root@localhost ~]yum install nginx dhcp vsftpd syslinux -y [root@l ...
- centos7安装kvm虚拟机
一 centos7安装kvm虚拟机 1.验证CPU是否支持KVM 结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的. [root@centos ~]# egrep '(vmx| ...
- 在centos7中限制kvm虚拟机可访问的资源
最近通过艰苦卓绝的度娘(我很想用谷歌,可是,你懂的),终于搞明白如何在centos7中限制kvm虚拟机可访问的资源了.度娘给出的结果中,大部分都说的很对,然而,却很难照着做,主要原因有两点:1.网上的 ...
- CentOS 7.5 安装KVM虚拟机(Windows)
一.KVM环境搭建1.检测系统是否支持cat /proc/cpuinfo | egrep 'vmx|svm' KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查 ...
- 6、安装kvm虚拟机
6.1.虚拟机开启虚拟化: 6.2.检查linux虚拟机cpu是否开启了虚拟化: egrep -o 'vmx|svm' /proc/cpuinfo vmx 6.3.安装kvm管理和安装kvm虚拟机的软 ...
随机推荐
- 在 VS Code 和 Chrome 中调试
先决条件 你必须安装好 Chrome 和 VS Code.同时请确保自己在 VS Code 中安装了 Debugger for Chrome 扩展的最新版本. 请通过 Vue CLI,遵循它的 REA ...
- day_5.22 py
#!/usr/bin/env/python #-*-coding:utf-8-*- ''' 私有化 __相当于prevate 外部不能直接调用,只能通过set get方法用 property ''' ...
- RPM二进制包软件安装
通过rpm –qa查找已安装的软件包 如果想精确查找某一软件,可以通过管道命令grep来实现 精确查找rpm –qa |grep关键词 如 rpm –qa |grep vim 卸载已安装rpm包 ...
- ffmpeg 视频转ts切片 生成m3u8视频播放列表
近期做视频点播,要求将视频文件切片成ts文件.经搜索得到以下两个命令,可完成这个任务. 一 首先将视频文件转为视频编码h264,音频编码aac格式的mp4文件 1.可以预先使用ffprob ...
- ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套
这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- Django----ModelFrom
ModelForm a. class Meta: model, # 对应Model的 fields=None, # 字段 exclude=None, # 排除字段 labels=None, # 提示信 ...
- 二叉苹果树|codevs5565|luoguP2015|树形DP|Elena
二叉苹果树 题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端连接的 ...
- 鸡头兔头共20,脚56,鸡兔各有多少?算法实 php现版
//$x 鸡头 //$y 兔头 for ($x = 0; $x <= 20; $x++) { for ($y = 0; $y <= 20; $y++) { if (($x + $y == ...
- .NET Core 2.2发布一览
本周终于发布了.NET Core 2.2,ASP.NET Core 2.2以及Entity Framework Core 2.2,虽然更大的新闻可能是.NET Core 3.0的特性公布,但不妨先将现 ...
- 挖矿程序的工作原理(BTC为例)
Mining时代进化:CPU挖矿 -> GPU挖矿 -> FPGA挖矿 -> ASIC挖矿CPU挖矿时代:SENGENERATEGPU挖矿时代:GETWORK Miner:挖矿的程序 ...