KVM+Qemu+Libvirt实战

上一篇的文章是为了给这一篇文件提供理论的基础,在这篇文章中我将带大家一起来实现在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                                                               
  2 ORIGN_ISO=$3
  3 
  4 sudo virt-install \
  5 --connect qemu:///system \
  6 --name $1 \
  7 --ram 2048 \
  8 --vcpus=2 \
  9 --disk path=${DIST_QCOW2},format=qcow2,size=20,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

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

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、虚拟磁盘管理

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术小讲堂

使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)1.系统必备2.在IIS中托管WCF服务3.使用PHP调用托管在IIS中的WCF服务

上一篇中,使用控制台托管了WCF服务,但是如果想从PHP和java平台调用,必须将其托管到IIS中(并不是必须的,还是有其他的方式的 比如windows azu...

31270
来自专栏葡萄城控件技术团队

如何在 IIS 上搭建 mercurial server

mercurial server 对于代码管理工具,更多的人可能更熟悉 Git 一些(Git 太火了)。其实另外一款分布式代码管理工具也被广泛的使用,它就是 m...

24470
来自专栏技术支持log

linux操作系统无损升级文件系统ext3至ext4--系统盘篇

linux操作系统无损升级文件系统ext3至ext4: 这里我们以CentOS7.0操作系统来作为示例升级系统盘文件系统: 附:linux操作系统无损升级文...

47210
来自专栏java闲聊

Docker中redis镜像

Docker让环境安装十分快捷 ,直接运行下方的命令,docker镜像就成功启动,

24440
来自专栏L宝宝聊IT

KVM文件管理

49030
来自专栏跟着阿笨一起玩NET

WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法

本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html

20010
来自专栏一个会写诗的程序员的博客

adb命令 - adb forward交互流程adb命令 - adb forward交互流程

命令: adb forward tcp:6100 tcp:7100 // PC上所有6100端口通信数据将被重定向到手机端7100端口server上

27530
来自专栏程序员八阿哥

小白Pycharm使用(5):pycharm中使用anaconda

不同的操作系统都是直接的在官网中下载安装包进行下载,选择你最经常使用的Python版本进行安装,下载完之后,尽量的按照anaconda默认的行为安装,现在的版本...

86510
来自专栏腾讯云容器服务团队的专栏

容器健康检查详解

容器集群内核基于 kubernetes ,kubernetes 支持对容器进行周期性的探测,根据探测结果来决定判断容器的健康状态,并执行额外的操作。当我们创建服...

77400
来自专栏腾讯大数据的专栏

Ta 腾讯分析添加热点图

1、打开TA:http://v2.ta.qq.com/ QQ号登录 2、点选站点列表 ? 3、选择新增站点,输入域名点击添加即可。 ? 4、点选监控检测→页面热...

51480

扫码关注云+社区

领取腾讯云代金券