侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

在Ubuntu系统上安装部署KVM虚拟机的基本教程

linux  /  管理员 发布于 7年前   247

一、安装所需软件包

复制代码代码如下:
#apt-get install kvm
#apt-get install qemu
#apt-get install libvirt-bin libvirt管理

复制代码代码如下:#apt-get install bridge-utils网络桥接
 如果需要支持kvm虚机从网卡启动,还需安装kvm-pxe包

复制代码代码如下:#apt-get install kvm-pxe

二、建立一个虚机
可以参考libvirt官网<http://libvirt.org/formatdomain.html>,自己新建一个xml定义域文件
其中可以定义虚机的域名、UUID、启动选项<hd、cdrom、network>
               内存大小、cpu个数、硬盘与光驱镜像路径、网卡相关等

虚机磁盘格式为qcow2

下面为实例:建一个centos系统

###ubuntu下建议vim用vim-gnome###
   删除自带的vim

复制代码代码如下: #apt-get remove vim-tiny
   安装vim-gnome

复制代码代码如下: #apt-get install vim-gnome

1、创建一个目录用于存放虚机相关文件

复制代码代码如下:#mkdir /datastore

2、先要创建网络桥接设备<保证eth0没有IP,传递给vSwich0;vSwitch0名称可自定义>
#ifconfig eth0 先得到eth0的IP,假设为192.168.1.22

复制代码代码如下:
#/sbin/ifconfig eth0 0.0.0.0 promisc up
#/usr/sbin/brctl addbr vSwitch0
#/usr/sbin/brctl addif vSwitch0 eth0
#/sbin/ifconfig vSwitch0 192.168.1.22 netmask 255.255.255.0 up
#/sbin/route add default gw 192.168.1.1 dev vSwitch0

以上命令重启失效,可以写一个脚本,然后在/etc/rc.local中添加执行路径

复制代码代码如下:
#!/bin/sh
if /sbin/ifconfig vSwitch0 down > /etc/null 2>&1 &
then
/usr/sbin/brctl delbr vSwitch0 > /etc/null 2>&1 &
/sbin/ifconfig eth0 0.0.0.0 promisc up
/usr/sbin/brctl addbr vSwitch0
/usr/sbin/brctl addif vSwitch0 eth0
/sbin/ifconfig vSwitch0 192.168.1.22 netmask 255.255.255.0 up
/sbin/route add default gw 192.168.1.1 dev vSwitch0
else
/sbin/ifconfig eth0 0.0.0.0 promisc up
/usr/sbin/brctl addbr vSwitch0
/usr/sbin/brctl addif vSwitch0 eth0
/sbin/ifconfig vSwitch0 192.168.1.22 netmask 255.255.255.0 up
/sbin/route add default gw 192.168.1.1 dev vSwitch0
fi
 
3、建立xml定义文件,下面是我的xml文件

XML/HTML Code复制内容到剪贴板
  1. <domain type='kvm' id='1'>  
  2.   <name>templates-1</name>                ##域名   
  3.   <uuid>0112310a-ff1a-bfb5-7cd8-5b2b22ad8de1</uuid>    ##UUID   
  4.   <memory>262144</memory>                 ##最大内存   
  5.   <currentMemory>262144</currentMemory>   ##当前内存   
  6.   <vcpu>1</vcpu>                          ##cpu个数   
  7.   <os>  
  8.     <type arch='x86_64' machine='pc'>hvm</type>  
  9.     <boot dev='cdrom'/>                   ##启动模式   
  10.   </os>  
  11.   <features>  
  12.     <acpi/>  
  13.     <apic/>  
  14.     <pae/>  
  15.   </features>  
  16.   <clock offset='localtime'/>  
  17.   <on_poweroff>destroy</on_poweroff>        
  18.   <on_reboot>restart</on_reboot>  
  19.   <on_crash>restart</on_crash>  
  20.   <devices>  
  21.     <emulator>/usr/bin/kvm</emulator>  
  22.     <disk type='file' device='disk'>  
  23.       <source file='/datastore/templates-1.qcow2'/>   ##此虚机磁盘文件路径   
  24.       <target dev='hda' bus='ide'/>                   ##盘符   
  25.     </disk>  
  26.     <disk type='file' device='cdrom'>  
  27.       <target dev='hdc' bus='ide'/>  
  28.   <source file='/datastore/centos-5.4.iso'/>          ##虚拟光驱镜像路径   
  29.       <readonly/>  
  30.     </disk>  
  31.     <interface type='bridge'>  
  32.       <mac address='00:e0:4c:f0:e0:11'/>              ##mac地址   
  33.       <source bridge='vSwitch0'/>                     ##桥接设备   
  34.       <target dev='vnet0'/>                           ##虚拟设备   
  35.     </interface>  
  36.     <input type='tablet' bus='usb'/>  
  37.     <input type='mouse' bus='ps2'/>  
  38.     <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'/>  
  39.     <sound model='es1370'/>  
  40.     <video>  
  41.       <model type='cirrus' vram='9216' heads='1'/>  
  42.     </video>  
  43.   </devices>  
  44. </domain>  

定义文件中的磁盘与光盘镜像路径一定要真实存在

4、创建虚拟机磁盘

复制代码代码如下:
# qemu-img create -f qcow2 templates-1.qcow2 20G
Formatting 'templates.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=0

指创建一个名称为templates.qcow2 格式为qcow2 大小为20G的虚拟磁盘

复制代码代码如下:
# du -sh templates.qcow2
136K templates.qcow2

此大小会随着系统的变化而变化,但最大应该不超过20G

5、启动安装


复制代码代码如下:#virsh define templates-1.xml    定义一个虚机

复制代码代码如下:#virsh start templstes-1      启动一个虚机

复制代码代码如下:#virsh vncdisplay templates-1 查看vnc端口,用于安装过程的窗口化管理


复制代码代码如下:#vncviewer :0                  打开vnc窗口
 此命令需要安装其中一个

复制代码代码如下: # vncviewer
   程序“vncviewer”已包含在下列软件包中:
   * xtightvncviewer
   * xvnc4viewer
   * tightvnc-java
   * vnc-java
请尝试:
复制代码代码如下:apt-get install <选定的软件包>
   
 ###如果有多个虚机,各自的vnc端口应该是不同的###

复制代码代码如下:
#virsh destoy DOMAINNAME关闭一个虚机
更多命令详解

复制代码代码如下:
#virsh --help

6、如果需要图形化管理,可以安装诸如virt-manager类包


  • 上一条:
    Ubuntu系统鼠标指针上下跳动该怎么办?
    下一条:
    修改Ubuntu系统的登陆信息的简单方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客