kvm简介

KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。 
KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。

那 IO 的虚拟化,比如存储和网络设备由谁实现呢? 
这个就交给 Linux 内核和Qemu来实现。

说白了,作为一个 Hypervisor,KVM 本身只关注虚拟机调度和内存管理这两个方面。IO 外设的任务交给 Linux 内核和 Qemu

kvm安装

查看cpu是否支持虚拟化

[root@localhost ~]# grep -E '(vmx|svm)' /proc/cpuinfo **

安装qemu-kvm(用户态管理工具),libvirt(命令行管理工具),virt-install(安装kvm工具),bridge-utils(桥接设备管理工具)

[root@localhost ~]# yum install -y qemu-kvm libvirt virt-install bridge-utils

确保加载kvm模块

[root@localhost ~]# lsmod |grep kvm
kvm_intel
kvm kvm_intel
irqbypass kvm
#如果没有加载,运行一下命令
[root@localhost ~]# modprobe kvm
[root@localhost ~]# modprobe kvm-intel

启动libvirtd服务

[root@localhost ~]# systemctl enable libvirtd
[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl status libvirtd

配置kvm桥接模式

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens32 ifcfg-br0
[root@localhost network-scripts]# vim ifcfg-br0
NAME=br0
DEVICE=br0
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
BOOTPROTO=static
NM_CONTROLLED=no
TYPE=Bridge
IPADDR=192.168.0.127
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8 [root@localhost network-scripts]# vim ifcfg-ens32
NAME=ens32
DEVICE=ens32
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0

查看网桥

[root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 .000c29d1267b no ens32
virbr0 .52540063d8f4 yes virbr0-nic

删除virbr0

[root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 .000c29d1267b no ens32
virbr0 .52540063d8f4 yes virbr0-nic
[root@localhost ~]# virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes [root@localhost ~]# virsh net-destroy default
Network default destroyed [root@localhost ~]# virsh net-undefine default
Network default has been undefined [root@localhost ~]# systemctl restart libvirtd.service
[root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 .000c29d1267b no ens32

使用virt-manager管理kvm

由于要用virt-manager图形化安装虚拟机,所以还需要安装桌面

[root@localhost ~]# yum grouplist
[root@localhost ~]# yum groupinstall "GNOME Desktop" -y

配置中文桌面

grep -E "^[ \t]*export[ \t]+LANG[ \t]*=" /etc/profile&& y="yes" || y="no"
if [[ "$y" = "yes" ]]; then
sed -r -i -e '/^[ \t]*export[ \t]+LANG[ \t]*=/c\export LANG="zh_CN.UTF-8"' /etc/profile
else
echo 'export LANG="zh_CN.UTF-8"' >>/etc/profile
fi
source /etc/profile

安装virt-manager

[root@localhost ~]# yum -y install virt-manager

xshell链接

[root@localhost ~]# virt-manager

提前将ISO系统镜像存放到服务器的一个目录里,比如/data/iso

[root@localhost ~]# mkdir -p /data/{iso,kvmstorage}
[root@localhost ~]# cd /data/iso/
[root@localhost iso]# ll
总用量
-rw-r--r-- root root 11月 : CentOS--x86_64-Minimal-.iso
-rw-r--r-- root root 3月 cn_windows_server_2008_r2.iso

新建虚拟机

kvm常用命令

KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理

命令帮助
[root@localhost ~]# virsh --help
查看虚拟机状态
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
win2k8r2 running 关机
[root@localhost ~]# virsh shutdown win2k8r2 强制关闭电源
[root@localhost ~]# virsh destroy win2k8r2 通过配置文件创建虚拟机
[root@localhost ~]# virsh create /etc/libvirt/qemu/win2k8r2.xml 设置虚拟机开机自启
[root@localhost ~]# virsh autostart win2k8r2
[root@localhost ~]# ll /etc/libvirt/qemu/autostart/
总用量
lrwxrwxrwx root root 1月 : win2k8r2.xml -> /etc/libvirt/qemu/win2k8r2.xml 到处虚拟机配置文件
[root@localhost ~]# virsh dumpxml win2k8r2 > /etc/libvirt/qemu/win2k8r2_bak.xml 删除虚拟机(该命令只删除配置文件,并不删除磁盘文件)
[root@localhost ~]# virsh undefine win2k8r2 通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。
[root@localhost ~]# mv /etc/libvirt/qemu/win2k8r2_bak.xml /etc/libvirt/qemu/win2k8r2.xml
[root@localhost ~]# virsh define /etc/libvirt/qemu/win2k8r2.xml 编辑配置文件
[root@localhost ~]# virsh edit win2k8r2 挂起
[root@localhost ~]# virsh suspend win2k8r2 恢复
[root@localhost ~]# virsh resume win2k8r2

其他命令

创建存储卷

[root@localhost ~]# qemu-img create -f qcow2 /data/kvmstorage/centos7.qcow2 20G
Formatting '/data/kvmstorage/centos7.qcow2', fmt=qcow2 size= encryption=off cluster_size= lazy_refcounts=off
[root@localhost ~]# ll //data/kvmstorage
总用量
-rw-r--r-- root root 1月 : centos7.qcow2
-rw------- qemu qemu 1月 : win2k8r2.qcow2

生成虚拟机

[root@localhost ~]# virt-install --virt-type kvm --name centos --ram  \
--disk /data/kvmstorage/centos7.qcow2,format=qcow2 \
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel7 \
--location=/data/iso/CentOS--x86_64-Minimal-.iso [root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
win2k8r2 running
centos running

centos7 kvm安装使用的更多相关文章

  1. CentOS7.2上用KVM安装虚拟机window10踩过的坑

    最近两个星期一直在琢磨kvm安装window10操作系统,并且通过桥接模式与外界通信,经历了九九八十一难,终于搞定.下面就记录以下我们在探索的过程中踩过的坑. 安装KVM 1. 系统要求:需要一台可以 ...

  2. Centos7 离线安装 KVM,并安装 Csr1000v

    最近需要在客户环境搭建 csr1000v,客户环境不能联网,同时使用 kvm 管理.所以需要离线安装 kvm,在利用 kvm 安装 csr100v ,中间遇到不少坑,现记录如下. 所有安装步骤是在 r ...

  3. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  4. 云计算之KVM安装(二)

    云计算之KVM安装(二) 调整虚拟机 虚拟化Intel使用的是intel VT-X AMD使用的是AMD-V 创建虚拟机步骤 1.准备虚拟机硬盘 2.需要系统iso镜像 3.需要安装一个vnc的客户端 ...

  5. #openstack centos6 centos7 kvm镜像制作

    #openstack centos6 centos7 kvm 镜像制作 openstack windows 2008镜像 制作 http://www.cnblogs.com/elvi/p/800129 ...

  6. Centos7 二进制安装 Kubernetes 1.13

    目录 1.目录 1.1.什么是 Kubernetes? 1.2.Kubernetes 有哪些优势? 2.环境准备 2.1.网络配置 2.2.更改 HOSTNAME 2.3.配置ssh免密码登录登录 2 ...

  7. 云计算虚拟机技术-KVM安装

    云计算虚拟机技术-KVM安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为运维的小伙伴估计大家都清楚KVM,因为在CentOS里面KVM还算很折腾的一个软件,早期CentOS ...

  8. CentOS7.4安装部署openstack [Liberty版] (一)

    一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...

  9. KVM安装和配置

    [未验证部分] kvm安装前检查 # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 ca ...

随机推荐

  1. sql 中单引号内嵌套单引号该怎么解决

    # 在mybatis 中写过一个比较少见的sql, 单引号呢需要嵌套一个单引号,使用双引号就会报错,怎么解决呢: * 这个时候可以使用两个单引号,eg : select id from pgr_dij ...

  2. #1413 : Rikka with String 后缀自动机 + 二级差分

    http://hihocoder.com/problemset/problem/1413?sid=1199641 这题断断续续做了2个多星期吧,一直不会 设总答案为sum,替换后新加的子串数量为x,失 ...

  3. 闲里偷忙的CPU-某个kwoker进程忙

    https://zhuanlan.zhihu.com/p/34311472 有一类比较特殊的CPU使用率问题,这类问题的特点是,系统平均CPU使用率很低,但是个别CPU的使用率非常高.今天借助这个真实 ...

  4. Java基本语法_循环练习系列(二)——万年历

    写万年历大致可以分为以下几个步骤: 1.根据用户输入的年份判断该年是否是闰年. 2.根据用户输入的月份计算该月的天数. 3.计算输入的年份之前的总天数. 4.计算输入的月份之前的天数. 5.计算该月的 ...

  5. [转]怎么样快速入门AngularJS?

    本文转自:http://www.ngnice.com/posts/205af1ea1e13d2 怎么样快速学习AngularJS? 相信很多初学者都有过或者类似的疑问,其实这个问题没有标准的答案,每个 ...

  6. bootstrap3-dialog:更强大、更灵活的模态框(封装好的模态框)

    用过bootstrap框架的同学们都知道,bootstrap自带的模态框用起来很不灵活,可谓鸡肋的很.但nakupanda开源作者封装了一个更强大.更灵活的模态框——bootstrap3-dialog ...

  7. (转)python 列表与元组的操作简介

    python 列表与元组的操作简介 原文:https://www.cnblogs.com/QG-whz/p/4782809.html 阅读目录 列表 list函数 列表的基本操作 列表方法 元组 tu ...

  8. JS获取元素属性、样式getComputedStyle()和currentStyle方法兼容性问题

    1. getComputedStyle()  方法获取到的是经过计算机/浏览器计算后的样式 getComputedStyle($("#div")).width; 兼容性:IE6 7 ...

  9. C++ map的基本操作和用法

    1.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响.对于迭代器来说,可以修改实值,而不能修改key. 2.map的功能 自 ...

  10. ASP.NET Core后台任务

    之前在控制台程序中学习如何运行后台任务,ASP.NET Core中其实也有同样的方法BackgroundService,本以为跟HostedService没有区别,毕竟BackgroundServic ...