kvm共享存储
㈠ kvm虚拟机为什么共享内存技术
你好,一般默认情况下是利用C盘的剩余空间来做虚拟内存的,因此C盘的剩余空间越大对系统运行就越好,虚拟内存是随着你的使用而动态地变化的,这样C盘就容易产生磁盘碎片,影响系统运行速度,所以,最好将虚拟内存设置在其它分区,如D盘中。
1、右键点“我的电脑”,左键点“属性”,点选“高级”选项卡,点“性能”里的“设置”按钮,再选“高级”选项卡,点下面的“更改”按钮,所弹出的窗口就是虚拟内存设置窗口,一般默认的虚拟内存是从小到大的一段取值范围,这就是虚拟内存变化大小的范围,最好给它一个固定值,这样就不容易产生磁盘碎片了,具体数值根据你的物理内存大小来定,一般为物理内存的1.5到2倍,如内存为256M,那么应该设置256*1.5=384M,或者干脆512M。
2、设置方法如下:
假设内存为256M,虚拟内存放在D盘,先要将默认的清除,保持C盘为选中状态,单选“无分页文件(N)”再按“设置”按钮,此时C盘旁的虚拟内存就消失了,然后选中D盘,单选“自定义大小”,在下面的“初始大小”和“最大值”两个方框里都添上512,再点一下“设置”按钮,会看到D盘的旁边出现了“512-512”的字样,这样就说明设置好了,再一路确定,最终,系统会要重新启动,重启一下,便完成了设置。
3、注意:虚拟内存只能有一个,只放在一个盘中!
㈡ KVM实现动态迁移如何共享存储池
kvm底层本身就自带虚拟锁机制,就类似机器文件系统的的锁机制,所以能够提供和vmware等商业虚拟化一样的迁移功能。
㈢ 要做kvm的集群 用什么分布式文件系统
一、 虚拟化集群介绍、设计思路及架构
使用虚拟化集群的目标是克服单机虚拟化的局限性,利用技术手段提高虚拟机可用性,最终达到业务不中断或者减少中断时间,确保业务数据更安全的目标。
1. 虚拟化集群介绍
1)什么是虚拟化集群
虚拟机集群最显着的特征是有共享存储,因为有了共享存储,虚拟机就可以实现非常快速的在线迁移,并在虚拟化层配置高可用。笔者在生产环境使用的集群有两种存储方式,基于商业存储和基于开源分布式文件系统。
2)虚拟化集群的高可用和基于应用层高可用的区别
高可用是经常用到的运维技术,在系统、网络、数据库、Web业务等各个应用层面都有使用。高可用技术是指至少有主备两个节点,当主节点故障的时候,迅速切换到备用节点。为了避免备用节点误判,有时候还有第三个节点,或者主节点和备用节点共同能访问到的存储空间,用于做仲裁判断。应用层面的高可用还有一个特点,就是一般都有浮动IP,当切换发生的时候,IP从主节点漂移到备用节点。应用层面的高可用一般切换时间比较快,从几毫米到几秒中,同时应用层面的高可用一般需要专用软件,比如常用的Keepalived,Heartbeat等。
虚拟化层面的高可用是虚拟机系统层面的高可用,即当一台计算节点故障的时候,在另外一台计算节点上自动将故障节点上的虚拟机启动起来。注意如果虚拟机上的业务不能做到开机自启动,即使虚拟机自动启动了,并不能保证业务层面的自动恢复!
另外还有一个问题,就是即使虚拟机启动起来了,当启动到一半虚拟机的系统卡住了,也不能及时恢复业务!
虚拟化层的高可用一般业务恢复实际是系统重启的时间,加上业务开机自启动的时间,通常是分钟级别。
虽然虚拟化层高可用有业务不能恢复的风险,业务恢复时间也相对比较长,但是虚拟化层高可用有个非常巨大的优势,就是不需要在应用层面配置,大大的拓宽了高可用的适用范围,使原来在应用层难以使用高可用技术的应用,也能做到高可用,尤其是在某些专用的软件领域。
其实虚拟机层高可用和应用层面高可用并不矛盾,在虚拟机的系统里面,也可以配置应用层面的高可用,做这样的配置的时候,注意主备节点放置到不同宿主机上!
3)虚拟化集群后端存储的使用
最早的时候,笔者在生产环境使用的集群都是以机柜为单位的小集群,主要因为笔者一直搭建的是私有云,在IDC机房里面机柜都是要计算费用的,为了充分利用资源,合理节省成本,笔者私有云一个设计思想就是能够按照机柜,灵活扩展或者伸缩。
后来随着虚拟化的规模扩大,也进行了一些基于开源分布式文件系统集群的搭建,基于开源分布式文件系统的集群,规模可以更大,扩展性更好,适用于KVM的开源分布式文件系统在第9章、第10章都有详细的介绍。开源的虚拟化管理平台,本书第11章、第12章、第13章有详细介绍,所以本章不再介绍开源分布式文件系统及管理平台。
2. 使用虚拟化集群的优势
虚拟化集群相对于单机虚拟化,有以下几点优势:
q 快速的在线迁移(Live Migration),设备、系统维护造成的业务计划内停机时间减少到零。
q 高可用(HA),一台计算节点故障,上面的虚拟机可以很快在其他计算节点上启动运行起来,极大缩短计划外停机时间。
q 动态资源调度,业务负载发生变化引起计算节点压力分布不均匀时,可手动或者自动平衡物理机负载。也可在整体压力较低的时间段,将虚拟机集中在部分计算节点上,将不用的计算节点临时关闭,达到节能的目标。
q 业务快速部署,集群将资源池化,通过和管理平台结合,在集群的容量范围内,业务部署的速度非常快。
q 数据更安全,后端存储采用冗余度更高的商业存储,或者分布式文件系统,数据可靠性可以达到99.99%以上。
q 网络速度、可靠性更高,集群网络采用冗余架构,网络设备、网络连接都是双冗余,网络速度更高,可靠性也更高,单台网络设备、单根网线、单个网卡故障都不会引起网络中断。
提示:
1)什么是计划内停机与计划外停机
计划内停机是指可预期可计划的停机,比如定期的维护,提前通告的维护。计划外停机是指突发事件引起的停机事件,比如硬件故障,网络DDOS攻击等。一般计划内停机因为是提前预知的,会做好预防措施,不会有数据丢失,对业务的损失是比较小的。计划外停机则因为是突发事件,对业务的损失要大很多。运维的重要职责之一就是通过技术手段减少计划外和计划内停机时间,对虚拟化来说,虚拟化集群能够做到在线虚拟机迁移,并且是全冗余设计,需要计划内硬件和软件维护的时候,可以做到计划内停机时间为零。当宿主机发生紧急硬件故障的时候,虚拟机可以很快在其他宿主机上开起来,所以虚拟化集群也能有效降低计划外停机。
2)在线迁移并不是灾备手段
在线迁移实际迁移的是虚拟机的内存,当宿主机发生故障的时候,虚拟机的内存信息已经丢失了,这时候是不能再去做虚拟机的在线迁移的。所以在线迁移解决的是有计划的维护问题,比如要升级宿主机内存,可以将宿主机上的虚拟机在线迁移到其他宿主机上,内存升级完成后,在将虚拟机在线迁移回来。
3. 集群设计及架构
1)虚拟化集群设计
为保证虚拟机的尽量的在线时间,灵活的扩展,虚拟化集群的设计需要满足以下要求:
q 有共享存储,虚拟机能够在线迁移;
q 通过增加计算节点、存储、网络设备可以横向扩展;
q 没有单点故障,计算节点有多个,商业存储为双控制器,分布式文件系统镜像写多份,网络设备冗余;
q 性能满足要求,并且通过增加设备,性能可以扩展
2)虚拟化集群的架构
一套虚拟化集群体系包括以下组成部分:
q 若干计算节点,承载虚拟机的计算、内存、网络资源;
q 管理节点及管理平台,管理虚拟机的镜像,虚拟机生成、维护、销毁的生命周期,虚拟机的调度;
q 后端存储,存储虚拟机镜像存放;
q 网络设备。
二、虚拟化集群技术方案
1. 前端计算
虚拟化集群前端计算节点可以使用普通机架式服务器,也可以使用刀片服务器。
1)机架式服务器做为计算节点的优缺点
机架式服务器做为计算节点的优点是:
q 架构简单,安装配置方便;
q 扩展节点数量和升级较为容易;
q 成本有一定的优势。
缺点是:
q 随着节点数量的增多,占用的机柜空间也在增大,单机柜服务器密度低;
q 网络结构复杂,每台服务器有公网、私网、存储网;
q 交换机端口数量多,接线容易出错。
2)刀片服务器做为计算节点的优缺点
使用刀片服务器作为计算节点的优点是:
q 刀片服务器内置交换机,可以灵活的配置网络;
q 刀片服务器连线简单,占有交换机端口数量少,网络非常简洁;
q 单位机柜服务器密度大;
q 功耗低;
q 刀片服务器冗余电源和风扇,冗余交换模块,是全冗余的架构。
使用刀片服务器的缺点是:
q 成本较高;
q 配置复杂,安装配置需要专业的知识;
q 往往需要改造机柜电源,并受限于机柜最高电流。
另外目前还有一种多节点服务器,就是在1U或者2U的空间里面,能够容纳2到4台服务器,这些服务器很像是刀片服务器,共享电源和机框,但是网络接口独立。多节点服务器密度介于机架式服务器和刀片服务器之间,使用上和机架式服务器完全一样。
服务器的配置选型,根据笔者的经验,选择比较高的配置,虽然初期投入高,但是长远看,因为能够容纳更多的虚拟机,其实是节省成本的。宿主机在运行一段时间后,往往会发现内存是瓶颈,所以一开始配置的时候,内存尽量配置大一些。具体宿主机如何选型在第15章已经有详细的介绍,本章就不重复介绍了。
3. 后端存储技术方案
虚拟化集群的后端存储可以使用商业存储和分布式文件系统,商业存储有三类:NAS、IP SAN、FC SAN。
1)NAS共享存储
NAS(NETWORK ATTACHED STORAGE )即网络附加存储,网络上直接挂接的存储设备,相当于一个网络文件共享服务器。
测试环境可以用一台普通的主机模拟NAS,只要这台主机有自己的磁盘和文件系统,并且对外提供访问文件系统的接口。最常见的NAS有linux下的NFS和windows下的CIFS。
2)IP SAN共享存储
SAN(STORAGE AREA NETWORK)即存储区域网络,主要是基于TCP/IP的网络来实现数据存取,即传输介质为IP网络。通过IP网络将计算计算节点和存储设备连接起来,计算节点通过发送Block I/O的请求到存储设备,最常见的就是用ISCSI技术,计算节点通过SCSI协议发出读取数据的请求,并用TCP/IP包封装SCSI包,就可以再TCP/IP网络中进行传输,即SCSI over TCP/IP。
测试环境也可以用普通服务器模拟ISCSI存储。
3)FC存储
FC(Fibre Channel 光纤通道)SAN类似于IP SAN,只是以光纤作为传输介质,性能较高,目前使用最广。计算节点上安装光纤接口的HBA(Host BusAdapter,提供服务器内部的I/O通道与存储系统的I/O通道之间的物理连接)卡,为了冗余HBA卡一般有两块,分别接两台光纤交换机,存储一般有两个控制器,也分别接两台光纤交换机,达到全容易的目标。FC SAN计算节点直接将I/O请求通过FC网络发送到存储设备,性能非常高。
4)生产环境如何选择存储类型
在实际部署的生产环境中,选择存储类型,取决于以下几个因素:
q 业务性能及可靠性需求
q 预算
q 运维对技术熟悉程度
一般来说,对性能要求非常高的业务,使用FC SAN存储,FC SAN存储也是成本最高的一种方案。如果业务性能需要稍低,可以使用NAS、IP SAN的存储,NAS、IP SAN的存储是性价比比较高的方式。如果业务主要是CPU消耗型的,可以考验使用分布式文件系统,本书第9章介绍的DRBD、GlusterFS,第10章介绍的CEPH,工作都很稳定,但是性能相对比较低,很适合CPU消耗型的虚拟机。
关于NFS和ISCSI,业内一直有争论,NFS配置简单,但是因为是应用层的协议,有人认为性能低,其实商业存储做了许多优化,性能也不见得比ISCSI差。如何选择主要取决于预算、运维的技术习惯、具体的存储品牌型号,笔者生产环境喜欢使用ISCSI存储。
㈣ 华为虚拟化(kvm)平台,如何在宿主机上底层查看到虚拟机在共享存储上存放位置和模板文件格式谢谢!
在linux上玩过kvm的朋友基本都晓得,在宿主机上运行了虚拟主机以后,我们无法直接看到某一个虚拟主机IP地址。比如:
[root@21yunwei /]$virsh list --all
Id 名称 状态
----------------------------------------------------
3 geoip running
4 tomcat running
5 jenkins running
18 gitlab running
19 win7 running
如果我们想知道gitlab这个虚拟机的IP地址,那么是无法直接看到的。这里就需要一个小方法做排查,很简单的,就两步骤:
1,编辑虚拟主机配置文件。
[root@21yunwei /]$virsh edit gitlab
进去以后直接查找mac 可以定位到如下地址信息,记录下mac后退出:
<mac address='52:54:00:FA:61:75'/>
2,通过arp -a判定虚拟机器IP地址。
[root@21yunwei /]$arp -a | grep -i 52:54:00:FA:61:75
? (192.168.1.101) at 52:54:00:fa:61:75 [ether] on br1
注意这里一定要加上-i 忽略大小写。不然因为大小写问题有可能查不到。
说明:这里只根据通信缓存记录的mac 、IP地址手段做排查。也有可能找不到。最好的办法是自己写一个脚本跟网段内的所有服务器都ping一次,记录下mac、ip地址以后再查找就没问题。
㈤ 如何在KVM HA集群中增加虚拟机
使用KVM虚拟化配置高可用性集群不仅成本低,而且还能确保工作负载在主机发生故障的情况下正常运行。然而对于某些不熟悉相关流程的人来说,配置高可用集群可能很困难。
之前我们在《如何以有限预算构建KVM HA集群》文章中介绍了如何创建一个基础集群并配置OCFS2共享文件系统。本文将介绍如何安装虚拟机,将虚拟机添加到集群中并确保集群配置正常运行。
安装KVM虚拟机
为安装KVM虚拟机,虚拟主机需要运行libvirt服务。可以使用如下命令运行libvirt服务:systemctl start libvirtd; systemctl enable libvirtd。
开启安装有两种方式,可以使用虚拟机管理器图形工具或者virt-install命令行。如果能够使用图形环境,那么virt-manager工具将非常有用,你也可以使用脚本创建虚拟机。
该命令指定了新虚拟机的所有属性,虚拟机名为smallcent,虚拟机的名字非常重要,因为在你为虚拟机创建集群资源时会用到。示例为虚拟机分配了512MB的内存,4GB的硬盘位于/shared目录下。请记住我们假定该目录位于我们之前创建的OCFS2数据卷上。
上述步骤要用到交互式安装。如果没有终端连接到虚拟主机,那么无法使用上述安装类型而只能使用自动化安装。你需要查阅相关文档,了解如何配置AutoYast或Kickstart服务器来完成自动化安装。
为KVM虚拟机配置集群资源
为将虚拟机添加到集群中,你需要使集群能够识别虚拟机配置。为实现该目标必须将虚拟机的XML配置mp为文本文件。首先,使用 virt-installvirsh list --allvirt-install命令确认虚拟机的名字。我们使用的虚拟机的名字为smallcent。因为集群需要访问包含虚拟机定义的XML文件,所以你必须将其mp到共享存储上。通过输入命令vvirsh mpxml smallcent > /shared/smallcent.xml可以实现。
这时,你可以在集群中为虚拟机创建资源。VirtualDomain资源代理可以实现该目的。可以使用crm configure edit命令增加如下配置:
为使集群能够管理资源,集群中的所有节点都必须能够访问XML配置文件。因此你需要将XML文件存放在共享存储上。在之前的命令中已经使用 VirtualDomain 资源代理创建了一个名为smallcent的资源。为告知资源代理在哪儿查找hypervisor,我们在资源定义中包括了如下内容:hypervisor="qemu://system"。为使该配置生效,主机需要被配置为允许通过其他主机自动登录。接下来,你需要表明集群能够在哪儿查找用于管理资源的XML配置。
现在你可以使用crm_mon命令确认配置正在运行。如果所有配置都是正确的,现在应该拥有一个可操作的KVM高可用集群了。