我有兴趣使用以下技术在Linux上手动运行SAN解决scheme:
硬件方面,我正考虑在目标和启动器上使用多个gigE网卡的2台gigE(或更好的)交换机。
人们对于如何configuration这个方面有什么build议,理想情况下是推定完全n + 1(min)冗余?
另外,在iSCSI“结构”中间是否需要一组聚合器主机? 像这样的东西:
目标(使用mdadm)<-gigE->聚合器主机(lvm)<-gigE->启动器
还是这样做更好:
目标(不镜像)<-gig->聚合器主机(mdadm)<-gigE->启动器(lvm)
有很多方法来devise这个,我会对其他人在做类似的事情上有什么经验感兴趣?
SAN将用于VMware映像和通用文件服务(如果可行的话还会加上一些数据库)。
这是一个非常主观的问题,非常依赖于你正在努力完成的事情。
另外,你还问了一些比较低级的问题,这让我相信你之前没有在这个领域工作过,没关系,我们都是从零开始,然后从那里开始。
鉴于这两个意见,我build议你从小处着手,努力工作。
首先从不同主机上的iSCSI启动器(客户端)和iSCSI目标(服务器)开始。 他们可以是直通电缆或可以通过开关,在这一点上并不重要。 有一段时间玩aorund。 添加更多的目标,在你的clinet上创build一个mdadm raid你的iSCSI目标(不要担心,如果你所有的iSCSI目标现在从一个主轴脱离)。 然后开始在客户端上使用LVM。 创build多个PV,将它们添加到VG,然后创build一个LV。 扩大你的LV。 创build你的LV的快照镜像。
真正挖掘LVM,这将是你做其他事情的关键。
接下来添加第二个iSCSI目标服务器。 我也build议在这一点上得到一个体面的交换机,支持LACP和一些pipe理。 Procurve 1800系列交换机是一个很好的底端,Cisco SG-300也是如此。 交换机pipe理和function将在以后变得更加重要,但现在投资它们是一个好主意。 在这种情况下,如果有两台iSCSI目标服务器,您需要重新启动您的服务器。 如果您真的想获得更多乐趣,请添加第二个启动器,然后安装相同的iSCSI目标。 当您尝试让两个系统写入相同的EXT3卷时会发生什么? 把你的卷转换成像GFS这样的东西(这里有更多的参与,但这是目标)。 现在当两个主机写入相同的卷时会发生什么?
现在让我们给我们所有的客户添加两个nic。 现在您需要了解networking绑定[2]。 有什么不同的模式,它们有什么不同。 获取连接两端运行的一些带宽测量工具,用各种绑定模式填充链路。 当你混合模式,以便每个端点不匹配时会发生什么? 当您使用与LACP兼容的模式并且您的交换机configuration为执行LACP [3]时会发生什么? 泡沫冲洗重复你所做的关于上面的存储。
从绑定的接口中删除您的接口。 为目标服务器上的每个接口分配一个唯一的IP。 确保您的目标服务器将通过每个接口共享它的iSCSI目标。 现在使用两个不同的IP地址安装您的iSCSI目标。 当你写每一个会发生什么? 现在configuration多path[4],并玩一段时间。 放下你的目标服务器的网卡之一(删除电缆ifdown的设备等)你在日志中看到什么? 性能如何提高/降低?
现在添加第二个networking交换机。 您可以将networking接口加倍,也可以在交换机之间进行分割。 你应该使用什么样的键合模式? 你应该有两个交换机之间的链接? 你需要启用STP吗?
现在你已经接近了学习的最后阶段,你已经接近了主要的学徒水平。 你不知道这一切,但你比大多数人有更好的理解基础。 从这里您将更好地了解如何构build存储基础架构。 如果您使用光纤通道或ATAoE,技术将会改变,但主要概念将是相同的。
有用的networking资源:
[1] http://www.cyberciti.biz/tips/rhel-centos-fedora-linux-iscsi-howto.html
[2] http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding
[3] http://en.wikipedia.org/wiki/Link_aggregation
[4] http://sources.redhat.com/lvm2/wiki/MultipathUsageGuide
我将打开这个每个人都可以编辑。