码迷,mamicode.com
首页 > 其他好文 > 详细

深度实践KVM笔记

时间:2016-08-11 17:19:07      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

 

 

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表示只读权限

深度实践KVM笔记

标签:

原文地址:http://www.cnblogs.com/MYSQLZOUQI/p/5761485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!