深度实践KVM笔记

libvirt(virt-install,API,服务,virsh)-》qemu(qemu-kvm进程,qemu-img)-》KVM虚拟机-》kvm.ko 内核模块  P7

/etc/init.d/libvirtd
virsh

第3章   CPU,内存虚拟化技术

CPU 的嵌套技术nested特性,使用kvm虚拟机在理论上可以无限嵌套下去,只要物理机性能足够 P23
numastat          P25
                           node0
numa_hit                 4309388
numa_miss                      0
numa_foreign                   0
interleave_hit             18480
local_node               4309388
other_node                     0

numactl  --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
node 0 size: 4095 MB
node 0 free: 3034 MB
node distances:
node   0
  0:  10

Linux系统默认是打开自动numa平衡策略,关闭Linux系统的自动numa平衡   P25
echo 0 >/proc/sys/kernel/numa_balancing #关闭
echo 1 >/proc/sys/kernel/numa_balancing  #开启

virsh  numatune设置虚拟机的numa配置

CPU热添加是centos7的一个新特性,物理机和虚拟机都必须是centos7,windows虚拟机必须是windows2012标准版或数据中心版 P32

cat /proc/interrupts   在虚拟机里面查看当前系统有多少个cpu   P33
cat /proc/cpuinfo  
echo 1 >   /sys/devices/system/cpu/cpu3/online   在虚拟机里面激活第4个cpu
echo 0 >   /sys/devices/system/cpu/cpu3/online   在虚拟机里面关闭第4个cpu

