微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 用开源软件建立一个经济型SAN

用开源软件建立一个经济型SAN

时间:07-04 来源:51CTO 点击:
Simon Brock和Ian Wrigley使用现成的开源软件建立了一个使用iSCSI设备的SAN。

近年来,存储区域网络或SAN受到许多人关注,但只有极少数人知道它究竟是什么,为什么想要建立一个SAN,一个最主要的原因是当你坐下来仔细看一看它的造价时,事情就明白了,本文会一一为你解答什么是SAN,你为什么想要建立一个,以及如何使用开源软件建立一个经济型的SAN。

根据你的IT背景不同,你可能会认为SAN是一个伟大的重新也可能会认为是一个很老的想法,但我们跳过历史因素认为SAN是一个新的创意,在普通PC中,任何东西都是安装在一个盒子(机箱)中的:如CPU,内存,硬盘。当你向其中添加硬盘时,可能会很困难,因此有人想出了在盒子(机箱)外面再放一个盒子来安放新添加的设备,硬盘盒子可能有它自身的一些功能,如通过某种类型的RAID控制器基于条带,镜像(或二者同时)实现弹性存储,如何将这个硬盘盒子附加到包括处理器的盒子就显得非常重要了。

SCSI就是一种可以实现这个任务的技术,它在短距离环境下工作得很好,但在长距离(长线缆)环境下就不行了,就是在这种情况下,光纤通道出现了,正好弥补SCSI技术的不足,说简单点就是:光纤通道使用的是光纤维发送SCSI命令而不是传统的电信号电缆,光纤通道也实现了类似以太网交换的交换技术,它允许多台PC同时与同一个硬盘盒子进行会话,或一台PC同时与多个硬盘盒子会话,此外,这些机器有多种途径从硬盘盒子获取数据(访问路径冗余),这就是SAN最基本的功能,SAN是通过光纤网络连接到硬盘盒子的机器集合,它的速度非常快,最初的第一代光纤通道就达到了1Gb/sec,目前已经出现了10Gb/sec的光纤通道产品。

乍一看,SAN并不是如传说中那么优秀,如果你的数据非常多,并且需要从多个不同的地方访问(实现冗余),搭建一个SAN拓扑是解决你的需求的一种办法,你必须要为此进行存储投资预算,而不是简单地分布式部署多台机器。

最近,部分厂家指出1Gb/sec产品会大幅降价,不过这种产品不是采用的的光纤通道技术,而是利用了1000Base T以太网技术,使用传统的铜缆作为传输介质,但为了让SCSI命令能在以太网上传输,需要寻找一种新的方法,以便SAN能在1000Base T上正常运转,于是iSCSI诞生了,它将所有SCSI命令都封装在ip包中进行传输,也就是说,如果你手上有一台机器并有一个支持iSCSI的硬盘盒子,那你现在就可以利用现有的以太网获得一个SAN,它允许你利用以太网和ip提供的所有特性对路线进行排序,并输出可选的路径,不用考虑光纤通道是如何完成转换的,这样iSCSI SAN就诞生了,目前大量厂家都开始支持iSCSI SAN,本文剩下的部分,我将向你介绍如何使用开源软件(大部分开源)搭建一个可靠的,有弹性的iSCSI SAN。

Initiator和target

在继续之前,我们先了解几个iSCSI术语,在iSCSI下,分两部分:initiator(需要数据的机器)和target(提供数据的机器),在基于光纤通道的SAN下,initiator是一台计算机,target是一个RAID阵列,但在我们的例子中,我们将要建立一个由两台PC组成的主--被动服务器对的iSCSI target,其中一台机器担任target处理来自initiator的iSCSI请求,然后将其磁盘镜像到另一台作为后备主机的机器是,如果活动主机失效,后备主机将接管并提供iSCSI服务,当主服务器修好后,重新同步后备机器的磁盘,并重新取回iSCSI服务权,这个任务非常艰巨,写本文时我都没有信心它是否能正常工作,可能会正常运转,我们试目以待吧!

为了实现这个计划,我们将使用两台一样的Dell 1U机架式服务器,用两个千兆以太网端口交叉连接,在这两台服务器上我们将安装一组开源软件,首先,我们需要安装一个操作系统,我们选择使用Linux,千万不要觉得惊奇,在各种发行版中我们选择了CentOS 4,它是基于Red Hat Enterprise Linux(RHEL)的社区企业级Linux发行版,如果你不想支付Red Hat的年度升级服务费用,但又想使用优秀的RHEL,那么CentOS就是你的首选,CentOS只是获取RHEL的源码,重新编译,重新进行打包并发布,因此你可以免费获取来自RHEL的优秀软件包,即使你不能获取Red Hat的升级服务,你也能进行升级。

最近,CentOS已经开始吸收额外的软件进入它自己的发行版,我们将使用到其中的两个,第一个是Heartbeat,它来自Linux高可用项目(http://www.linux-ha.org/),使用它我们可以实现主--被动服务器故障转移,正如它的名字暗示的那样,Heartbeat允许一组PC相互监视对方的活动(通过心跳信号),检测到‘死亡’信号就接管该节点的服务,第二个软件包是DRBD,它允许在两台机器之间共享一个块设备(通常是一个磁盘分区),使用该设备的机器就是主服务器,它对设备产生的任何更新都会传输给后备服务器,如果主服务器失效,后备服务器就成为主服务器,当失效的服务器修好后,重新同步当前的主服务器,然后接管资源提供服务,后备服务器重新成为后备。

在CentOS上安装这两个软件非常简单,输入命令‘yum groupinstall drbd-heartbeat’,然后将drbd安装为内核模块,用‘uname -r’获取操作系统的版本,在我们的系统上输出内容是‘2.6.9-22.0.1.ELsmp’,因此要将drbd安装为内核模块,只需要输入‘yum install kernel-module-drbd-2.6.9-22.0.1.ELsmp’。

剩下的就是安装iSCSI target软件本身了,在互联网上一搜会搜到一大把,但很多都是不能用的,我们选择了最近才创建的项目,叫做iSCSI Enterprise Target(http://iscsitarget.sourceforge.net/),但从其网站上的消息指出它不能在我们的CentOS 4上运行,因为至少需要2.6.13或更高的内核支持(我们的内核是2.6.9),然而,这是由Red Hat提供的内核,多少都经过特殊修改,Red Hat所有的软件包都倾向于从基层开始(这里是2.6.9),然后不停地打补丁,因此在2.6.9和以后的内核之间有差别,但已经被集成到Red Hat的内核中去了,在基于Wiki的文档上已经有如何在Red Hat上安装的记录了,按照这些命令在这两台机器上安装好target软件。



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top