将服务器虚拟化到SAN上的最佳实践?

好的,所以我想要开始比以前多使用我的SAN,同时还要利用ESXi。

目前,我已经将一系列戴尔PowerEdge 1955刀片式服务器连接到单机箱EMC AX4-5 FC存储arrays。 我基本上使用SAN作为DAS。 我在SAN上有指向特定物理机器的LUN,这些机器根据目标服务器使用LUN(主要是数据库和Samba / NFS共享)。

我有多个物理文件服务器,每个都有一个sambaconfiguration设置来提供相应的共享。 由于我从来没有使RHCS正常工作,所以只有一台文件服务器一次安装了LUN。 在文件服务器死亡的情况下,我手动进行隔离(通过卸载和取消提交驱动器,使用navisphere实用程序,或通过DRAC电源closures),然后使用navisphere实用程序在下一个竞争者上启动所提供的LUN之后,启动apache和其他守护进程)。 所有的手,现在。

我觉得像Ferris Bueller演奏单簧pipe那样sorting。 从来没有一个教训!

无论如何,我正在努力改善。 我想要做的是在物理主机上安装ESXi,然后创buildLUN以容纳两个文件服务器映像(以防其中一个文件服务器损坏),其中一个文件将处于活动状态,另一个文件服务器处于备用状态。 至less这样,我不会改进自动化(尽pipe我会尽快编写一个脚本来切换“主动”服务器),但我觉得我正在增加灵活性,另外我可以使用ESXi主机托pipe其他虚拟机,硬件不会像现在这样被浪费。

我的问题是:

1)我的计划有多愚蠢?

2)在实际应用中,我应该在LUN上创build一个正常的vmdk映像,还是给它一个“原始”分区(如果ESXi甚至可以的话)?

3)有没有“好”的方式来使用非群集文件服务器?

你的计划不是疯狂的。 像往常一样,根据您要实现的目标以及如何保护您的数据,有多种方法可以对其进行攻击。

首先,您可以使用“原始设备映射”将原始LUN呈现给VM。 去做这个:

  • 将LUN呈现给ESXi主机(或主机组,如果要使用集群/ HA)
  • 将磁盘添加到虚拟机,select原始设备映射,指向LUN
  • 重新扫描VM内部的SCSI总线
  • fdisk,挂载并添加到fstab,就像一个普通的磁盘。

上行:设置快,使用速度快,易于使用,可以将磁盘代表物理主机,如果你发现自己需要V2P的话

缺点:您可能会丢失一些基于VMware的快照/回滚选项,具体取决于您是使用物理还是虚拟兼容模式

另一种select是在LUN上创buildVMFS以创build数据存储,然后将VMDK磁盘添加到位于该数据存储上的VM。

  • 上游:如果您购买使用许可证,则为Storage vMotion-friendly。 这允许VMDK磁盘在LUN甚至SAN之间热迁移。

在这两种情况下,如果VMware或虚拟机在故障期间吃掉文件系统,则处于类似的风险状态; 一个不是比另一个好得多,尽pipe可以使用的恢复select将是完全不同的。

除非必须,否则我不会部署RDM。 我发现他们不会像我的VMDK那样给我带来太多的灵活性(而且我在执行其他存储操作的时候被一些错误所困扰,因为它们是不切实际的(因为是固定的 – 请参阅该链接中的RDM部分))


至于你的虚拟机,最好的办法就是将你的文件服务器的启动盘作为VMDK存储在SAN上,以便在主机发生故障的情况下让其他主机启动它。 使用VMware的HAfunction,在另一台主机上引导您的虚拟机是自动的(虚拟机将在第二台主机上启动,就好像电源已经被拔出一样;希望执行通常的fsck和魔术来使它像普通服务器一样)。 请注意,HA是许可function。

为了减轻虚拟机故障,您可以构build一个文件服务器的轻量级克隆,包含启动所需的最低限度,并使SAMBA以configuration状态启动,并将其存储在每个主机的本地磁盘上,等待您添加数据驱动器失败的虚拟机并启动它。

在SAN故障的情况下,这可能会也可能不会购买额外的选项; 最好的情况下,您的数据存储将需要fsck或其他修复,但至less您不必修复,重build或configuration虚拟机顶部。 最糟糕的情况是,你已经失去了数据,需要回到磁带…但是你已经在这个状态了。

我会坚持使用vmdk的图像,只是在未来转移到使用vmotion,你永远不知道你可能会得到一个预算。

