ISCSI简介
ISCSI(Internet Small Computer System Interface,Internet 小型计算机系统接口)是一种由IBM公司研究开发的IP SAN技术,它是通过 TCP/IP 网络传输 SCSI 指令的协议,让 SCSI 命令通过网络传送到远程 SCSI 设备上,而 SCSI 协议只能访问本地的 SCSI 设备。
iSCSI 使用客户/服务器模型。客户端称为 initiator,服务器端称为 target。
iSCSI 是传输层之上的协议,使用 TCP 连接建立会话。在 initiator 端的 TCP 端口号随机选取, target 的端口号默认是 3260。
Initiator:通常指用户主机系统,用户产生 SCSI 请求,并将 SCSI 命令和数据封装到 TCP/IP 包中发送到 IP 网络中。
Target:通常存在于存储设备上,用于转换 TCP/IP 包中的 SCSI 命令和数据。
target端
'''
下载源码包
svn checkout svn://svn.code.sf.net/p/scst/svn/trunk scst-trunk
安装一些编译环境
yum install gcc perl-ExtUtils-MakeMaker perl-Data-Dumper -y
rpm -ivh kernel-devel-3.10.0-514.el7.x86_64.rpm
这里的kernel-devel的版本要与系统的kernel版本对应,uname -r
'''
设置共享磁盘
'''
mkdir /mnt/vd1
mkdir /mnt/vd2
mount /dev/sdb1 /mnt/vd1
mount /dev/sdc1 /mnt/vd2
chmod -R 777 /mnt/*
'''
安装scst
'''
cd scst-trunk
make help #根据所需的包进行编译
编译安装scst
make scst
make scst_install
编译安装iscsi
make iscsi
make iscsi_install
安装scstadm
make scstadm_install
修改配置文件
'''
cp scst-trunk/iscsi-scst/etc/scst.conf /etc/
vi /etc/scst.conf
HANDLER vdisk_fileio {
DEVICE disk01 {
filename /dev/sdb1 #磁盘1
nv_cache 1
}
DEVICE disk02 {
filename /dev/sdc1 #磁盘2
nv_cache 1
}
}
TARGET_DRIVER iscsi {
enabled 1
TARGET iqn.2006-10.net.vlnb:tgt {
LUN 0 disk01
LUN 1 disk02
enabled 1
}
}
'''
启动scst
'''
chkconfig scst on
systemctl start scst.service
'''
查看scst组件
'''
lsmod |grep scst
'''
Initiator端发起服务
安装并启动iscsi
'''
yum install -y iscsi-initiator-utils
systemctl start iscsi
chkconfig iscsi on
'''
发现target目标
'''
iscsiadm -m discovery -t sendtargets -p 192.168.75.136:3260
'''
登录发现的目标节点
'''
iscsiadm -m node -T iqn.2006-10.net.vlnb:tgt -p 192.168.26.200:3260 -l
'''