且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

菜鸟学Linux 第112篇笔记 虚拟化xen

更新时间:2022-10-04 21:48:54

菜鸟学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