上一篇的文章是为了给这一篇文件提供理论的基础,在这篇文章中我将带大家一起来实现在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文件   

 DIST_QCOW2=$
ORIGN_ISO=$ sudo virt-install \
--connect qemu:///system \
--name $ \
--ram \
--vcpus= \
--disk path=${DIST_QCOW2},format=qcow2,size=,bus=virtio \
--cdrom $ORIGN_ISO \
--vnc \
--os-type linux \
--accelerate \
--hvm \
--network bridge=virbr0,model=virtio \
--noautoconsole

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

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

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. php的laravel框架使用心得

    最近在做一项目,是基于laravel的后台api,用于与手机交互的,数据采用json格式.下面说下怎样在两周内把一个新框架或者语言用的得心应手. 项目采用laravel5.4+dingoapi+jwt ...

  2. iOS字典转模型MJExtension使用

    如果项目是纯OC的建议使用,MJExtension是一套字典和模型之间互相转换的超轻量级框架,可以轻松完成: 字典(JSON) --> 模型(Model) 模型(Model) --> 字典 ...

  3. IntelliJ idea学习资源

    工作需要, 最近得从Eclipse转战到Idea, 找了些不错的学习资料: 1, 从eclipse上迁移过来的用户说明: https://www.jetbrains.com/help/idea/201 ...

  4. iOS与web交互的那些事

    一转眼又是大半年过去了,除了上架了一款新应用外,也没什么进步.所以最近琢磨着搞点事情,不然我那本Java教程都快看完了. 做为一名iOS高(la)阶(ji)法师,几乎所有的任务里,都会出现web这个从 ...

  5. Zend Framework1 框架入门(针对Windows,包含安装配置与数据库增删改查)

    最近公司接的项目需要用到Zend Framework框架,本来需要用的是ZendFramework2 ,但是由于原有代码使用了ZendFramework1 框架,所以顺带学习了.现将一些基础入门记录一 ...

  6. 25. leetcode 217. Contains Duplicate

    217. Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your ...

  7. [硬件]_ELVE_VS2015下opencv3.3的配置问题

    0x00  引言 最近想搞一下摄像头,但是我的Windows版本是64位的,opencv3.3貌似也只支持64位系统了,所以就配置一下win10+vs2015+opencv3.3的环境变量,具体下载和 ...

  8. python 密码学编程

    最近在看一本书.名字是 python密码学编程.在此做一些笔记,同时也为有需要的人提供一些参考. *************************************************** ...

  9. Java的三种代理模式简述

    本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下, ...

  10. 如何使用Androidstudio创建一个新项目

    首先打开AS,然后 选择第一个选项Start a new Android Studio project 填写包名和项目名,点击next 选择项目类型,点击next 选择UI类型(都是死丢丢帮你生成的) ...