黑帽联盟

标题: kvm虚拟化,使用qemu-kvm创建和管理虚拟机(全网最全,最完善) [打印本页]

作者: admin    时间: 2019-11-23 16:14
标题: kvm虚拟化,使用qemu-kvm创建和管理虚拟机(全网最全,最完善)
qemu-kvm参数选项详解:https://bbs.cnblackhat.com/thread-2808-1-1.html

环境:
系统:centos6.7(下面操作,centos7同样也可以)
内核版本:2.6.32-573
IP地址:172.31.225.246
网关:172.31.225.1

要求:
1、创建一个名称为centos6的虚拟机

2、内存512M,2核cpu

3、指定一块磁盘设备

4、指定一块光驱设备

5、以第一块硬盘进行引导,第一次引导使用第一个光驱设备

6、指定vnc监听的ip和桌面号

7、磁盘和网络设备通过半虚拟化的方式模拟,性能更好

8、数据缓存通过回写的方式

9、网络模式


准备工作

0. 由于我的物理机本身就是vmware虚拟出来的虚拟机,所以需要设置它支持虚拟化,如下截图,勾选上即可
1.png

1. 加载kvm相关的模块,我这里是intel的,需要加载kvm和kvm-intel模块

modprobe kvm
modprobe kvm-intel

2. 查看是否已经加载这两个模块

lsmod | grep kvm

112.png

3. 安装kvm虚拟机相关的管理工具qemu-kvm

yum install qemu-kvm -y

4、安装好之后,默认的qemu-kvm是没有的,红帽把这个命令放到/usr/libexec/qemu-kvm,我们做下软链接
113.png

ln -sv /usr/libexec/qemu-kvm /usr/bin

5. 上传光驱设备,放到data目录下

111.png


以上是准备工作,这里我们先不去创建centos虚拟机系统,我们通过cirros镜像来给大家演示,cirros一般用来测试,方便简单

        wget http://download.cirros-cloud.net/0.3.6/cirros-0.3.6-x86_64-disk.img



首先先介绍隔离模型(创建的虚拟机可以互相通信,但是无法与物理机器以及外网通信)



       brctl addbr br0

#!/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
       qemu-kvm -m 128 -smp 2 -name test -drive file=cirros-0.3.6-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -nographic -net nic,model=virtio,macaddr=52:54:00:12:34:57 -net tap,ifname=vif0.0,script=/etc/qemu-ifup

       解决方法:https://bbs.cnblackhat.com/thread-2805-1-1.html

       下载地址: cirros-0.3.6-x86_64-disk.img (14.56 MB, 下载次数: 0)

       vi /etc/network/interfaces
       114.png

       reboot

       115.png

       cp cirros-0.3.6-x86_64-disk.img cirros-0.3.6-x86_64-disk2.img
       qemu-kvm -m 128 -smp 2 -name test2 -drive file=cirros-0.3.6-x86_64-disk2.img,if=virtio,media=disk,format=qcow2,cache=writeback -nographic -net nic,model=virtio,macaddr=52:54:00:12:34:58 -net tap,ifname=vif1.0,script=/etc/qemu-ifup
       116.png

       117.png

       118.png

       119.png

       120.png


路由模型(虚拟机之间可以互相通信,同时也可以和物理机通信,但是不能和外网进行通信)


       121.png


       122.png



       124.png


NAT模型(虚拟机可以互相通信,同时也可以和物理机器,以及外网都可以通信)


       echo 1 > /proc/sys/net/ipv4/ip_forward
       iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 172.31.225.246

       125.png


桥接模型(直接通过br0网卡设备接收虚拟网卡传送来的数据,最后通过物理网卡出去)

       ip addr del 192.168.2.254/255.255.255.0 dev br0

       ip addr del 172.31.225.246/255.255.255.0 dev eth0; brctl addif br0 eth0; ip addr add 172.31.225.246/255.255.255.0 dev br0; route add default gw 172.31.225.1


       126.png

       127.png


下面正式安装centos操作系统,用光盘安装


       mkdir /data
       qemu-img create -f qcow2 /data/centos6.img -o size=120G,preallocation=metadata

       qemu-kvm -m 512 -smp 2 -name centos6 -drive file=/data/centos6.img,if=virtio,media=disk,format=qcow2,cache=writeback -drive file=/data/CentOS-6.7-x86_64-bin-DVD1.iso,media=cdrom -net nic,model=virtio,macaddr=52:54:00:12:34:59 -net tap,ifname=centos6,script=/etc/qemu-ifup -boot order=c,once=d -usbdevice tablet

       vncviewer :5900

       128.png

       129.png

       130.png

       131.png

       132.png

       133.png

       134.png

       135.png

       136.png

       137.png

       138.png

       139.png

       140.png

       141.png

       142.png

       143.png

       144.png


至此centos6系统已经安装成功了,就结束了,原创不易,请保留版权信息



附:对于虚拟机冷迁移和热迁移,以及快照创建恢复等操作,大家可以自行谷歌

kvm详解介绍:https://blog.csdn.net/hejin_some/article/details/72673192




欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5