上一篇的文章是为了给这一篇文件提供理论的基础,在这篇文章中我将带大家一起来实现在linux中虚拟出ubuntu的server版来

我们需要用KVM+Qemu+Libvirt来进行kvm全虚拟化,创建虚拟机并管理。

kvm是用来虚拟化或者说模拟CPU、内存等硬件的。
QEMU只是用来虚拟化硬盘的
libvirt提供了整个虚拟机的管理,比如说虚拟机的启动,停止,创建,删除等等。
 
其实KVM+Qemu+Libvirt就是模拟了一个VMWare软件
 
环境:
    宿主机:ubuntu16.04的server版
    kvm虚拟化中安装的虚拟化操作系统为:ubuntu16.04的server版
在这里中一定要记住不能使用VMWare中的ubuntu当宿主机去做KVM虚拟化,因为VMWare本身已经是虚拟化的了。

一、KVM支持检测及模块安装

  1.1、KVM支持检测

    1)CPU检测:sudo kvm-ok
    如果出现左边的提示,则表示支持kvm
      grep vmx /proc/cpuinfo 

  1.2、安装KVM模块

    sudo apt install kvm 
     模块启动检测:lsmod |grep kvm

二、虚拟磁盘管理

  2.1、安装qemu-utils工具

    sudo apt install qemu-utils

  2.2、对/dev/vdb分区为vdb1,挂载到"/vdb1"

    这个步骤在linux教程的文章中有,不懂得可以去查看

  2.3、创建虚拟磁盘

    sudo qemu-img create -f qcow2 /vdb1/us1.qcow2 30G
    运行结果
        

  2.4、虚拟磁盘文件的检查

    sudo qemu-img info /vdb1/us1.qcow2
      

 

三、libvirtd配置

  3.1、安装libvirtd工具

    sudo apt install vitinst

  3.2、检测该工具是否安装

    ps -ef|grep -i libvirtd  查看是否有libvirtd进程

  3.3、sudo vi /etc/libvirt/libvirtd.conf

    

    这些内容在该文件中或许都已经存在,也有可能是以注释的形式体现的,取消注释,如果值和上面中的不符合,就改成上面中的值。

  3.4、修改libvirt-lib文件

    sudo vi /etc/default/libvirt-bin中修改其中的libvirtd_opts="-d -l"

  3.5、修改qemu.conf文件

    sudo vi /etc/libvirt/qemu.conf中修改其中的vnc_listen="0.0.0.0"

  3.6、重启libvirt-bin服务

    sudo service libvirt-bin restart

    注意:如果你将你的Ubuntu操作系统升级到了16.10(04)版本,libvirt-bin服务跟操作系统由冲突,不能这样重启服务。只能是重启操作系统。

           sudo reboot

