当前位置:操作系统 > Unix/Linux >>

Linux网络环境下低成本配置iSCSI(二)

连接到储存设备的账号与密码分别为: myaccount/iscsimy1Spw

  Linux 服务器:

  系统: Red Hat 9 Linux核心 ( 2.4.20-8mp )

  IP: Red Hat 9 Linux服务器IP地址设置为 192.168.10.3

  硬件:Dell PowerEdge 16000SC(2.4G Intel 至强处理器,512MB DDR ECC内存)基础型服务器。用于邮件服务器(商业版本的sendmail:3Rsoft)。

  1.准备工作

  因为安装iSCSI驱动需要配合核心来编译,所以会使用到内核源代码,此外,也需要编译器 ( compiler ) 的帮助,因此,先确定您的 Linux 系统当中已经下列软件的存在 :kernel-source 、kernel、gcc、perl、Apache。 打开一个终端,使用命令检查:

  # rpm -qa | grep gcc;rpm -qa | grep make

  # rpm -qa | grep kernel ;rpm -qa | grep make

  iSCSI 驱动程序下载网址是:http://sourceforge.net/project/showfiles.php?group_id=26396

   这个网站根据Linux内核(2.4/2.6)提供两种驱动程序,请根据内核版本下载相应的驱动,首先使用下面的命令查询目前所使用的Linux的内核版本:

  #uname –a

  Linux cao 2.4.20-8#1Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux

  2. 得到版本信息后,到其官方网站下载系统所需的驱动。下载完成就可以使用下面的命令安装该组件然后编译内核:

  #cd cd /usr/local/src

  # wegt http://nchc.dl.sourceforge.net/sourceforge/linux-iscsi/linux-iscsi-3.4.3.2.tgz

  #tar -zxvf linux-iscsi-3.4.3.2.tgz

  # cd linux-iscsi-3.4.3.2

  #make clean

  # make

  #make install

  3. 修改配置文件开始进行修改的工作:

  # vi /etc/iscsi.conf

  Username= myaccount            #用户名#

  Password= iscsimy1Spw            #口令#

  DiscoveryAddress=192.168.11.201     #iSCSI 储存设备的 IP 地址#

  Username=myaccount

  Password=iscsimy1Spw

  4. 启动iscs

  #/etc/init.d/iscsi start

  Starting iSCSI: iscsi iscsid fsck/mount

  5. 使用iscsi-ls命令可以看到更为详细的磁盘信息::

# iscsi-ls

*****************************************************************

     SFNet iSCSI Driver Version ... 3.4.3.2 (27-Jun-2005 )

****************************************************************

TARGET NAME             : iqn.1994-12.com.promise.target.3b.31.4.55.1.0.0.20

TARGET ALIAS            : Vtrak 15200

HOST NO                 : 0

BUS NO                  : 0

TARGET ID               : 0

TARGET ADDRESS          : 192.168.11.201:3260

SESSION STATUS          : ESTABLISHED AT Thu Nov 10 20:13:43 2005

NO. OF PORTALS          : 1

PORTAL ADDRESS 1        : 192.168.11.201:3260,2

SESSION ID              : ISID 00023d000001 TSIH 04

****************************************************************

  iSCSI节点名称有两种格式,即 iqn-type 格式和 eui-type 格式。

  Linux常用的是iqn-type的格式为:

 6.使用fdisk命令进行磁盘分区

  fdisk命令格式

  fdisk [-l] [-b SSZ] [-u] device

  主要选项:

  -l:  察看指定的设备的分区表状况。

  -b SSZ:将指定的分区大小输出到标准输出上,单位为区块。

  -u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。

  device:要这些操作的设备名称。

  fdisk是各种Linux发行版本中最常用的分区工具,是被定义为Expert级别的分区工具。我们可以通过fdisk来分区使用iscsi设备。它还包括一个二级选单,首先输入命令,然后出现问答式界面,用户通过在这个界面中输入命令参数来操作fdisk。见图3。

