第一:安装前准备

vmware workstation的虚拟机做kvm实验,需要开启嵌套虚拟化

1.首先在物理机BIOS设置里开启虚拟化功能

2.其次需要在vm里面开启一下两个功能,(关闭虚拟机勾选即可)

3.找到存放该虚拟机的目录,并且打开,找到以.vmx结尾的文件,增加一行

apic.xapic.enabled = "FALSE"

4.安装操作系统: CentOS 7

5.需要关闭防火墙

关闭SELinux:

将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled

sed -i "s/SELINUX=enabled/SELINUX=disabled/g" /etc/sysconfig/selinux 

6.查看虚拟化支持:

其中 vmx 为Intel的CPU指令集  svm 为AMD的CPU指令集 二者存在一个即可正常安装

第二:安装软件包

1.安装虚拟主机:

yum groupinstall 'Virtualization Host'

2.安装各个软件包

yum -y install qemu-kvm qemu-img libvirt libvirt-client libvirt-python python-virtinst virt-install virt-manager virt-top virt-viewer bridge-utils
qemu-kvm:主要的KVM程序包,该软件包主要包含KVM内核模块和基于KVM重构后的QEMU模拟器。KVM模块作为整个虚拟化环境的核心工作在系统空间,负责CPU和内存的调度。QEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。
qemu-img:主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。
libvirt:提供Hypervisor和虚拟机管理的API。
libvirt-client:KVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。
libvirt-daemon:libvirtd守护进程,作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁。
libvirt-python:python的libvirt库
python-virtinst:创建虚拟机所需要的命令行工具和程序库
virt-install:创建和克隆虚拟机的命令行工具包。
virt-manager:图形界面的KVM管理工具。
virt-top:虚拟机统计命令
virt-viewer:GUI连接程序,连接到已配置好的虚拟机
bridge-utils:网桥管理工具包,负责桥接网络的创建、配置和管理等工作。

3.查看内核是否加载成功

kvm作为核心模块,协同QEMU实现整个虚拟化环境的正常运行。 kvm_intel作为平台(Intel)独立模块,激活KVM环境的CPU硬件虚拟化支持

4.启动管理kvm的工具libvirt,并加入开机自启动

systemctl enable libvirtd
systemctl start libvirtd

5.尝试连接

6.看看网络的变化:(多了virbr0)

第三:创建虚拟机

第一种方式: 使用 virt-manager 工具,设置网络模式为NAT

准备工作:

两手准备,有的时候图形界面不好使

安装图形界面:

#安装X-Windows图形界面
yum -y groupinstall "X Window System"
yum -y install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
#设置默认启动图形界面
unlink /etc/systemd/system/default.target
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
reboot

验证一下

图形界面安装成功

打开applications--》System Tools--》Virtual Machine Manager

打开后:

点击小电脑,将会出来创建界面

点击下一步:Forward

上传镜像

剩下的一直下一步就ok了,不详细列了

机器创建成功:

查看网络模式:

终于登上去了

尝试连接Hypervisor

验证下是否可以上网:

第二种方式:利用命令行安装,设置网络为桥接模式

默认情况下所有虚拟机只能够在host内部互相通信,如果需要通过局域网访问虚拟机,需要创建一个桥接网络。

.停止NetworkManager服务

# systemctl stop NetworkManager
该服务开启的情况下直接去修改网卡的配置文件会造成信息的不匹配而导致网卡激活不了。 .修改以太网卡配置文件 (修改前先备份)

# cat ifcfg-eno16777736
DEVICE=eno16777736
BOOTPROTO=static
ONBOOT=yes
BRIDGE=br0
HWADDR=00:0C:29:96:9D:84
NM_CONTROLLED=no


原有的以太网络不需要配置IP地址,指定桥接的网卡设备(如br0)即可。

.修改桥接网卡配置文件

# cat ifcfg-br0
TYPE=Bridge
HWADDR=00:0C:29:96:9D:84
BOOTPROTO=static
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.8.129
NETMASK=255.255.255.0
GATEWAY=192.168.8.1
DNS1=202.103.24.68
NM_CONTROLLED=no

