文档章节

1、qemu-kvm创建虚拟机,并且设置网络

刘付kin
 刘付kin
发布于 2016/12/10 19:01
字数 2003
阅读 184
收藏 0

一:介绍

  • Hypervisor:是一种“虚拟机监视器(VMM)”,它介于裸机硬件和操作系统之间的组件,通过它, 可以在物理服务器上安装多个操作系统。

  • VNC:是一个在UNIX和Linux平台上的远程控制开源程序,有:vncserver,vncviewer,vncpasswd, 和 vncconnect。

  • KVM:Linux 2.6X版本中加入的内核模块,分为两个:kvm.ko 和 kvm_intel.ko / kvm_amd.ko

  • QEMU-KVM:KVM是一个可以虚拟CPU和内存的模块,但是不能够虚拟I/O等,所以它借鉴了QEMU,形成了一个QEMU-KVM的工具。利用它,用户可以很方便的操作KVM内核,虚拟出虚拟机、虚拟磁盘等。

  • 虚拟化分为:

    半虚拟化:完全用软件模拟,不需要硬件支持,速度慢 => xen

    全虚拟化:需要硬件支持,速度快 ==> KVM

二:创建虚拟机

  • 1、查看cup是否支持虚拟

      grep -E -o 'vmx|svm' --color /proc/cpuinfo
    

    注意:如果想在vmwareWorkstation的虚拟机中使用KVM,

    则需要在设置那里开启VT-X技术,如图:

  • 2、查看Linux内核是否加载了kvm模块

      lsmod | grep kvm
    
  • 3、加载KVM模块

      modprobe kvm
      modprobe kvm_intel
    
  • 4、安装qemu-kvm,安装完成后会生成/usr/libexec/qemu-kvm,是用户空间操作kvm内核的接口,安装后,会自动加载上面的KVM模块

      yum install -y qemu-kvm
    
  • 5、通过网络上传ISO镜像文件

      通过CRT的Alt + p 打开ftp客户端上传即可
    
  • 6、生成一个8G的镜像文件,作为虚拟机的磁盘

      qemu-img create  -f  raw  /root/hadoop.img 8G      默认生成raw格式,给多少就一次性划分多少
      qemu-img create  -f  qcow2  /root/hadoop.img 8G           生成qcow2格式,用多少算多少
    
  • 7、使用qemu-kvm创建虚拟机(参数说明 -m 指定内存大小 -smp 指定cup数量 -boot启动顺序)

      /usr/libexec/qemu-kvm -m 2048 -smp 1 -boot order=cd 
      -cdrom /iso/CentOS-6.6-x86_64-minimal.iso -hda /cloud/CentOS.img  -vnc :1
    
      参数说明:
          -m 指定客户机内存大小,默认单位MB
          -smp 指定客户机cpu个数。SMP:(symmetric[sɪ'metrɪk] Multi-processing)对称多处理
          -boot 指定客户机系统启动顺序,order=cd是指先光盘再硬盘。c:CD-ROM d:Hard Disk
          -hda 指定客户机的IDE硬盘(即前面的创建的镜像文件)
          -cdrom 指定客户机的光驱
    
  • 8、安装vnc或使用vnc工具连接虚拟机,给虚拟机安装系统

  • 9、关闭虚拟机并再次启动虚拟机,指定vnc端口为5901(不需要指定cdrom,因为已经将操作系统安装到磁盘中了,当然指定也没有关系,因为会检测是否安装了操作系统!)

      /usr/libexec/qemu-kvm -m 2048 -smp 1 -boot order=cd -hda /cloud/CentOS.img -vnc :1
    

三:配置网络(brigde、nat、host-only)

注意:brctl和tunctl只是临时创建,并不会修改network-scripts下面的ifcfg-eth0信息,所以开机会恢复。

  • 说明:需要bridge-utils 和 tunctl 的支持。

    brctl是Linux下用来创建和管理以太网桥,在内核中建立、维护、检查网桥配置的命令 tunctl是用来创建tap以及tun模式的网桥端口。

    在计算机网络中TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN模拟了网络层设备,操作第三层数据包比如IP数据封包。

bridge桥接配置

  • 1、要安装bridge-utils tunctl

      yum install -y bridge-utils tunctl
    
  • 2、添加一个br0网桥(桥接类型)

      brctl addbr br0
      ifconfig br0 up
    
  • 3、hypervisor的etho也需要绑定到bridge上,一步执行完成(注意修改成自己的IP)

      brctl addif br0 eth0 && brctl stp br0 on && ifconfig eth0 0.0.0.0 && 
      ifconfig br0 192.168.33.250 netmask 255.255.255.0 && route add default gw 192.168.33.1
    
  • 4、创建TAP类型虚拟网卡设备,用于绑定虚拟机的网卡绑定

      tunctl -t vnet0
      ifconfig vnet0 up
      brctl addif br0 vnet0
      brctl show
    
  • 5、创建虚拟机并关联网卡(可以连续带多个vnet)

      /usr/libexec/qemu-kvm -m 2048 -smp 1 -boot order=cd -cdrom /kvmhost/iso/centos-6.7.iso 
      -hda /kvmhost/kvms/test.img -net nic -net tap,ifname=vnet0,script=no,downscript=no 
      -net nic -net tap,ifname=vnet1,script=no,downscript=no -vnc :1
    

  • 6、启动虚拟机并关联网卡(可以连续带多个vnet)并添加mac地址

      /usr/libexec/qemu-kvm -m 2048 -smp 1 -boot order=cd -hda /cloud/Centos.img 
      -net nic,macaddr=52:54:00:12:34:57 -net tap,ifname=vnet0,script=no,downscript=no 
    
  • 7、编辑ifcfg-eth0 配置

      静态ip(和物理机在同一个网段)
    
      配置子网掩码
    
      配置dns1
    
      配置默认网关(和物理机同一网关)
    
  • 8、重新启动network service network restart 即可

##host-only配置

  • 1、要安装bridge-utils tunctl

      yum install -y bridge-utils tunctl
    
  • 2、添加一个hostonlybr0网桥(桥接类型)

      brctl addbr hostonlybr0
      ifconfig hostonlybr0 up
    
  • 3、给网桥设置一个随意的ip地址(不需要吧eth0绑定到此网桥上,也就是和eth0隔离)

  • 4、创建TAP类型虚拟网卡设备,用于绑定虚拟机的网卡绑定

      tunctl -t vnet0
      ifconfig vnet0 up
      brctl addif hostonlybr0 vnet0
      brctl show
    
  • 5、创建虚拟机并关联网卡

    /usr/libexec/qemu-kvm -m 4096 -smp 1 -boot order=cd -hda /cloud/Centos.img -net nic -net tap,ifname=vnet0,script=no,downscript=no

  • 6、启动虚拟机并关联网卡并添加mac地址

    /usr/libexec/qemu-kvm -m 2048 -smp 1 -boot order=cd -hda /cloud/Centos.img -net nic,macaddr=52:54:00:12:34:57 -net tap,ifname=vnet0,script=no,downscript=no

  • 7、编辑ifcfg-eth0 配置

      静态ip(随意一个网段,大家都在一起即可)
    
      配置子网掩码
    
      配置dns1
    
      配置默认网关(和物理机同一网关)
    
  • 8、重新启动network service network restart 即可

四、qemu-img是一个比较重要的工具,是QEMU的磁盘管理工具。

  • 1、查看帮助信息

      qemu-img -h
    
  • 2、查看镜像文件信息

      qemu-img info /cloud/CentOS.img
    
  • 3、创建一个磁盘镜像文件

      qemu-img create -f qcow2 /cloud/itcast.img 10G
    
  • 4、将raw格式转换成qcow2格式

      qemu-img convert -O qcow2 /cloud/itcast.raw  /cloud/itcast.qcow2
    
  • 5、修改镜像大小

      qemu-img resize /cloud/test.img +2G
    
  • 6、检查镜像

      qemu-img check /cloud/itcast.qcow2
    
  • 7、镜像格式

      qemu-img支持多种镜像格式,可通过qemu-img -h命令查看,常用的有qcow2,raw
    
      raw:原始的磁盘镜像格式,是qemu-img命令默认的文件格式,这种格式的文件的优势在于它非常
      简单且非常容易移植到其他模拟器上使用。特点一开始就让镜像实际占用了分配空间,但是写入速度稍快一下。
    
      qcow2:这种格式是QEMU目前推荐的镜像格式,它是功能最多的格式,它支持稀疏文件以节省存储空间,
      支持加密、压缩、快照等功能
    

QEMU monitor是QEMU与用户交互的一种控制台,一般用于为QEMU模拟器提供较为复杂的功能,

  • QEMU monitor的切换

      "Ctrl + Alt + 2"  -->  QEMU monitor状态
      "Ctrl + Alt + 1"  -->  客户机标准显示窗口
    
  • 显示系统命令状态:info

  • 查看QEMU的版本信息

      info versions
    
  • 查看当前QEMU是否有KVM的支持

      info kvm
      info name
      info status
    
  • 查看客户机各个vCPU的信息

      info cpus
    
  • 查看块设备信息,如硬盘、软盘、光驱等

      info block
    
  • 查看客户机的网络配置信息

      info network
    
  • 显示当前系统中已保存的客户机快照信息

      info snapshots
    
  • 查看当前客户机的迁移状态

      info migrate
    
  • 显示当前客户机的VNC状态

      info vnc
    
  • 查看QEMU monitor中命令执行的历史

      info history
    
  • 创建快照

      savevm snap20150406
    
  • 恢复快照

      loadvm snap20150406
    
  • 删除快照

      delvm snap20150406
    

© 著作权归作者所有

刘付kin
粉丝 8
博文 149
码字总数 117524
作品 0
深圳
后端技术杂谈7:OpenStack的基石KVM

Qemu,KVM,Virsh傻傻的分不清 当你安装了一台Linux,想启动一个KVM虚拟机的时候,你会发现需要安装不同的软件,启动虚拟机的时候,有多种方法: 这些之间是什么关系呢?请先阅读上一篇《白话...

你的猫大哥
07/11
0
0
完全虚拟化软件kvm的应用

一、KVM虚拟机简介 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux2.6.20之后继承Linux的主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核...

jungege1216
2014/05/25
0
0
虚拟化学习笔记-KVM 虚拟机在物理主机之间迁移的实现(p2p)

版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396686 SLES11 SP1 发布于 2010 年 5 月 19 日基于 Linux 内核 2.6.32.1......

z奶油面包
02/28
0
0
KVM部署搭建

1:KVM概述 公司部分linux服务器利用率不高,为充分利用这些linux服务器,可以部署kvm,在物理服务器上运行多个服务,例如,运行nginx的服务器上部署kvm,然后虚拟机上运行tomcat 2:知识点 ...

柴鑫旺
2017/12/08
0
0
CentOS 6.5安装KVM虚拟化

一、KVM简介 KVM(Kernel-basedVirtual Machine)即基于内核的虚拟机,是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux 2.6.20核心...

大相林
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python深体验,常见的数据处理方式(必须要懂的)

1.缺失值处理 - 拉格朗日插值法 input_file数据文件内容(存在部分缺失值): from scipy.interpolate import lagrangeimport pandas as pdimport numpy as npinput_file = './dat...

无也Python
25分钟前
2
0
Spring MVC注解故障追踪记

Spring MVC是美团点评很多团队使用的Web框架。在基于Spring MVC的项目里,注解的使用几乎遍布在项目中的各个模块,有Java提供的注解,如:@Override、@Deprecated等;也有Spring提供的注解,...

Skqing
26分钟前
4
0
区块链入门教程以太坊源码分析cmd包分析

  兄弟连区块链入门教程以太坊源码分析cmd包分析。 ### cmd包概述 * geth 主要Ethereum CLI客户端。它是Ethereum网络(eth主网,测试网络或私有网)的入口点,使用此命令可以使节点作为ful...

兄弟连区块链入门教程
28分钟前
1
0
@Autowired 报红线

代码可正常跑,不过红线看着有点难受,解决方案 使用@Autowired(required=false) 或者@Resource. 这两者区别网上一大堆

斩神魂
34分钟前
1
0
DataTable中检索信息 (C#)

C#_从DataTable中检索信息 存在于内存中的虚拟表DataTable,绑定在数据显示控件后,如果想在再检索其中某些信息,可以利用DataTable.Select方法进行检索,避免了重复的读取数据库。Select方法...

CS-CS01
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部