Chinaunix首页 | 论坛 | 博客
  • 博客访问: 505598
  • 博文数量: 59
  • 博客积分: 4236
  • 博客等级: 上校
  • 技术积分: 755
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-13 13:08
个人简介

六笨哥

文章分类

全部博文(59)

文章存档

2015年(1)

2014年(2)

2013年(4)

2012年(4)

2011年(15)

2010年(5)

2009年(13)

2008年(15)

我的朋友

分类: LINUX

2011-11-20 16:06:35

LinuxiSCSI安装配置

 

最近公司新买一台NAS,左右捣腾了几天。看了很多别人写的帖子,也尝试了好多次,终于把它以iSCSI的方式挂载到Linux系统上了。期间也遇到一些问题和麻烦,但总归是成功了

 

一.概述:

 

在测试硬件NAS之前,我自己先用Linux架一台做测试
环境:
安装环境:Redhat Enterprise Linux 4AS4.8

内核版本:Linux 2.6.9-89.ELsmp

准备:
   
需要的软件包有:Iscsi-target启动器(也就是NAS服务器端)和目标器(也就是NAS客户端)

1. iscsi-initiator-utilsrpm包在redhat linux安装盘里面就有:

   ReadHat Linux光盘中搜索iscsi-initiator-utils即可找到

2.目标器的安装包网上下载:

 

 

二.安装及配置
 

1.安装系统相关套件

 

如果以下套件没有安装完全的话,iSCSI-target的安装将不能正常进行

 

 [root@localhost ~]#yum -y install ernel.x86_64 (或 kernel.i386 版本)

 [root@localhost ~]#yum -y install kernel-devel.x86_64 (版本需与kernel版本同)

 [root@localhost ~]#yum -y install openssl-devel 

 [root@localhost ~]#yum -y install gcc 

 [root@localhost ~]#yum -y install rpm-build 

 [root@localhost ~]#reboot(安装 kernel 必须重新启动)

 

2.安装 iscsitarget

 

套件。

  [root@localhost ~]#tar -xvf iscsitarget-1.4.20.2.tar.gz 

  [root@localhost ~]#cd iscsitarget-1.4.20.2 

  [root@localhost ~]#make 

[root@localhost ~]#make install

 

3.建立 iSCSI 使用硬盘空间区块

 

(若使用单独之分割区,例 /dev/md0 /dev/sdd,则此步骤略过)

 [root@localhost ~]# mkdir -p /iSCSI(可使用单一分割区或建立一目录)

 [root@localhost ~]# dd if=/dev/zero of=/iSCSI/LUN0 bs=1024 count=40000(指定iscsi磁盘装置为LUN0,大小为40M

 [root@localhost ~]# dd if=/dev/zero of=/iSCSI/LUN1 bs=1024 count=8000000指定iscsi磁盘装置为LUN1,大小为8G

 

 

4iscsi-target配置

 