#桥接网卡的需要配置IP地址,当然也可以用DHCP。需要注意的是桥接网卡br0中DEVICE的名字一定要与以太网卡eno1中BRIDGE对应。

注意:上面写的备份不能再当前目录下面

验证一下网卡:

创建虚拟机:

首先需要创建qcow2格式的虚拟磁盘

qemu-img create -f qcow2  /data/zzl.qcow2 1G

接着运行:

grubby --update-kernel=ALL --args="console=ttyS0" #文本方式控制vm
reboot

创建虚拟机:

virt-install --name test1 --memory  --arch x86_64 --vcpus  --os-type linux --os-variant=rhel7 --disk /data/kvm/zzl.qcow2,format=qcow2,size=,bus=virtio --network bridge=virbr0 --location=/iso/CentOS-7.0--x86_64-DVD.iso --graphics none --console pty,target_type=serial --extra-args 'console=ttyS0,115200n8 serial'

安装的过程中,需要选择时区,安装包选择(最小化),root密码设置,以及网络设置等等。

安装完后进去虚拟机:

验证网络

总结:常用操作

. 开启子机
virsh start test1
也可以在开启的同时连上控制台
virsh start test1 --console . 关闭子机
virsh shutdown test1 (这个需要借助子机上的acpid服务)
另外一种方法是
virsh destroy test1 . 让子机随宿主机开机自动启动
virsh autostart test1
解除自动启动
virsh autostart --disable test1 . 列出子机
virsh list //只能列出启动的子机
virsh list --all //可以把所有子机都列出来 . 删除子机
virsh destroy test1
virsh undefine test1 . 挂起子机
virsh suspend test1 . 恢复子机
virsh resume test1 .退出虚拟机的操作:
Ctrl+]键

创建快照:

.# virsh snapshot-create test1 #创建快照
Domain snapshot created .# virsh snapshot-list test1 #列出快照
Name Creation Time State
------------------------------------------------------------
-- :: - running .# virsh snapshot-current test1 #查看快照
<domainsnapshot>
<name></name>
...
</domainsnapshot>
.#ls /var/lib/libvirt/qemu/snapshot/test1/ #快照文件的存放目录
.xml

调整虚拟机的内存与cpu的大小

. 调整cpu和内存查看子机配置:
virsh dominfo test1
virsh edit test1
修改:
<memoryunit='KiB'></memory>
<currentMemoryunit='KiB'></currentMemory>
<vcpuplacement='static'></vcpu> 为:
<memoryunit='KiB'></memory>
<currentMemoryunit='KiB'></currentMemory>
<vcpuplacement='static'></vcpu> 重启虚拟机:
virsh destroy test1
virsh start test1

不重启可在线添加网卡:

. 不重启虚拟机在线增加网卡
virsh domiflist test1 查看test1子机的网卡列表
virsh attach-interface test1 --type bridge--source br0 //命令行增加一块网卡
virsh dumpxml test1 >/etc/libvirsh/qemu/test1.xml //命令行增加的网卡只保存在内存中,重启就失效,所以需要保存到配置文件中,其中/etc/libvirsh/qemu/test1.xml 为test1子机的配置文件
virsh console test1 //进入虚拟机后,执行
ifconfig -a
发现多了一个网卡 eth1

