我们正在为我们的iSCSI SAN系统使用 Windows 2008故障转移群集.有两个节点,每个节点有3个nic.通常,这些nics可用作SAN的心跳,LAN和iSCSI连接.节点有这些设置:
NIC 1 => Heartbeat
NIC 2 => LAN
NIC_3 => iSCSI

节点上的主板没有任何额外的PCI插槽用于额外的NIC.我们希望增加这个SAN系统的带宽.具有更多(4个或更多)pci插槽的主板昂贵且难以找到.我意识到节点上的nics有VLAN选项.我认为我们可以使用VLAN NLB(或LAGG)进行LAN连接,使用VLAN MPIO进行iSCSI连接.我们还可以为VLAN心跳连接提供备用VLAN.因为心跳连接不会占用太多带宽,所以我们可以稍微增加带宽.当然,如果我们可以吗?我想问这是可能的.如果有可能,你建议吗?如果有可能我想设置这样的VLAN:

NIC 1 => VLAN_1_NLB(Heartbeat),VLAN_2_NLB(LAN)
NIC 2 => VLAN_2_NLB(LAN),VLAN_3_MPIO(iSCSI)
NIC_3 => VLAN_3_MPIO(iSCSI)

或者可能:

NIC 1 => VLAN_1_NLB(Heartbeat),VLAN_2_NLB(LAN),VLAN_3_MPIO(iSCSI)
NIC 2 => VLAN_2_NLB(LAN),VLAN_3_MPIO(iSCSI)
NIC_3 => VLAN_2_NLB(LAN),VLAN_3_MPIO(iSCSI)

这是可能的还是你能提出什么建议?我不确定VLAN配置.

nics具有802.1Q,网络中的交换机是管理型交换机.

您没有指定系统是否内置了3个内置主板,或者它们是否是耗尽所有可用插槽的附加卡.如果是后一种情况,我强烈建议您使用多个端口获取替换的NIC卡,而不是使用此vlan hackery.英特尔可以随时提供2端口和4端口服务器NIC卡,而且2端口千兆网卡不太昂贵.

尽管VLAN选项可行,但保持心跳分离非常重要.虽然它是低带宽连接,但它对延迟敏感.将心跳和iSCSI组合在同一物理介质上将是一个特别糟糕的主意,因为iSCSI往往具有突发流量,可以在短时间内使链路饱和. iSCSI流量也对延迟敏感.但是,如果延迟增加,您将只会降低I / O性能,而不是可能出现不必要的和意外的群集故障转移事件.

如果你打算沿着vlan路径走,也看看你的nics是否支持QOS.通过这种方式,您可以为不同的vlan上的流量分配优先级队列.有了QOS,我能想到的3个最佳场景是:

> NIC1 – > LAN(VLAN1 – 低优先级QOS),Hearbeat(VLAN2 – 高优先级QOS)
> NIC2 – > iSCSI的
> NIC3 – > iSCSI的

通过这种方式,您可以将SAN带宽加倍,并确保不会出现任何集中行为.如果你不能使用QOS,我会选择这种方法:

> NIC1 – > Hearbeat
> NIC2 – > LAN(VLAN1),iSCSI(VLAN2)
> NIC3 – > iSCSI的(VLAN2)

在这里你可能会看到性能异常,但它应该是一个稳定的配置.我不确定您是从独立服务器,Hyper-V还是VMWare ESX访问SAN.我们发现ESXi 5不会正确地对iSCSI进行负载均衡,除非2个连接位于不同的vlan中,因此在上面的后一种情况下你可能会有NIC3 – > iSCSI的(VLAN3)

在任何情况下,如果可以的话,真的要研究获得多端口的局域网卡,因为使用vlan,尤其是qos功能,你在网卡驱动程序和IP软件堆栈中的复杂性要大得多.可能有bug …

