实验环境:CentOS 6.3
软件版本:iscsitarget-1.4.20.2.tar.gz
安装软件:
服务器端:
yum install likernel-headers kernel-devel make gcc gcc-c++ flex patch
[root@localhost ~]# tar zxvf iscsitarget-1.4.20.2.tar.gz
[root@localhost ~]# cd iscsitarget-1.4.20.2
[root@localhost iscsitarget-1.4.20.2]# make
[root@localhost iscsitarget-1.4.20.2]# make install
安装完成,开始配置
Iscsitarget安装完毕后,会创建/etc/iet/目录,此目录下有Iscsitarget的相关配置文件
[root@localhost iscsitarget-1.4.20.2]# cd /etc/iet/
[root@localhost iet]# vi ietd.conf
打开ietd.conf文件,首先找到类似如下行:
#Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
此选项表示该iSCSI Target的命名,先将前面的“#”号去掉, Target的命名在同一子网内应该是唯一的,标准命名方式为:
iqn.yyyy-mm.[:identifier]
其中:
iqn:表示“iSCSI Qualified Name”,简称iqn。
yyyy-mm:表示年份-月份。这里是2001-04。
reversed domain name:表示倒过来的域名,这里是com.example。
identifier:表示识别代码,这里是storage.disk2.sys1.xyz。
接下来,就是要设定 LUN(Logical Unit Number),找到类似如下行:
#Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz
将前面的“#”号去掉,“Lun 0 Path=/dev/sdb”表示块设备号为0,映射的磁盘为/dev/sdb,
“Type”值fileio是默认的,表示设置设备IO传输类型,有fileio、blockio、nullio。逻辑卷推荐用fileio,分区推荐用blockio。
主要用来对一个磁盘进行存储共享。读者可以根据自己情况将Path改为需要共享的存储分区的设备标识。
这里我们新建一个分区来作为iscsitarget存储的分区
[root@localhost iet]# fdisk /dev/sda
新分区一个分区叫/dev/sda4 大小为512M。
格式化分区
[root@localhost ~]# mkfs.ext4 /dev/sda4
在这里我们的ietd.conf的配置文件为:
Target iqn.2012-07.com.example:yan
Lun 0 Path=/dev/sda4,Type=blockio,ScsiId=xyz,ScsiSN=xyz
接下来就可以启动服务了
[root@localhost ~]# service iscsi-target start
[root@localhost ~]# /etc/init.d/iscsi-target start
Starting iSCSI Target: FATAL: Error inserting crc32c_intel (/lib/modules/2.6.32-279.2.1.el6.x86_64/kernel/arch/x86/crypto/crc32c-intel.ko): No such device
FATAL: Module iscsi_trgt not found.
[确定]
首先解决第二个错误
FATAL: Module iscsi_trgt not found.
解决办法:
mkdir /lib/modules/`uname -r`/kernel/iscsi
find / -name “iscsi_trgt.ko”
cp iscsi_trgt.ko /lib/modules/`uname -r`/kernel/iscsi
把iscsi_trgt.ko模块复制到正确的位置
depmod -aq
重建一下内核模块的依赖关系
这个时候再启动服务的时候
[root@localhost ~]# /etc/init.d/iscsi-target start
Starting iSCSI Target: FATAL: Error inserting crc32c_intel (/lib/modules/2.6.32-279.2.1.el6.x86_64/kernel/arch/x86/crypto/crc32c-intel.ko): No such device
还是会报一个错,但是我们查看服务的时候,发现iscsiatrget服务已经正常启动了
查看软件是否启动:
[root@localhost ~]# netstat -antup | grep 3260
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:53350 0.0.0.0:* LISTEN 1198/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1180/rpcbind
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 1738/ietd
tcp 0 0 :::22 :::* LISTEN 1407/sshd
tcp 0 0 :::3260 :::* LISTEN 1738/ietd
可以看出ietd服务已经正常启动了,但是为什么启动的时候会报
Starting iSCSI Target: FATAL: Error inserting crc32c_intel (/lib/modules/2.6.32-279.2.1.el6.x86_64/kernel/arch/x86/crypto/crc32c-intel.ko): No such device
各种google,终于找到了原因,链接地址:%3A-Error-inserting-crc32c_intel-td33228335.html
因为现在我用的是centos6.3,内核版本为2.6.32-279.2.1.el6.x86_64
推荐阅读:
CentOS6.4+Cman+RGManager+iSCSI+GFS2+cLVM 实现廉价的可扩展的集群共享存储