如果你的机器没有集群,那么就我而言,pipe理它们的最好方法就是尽可能平均地分配负载。 我有3个非集群的2950,其中最关键的vms的负载尽可能多的1/3。 理论上,我不可能同时放松一个以上的盒子,所以至less有三分之二能够不受影响地继续运作。

从功率angular度来看,将机器装载到接近100%的机器可能更有效率,并且可以将其他机器断电,但似乎将所有的鸡蛋都放在一个篮子里。

我不会称自己是这方面的专家,正是我所做的。

嘿马特。 使用虚拟化解决scheme时,有很多方法可以分解解决scheme。 首先,有很多基准testing显示原始LUN(RDM)与VMDK性能,通常显示的差异可以忽略不计。 RDM需要注意的一些事情:只有某些集群情况需要使用RDM(MS集群)。 RDM有2TB的限制,但LVM可以用来解决这个限制。 RDM很难跟踪,而不是把ESX分配给VMFS,然后把vmdk放在上面。 VMDK(如上所述)有一些好处:svMotion,快照(不能快照pRDM)。

如果运行免费的ESXi,那么我将如何处理您的情况。 首先,所有数据都在VMFS LUN上的vmdk文件中。 安装2个虚拟机,并使用Heartbeat进行IP和服务的故障转移。 Heartbeat会将服务IP转移,并可以在适当的情况下处理脚本以卸载/挂载数据LUN。 您甚至可以编写一些VMware Remote CLI脚本来确保“closures”虚拟机的电源被closures以进行防护。 随着心跳直接协调系统之间访问数据伦/运行相同的服务应该是非常低的风险。 这里的关键是确保数据LUN的挂载/卸载和服务的启动/closures由Heartbeat处理,而不是正常的init机制。

可以通过监控系统来完成另一种故障转移。 当它检测到停止主机时,它可以使用VMware Remote CLI来closures电源(以确保安全),然后开启备份虚拟机。 在这种情况下,回退是相当手动的。

在我的“小”环境中,我没有看到VMDK被损坏。 我也意识到,如果您拥有两台以上的ESX(i)主机或十几台虚拟机,您将需要vCenter来帮助跟踪所有事情。 一些Essential / Plus软件包考虑到好处并不太昂贵。

马特,你知道我不使用VMware,但我一直使用“RAW”与Xen。 只有less数虚拟机轻装载我怀疑你会看到很大的性能差异。 但是如果所有这些客人都在同一个文件系统上,当你开始接触越来越多的客人时,最终会遇到队列深度问题。 NFS支持的存储尤其如此。 与其说NFS服务器没有这个问题,但是大多数NFS客户端实现都很糟糕。

如果你正在寻找冗余(san失败),我不知道有一个好的方法来同步vmdks。 但是如果你使用块设备,你仍然有可能使用DRBD来复制你想要/需要复制的虚拟机。

我想你应该问自己“我有没有计划回到物理服务器”

如果答案是可能的,那么也许你应该坚持RDM。 带有RDM的ESXi会(我认为)要求你购买一些东西来使你的光纤能够正常工作(在ESXI上不是100%确定的)。

我们使用RDM将几台机器从物理服务器快速转移到ESX(4.0)中。 我有一个混合的Linux和Windows机器(超级简单的两个平台)。 在物理服务器上,我们仍然有一些FreeBSD(6.0及以上版本)运行,我们不能使用RDM,因为旧的FBSD内核不支持这一点。 这很快,并要求我除了点我的LUN,然后安装VMWare工具。 脑死容易..没有转换器没有大惊小怪…

你应该问自己的另一件事是“我想用什么VMWare的function?

根据你的答案,你可能别无select,除了VMDK。 如果你使用你的SAN作为快照,而不用在乎使用vmware。

有些笔记与你分享了我们到目前为止所遇到的情况.Vmotion同样适用于RDM和VMDK,另一方面,Storage Vmotion只能在非RDM下正常工作,并且尝试使用Vmotion存储从RDM转到VMDK很糟糕只是使用转换器..大多数Linux发行版都有一个开源的vmware工具包,这使得安装工具不成问题。 备份applince工作真的很好,是免费的,但没有做我们想要的东西。 我强烈build议从vmware上课。 我花了一个星期,值得每一分钱VMWare的支持是真棒..如果你得到一个支持合同,并呼吁他们是顶级nothc ..我感到沮丧得到一个人,可以帮助我(许多菜单.. ),但一旦我得到他们,他们总是来快速可靠的支持。