六笨哥
分类: LINUX
2011-11-20 16:06:35
Linux下iSCSI安装配置
最近公司新买一台NAS,左右捣腾了几天。看了很多别人写的帖子,也尝试了好多次,终于把它以iSCSI的方式挂载到Linux系统上了。期间也遇到一些问题和麻烦,但总归是成功了
一.概述:
在测试硬件NAS之前,我自己先用Linux架一台做测试
环境:
安装环境:Redhat Enterprise Linux 4(AS4.8)
内核版本:Linux 2.6.9-89.ELsmp
准备:
需要的软件包有:Iscsi-target启动器(也就是NAS服务器端)和目标器(也就是NAS客户端)
1. iscsi-initiator-utils的rpm包在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)
4.iscsi-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. # 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
最后,看到一位前辈的提示,我居然也把type的T打成了小写字母,汗颜!所以,命令行的大小写还是很重要的,要养成良好的习惯才不会犯这样的低级错误
完成主要配置文件后,检查配置(也可以不要,主要是确定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#target的IP地址#(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)
特别说明: 感谢各位前辈的经验 以上仅为个人学习的笔记,由于个人知识有限,不尽完善。如有借鉴者请自信斟酌