[ kvm ] 学习笔记 7:KVM 虚拟机创建的几种方式

通过对 qemu-kvm、libvirt 的学习,总结三种创建虚拟机的方式:

  (1)通过 qemu-kvm 创建

  (2)通过 virt-install 创建

  (3)通过 virt-manager 创建

 

在使用这三种创建虚拟机前提是 宿主机必须支持 cpu 的硬件虚拟化技术(Intel 是 vmx,AMD 是svm),通过下面方式进行查看是否支持:

1
2
3
[root@192.168.118.14 ~]#lscpu | egrep Virtualization
Virtualization:        VT-x
Virtualization type:   full

通过上面查看,宿主机支持 VT-x 虚拟化技术

 

创建网桥网络:

1
2
3
4
5
[root@192.168.118.14 ~]#yum install libvirt -y
[root@192.168.118.14 ~]#mv /etc/libvirt/qemu/networks/default.xml /tmp/
[root@192.168.118.14 ~]#systemctl stop NetworkManager ; systemctl start libvirtd
# 创建网桥设备:br0
[root@192.168.118.14 ~]#virsh iface-bridge eth0 br0

 

1. qemu-kvm 创建虚拟机

在 qemu-kvm 创建虚拟机中,又分为:

  (1) 直接启动虚拟磁盘文件为虚拟机

  (2)通过iso镜像文件安装虚拟机

 

(1)通过虚拟磁盘文件直接启动的方式

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[root@192.168.118.14 ~]#yum install qemu-kvm -y
[root@192.168.118.14 ~]#ln -vs /usr/libexec/qemu-kvm /usr/bin/
[root@192.168.118.14 ~]#mkdir /images
[root@192.168.118.14 ~]#cd /images/
[root@192.168.118.14 /images]#wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-i386-disk.img
# 编写桥接使用的脚本
   
[root@192.168.118.14 ~]#cat /etc/qemu-ifup
#!/bin/bash
#
BRIDGE=br0
if [ -n $1 ]; then
  ifconfig $1 up
  brctl addif $BRIDGE $1
[ $? -eq 0 ] && exit 0 || exit 1
else
  echo "Error: no interface specified."
exit 1
fi
[root@192.168.118.14 /images]#qemu-kvm -cpu host -smp 1 -m 512m -drive file=/images/cirros-0.3.5-i386-disk.img,if=virtio,cache=writeback \
-net nic,model=virtio,macaddr=52:54:00:bb:d2:88 -net tap,ifname=vnet0.0,script=/etc/qemu-ifup -daemonize
说明:
-name 虚拟机名称
-cpu 执行虚拟机cpu类型,可通过 -cpu ? 查看支持的cpu类型
-smp 虚拟机cpu数,支持多核心多线程设置 -smp n[,scores=scores][,threads=threads][,sockets=sockets]
-drive 指定虚拟磁盘文件属性设置
    file: 指定具体虚拟磁盘文件目录
    if: 设置虚拟磁盘文件类型,virtio 为半虚拟化类型
    cache: 虚拟磁盘文件属性,是回写(writeback) 还是 透写(writethrough)
  
-nographic 设置虚拟机工作方式
    不写直接在前台执行,Ctrl + C 会终止虚拟机运行
    -nographic 直接命令行显示在控制端
    -daemonize 后台执行虚拟机进程
     
/etc/qemu-ifup 脚本:
#!/bin/bash
#
BRIDGE=br0
if [ -n $1 ]; then
    ip link set $1 up
    sleep 1
    brctl addif $BRIDGE $1
[ $? -eq 0 ] && exit 0 || exit 1
else
    echo "Error: no interface specified."
exit 1
fi

 

(2) 通过 iso 文件安装虚拟机

1
2
3
4
5
6
7
8
9
10
# 自行准备 iso 镜像文件
[root@192.168.118.14 ~]#ls /mnt/iso/
CentOS-7-x86_64-DVD-1511.iso
 
# 安装 vnc 客户端 和 x11 需要的插件
[root@192.168.118.14 ~]#yum install tigervnc xorg-x11-xauth -y
[root@192.168.118.14 ~]#qemu-img create -f qcow2 -o size=20G,preallocation=metadata /images/Centos7.qcow2
[root@192.168.118.14 ~]#qemu-kvm -name 'centos7' -cpu host -smp 1 -m 1024m -drive file=/images/Centos7.qcow2 -cdrom /mnt/iso/CentOS-7-x86_64-DVD-1511.iso -daemonize
# 如果这里召唤不出界面,建议重新开启一个终端执行
[root@192.168.118.14 ~]#vncviewer :5900

如图:

 

 

2. virt-install 创建虚拟机

