KVM虚拟机-CentOS6.3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
KVM虚拟机-CentOS6.3
在2010年4月发布的RHEL6.0版本中,去掉了XEN,这也许是第一个不包含Xen Hypervisor 的知名linux发行版。
KVM是指基于Linux内核的虚拟机(Kernel-base Virtual Machine),增加到Linux内核是Linux发展的一个重要里程碑,这也是第一个整合到Linux主线内核的虚拟化技术。
在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程,你可以在用户空间启动客户机操作系统,一个普通的Linux进程有两种运行模式:内核和用户,KVM增加了第三种模式:客户模式(有自己的内核和用户模式)。
1、KVM虚拟机的管理工具
准确的来说,KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具。
QEMU-KVM:在Linux系统中,首先我们可以用modprobe命令加载KVM模块,如果用RPM安装KVM软件包,系统会在启动时自动加载模块,QEMU是一个强大的虚拟软件,它可以虚拟不同的构架
Virt-manager:尽管QEMU-KVM工具可以创建和管理KVM虚拟机,RedHat 为KVM开发了更多的辅助工具,比如 libvirt libguestfs等,原因是QEMU工具效率不高,不易于使用。
一硬件虚拟化支持
1查看CPU是否支持虚拟化
(此项查看需要服务器已安装linux操作系统)
KVM 需要有CPU 的支持(Intel vmx 或AMD svm),在安装KVM 之前检查一下CPU 是否提供了虚拟技术的支持:
处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用KVM,另处linux发行版本必须在64bit环境中才能使用KVM。
2BIOS中开启Virtual Technolege
在主板BIOS中开启CPU的Virtual Technolege(VT,虚化技术),不同主板所在菜单不同,例如:
华硕主板开启虚拟化
Intel主板开启虚拟化
3安装KVM服务器
安装KVM虚拟机和安装其他服务器一样,在选择操作系统类型是选择“Virtual Host”即可。
如果使用此服务器管理其他KVM主机,需要额外安装openssh-askpass软件包。
注:(已安装好的操作系统,里面有重要资料无法重新安装的可以在已有的系统上安装如下软件包
yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt
libvirt-python python-virtinst openssh-askpass
或者如下图,安装需要的组
)
4检查kvm模块是否安装(可选)
使用以下命令显示两个模块则表示安装完成
[root@kvm240 /]# lsmod | grep kvm
kvm_intel 53484 16
kvm 316506 1 kvm_intel
二virt-manager管理界面
KVM管理工具为virt-manager,需要图形化管理。
服务器类型“Virtual Host”安装后没有图形化界面,安装虚拟机和管理虚拟机需要在windows pc上远程起图形化界面进行管理。
在其他linux服务器上(和KVM宿主机在同一局域网,网络连通)安装或者在KVM宿主机上安装。
yum install virt-manager*
yum install openssh-askpass*
双击启动
CRT配置
CRT退出,再次登录下,使配置生效
在CRT上执行
virt-manager
点击File---Add Connection
Hypervisor默认QEMU/KVM,勾选Connect to remote host,Hostname:输入KVM宿主机IP 地址,若需要启动virt-manager自动连接kvm宿主机,需要勾选Autoconnect,如果不需要自动连接则不需要勾选,点击Connect按钮;
三宿主机配置
1宿主机介绍
1.在viet-manager界面选择宿主机Ip地址,右键选择“Details”;
2.当前主机CPU和内存使用情况
3.虚拟机NAT模式下网络DHCP网络段和起止IP;
2虚拟机存储器配置
1.在storage只有default本地存储器
2.添加网络存储器,点击“+”按钮,填写添加存储器的名称,选择要添加存储器的类型,
这里添加本地磁盘路径,存储iso镜像文件;
3.输入挂在的目录路径
4.可以看到刚添加的存储器
上传CentOS6.3至/home目录下,点击Volumes后面刷新按钮,可以看到刚才上传的ISO文件。
3虚拟机网络配置
1.点击Network Interfaces按钮,图片左侧为服务器上使用的物理网卡,eth0、eth1;
2.点击做下较“+”,选择Bridge桥接模式,点击Forward进入下一步;
3.“Name”默认即可,“start mode”选择noboot,勾选“Activate now”,在“Choose Interfaces
to bridge”勾选要添加到此bridge网络的物理网卡,点击Finish按钮;
4.如果物理网卡eth0已在使用,会提示是否覆盖已有的配置,点击Yes按钮,完成配置(若点击Yes按钮后,断开连接,ping eth0的IP不通,需要在服务器上执行service network restart重启服务,此配置类似bond,也可手动配置见附录A)
四虚拟机管理
1KVM虚拟机创建
1.点击左上角“New”创建虚拟机,在Name后填写新建虚拟机名称(名称建议:通过名
称可以看到此服务器的用途和基本信息。
例如DSU110、IVHS120,前面为虚拟机上主要业务,后面虚拟机IP地址最后一位);选择安装操作系统方式,本次使用已上传到/home 目录的ISO镜像文件。
点击Forward按钮。
2.选择Use ISO image,点击Browse,在Storage点击home,选择CentOS6.3镜像,选择操
作系统的类型和操作系统的版本信息,KVM上版本信息较少,选择大致一样即可。
点击Forward。
3.调整内存大小和虚拟CPU数量,根据虚拟机上服务对实际内存和CPU资源的消耗进行
合理分配。
点击Forward。
4.勾选“Create a disk image on the computer’s hard drive”选择硬盘的大小,根据实际需要
选择虚拟硬盘大小(主要服务需要占用的空间、日志等其他需要的空间);建议勾选“Allocate entire disk now”立即分配整个磁盘;(如果选择“Select managed or other exiting storage”见附录B)。
点击Forward。
5.若在宿主机网络已配置bridge,网络默认选择br0,点击Finish按钮。
6.会出现如下安装界面。
之后为linux操作系统安装此处不再介绍
2虚拟机简介
点击虚拟机右键可以看到如下功能
3配置虚拟机
合理配置虚拟机使虚拟机性能更优。
1.根据虚拟机上运行的服务,对CPU的消耗情况合理调整虚拟CPU的核数。
2.根据虚拟机上运行的服务,对内存的消耗情况合理调整虚拟内存数。
3.选择是否随虚拟主机启动打开虚拟机,和硬件启动顺序。
4.优化虚拟机磁盘信息,在“Disk bus”选择Virtio,“Storage formal”选择raw和qcow2
都可以,但是生产环境建议qcow2;“Performance options”默认即可,按照如下选择性能更优。
virtio是KVM的半虚拟化机制,可提高IO性能,使用virtio可心显著提高KVM性能。
针对客户机块设备的缓存,drive有一个子选项cache来设置缓存模式。
writethrough写操作时不使用主机的缓存,只有当主机接受到存储子系统写操作通知时,宿主机才通知客户机写操作,也就是说这是同步的。
而writeback则是异步的,它是当客户机有写请求时,先将数据写入宿主机缓存,而此时主机并未将数据真正写入存储系统。
之后,待合适的时机主机会真正的将数据写入存储。
显然writeback会更快。
5.网卡根据自己的需要选择Bridge,网卡驱动选择virtio。
五KVM优化(可选)
(对性能要求高的,或生产环境建议优化,第四项可选)
1.宿主机上设置磁盘调度器为deadline,编辑/boot/grub/grub.conf在kernel那行加入elevator=deadline;
在客户机上设置磁盘调度器为deadline,编辑/boot/grub/grub.conf在kernel那行加入elevator=noop;
2.磁盘和网卡使用virtio,一定注意,否者导致磁盘性能严重下降;注意virtio驱动一定是最新的,特别注意windows虚拟机;
3.宿主机尽量使用LVM;磁盘尽量使用LVM作为虚拟机的磁盘,qcow2会带来额外的负担,从而导致IO性能下降;
4.内存不足时,打开KSM(Kernel Samepage Merging)(可选)
页共享在内核2.6.32之后又引入了KSM。
KSM特性可以让内核查找内存中完全相同的内存页然后将他们合并,并将合并后的内存页打上COW 标记。
KSM对KVM环境有很重要的意义,当KVM上运行许多相同系统的客户机时,客户机之间将有许多内存页是完全相同的,特别是只读的内核代码页完全可以在客户机之间共享,从而减少客户机占用的内存资源,从而可以同时运行更多的客户机。
CentOS默认没有开启KSM,如果KVM要使用KSM那必要安装:qemu-common。
开启KSM服务:service ksm start
service ksmtuned start
通过/sys/kernel/mm/ksm目录下的文件来查看内存页共享的情况,pages_shared文件中记录了KSM共享的总页面数,pages_sharing文件中记录了当前共享的页面数。
每个页面的大小为4KB 可计算出共享内在为:4X页面数=内存大小(K)
KSM会稍微的影响系统性能,以效率换空间,如果系统的内存很宽裕,则无须开启KSM,如
果想尽可能多的并行运行KVM客户机,则可以打开KSM。
附录
A 手动创建Bridge
创建bro配置文件,修改eth0配置文件
service network restart
B 非默认虚拟磁盘
在宿主机Details的storage窗口,在左侧选择存储池,点击“New Volume”弹出“Add a Storage Volume”对话框;填写Name;选择Format,生产环境建议为qcow2;MAX Capacity大小,点击Finish按钮。
可以看到新建的虚拟机磁盘卷,Test.img。
新建虚拟机时点击“Select managed or other exiting storage”
点击“Browse”,浏览选择创建虚拟机磁盘卷,例如:Test.img。
注:可也在创建虚拟机时点击“Select managed or other exiting storage”,在Storage Pools中选择存储池,点击New Volume。
这可以将虚拟机创建在其他位置,而非默认路径。
例如:若/var在/目录下,而根目录只分配的50G空间,/home有890G,此时若使用默认路径会将/目录空间撑爆,所以需要将虚拟机创建到其他地方,例如:/home。