四、创建或安装(虚拟)操作系统

  4.1、命令安装

    1)使用virt-install命令进行安装,一步一步的执行

  

     我们就这样在console中一行一行的往下走。

    2)使用shell脚本来安装

      使用shell脚本安装(代替上面的1)),省得我们一行一行在console敲。  

      create_kvm.sh文件   

  1. DIST_QCOW2=$
  2. ORIGN_ISO=$
  3.  
  4. sudo virt-install \
  5. --connect qemu:///system \
  6. --name $ \
  7. --ram \
  8. --vcpus= \
  9. --disk path=${DIST_QCOW2},format=qcow2,size=,bus=virtio \
  10. --cdrom $ORIGN_ISO \
  11. --vnc \
  12. --os-type linux \
  13. --accelerate \
  14. --hvm \
  15. --network bridge=virbr0,model=virtio \
  16. --noautoconsole

     注意:在上面的脚本文件中\代表的是续行符。在shell中已经使用的sudo

    接下来就是运行脚本进行安装了:        

  1. shell/create_kvm.sh us1 /vdb1/us1.qcow2 /iso/ubuntu-17.04-server-amd64.iso 
      注意:
          在这里脚本中有三个参数:
                      第一个为虚拟机名字
                      第二个为指定的虚拟磁盘
                      第三个为ubuntu系统的镜像文件

   注意:镜像文件的选取:搭建集群保证所有的服务器的操作系统类型和操作系统版本以及内核版本最好都一致。 

      sudo apt dist-upgrade 升级软件以及内核

    3)使用virsh命令

       virsh list --all查看你所有虚拟机的情况
       visrh list 查看正在运行的虚拟机的情况
       

    4)使用vnc-viewer检测系统

       这里需要安装vnc viewer软件的,没有的话可以去我的博客中的随笔分类tools中下载

      作用:我们虚拟机已经在安装ubuntu系统了,但是后面有些安装过程中需要认为去操作的,所以我们需要去使用vnc viewer去检测它的安装

      url:host_ip:vnc编号(virsh vncdisplay vmname进行查看)

      

      

      进入这里就是我们熟悉的安装ubuntu的过程了。不知道怎么安装ubuntu的server版的可以去我的博客中的随笔分类tools中下载

  总结:至此,第一种创建虚拟机的方式就完成了,其实这种创建时非常的繁琐的。但是可以知道它的安装整个过程

  4.2、第二种创建虚拟机的方式:(生成相应的xml文件+qcow2文件=虚拟机)

     在上面我们已经安装了一个ubuntu系统,所以在us1.qcow2虚拟磁盘中是有ubuntu系统文件的和相对应的xml文件的。

    1)复制us1.qcow2到us2.qcow2

      

    2)复制us1.xml到us2.xml

     

    3)修改us2.xml文件中的四个地方      

      a)修改xml文件中的虚拟机名称。<name>us2</name>中的内容。
      b)修改UUID,16进制的值,随便修改其中几个值即可。
      c)修改新的虚拟机配置中的磁盘(虚拟磁盘文件)信息。
      d)修改MAC地址,16进制的值,随便修改其中几个值即可。

    4)重启libvirt-bin服务。如果重启该服务有错,请重启宿主机

       

  总结:使用这种安装非常的方便,只需要复制两个文件,修改一个文件就可以了。我这里会提供来两个文件给需要的人,可以去我的博客中的随笔分类tools中下载    

  4.3、第三种创建虚拟机的方式:virt-manager

      首先你需要去安装这个软件

      sudo apt install virt-manager

    1)终端输入

      virt-manager

      

    2)file-->add connection

      2.1)选中connection remote host

        

       2.2)file-->create new virtual machine

        第一步:

        

        第二步:

        

        第三步:

          

          接下来可以自己去尝试我就不详细解释了

五、虚拟机管理、虚拟机域管理、虚拟磁盘管理

  5.1、虚拟机管理

    

    

  5.2、虚拟机域管理

    

  5.3、虚拟磁盘管理

    

  

        

        

            

  

            

       

 
  

    

