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

简介:

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

相关文章
|
2月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
134 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
95 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
4月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
95 2
linux笔记 diff及patch的制作与使用
|
4月前
|
存储 监控 Linux
在Linux中,如何进行虚拟化技术的应用?
在Linux中,如何进行虚拟化技术的应用?
|
4月前
|
jenkins Linux 持续交付
在Linux中,如何使用Jenkins和Ansible进行虚拟化环境的自动化和持续集成/持续部署(CI/CD)?
在Linux中,如何使用Jenkins和Ansible进行虚拟化环境的自动化和持续集成/持续部署(CI/CD)?
|
4月前
|
存储 安全 Linux
在Linux中,如何使用VMware和VirtualBox进行虚拟化?
在Linux中,如何使用VMware和VirtualBox进行虚拟化?
|
4月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
4月前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
4月前
|
Linux 开发者
Linux源码阅读笔记18-插入模型及删除模块操作
Linux源码阅读笔记18-插入模型及删除模块操作
|
4月前
|
数据采集 Linux
Linux源码阅读笔记20-PCI设备驱动详解
Linux源码阅读笔记20-PCI设备驱动详解