云计算概述及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虚拟机的软 ...
随机推荐
- invalid bound statement (not found)解决办法
最近搭建一个web项目后端SSM框架练手,使用Maven管理,遇到一个深坑invalid bound statement (not found),就是mapper文件扫描不到!!! 先上整合过程,解决 ...
- Dockerfile编写的注意事项
一.Dockerfile合理分层 Dockerfile的写法不合理,有时候会导致镜像膨胀,由于Docker是分层设计,而在Dockerfile中,每一条指令都拥有自己的context,而执行到下一条指 ...
- Go语言学习笔记1
1.Go语言环境搭建及基础知识 Go语言官方网站(http://golang.org) 代码包文档网站(http://godoc.org) Go语言中文网(http://studygolang.com ...
- 史上最简洁的UITableView Sections 展示包含NSDicionary 的NSArray
这个最典型的就是电话本,然后根据A-Z分组, 当然很多例子,不过现在发现一个很简洁易懂的: 1. 准备数据,定义一个dictionary来显示所有的内容,这个dictionary对应的value全是数 ...
- Docker 修改国内镜像地址
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://86d2a50b.m.daocloud.io 该脚本可以 ...
- easyui datagrid 弹出页面会出现两个上下滚动条处理办法!
同事推荐将datagrid上加一个toolbar 将上面的工具元素加上就可以了 toolbar: '#divListToolbar',
- Maven、SpringBoot框架结构优化
一.创建maven项目,名为test-parent,pom文件如下: ... <artifactId>test-parent</artifactId> <version& ...
- 电子产品使用感受之--Windows 10 小米笔记本Air HDMI转VGA无信号问题
最近一直通过HDMI转VGA线缆链接我的戴尔P2314H显示器,前天睡觉前,看到电脑上英伟达显卡推了驱动更新,顺手更新了一下,就去睡觉了,转天晚上再用,HDMI接口就没有信号了,上网查了一些信息,获知 ...
- [daily][qemu][libvirt] 使用libvirt管理qemu
别人创建的虚拟机.用libvirt做的配置. 我一直是手写qemu脚本的,不会用virtsh,所以,学一下. ------------------ 先来个arch的文档: https://wiki.a ...
- [daily][nfs] nfs客户端设置
[daily] 主机间目录共享 1. 安装nfs工具,其实是mount需要mount.fs 否则会出现类似如下错误: [root@stds ~]# mount -t nfs 192.168.7.1:/ ...