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

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

时间:07-04 来源:51CTO 点击:
配置iSCSI

让我们从一个简单的情景开始,我们在一台只有一块硬盘的机器,通过iSCSI将其发布出去,所有配置都放在一个文件中,/etc/ietd.conf,编辑这个文件,包括下面三行内容:

IncomingUser joe secretsecret

这一行设置只允许一个用户访问(我们使用了12个字母的密码secretsecret,它在Windows下也能工作),下一行是:

Target iqn.2005-11.uk.co.widearea:storage2.diskc

这一行安装常规iSCSI规范命名了一个target,它由年-月,后面跟一个反向的域名和主机标识符组成,最后一行必须缩进:

Lun 0 Path=/dev/sdb,Type=fileio

这一行指出我们将要使用SCSI磁盘/dev/sdb作为iSCSI设备,然后我们在另一台机器上做类似的事情。

现在我们需要一个initiator,为了证明能跨平台运行,我们选择了Microsoft iSCSI initiator,boxout显示了它如何与iSCSI Enterprise Target一起工作,在我们的例子中,我们从每个机器上加载了在Windows机器上的iSCSI磁盘,我们将它们设为动态磁盘并加入镜像,在格式化和同步后,这样我们就在Windows机器上具有一个弹性的镜像,它是通过在Linux盒子上建立IP SAN实现的,如果其中一台机器消失了,镜像会中断,但Windows会继续向其他机器更新,当其他机器返回时,镜像可能已经修复,Windows将会进行磁盘同步,然而,最大的问题是Microsoft还不支持使用iSCSI作为动态磁盘,因此我们必须另觅它法。

首先我们要做的是要让DRBD运行起来,如果你参阅了预安装的/etc/drbd.conf文件,这会非常简单,需要做的是从这个文件中找到第一个有两个"on"标志的资源小节,它定义了如何将磁盘块设备整合到一起,需要提供机器名,ip地址和磁盘分区,然后将这个文件拷贝到两台机器上,运行/etc/init.d/drbd start,所有都会工作起来,文件/proc/drbd显示了探测到的东西和两台机器上的辅助、辅助状态的磁盘,当它正常工作起来后,其中一台机器就成为主服务器,另一台就成为后备机器,然而,最初会显示状态不一致,不允许你将某一台机器设为主服务器,第一次设备DRBD设备时,你需要告诉哪一台是主服务器,然后你才能在其上运行‘drbdadm’命令完成主服务器的设置,然后再看/proc/drbd时就会发现正在做同步操作。

现在DRBD设备已经运行起来了,需要修改/etc/ietd.conf,要将新设备/dev/drbd0包括进来,也就是前面谈到的/dev/sdb,然后启动iSCSI target,并在另一台机器上挂载。

如果一切工作正常,开始下一步工作,下一阶段就是安装Heartbeat软件,我们需要修改三个文件,/etc/ha.d目录下的Readme文件会告诉你在哪里去找例子,首先需要安装ha.cf文件,每台机器上都应该不一样,在这个文件中,我们需要添加‘node’行指出这两个节点的名字,并且还要一行‘ucast’指出其他机器的地址,然后我们需要安装authkeys文件,在这两台机器上这个文件应该一样,最后我们需要在这两台机器上安装haresources文件,它的内容如下:

machine1 10.0.0.46 drbddisk::r0 iscsi-target

这里的machine1是在ha.cf中定义的主服务器名,ip地址是对外提供服务的地址,它与普通的ip地址有点不一样,最后两项告诉Heartbeat软件使用drbd磁盘r0,并启动iscsi-target服务。

启动好Heartbeat和iscsi-target服务后,从Windows机器挂载新的卷,并格式化,拷贝一些文件看是否能正常工作,接下来干一件龌龊的事情,拷贝一个非常大的文件,然后将主服务器上的Heartbeat关闭,这时拷贝过程肯定会暂停,但当Windows重新发现ip地址后,又会恢复继续拷贝。

然后我们干点更具破坏性的操作,拔下主服务器的电源线,看它是否还会继续工作,正如预料之中的,Heartbeat会从主服务器将资源转移到后备服务器,Windows initiator看上去好像暂停了一下,但马上接着又继续拷贝直至结束,我不太相信在这种破坏环境下它还能工作得很好,于是我用MD5校验工具校验了放在iSCSI驱动器上的文件,结果报告与源文件的校验值一致,意味着它的确工作得很好,所有的数据块都被正确地传输过去了。

最后关于iSCSI target软件要注意的是它在Linux上的可用性:它允许你导出块设备,前面我们已经看到,包括raw磁盘,磁盘上的分区,仿真块设备等。在这个例子中,我们使用DRBD仿真块设备,当我们曾经从系统中导出过软RAID设备,在写本文的时候,开源解决方案还不支持导出字符设备,意味着你还不能导出磁带驱动器,即使iSCSI协议支持,目前只有一些商业解决方案支持导出字符设备。

我们使用开源软件建立起一套经济的SAN,也只接触到最基础的知识,SAN是什么,iSCSI是什么,但这是一个伟大的开始。



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

网站地图

Top