菜鸟学Linux 第112篇笔记 虚拟化xen
内容总览
Disk
Memory
IPC
监控命令
硬件虚拟化技术
影子页表
Full-Virtualization 完全虚拟化
para-virtualization 半虚拟化
虚拟化模型
虚拟化种类
Xen, KVM
Xen 基于Iscsi共享实现实时迁移虚拟机
Disk
IO Scheduler:
CFQ
deadline
anticipatory
NOOP
/sys/block/<device>/queue/scheduler
Memory:
MMU
TLB
vm.swappiness={0..100} 使用交换分区的倾向性,60
overcommit_memory 过量使用内存
overcommit_ratio 过量使用百分比
充分使用物理内存
1、swap跟RAM一样大: swappiness=0;
2、overcommit_memory=2, overcommit_ratio=100, swappiness=0;
memory: swap+ram
IPC:
message
msgmni
msgmax
msgmnb
shm
shmall
shmmax
shmmni
监控命令
sar, dstat, vmstat, mpstat, iostat, top, free, iotop, uptime, cat /proc/memino
ss, netstat, lsof, time, perf, strace
blktrace, blkparse, btt
dd, iozone, io-stress, fio
硬件虚拟化技术
Intel: VT-x
AMD: AMD-V
影子页表
Intel: EPT(Extended Page Tables)
AMD: NPT(Nested Page Tables)
Full-Virtualization 完全虚拟化
CPU不支持硬件虚拟化技术:模拟特权指令 模拟
CPU支持硬件虚拟化技术: VMM运行ring -1, 而GuestOS运行在ring 0;
HVM (Hardware-assistant VM)
para-virtualization 半虚拟化 pv
pv on HVM
I/O透传技术
虚拟化模型
1. Hosted VMM(Virtual Machine Management) 基于宿主机的虚拟机
2. VMM (hypervisor) 没有宿主机,直接安装在硬件上,
VMWare ESX(商业版), WMWare ESXi(免费版,简装版)
3. Xen
只虚拟cpu, interrupt, memory
有一个主管理虚拟机
+Qemu
+Xend/XM
4. KVM (Kernel-based Virtual Machine)
只能运行在支持硬件虚拟化的硬件上,并且x64
virtio (pv IO) 半虚拟化IO
passthrough IO 透传IO
5. Container 容器
虚拟机没有内核,大家内核共用
性能好,但如果内核出问题,所有虚拟机都玩完
OpenVZ
Linux
Wine 安装此软件可直接运行windows程序
Windows
cywin 安装此软件可直接运行linux程序
虚拟化种类
Full Virtualization
Para Virtualization
GuestOS的内核了解自己工作在VMM之上
Emulator
OS-Level, (Container)
OpenVZ, UML
Library Virtualization
Wine, Cywin
Application Virtualization
Xen, KVM
安装方式
1.先安装一台linux在其之上安装xen, kernel-xen
2.修改本机的grub配置文件,添加一行为kernel /xen.gz
原本为kernel 改为module
原本为initrd 改为module
3.重新启动电脑即可切换为xen的内核,并且原来的linux变为dom0
4.此时便安装完成
创建虚拟机使用
xm create
xm destroy
xm create -c <configfile>
创建虚拟机时是将配置文件放在/etc/xen目录下
export LANG=en
如果需要批量部署多台虚拟机的方案
批量部署DomU
准备一个映像模板,
脚本
生成一个配置文件/etc/xen
下载一个磁盘映像
Xen 基于Iscsi共享实现实时迁移虚拟机
准备工作
三台机器, 一台做Iscsi 两台做Xen
配置工作
1. 同步时间
2. 安装Xen
yum install xen kernel-xen libvert
修改/etc/grub.conf
安装iscsi客户端
yum install -y iscsi-initiator-utils
3. 安装Iscsi服务端
yum -y install scsi-target-utils
个人没有实现,需要两台xen,一台Iscsi,即用来做共享存储使用,可以实现虚拟机的实时
迁移。
本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1943774如需转载请自行联系原作者
Winthcloud