KSM技术  P39
KSM:kernel  samepage  merging,将相同内存页进行合并
KSM服务
ksmtuned服务
service ksm start
service ksmtuned start
chkconfig ksm on
chkconfig ksmtuned on
cat   /sys/kernel/mm/ksm/*   查看ksm的运行情况

巨型页large page技术 P44
X86默认的内存页是4KB,但也可以使用2MB或1GB的巨型页
kvm虚拟机可以通过分配巨型页提升性能,centos5需要手动开启巨型页,centos6有一种透明巨型页面的技术,默认开启巨型页,并可以自动调整
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
三个选项
always  总是使用巨型页
madvise  避免改变内存占用
never  不使用巨型页
cat /proc/meminfo|grep -i huge
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
cat /proc/sys/vm/nr_hugepages
0
修改巨型页的pagesize,N是巨型页的pagesize
sysctl  vm.nr_hugepages=N   
挂载巨型页
mount -t  hugetlbfs  hugetlbfs  /dev/hugepages



第4章   网络虚拟化技术
半虚拟化网卡
解决全虚拟化网卡效率低下的一个办法就是使用半虚拟化驱动程序Virtio。
要使用Virtio需要在宿主机和客户机分别安装Virtio驱动。
Linux内核从2.6.24开始支持Virtio,现在的内核版本一般是2.6.32,只需要较新的Linux内核即可,不需要安装
在宿主机和客户机执行下面命令,如果有Virtio字样输出证明支持Virtio,如果是windows,需要安装Virtio驱动
 grep -i  Virtio /boot/config-2.6.32-504.el6.x86_64
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=m
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO=m
CONFIG_VIRTIO_RING=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m

配置半虚拟化网卡的方法
在虚拟机的xml配置文件里找到interface节,修改model type为Virtio
 <interface type=‘bridge‘>
      <mac address=‘52:54:00:28:a9:12‘/>
      <source bridge=‘br0‘/>
     
<model type=‘e1000‘/>  全虚拟化网卡     <model type=‘Virtio‘/> 
半虚拟化网卡  没有指定网卡的model默认是8139全虚拟化网卡,e1000是intel公司的千兆网卡,8139是百兆网卡
      <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x03‘ function=‘0x0‘/>
    </interface>

在virt-install 安装的时候,不能指定model=Virtio网卡
Starting install...
ERROR    internal error process exited while connecting to monitor: char device redirected to /dev/pts/4
2016-08-11T02:42:41.500805Z
qemu-kvm: -device
Virtio,netdev=hostnet0,id=net0,mac=52:54:00:7d:a3:18,bus=pci.0,addr=0x3:
Parameter ‘driver‘ expects a driver name
Try with argument ‘?‘ for a list.

Windows   P63
Virtio驱动网卡在2014年10月之后工作很稳定,没有网络闪断情况,可以在生产环境使用
Linux
Linux内核默认集成Virtio驱动,大部分Linux发行版可以直接使用Virtio驱动网卡。RHEL5.4之后建议使用Virtio网卡

vhost_net技术  P66
运行一台虚拟机是由用户空间的QEMU和内核空间的KVM共同完成,QEMU模拟各种设备提供给虚拟机,KVM负责模拟CPU和内存
Virtio的后端处理程序一般有用户空间的QEMU提供,为了进一步减少延迟,比较新的内核中已经增加了一个vhost_net的驱动模块,在内核中
实现了Virtio的后端处理程序
vhost_net配置
虚拟机的xml配置文件默认就是使用vhost_net
<interface type=‘bridge‘>   #接口方式桥接
      <mac address=‘52:54:00:28:a9:12‘/>
      <source bridge=‘br0‘/>
      <driver name=‘vhost‘/> #driver name这个可加可不加
      <model type=‘Virtio‘/>
      <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x03‘ function=‘0x0‘/>
    </interface>

数据包从虚拟机到物理机的过程

virtio原理 前端

virtio原理 后端



ll /etc/lvm/
total 80
drwx------. 2 root root 4096 Oct 16 2014 archive
drwx------. 2 root root 4096 Oct 16 2014 backup
drwx------. 2 root root 4096 Oct 16 2014 cache
-rw-r--r--. 1 root root 58444 Oct 16 2014 lvm.conf
drwxr-xr-x. 2 root root 4096 Jul 10 2015 profile

每个PV中保存一份元数据,元数据以ASCII格式存储,元数据在系统上会保持备份
在/etc/lvm/ 目录下保持最新版本,在/etc/lvm/archive目录下保存旧版本
通过pvcreate等操作将第一份数据覆盖后,可通过第二份数据进行恢复,在集群中将元数据设置保存为两份
命令如下
pvcreate --metadatacopies 2 /dev/mapper/ipsanmp1
vgcreate vmVG $PV

/etc/lvm/lvm.conf
locking_type参数
locking_type=1
1表示对vg有读写权限,4表示只读权限

时间: 2024-08-01 11:54:53

深度实践KVM笔记的相关文章

《深度实践KVM》目录、前言、及前3章

我们的新书<深度实践KVM>目录.前言.及前3章 图片版稍微有点不清晰,pdf版下载地址: http://pan.baidu.com/s/1o6J1xfs

深度实践KVM(1-8章)

第一章 企业虚拟化选型与KVM介绍 1.1 KVM的前世今生 1.虚拟化技术的演进过程 软件模拟——>虚拟化层翻译——>容器虚拟化 虚拟化层翻译可以分为: (1)软件捕捉翻译,即软件全虚拟化 (2)改造虚拟机系统内核加虚拟化层翻译,即半虚拟化 (3)硬件支持的虚拟化层翻译,即硬件支持的全虚拟化 软件模拟技术:通过软件完全模拟CPU.芯片组.磁盘.网卡等计算机硬件,如下图所示: 软件模拟的特点:可以模拟任何硬件,但非常低效,一般只用于研究测试的场景. 虚拟化层翻译技术: (1)软件全虚拟化方案:

jQuery内核详解与实践读书笔记1:原型技术分解2

上一篇已经搭建了一个非常简陋的jQuery框架雏形,如没有阅读搭建过程,请先阅读<jQuery内核详解与实践读书笔记1:原型技术分解1>初始搭建过程.接下来,完成书中介绍的剩下三个步骤: 7. 延续--功能扩展 jQuery框架是通过extend()函数来扩展功能的,extend()函数的功能实现起来也很简单,它只是吧指定对象的方法复制给jQuery对象或jQuery.prototype对象,如下示例代码就为jQuery类和原型定义了一个扩展功能的函数extend(). 1 var $ = j

程序设计导引及在线实践 读书笔记2.1 —— 鸡兔同笼

http://blog.csdn.net/pipisorry/article/details/36433305 问题描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物. 输入 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,每行一个正整数a (a < 32768) 输出 输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开

JavaScript 设计模式与开发实践读书笔记 http://www.open-open.com/lib/view/open1469154727495.html

JavaScript 设计模式与开发实践读书笔记 最近利用碎片时间在 Kindle 上面阅读<JavaScript 设计模式与开发实践读书>这本书,刚开始阅读前两章内容,和大家分享下我觉得可以在项目中用的上的一些笔记. 我的 github 项目会不定时更新,有需要的同学可以移步到我的 github 中去查看源码: https://github.com/lichenbuliren/design-mode-notes 1.currying 函数柯里化 currying 又称 部分求值 .一个 cu

《深入理解OSGi:Equinox原理、应用与最佳实践》笔记_1_运行最简单的bundlehelloworld

<深入理解OSGi:Equinox原理.应用与最佳实践>笔记_1_运行最简单的bundlehelloworld 买了周大大的OSGI的书看 先前完全没有基础 就靠这本书看看学学 顺便记一些笔记 今天先跳到了第5章的equinox启航部分 第一个简单的helloworld就遇到了问题.... 因为eclipse版本和书中不同 用书中所说得到的全是异常.... 搜索有关资料以后可以运行正常了 以此来记录一下: 在较新版本的eclipse中 不能通过java -jar org.eclipse.osg

深度学习word2vec笔记之算法篇

深度学习word2vec笔记之算法篇 声明:  本文转自推酷中的一篇博文http://www.tuicool.com/articles/fmuyamf,若有错误望海涵 前言 在看word2vec的资料的时候,经常会被叫去看那几篇论文,而那几篇论文也没有系统地说明word2vec的具体原理和算法,所以老衲就斗胆整理了一个笔记,希望能帮助各位尽快理解word2vec的基本原理,避免浪费时间. 当然如果已经了解了,就随便看看得了. 一. CBOW加层次的网络结构与使用说明 Word2vec总共有两种类

KVM笔记

KVM笔记 ==bridge== t提示:unspecified error - interface br0 failed to become active - possible disconnected cable.处理方法.enp0s25获取ip后,把打开的virt-manager关闭重新打开,否则建立br0会出错. virt-manager 编辑 连接详情 网络接口 + 桥接 enp0s25打钩,onboot激活,立即激活 完成 ==bridge wifi== 没成功,只好用有线的. 需要

Zabbix监控系统深度实践

Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置.设计.案例和内部原理) 姚仁捷 著  ISBN 978-7-121-24013-3 2014年8月出版 定价:69.00元 364页 16开 编辑推荐 国内最大规模Zabbix集群负责人力作 全面讲解Zabbix配置应用,深入剖析Zabbix内部原理 用真实工作需求驱动,以独家实践案例指引,助您监控利器出鞘 Zabbix是目前最流行的分布式图形化开源监控系统解决方案,它