KVM+Qemu+Libvirt实战的更多相关文章

  1. 深入浅出 kvm qemu libvirt

    在所谓的kvm技术中,应用到的其实有2个东西:qemu+kvmkvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备:qemu是模拟IO设备(网卡,磁盘),kvm加上 ...

  2. kvm/qemu/libvirt学习笔记 (1) qemu/kvm/libvirt介绍及虚拟化环境的安装

    kvm简介 kvm最初由Quramnet公司开发,2008年被RedHat公司收购.kvm全称基于内核的虚拟机(Kernel-based Virtual Machine),它是Linux的一个内核模块 ...

  3. KVM/QEMU/qemu-kvm/libvirt 概念全解

    目录 目录 前言 KVM QEMU KVM 与 QEMU qemu-kvm Libvirt Libvirt 在 OpenStack 中的应用 前言 如果是刚开始接触虚拟机技术的话, 对上述的概念肯定会 ...

  4. KVM&amp;Libvirt基本概念及开发杂谈

    导读 大家好,本次肖力分享的主题是KVM&Libvirt基本概念及开发杂谈,内容有些凌乱松散,主要基于自己早期整理的笔记内容和实践感悟,有些内容难免有失偏颇,望见谅.前面先介绍下需要了解的基本 ...

  5. KVM/QEMU桥接网络设置及kvm资料

    KVM/QEMU桥接网络设置 配置kvm的网络有2种方法.其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送.其二,使用桥接方式(Brid ...

  6. KVM+QEMU虚拟化概念

    概念: KVM,即Kernel-basedvirtual machine,由redhat开发,是一种开源.免费的虚拟化技术.对企业来说,是一种可选的虚拟化解决方案. 定义:基于Linux内核的虚拟机 ...

  7. kvm/qemu虚拟机桥接网络创建与配置

    首先阐述一下kvm与qemu的关系,kvm是修改过的qemu,而且使用了硬件支持的仿真,仿真速度比QEMU快. 配置kvm/qemu的网络有两种方法.其一,默认方式为用户模式网络(Usermode N ...

  8. gentoo在KVM+QEMU中安装笔记

    gentoo是比较难安装的,本笔记主要是记录本次安装过程,以备参考. 1.首先,下载镜像,可以去国内各大镜像网站下载,我选择的是清华的镜像源:https://mirrors.tuna.tsinghua ...

  9. KVM 介绍(5):libvirt 介绍 [ Libvrit for KVM/QEMU ]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

随机推荐

  1. 利用GPU实现大规模动画角色的渲染

    0x00 前言 我想很多开发游戏的小伙伴都希望自己的场景内能渲染越多物体越好,甚至是能同时渲染成千上万个有自己动作的游戏角色就更好了. 但不幸的是,渲染和管理大量的游戏对象是以牺牲CPU和GPU性能为 ...

  2. 浅谈Vue不同场景下组件间的数据交流

    浅谈Vue不同场景下组件间的数据“交流”   Vue的官方文档可以说是很详细了.在我看来,它和react等其他框架文档一样,讲述的方式的更多的是“方法论”,而不是“场景论”,这也就导致了:我们在阅读完 ...

  3. c++ STL 容器——联合容器

    STL提供了四种联合容器 set,multiset,map,multimap; set and multiset在<set>头文件 map and multimap在<map> ...

  4. cacti监控部署与配置

    cacti是一套基于PHP,mysql,SNMP及RRDTool开发的网络流量测试图形分析工具 cacti是通过snmpget来获取数据,使用RRDtool绘画图形 ,而且完全可以不需要了解RRDto ...

  5. JS 无法清除Cookie的解决方法

    JS 无法清除Cookie的解决方法   项目中使用sdmenu.js时,需要在登录时清除Cookie,而sdmenu默认是会保存Cookie的 下面是sdmenu.js保存Cookie的方法 doc ...

  6. mybatis 详解(六)------通过mapper接口加载映射文件

    通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的.那么什么是通过 mapper 接口加载映射文件呢? 我们首先看以前的做法,在全局配置文件 mybatis-conf ...

  7. 微信小程序(有始有终,全部代码)开发--- 新增模块: 图片选取以及拍照功能

    开篇语 前几天发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 后来又发了BUG修复的版本: 简年18: 微信小程序(有始有终,全部代码)开发 ...

  8. kill 和killall----杀死进程

    1.根据进程ip查看进程名 Liunx中 通过进程名查找进程PID可以通过 pidof  [进程名] 来查找. 反过来 ,通过PID查找进程名则没有相关命令.但在linux根目录中,有一个/proc的 ...

  9. cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  10. Java将数据写入word文档(.doc)

    Java可用org.apache.poi包来操作word文档.org.apache.poi包可于官网上下载,解压后各jar作用如下图所示: 可根据需求导入对应的jar. 一.HWPFDocument类 ...