编辑 IET daemon 之配置文件(相关说明在/root/iscsitarget-1.4.19/README

 

 (1)相关配置文件 : 

  /etc/iet/ietd.conf 

  /etc/iet/initiators.allow 

/etc/iet/targets.allow

 

 (2)编辑主要配置文件

  [root@localhost ~]# vi /etc/iet/ietd.conf

 

  主要修改以下几项

# iqn.yyyy-mm.[:identifier]

# iqn通常为日期及网域反置(例cn.com.test),加上storage卷标组合而成。

Target iqn.2011-11.cn.com.test:storage.iscsi.iHD01

# 设定使用空间的路径,LUN必须由编号0开始

#使用某一目录 ( /iSCSI ) 之空间时

Lun 0 Path=/iSCSI/LUN0,Type=fileio

Lun 1 Path=/iSCSI/LUN1,Type=fileio

#使用某一分割区 ( /dev/md0 /dev/sdd ) 之空间时

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

Lun 1 Path=/dev/sdd,Type=fileio

# Alias 可有可无

Alias iSCSI

MaxConnections 1

InitialR2T Yes

ImmediateData Yes

IncomingUser nssl nssl     #配置用户名密码#(可以不要)

OutgoingUser(可以不要)

 

在这个地方我也是搞了好久,看大家的文章一直配置文件都是大致相同的:

Target iqn.2011-11.cn.com.test:storage.iscsi.iHD01

Lun 0 Path=/dev/md0, type=fileio

Lun 0 Path=/dev/sdd, type=fileio
Alias Test

 

最后,看到一位前辈的提示,我居然也把typeT打成了小写字母,汗颜!所以,命令行的大小写还是很重要的,要养成良好的习惯才不会犯这样的低级错误

 

完成主要配置文件后,检查配置(也可以不要,主要是确定iscsi target 服务的状态)

#chkconfig --add iscsi-target

#chkconfig --level 2345 iscsi-target on

or #chkconfig iscsi-target on

 

开启防火墙 3260 port,重启iptables (service iptables restart),如果没有防火墙则不需要添加

5.开启target服务

# service iscsi-target start(restart,stop等等)

 

 

安装及配置

  

1.  安装iscsi-initiator

 

iscsi-initiator-utils的安装很简单,所有rpm 包的安装rpm –ivh ***.rpm 用你所需要安装的文件名代替***即可。如果已经安装的话,不需要重新安装


2.initiator的文件/etc/iscsi.conf进行修改

#DiscoveryAddress=192.168.100.6

#  or   注:这里可以指定IP地址,或者IP地址加服务端口

DiscoveryAddress=:3260#targetIP地址#(lxh:必须)

SendAsyncText=yes

Continuous=yes

OutgoingUserName=nssl  #登陆用户名#(可以不要)
 
OutgoingPassword=nssl    #登陆密码#(可以不要)
 
LoginTimeout=15    #登录时间限制#(可以不要)

 

3.开启initiator服务

# service iscsi start

 

4.检查target是否挂载

# cat /proc/scsi/scsi

显示结果如下:

Attached devices:

Host: scsi0 Channel: 00 Id: 00 Lun: 00

  Vendor: TEAC     Model: DV-28S-W         Rev: C.2C

  Type:   CD-ROM                           ANSI SCSI revision: 05

Host: scsi2 Channel: 00 Id: 00 Lun: 01

  Vendor: IET      Model: VIRTUAL-DISK     Rev: 0  

  Type:   Direct-Access                    ANSI SCSI revision: 04

 

5.# iscsi-ls

显示结果如下
******************************************************************************

SFNet iSCSI Driver Version ...4:0.1.11-7(14-Apr-2008)

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

TARGET NAME             : iqn.2011-11.nas.iscsi:ERPbak

TARGET ALIAS            :

HOST ID                 : 2

BUS ID                  : 0

TARGET ID               : 0

TARGET ADDRESS          : 192.168.100.6:3260,1

SESSION STATUS          : ESTABLISHED AT Sun Nov 20 07:42:55 BDT 2011

SESSION ID              : ISID 00023d000001 TSIH 400

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

如果在ReaHat Linux 通过iscsi-ls命令已经看到上面相同的信息,则表示iscis已经链接到Linux客户端伺服器

 

在上面这一步之后,我一直纠结于使用iscisadm 这条命令去管理NAS iscsi

iscsiadm --mode discovery --type sendtargets

可能看过相关帖子的都会用这条命令,其实在RedHat Linux中,只要启动了iscsi 服务,就已经链接到服务器端,而不用再做其他的动作。通过iscsi-ls即可验证是否挂载。

 

6.查看disk

   [root@localhost ~]# fdisk -l

Disk /dev/sda: 536.8 GB, 536870912000 bytes

255 heads, 63 sectors/track, 65270 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

7.新增/Mount disk

[root@localhost ~]# fdisk /dev/sda

[root@localhost ~]# mkfs.ext3 /dev/sda

[root@localhost ~]# mkdir /iscsi
[root@localhost ~]#
 mount /dev/sda  /iscsi
[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/cciss/c0d0p1      49G  6.1G   40G  14% /

none                  3.0G     0  3.0G   0% /dev/shm

/dev/cciss/c0d0p3      29G  4.6G   23G  17% /oracle

/dev/cciss/c0d0p2     289G   29G  246G  11% /u1

/dev/cciss/c0d0p6     300G   89G  197G  31% /u2

/dev/sda              493G  102M  468G   1% /iscsi

 

注意:用df –h 查看到的最后一项即为挂载到的iscsi硬盘,这个是我实体NAS上的iscsi,大小为500GB

/dev/sda              493G  102M  468G   1% /iscsi

 

 

备注

 

1.设置iscsi自动启动

 

如果希望系统启动时,就能启动iSCSI,并将对应的分区挂载上来,这个时候,需要编辑 /etc/fstab.iscsi。打开该文件,添加你需要挂载的分区,格式和/etc/fstab的格式一样,比如你可以增加下面的一行来自动将 /dev/sda挂载到/iscsi(之前已建立/iscsi)下面

/dev/sda /iscsi ext3 defaults 0 0

 

2.关机报错

如果系统挂载过个ISCSI存储的话,把下面的脚本加入到/etc/rc.local 文件中,否则系统关机报错。

如下:

   md:stopping all md devices
synchronizing scsi cache for disk sdj:
iscsi:can not broadcast skb (-3)
connection 0:0:iscsi:detected connerror (1011)


特别说明:

 

   感谢各位前辈的经验

   以上仅为个人学习的笔记,由于个人知识有限,不尽完善。如有借鉴者请自信斟酌


阅读(3078) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~