Linux网络环境下低成本配置iSCSI(二)

图3  fdisk分区工具

  选项介绍:

  a:设定硬盘启动区。              

  b:编辑一个BSD类型分区。

  c:编辑一个DOS兼容分区。

  d: 删除一个分区。

  l: 察看指定的设备的分区表状况。

  m:显示Fdisk命令各个参数的说明。

  o:创建一个DOS分区。

  n:设定新的硬盘分区。

  p:打印分区信息。

  s:创建一个空Sun分区表。

  t:改变硬盘分区类型。

  q: 结束分区,不保存操作内容。

  v:校验硬盘分区表。

  w:结束分区,保存操作内容。

  x:进入高级操作模式。

  # fdisk /dev/hdd

  运行后出现fdiak的命令提示符:

  Command (m for help):

  使用n命令创建一个分区,会出现选择主分区(p primary partition)还是扩展分区(l logical)的提示,通常选用主分区。然后按照提示输入分区号(Partion number(1-4):)、新分区起始的磁盘块数(First Cylinder)和分区的大小,可以是以MB为单位的数字(Last cylindet or +siza or +sizeM or +sizeK:)。例如:

fdisk /dev/sda

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-189971, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-189971, default 189971):

Using default value 1899719

Command (m for help): w

7.格式化分区:

#mke2fs -t ext3 -c /dev/sda1

  8.设定加载点:

#mkdir /cluster/raid

# mount -t ext3 /dev/sda1 /cluster/raid

  经过以上的操作,我的 Linux服务器已经连接到 iSCSI 储存设备, 并且如同Linux 本机上面的一个 SCSI 硬盘一样。 使用的方式几乎一模一样。

  9. 自动挂载一个iSCSI卷

  可以通过向/etc/fstab.iscsi (filesystem table)中添加指令行来告诉Linux如何自动挂载卷了。使用vi编辑器修改/etc/fstab,依次使用shift+G命令(将光标定位到最后一行)然后使用o命令(插入新行并且进入编辑状态),输入以下内容:

/dev/sda1   /cluster/raid   ext3    defaults     0   0

  存盘后从新启动计算机Linux即可自动挂载iSCSI卷。

  五、保护iSCSI安全

  光纤通道环境给人感觉具有比较高的安全性,原因在于它们是受控的专有网络。iSCSI 给人感觉安全性较低,原因在于它是基于以太网的网络。不过从本质上来说,光纤通道是没有安全功能的,而iSCSI提供了非常丰富的安全功能。iSCSI 规范提供了initiator与目标端两方面的身份验证(使用 CHAP、SRP、Kerberos 和 SPKM),能够阻止未经授权的访问,只允许那些可信赖的节点进行访问。另外,IPsec Digests(IPsec 摘要)和 Anti-Reply(防回复)功能阻止了插入、修改和删除操作,而 IPsec Encryption(IPsec 加密)功能防止被偷听,确保了私密性。

  最简单的iSCSI实现方式,就是没有任何加密和认证机制的连接。这种方式仅提供“SCSI指令在TCP/IP协议上传输”这样一个最基本的功能,连接到网络上的任何一台主机都可以毫无阻碍地连接到iSCSI存储设备上。这种方式显然对任何危险都没有防范能力。但是,这种方式也有一个明显的优势,那就是性能。没有了认证和加密,自然也就省去了很多额外的开销。如果您非常需要您的iSCSI磁盘阵列全速工作,这种方式无疑是最好的选择。 当然,选择这种方式的时候,用来连接iSCSI磁盘阵列的网络交换机最好是与外界隔离的。

  妥善选择口令

  口令应避免与个人资料有关系,不要选用诸如身份证号码、出生日期、电话号码等作为密码。建议选用字母、数字混合的方式,以提高密码破解难度。尽量避免在不同的操作系统使用同一密码,否则密码一旦遗失,后果将不堪设想。黑客们经常用一些常用字来破解密码。曾经有一位美国黑客表示,只要用“password”这个字,就可以打开全美多数的计算机。其它常用的单词还有:account、ald、alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、love、no、ok、superuser、system、test、work、yes等。另外相信设置空白口令这件事就会让很多网络管理员头疼。很多用户嫌口令难记,干脆留空,或者随手设成111111之类。这种口令实在令人着急,稍微耐心一点儿的黑客,手工都可以试出来,更何况眼下各种字典攻击程序满天飞。对iSCSI磁盘阵列来说,情况也是一样。如果仅靠用户认证不能解决问题,就需要借鉴传统IP网络的办法,在内网和外网之间架设防火墙,阻击外面那些有充分精力和耐心的“尝试者”。 如果iSCSI磁盘阵列(Target)和主机(Initiator)需要跨广域网连接,最好使两者以VPN互连。总之就是一个目的,不让iSCSI磁盘阵列使用公网的IP地址。

  总结:至此这里 给予Linux网络下中小企业一个低成本的iSCSI的解决方案。

  iSCSI小贴士:

  1.应该使用硬件 initiator 还是软件 initiator?

  iSCSI initiator 是使用硬件还是软件要取决于多种因素,包括预算、性能要求以及服务器工作负荷。软件 iSCSI initiator 能够实现成本最低的 iSCSI 解决方案。纯软件 iSCSI initiator 使用标准以太网卡,并依靠主机 CPU 来处理 iSCSI 命令和 TCP/IP 栈。对于具有 2G CPU 的最新一代服务器来说,大部分客户工作负荷在 iSCSI 协议处理方面不会引发明显的性能开销。如果您的服务器拥有千兆以太网卡则对软件 initiator 的评测过程几乎不会有任何问题,原因是在绝大多数流行的操作系统中,initiator 都是免费提供的。如果 CPU 较陈旧,服务器的负荷较重,则可能更适合采用硬件 iSCSI initiator。硬件 iSCSI initiator 会将 iSCSI 和 TCP/IP 处理工作转移到 iSCSI HBA 中。其结果就是能够大幅度降低 CPU 的性能开销,这点堪与光纤通道 HBA 相比。硬件 initiator 还能提供软件解决方案所不具备的功能,例如支持高可用性环境的硬件多通道功能,支持密集服务器环境中的远程引导功能。

  2.硬件和软件 initiator 如何影响应用程序的性能?

  如果应用程序位于负担较轻的服务器上,在大多数情况下,采用软件 initiator 的 iSCSI 的性能开销也不会明显影响应用程序的性能。如果服务器的负荷较重,则必须采用硬件 iSCSI initiator。不过,在大多数环境中,传输带宽以及主机 CPU 的性能开销完全不是问题 — 应用程序性能问题在很大程度上要归因于存储的轴数有限(承担工作负荷的磁盘太少)。这不是协议或传输问题。这是直连式存储系统的一个普遍问题,但是采用基于 iSCSI 的 SAN 解决方案可以非常方便地解决这一问题。

  3.Linux下哪些服务器适合使用iSCSI构架?

  目前Linux的擅长应用领域是:单一应用的基础服务器应用,譬如DNS和DHCP服务器、Web服务器、目录服务器、防火墙、文件服务器、打印服务器、互联网连接代理服务器、数据库。其中,数据库服务器及邮件服务器最适合采用iSCSI构架,另外NetApp表示由于ERP数据库系统采用块协议,所以非常适合建置在iSCSI构架 上。

  参考文件:

Linux iSCSI project:http://linux-iscsi.sourceforge.net/

A Quick Guide to iSCSI on Linux:http://www.cuddletech.com/articles/iscsi/index.html

http://www.sanrad.com/objects/support/Solaris_Cisco-APP-CHN-004-01.pdf


学习电脑编程语言,请点 www.zzzyk.com《电脑教程》栏目

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,