kvm部署的更多相关文章

  1. KVM部署LVS集群故障案例一则

    一.故障现象 KVM部署LVS(Linux Virtual Server)集群后,能够单独以HTTP方式访问RS(Real Server)的实际IP,但无法通过VIP(Virtual IP)访问. 二 ...

  2. [转载]XStar's Libvirt+KVM部署记录 目录

    XStar's Libvirt+KVM部署记录 目录 Create: 2013-12-11 Update: 2014-01-03 准备工作 KVM网站 http://sourceforge.net/p ...

  3. openstack项目【day24】:KVM部署

    本节内容 虚拟化支持 软件准备 检查CPU虚拟化支持 安装软件包 激活并启动libvirtd服务 网络模式 配置桥接网络 验证网络 尝试连接Hypervisor 创建虚拟机 虚拟机操作 一.虚拟化支持 ...

  4. KVM部署及硬件参数更改

    一.kvm虚拟化环境搭建准备 1.硬件环境 kvm只能部署在物理机上面. 2.BIOS开启VT Virtualization Tech [Enabled] 3.查看cpu 是否支持kvm 全虚拟化 # ...

  5. Centos 7 最小化kvm部署

    1.检查CPU是否支持虚拟化 sh-4.2# grep -E '(vmx|svm)' /proc/cpuinfo # 若是无任何显示,则表示CPU不支持kvm虚拟化 2.关闭selinux sh-4. ...

  6. KVM 部署 日常操作

    KVM 安装 条件检测准备:CPU 虚拟化 ,现在物理机都支持. 开启cpu虚拟化 现在至强一般机器都有 cat /proc/cpuinfo |grep flags 需要全虚拟化支持为vmx(Inte ...

  7. KVM部署、使用、调优

     背景介绍 传统数据中心面临的问题: 资源使用率低 资源分配不均 自动化能力差 初始化成本高   云计算: 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计 ...

  8. vmware workstation + kvm 部署

    1.物理机BIOS设置里开启虚拟化功能 2.vm里面开启一下两个功能 3.找到存放该虚拟机的dir,找到以.vmx结尾的文件,增加一行 apic.xapic.enabled = "FALSE ...

  9. kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)

    公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM ...

随机推荐

  1. POJ 3713 Transferring Sylla【Tarjan求割点】

    题意:给出一个无向图,判断是否任意两点间都存在至少3条互相独立的路,独立指公共顶点只有起点和终点.算法:枚举每个点,删去后用Tarjan判断图中是否存在割点,如果存在则该图不满足三连通性.Tarjan ...

  2. JSP基础知识➣客户端请求与服务端响应(三)

    JSP客户端请求 浏览器请求服务器端,信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息: Accept:指定浏览器或其他客户端可以处理的MIME类型.它的值通常为 image/png 或 ...

  3. 求自然数幂和 B - The Sum of the k-th Powers CodeForces - 622F

    题解: 很多方法 斯特林数推导略麻烦但是不依赖于模数 代码: 拉格朗日插值 由于可以证明这是个K+1次多项式于是可以直接用插值 #include <bits/stdc++.h> using ...

  4. 基于spring security 实现前后端分离项目权限控制

    前后端分离的项目,前端有菜单(menu),后端有API(backendApi),一个menu对应的页面有N个API接口来支持,本文介绍如何基于spring security实现前后端的同步权限控制. ...

  5. Linux批量清空当前目录中的日志文件

    在Linux中,有时需要批量清空当前目录中的日志文件,同时还要保留日志文件. 其实一行shell命令就可以搞定,一起来看看吧. 在当前目录下,键入如下命令: for i in `find . -nam ...

  6. Linux拷贝U盘文件(命令行)

    Linux系统有的有界面,有的没有只要命令窗口,因此导入外部文件就变得困难,没有可视化的方便. 这里通过挂载u盘进行文件拷贝. 首先挂载u盘:这里以centos为例 1.进入命令行模式下,输入命令 s ...

  7. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十二集之FastDFS的使用】

    (自己的项目路径)相关项目在web部分中priv.lirenhe.fastdfs 官方提供一个fastdfs开发项目,下载下来maven install 以下内容是借鉴网上的一篇文章,但是不知道网址了 ...

  8. ZooKeeper用途

    ZooKeeper还可以用作其他用途,例如: 数据发布与订阅(配置中心) 负载均衡 命名服务(Naming Service) 分布式通知/协调 集群管理与Master选举 分布式锁 分布式队列 一些在 ...

  9. 做项目单个功能的时候要理解需求和sql语句。

    做项目单个功能的时候要理解需求和sql语句.最好直接按照给出来的sql语句或者存储过程来写,避免有极其细微的差别所造成的不同. 做宜春国税二期的时候有个功能叫夜间开票情况,钻取明细时由于没理解sql语 ...

  10. HDU 5592 ZYB's Game 【树状数组】+【二分】

    <题目链接> 题目大意: 给你一个由1~n,n个数组成的序列,给出他们每个的前缀逆序数,现在要求输出这个序列. 解题分析: 由前缀逆序数很容易能够得到每个数的逆序数.假设当前数是i,它前面 ...