Qemu/KVM虚机机日常应用案例

目标:构造CentOS6高速虚拟机平台

特点:KVM支持、大页内存、内存预分配、virtio存储设备、桥接网卡(或VFIO直接分配物理网卡)

 1 #!/bin/bash
 2 mkdir -p /mnt/hugepages
 3 mount -t hugetlbfs hugetlbfs /mnt/hugepages
 4 sysctl vm.nr_hugepages=2048
 5 /*以上内容为Guest机启用2M大页内容支持*/
 6 qemu-system-x86_64  7 -enable-kvm \    /*启用kvm*/
 8 -machine accel=kvm,usb=off \    /*Guest机加速方式选择kvm*/
 9 -cpu host \    /*Guest机cpu特性最大程度继承Host机cpu*/
10 -smp sockets=1,cores=2,threads=1 \    /*虚拟出1颗物理cpu,这颗物流cpu上有2个核心,每个核心支持1个线程*/
11 -m 2048 -mem-path /mnt/hugepages -mem-prealloc \    /*内存设置为2G,占用大页内存,而且是预分配,不是动态分配*/
12 -net nic,model=virtio,macaddr=66:66:66:66:66:66 -net tap,ifname=tap6,script=bridge.sh,downscript=no,vhost=on \    /*桥接方式网卡*/
13 -boot order=dcn \    /*Guest机启动顺序:光盘、硬盘、网络*/
14 -drive file=/home/f/Downloads/ISO_files/CentOS_6.8_x64.iso,media=cdrom \    /*指定虚拟存储设备*/
15 -drive file=C600.img,if=virtio,cache=writeback,media=disk 16 -rtc base=localtime,clock=host \    /*Guest机时钟与Host机保持同步*/
17 -display none \    /*启动后不显示虚似机画面,可通过SSH连接*/
18 -monitor stdio    /*Qemu monitor管理界面显示在当前输入输出界面*,方面监控、Hotplug及Dynamic Migration/
19 #-vnc :6 -daemonize    /*若选择VNC连接Guest机,则启用本行*,且注释掉17、18行/

bridge.sh内容如下:

 1 #!/bin/env bash
 2 del_IP() {
 3     interfaces=$(ip addr | grep -oP ‘\w+(?=:\s+<)‘ | grep -v ‘lo‘)
 4     local y
 5     for y in $interfaces
 6     do
 7         local x
 8         local ips=$(ip addr | sed -n "/$y$/p" | grep -oP ‘(\d+\.){3}\d+/\d+‘)
 9         for x in $ips
10         do
11             ip addr del $x dev $y
12         done
13     done
14 #All interfaces‘ IPs have been deleted except "lo".
15 }
16
17 set_IP() {
18 brctl addbr br0
19 ip link set br0 up
20 brctl addif br0 eth0
21 ip addr add $ipaddr dev br0
22 if [[ $gateway == "" ]]
23 then
24     x=$(echo $ipaddr | grep -oP ‘(\d+\.){3}(?=\d+\/\d+)‘)1
25     ip route replace default via $x dev br0
26 else
27    ip route replace default via $gateway dev br0
28    #brctl stp br0 on
29 fi
30 }
31
32 echo -n "Your desired IP ? (example: 10.1.0.10/8): "
33 read ipaddr
34 echo -n "Your Gateway ? (example: 10.1.0.1): "
35 read gateway
36 del_IP
37 set_IP 2>/dev/null
38
39 ip link set $1 up
40 sleep 1
41 brctl addif br0 $1
时间: 2024-10-21 18:58:02

Qemu/KVM虚机机日常应用案例的相关文章

KVM 介绍(8):使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 [Nova Libvirt QEMU/KVM Live Migration]

学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机 (7)快照 (snapshot) (8)迁移 (migration) 1. QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移.系统整理迁移

KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]

学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机 1. Libvirt 在 OpenStack 架构中的位置 在 Nova Compute 节点上运行的 nova-compute 服务调用 Hypervisor API 去管理运行在该

KVM(六)Nova 通过 libvirt 管理 QEMU/KVM 虚机

1. Libvirt 在 OpenStack 架构中的位置 在 Nova Compute 节点上运行的 nova-compute 服务调用 Hypervisor API 去管理运行在该 Hypervisor 的虚机.Nova 使用 libvirt 管理 QEMU/KVM 虚机,还使用别的 API 去管理别的虚机.        libvirt 的实现代码在 /nova/virt/libvirt/driver.py 文件中. 这里是 OpenStack Hypervisor Matrix. 这里是

KVM 介绍(7):使用 libvirt 做 QEMU/KVM 快照和 Nova 快照 (Nova Instances Snapshot Libvirt)

学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机 (7)快照 本文将梳理 QEMU/KVM 快照相关的知识,以及在 OpenStack Nova 中使用 libvirt 来对 QEMU/KVM 虚机做快照的过程. 1. QEMU/KV

KVM(七)使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照

本文将梳理 QEMU/KVM 快照相关的知识,以及在 OpenStack Nova 中使用 libvirt 来对 QEMU/KVM 虚机做快照的过程. 1. QEMU/KVM 快照 1.1 概念 QEMU/KVM 快照的定义: 磁盘快照:磁盘的内容(可能是虚机的全部磁盘或者部分磁盘)在某个时间点上被保存,然后可以被恢复. 磁盘数据的保存状态: 在一个运行着的系统上,一个磁盘快照很可能只是崩溃一致的(crash-consistent) 而不是完整一致(clean)的,也是说它所保存的磁盘状态可能相

理解 QEMU/KVM 和 Ceph(3):存储卷挂接和设备名称

本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存储卷挂接和设备名称 这篇文章分析一下一个 Ceph RBD 卷是如何被映射到一个 QEMU/KVM 客户机的,以及客户机中设备的命名问题. 1. 遇到的设备命名问题 1.1 通过 Nova 和 Cinder 做 Ceph RDB 卷挂接和卸载步骤 挂接一个卷: #运行nova-attach 命令no

qemu 对虚机的地址空间管理

转载:http://huchh.com/2015/06/22/qemu-%E5%AF%B9%E8%99%9A%E6%9C%BA%E7%9A%84%E7%BA%BF%E6%80%A7%E5%9C%B0%E5%9D%80%E7%A9%BA%E9%97%B4%E7%AE%A1%E7%90%86/ 前言 cpu有两个地址空间:io 地址空间和内存地址空间.io地址空间是给设备用的,平时说设备占有哪些端口,指的就是io地址空间里的地址.内存地址空间相对比较复杂,这个地址空间被DRAM,设备和Flash r

创建ubuntu14.04 KVM虚机

琢磨了一天,终于方便的手工生成了kvm虚机,分享一下: 1,创建qcow2文件: ~]# qemu-img create -f qcow2 testnode1.qcow2 30G Formatting 'testnode1.qcow2', fmt=qcow2 size=32212254720 encryption=off cluster_size=65536 2,用virt-image启动一个kvm虚机 ~]#virt-install --name=testnode1 --ram 3072 --

KVM虚机克隆脚本

#!/bin/sh ############################################# ###         Auto Clone VM                 ### ###         2014-5-9                      ### ###         Owner: YiQiang.Wei            ### ###         Lastedit: 5-11                ### ###