Windows 2008故障转移群集中的VLAN连接的更多相关文章

  1. 在Swift中应用Grand Central Dispatch(上

    在这两篇教程中,你会学到GCD的来龙去脉。起步libdispatch是Apple所提供的在IOS和OSX上进行并发编程的库,而GCD正是它市场化的名字。Swift中的闭包和OC中的块类似甚至于他们几乎就是可交换使用的。但OC中的块可以安全的替换成Swift中的闭包。再一次,这完全取决于GCD。QoS等级表示了提交任务的意图,使得GCD可以决定如何制定优先级。QOS_CLASS_USER_INteraCTIVE:userinteractive等级表示任务需要被立即执行以提供好的用户体验。

  2. 转 Grand Central Dispatch 基础教程:Part 1/2 -swift

    第一节将解释什么是GCD并了解几个GCD的基础函数。GettingStartedGCD是libdispatch的代名词,libdispatch代表着运行iOS与OSX的多核设备上执行并行代码的官方代码库。再有一点要记住的就是在任何GCD文档中涉及到Objective-C的块代码都是可以用Swift的闭包来替换的。举个具有线性安全性的代码示例leta=["thread-safe"]。因为,这一切都是由GCD控制的。任务的开始执行的时间完全由GCD决定。它也是唯一一个用作向UIView对象发送信息或推送监听。

  3. Swift3 concurrency

    转自我的github:https://github.com/uniquejava/iOSConcurrencyDemoswift3concurrencyThisrepoisthestepsbreakingdownfromthisexcellenttutorialandanupdateforswift3+xcode8.Iseperatedeachstepintoitsowncommit,youcan

  4. Swift3使用GCD和DispatchQueues

    在iOS中,苹果提供了两种方法来进行多任务处理:`GrandCentraldispatch`和`NSOperationQueue`框架。但在`Swift3`之前它都跟天书一样,与`swift`格格不入的古董C语言风格,晦涩难记的方法名都让你望而却步,码农们宁愿用`NSOperaionQueue`都不用`GCD`,稍微的搜索了解下你就会明白有多糟糕。正式进入话题:dispatchQueues入门在Swift3中,创建`dispatchqueue`方式如下:1letqueue=dispatchQueue只需给

  5. 如何PXE引导到安装到iSCSI Lun的CentOS 7实例?

    我已成功将CentOS7安装到iSCSILUN.如何配置PXE服务器以引导至此新安装的iSCSILUN?

  6. CentOS iscsi启动器具有会话但没有块设备

    我在CentOS上安装了scsi-target-utils包,并用它来执行发现.这一发现确实给了我一个积极的会议.我重新启动了iscsi服务,但我没有看到任何新设备.我在/var/log/messages中看到我的连接现在正在运行.我不确定如何进一步调试.有人可以指导我解决这个问题吗?

  7. centos – 无法发现iSCSI目标

    我有三台CentOS6.4机器,我正在尝试配置使用iSCSI.基本上两个不同的启动器在单个主机服务器上与两个不同的目标通信.在一台机器上,“服务器”,我在/etc/tgt/targets.conf中定义了两个目标,每个目标指向一个不同的逻辑磁盘.配置节几乎相同,仅在名称和发起者地址字段中有所不同.这些是来自/etc/tgt/targets.conf的未注释掉的行.当我运行tgt-admin-s时,

  8. ubuntu – iSCSI和AoE的低性能

    我们做错了什么?

  9. ubuntu – 云与传统的iSCSI,xen,drbd等

    我想知道,“传统”虚拟机如何在iSCSI上设置存储,使用DRBD进行后备,使用Xen安装“正常方式”的节点,将其图像存储在iSCSI目标上等等,与云解决方案相比,如Ubuntu企业云?研究云似乎并没有给我太多具体信息.我仍然有很多不确定因素.例如,Ubuntu企业云是否集成了冗余/后备存储和故障转移VM节点?

  10. centos 7部署oracle 12c rac 上菜了

    oracle12c发布用很长一段时间了,虽然在近期部署了几套单实例oracle12c,但一直都没有机会在生产环境实施12crac,当然,既不能把现有的11grac干掉,替换成12crac,又没有新的项目找上来,但总不能等需要干活的时候再学习测试,未雨绸缪,正好从青龙那里化缘来一台配置不错的技嘉迷你pc,正好用它来做测试,安装上proxmox,虚拟出一堆系统,然后就有条件测试部署oracle12crac。部署oracle负载均衡高可用,实际上就是部署oracleRAC。

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部