在使用 virt-install 创建虚拟机的时候,首先把一些要使用的程序包安装:

1
2
3
4
5
yum install virt-viewer dejavu-sans-fonts.noarch xorg-x11-xauth -y
 
说明:
virt-viewer 用于通过vnc直接查看虚拟机控制台
dejavu-sans-fonts.noarch xorg-x11-xauth 用于通过 xmanager直接界面访问

 

在 virt-install 中创建虚拟机的方式有以下几种:

 

(1)直接启动虚拟磁盘文件为虚拟机

1
2
3
4
5
6
7
virt-install --name test --memory 512 --disk /images/cirros-0.3.5-i386-disk.img --import --network bridge=br0 --graphics=vnc
--name 虚拟机名
--memory 内存(默认单位: MB)
--disk 指定虚拟磁盘文件
--import 导入虚拟磁盘文件
--network 执行网络,不指定网络是无法启动的。bridge 执行网桥设备
--graphics 通过什么方式访问界面,这里使用 vnc ,否则无法输入。

 

(2)通过 iso 文件安装虚拟机

1
2
3
4
5
6
7
8
9
10
11
首先通过 qemu-img 创建虚拟磁盘文件
#qemu-img create -f qcow2 -o size=20G,preallocation=metadata CentOS7.qcow2
#virt-install --name centos --vcpus 2 --memory 2048 --disk /images/CentOS7.qcow2,format=qcow2,bus=virtio,cache=writeback \
--network bridge=br0,model=virtio --cdrom /usr/local/src/CentOS-7-x86_64-Minimal-1708.iso --graphics vnc --noautoconsole
 
--name 虚拟机名
--memory 内存(默认单位: MB)
--disk 指定虚拟磁盘文件,format指定虚拟磁盘格式,bus 指定半虚拟化(virtio) cache 指定磁盘缓存(回写)
--network 执行网络,不指定网络是无法启动的。bridge 执行网桥设备 model 指定虚拟网卡为半虚拟化,优化性能
--graphics 通过什么方式访问界面,这里使用 vnc ,否则无法输入。
--noautoconsole 不用在界面直接弹出安装界面,后面可以通过 virt-view centos 唤出图形界面

 

3. virt-manager 创建虚拟机

virt-manager 是通过图形界面直接鼠标选择安装,这个不再演示。注意以下几个点:

  (1)通过命令 virt-manager 无法唤出界面,需要安装 xorg-x11-xauth , 然后重新开启一个会话执行 virt-manger

  (2)如果 virt-manager 出现乱码,需要安装 dejavu-sans-mono-fonts

  (3)注意防火墙和 selinux

 

本文作者:hukey

本文链接:https://www.cnblogs.com/hukey/p/11307129.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   hukey  阅读(14783)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 彩虹 Jay
彩虹 - Jay
00:00 / 00:00
An audio error has occurred.

彩虹 + 轨迹 (Live) - 周杰伦 (Jay Chou)

彩虹

词:周杰伦

曲:周杰伦

哪里有彩虹告诉我

哪里有彩虹告诉我

能不能把我的愿望还给我

能不能把我的愿望还给我

为什么天这么安静

为什么天这么安静

所有的云都跑到我这里

有没有口罩一个给我

有没有口罩一个给我

释怀说了太多就成真不了

释怀说了太多就成真不了

也许时间是一种解药

也许时间是一种解药

也是我现在正服下的毒药

也是我现在正服下的毒药

看不见你的笑 我怎么睡得着

看不见你的笑 我怎么睡得着

你的声音这么近我却抱不到

你的声音这么近我却抱不到

没有地球太阳还是会绕

没有地球太阳还是会绕

没有理由我也能自己走

没有理由我也能自己走

你要离开 我知道很简单

你要离开 我知道很简单

你说依赖 是我们的阻碍

你说依赖 是我们的阻碍

就算放开 但能不能别没收我的爱

就算放开 但能不能别没收我的爱

当作我最后才明白

当作我最后才明白

看不见你的笑 要我怎么睡得着

看不见你的笑 要我怎么睡得着

你的声音这么近我却抱不到

没有地球太阳还是会绕 会绕

没有理由我也能自己走掉

释怀说了太多就成真不了

也许时间是一种解药 解药

也是我现在正服下的毒药

轨迹

词:黄俊郎

曲:周杰伦

我会发着呆然后忘记你

接着紧紧闭上眼

想着哪一天 会有人代替

想着哪一天 会有人代替

让我不再想念你

我会发着呆 然后微微笑

我会发着呆 然后微微笑

接着紧紧闭上眼

又想了一遍 你温柔的脸

又想了一遍 你温柔的脸

在我忘记之前