就是将存储设备搭建在PC服务器上,通俗的说就是选择一个性能良好、可支持多块硬盘的PC服务器,然后选择一款成熟的存储管理软件()。最后通过PC服务器额以太网卡对外提供ISCSI数据传输服务。
cd iscsitarget/
make
make install
starting
/etc/init.d/iscsi-target start
stopping
/etc/init.d/iscsi-target stop
配置
vi /etc/iet/ietd.conf
找到下面开头的行:
iqn #Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
LUN #Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz
当需要添加第二块硬盘的时候,上边两行需要成对出现。
[root@hhh iscsitarget-1.4.20.2]# netstat -nltp
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:44206 0.0.0.0:* LISTEN 2277/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2155/rpcbind
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 2601/perl
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2520/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2340/cupsd
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 3639/ietd
tcp 0 0 :::55178 :::* LISTEN 2277/rpc.statd
tcp 0 0 :::111 :::* LISTEN 2155/rpcbind
tcp 0 0 :::22 :::* LISTEN 2520/sshd
tcp 0 0 ::1:631 :::* LISTEN 2340/cupsd
tcp 0 0 :::3260 :::* LISTEN 3639/ietd
windows版
windows官网下载iscsi init
linux版
rpm -ivh iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.rpm
yum -y install iscsi-initiator-utils
可以使用如下指令向iSCSI Target主机查询划分了哪些lun:
iscsiadm -m discovery --type sendtargets --portal IP
iscsiadm -m discovery -t sendtargets -p IP
说明,当成功执行一次Target发现后,iSCSI Initiator 就会将查询记录写到/var/lib/iscsi/send_targets对应目录下。
fdisk -l
就可以看到这个新的磁盘
登陆iScsi target:(执行完发现,默认已经登陆到target端)
iscsiadm -m node -T <iqn.2013-12.net.example....> -p 192.168.0.200 -l
iscsiadm -m node -T <iqn.2013-12.net.example....>:port -p 192.168.0.200 --login
端口号默认不用加,如果改变过端口就必须要加。
断开与target主机的连接
iscsiadm -m node -T <iqn.2013-12.net.example....> -p 192.168.0.200 -u
查看信息
iscsiadm -m session -i
iscsiadm -m session -R
查看不同的服务端的信息
iscsiadm -m node
查看target配置信息
iscsiadm -m note -T <target名称> -p IP地址
iscsiadm -m discovery -p IP地址
管理共享磁盘
fdisk -l
fdisk /dev/sdc
mkfs.ext3 /dev/sdc5
partprobe
去掉自动检查的属性
tune2fs -c -l -i 0 /dev/sdc5
最大检查次数-1,检查时间0秒
编辑/etc/fstab文件,设置自动挂载
UUID=b5c94f7f-295f-2032-b258-2433ddc7e088 /data ext3 _netdev 0 0
tune2fs -l /dev/sdc5
可以在initiators.allow的行里,添加多个IP地址,用逗号分隔。
注释掉IP认证的行;不共存;添加
ALL ALL
修改主配置文件
就是在原有配置文件的基础上,添加一行,表示 标志头:用户名:密码。
windows
linux
1.windows
可用于windows2000、windowsXP、windows2003的较新版本iscsi-initiator程序是Initiator-2.04-build3273
安装成功后产生程序组Microsoft iSCSI Initiator, 桌面也有相应图标。基本操作如下:
点击 Microsoft iSCSI Initiator―>Discovery―>Add―>输入target的IP地址和端口号
点击 Microsoft iSCSI Initiator―>Targets―>Refresh, 发现当前可用的Target
点击 Microsoft iSCSI Initiator―>Targets―>选中target―>Logon―>OK, 建立连接
点击 控制面板―>管理工具―>计算机管理―>磁盘管理,可以看见映射到本机的逻辑磁盘。然后可以与本地磁盘一样进行分区格式化操作。
点击 Microsoft iSCSI Initiator―>Targets―>选中已经连接的target―>Details―>勾选相应的任务项目―>Logoff, 断开连接。
2.RedHat Enterpris Linux 5
下载initiator软件包Open-iscsi-2.0.865.tar.gz到/root目录
使用方法:解压缩软件
[root@RedHat5 ~]# tar xvzf Open-iscsi-2.0.865.tar.gz
在/root下生成目录Open-iscsi-2.0.86,进入该目录进行编译和安装
[root@RedHat5 ~]# cd Open-iscsi-2.0.86
[root@RedHat5 Open-iscsi-2.0.86]# make
[root@RedHat5 Open-iscsi-2.0.86]# make install
[root@RedHat5 Open-iscsi-2.0.86]# cd ~
编译安装完成后生成必要的驱动程序模块、守护进程和管理程序iscsiadm
用法
启动Open-iscsi
[root@RedHat5 ~]# service open-iscsi start
如果希望在启动机器时自动加载,执行下面命令
[root@RedHat5 ~]# chkconfig --level 3 open-iscsi on
这里的参数3是运行级别,如果是图形界面要改为5。
发现target,询问target名称
[root@RedHat5 ~]# iscsiadm -m discovery -t sendtargets -p targetIP地址:端口号
该命令将报告出target名称
建立连接
得到了target名称后,使用下面命令建立连接
[root@RedHat5 ~]# iscsiadm -m node -T target名称 -p targetIP地址:端口号 --login
这时应该看到映射到的逻辑磁盘名号,使用fdisk -l 可以看到有关逻辑磁盘的详细内容,可以象使用本地硬盘一样对其进行分区、创建文件系统、挂载、卸载等操作。
断开连接
如果逻辑磁盘已经挂载,断开连接前应先卸载,然后使用下面命令
[root@RedHat5 ~]# iscsiadm -m node -T target名称 -p targetIP地址:端口号 --logout
关机之前应该正确的卸载和断开逻辑磁盘,否则会在target服务器上留下僵死的进程,造成服务器资源的浪费。
3.Fedora core 6 、Fedora 7
这两个操作系统都有适用的rpm包,适用于Fedora core 6的是iscsi-initiator-utils-6.20.695-0.5.i386.rpm,适用于Fedora 7的是iscsi-initiator-utils-6.20.754-0.0.fc7.i386.rpm,下载对应的文件后用rpm命令安装。
[Federa]# rpm -ivh iscsi-initiator-utils-6.20.754-0.0.fc7.i386.rpm
用法
这两个rpm包其实就是上面说的Open-iscsi软件,其管理程序也是iscsiadm,用法与上面所说完全一样。但因安装方法不同产生的启动脚本文件有所差异。这里需要如下的方法启动:
加载内核模块
[Federa]# modprobe -q iscsi_tcp
启动守护进程
[Federa]# iscsid
而后就可以用iscsiadm程序来管理,发现的target信息会保存在数据库中,下次启动时自动加载模块和启动守护进程。如果要从数据库中***某个target的信息,使用下面命令:
查询数据库中内容
[Federa]# iscsiadm -m node
***指定的target
[Federa]# iscsiadm -m node -o delete -T target名称 -p targetIP地址:端口号
4.FreeBSD5.4、FreeBSD6.2
安装软件
以root身份登录系统,下载initiator软件iscsi-12.tar.bz2到/root。
解压缩软件
# tar xvzf iscsi-12.tar.bz
将得到两个目录sys和iscontrol
分别进入这两个目录进行编译:
# cd sys/modules/iscsi_initiator
# ln -s ../.. @
# make
编译成功后在该目录下生成内核模块文件iscsi_initiator.ko,把该文件复制到/boot/kernel目录下。
# cd iscontrol
# make
编译成功后在该目录下生成管理程序 iscontrol, 把该文件复制到/sbin目录下。
用法
首先装载内核模块
# kldload iscsi_initiator.ko
如果不想看到很多的输出信息
# sysctl debug.iscsi=0
发现target,询问target名称
# iscontrol -d targetaddress=targetIP地址
该命令将报告出target名称。
连接target
# iscontrol targetaddress=target的IP地址 TargetName=target名称
这里的target名称是发现target命令报告出的名称。
连接成功后,将报告出映射到本机的scsi设备名号,如da0或da1等。
内核模块装载命令和连接命令应该写入启动脚本文件/etc/rc.local, 这样机器启动时可自动建立连接。
应用下面命令可以看到连接到的设备
# camcontrol devlist
然后可以象使用本地硬盘一样对其进行分区、创建文件系统、挂载、卸载等操作。
如要结束连接,首先要卸载相应的设备,然后向iscontrol进程发-HUP信号,或用top找到iscontrol的进程号,直接kill掉。
该软件在target端服务中断后再恢复时(例如重新启动机器)不能自动再建立连接,必须手动重新建立连接。该软件不支持身份验证,target端不能设置密码。
5.Open Solaris
Open Solaris操作系统内置了iSCSI Initiator, 其管理程序名称也是iscsiadm, 但与Linux下的iscsiadm不是同一程序,使用语法也不相同。
用法:
以root身份登录,启动一个终端窗口,在窗口中执行命令:
发现target, 询问target名称
# iscsiadm add discovery-address targetIP地址:端口号
建立连接
# iscsiadm modify discovery -t enable
查看逻辑磁盘名号
# format
然后根据逻辑盘的名号(例如c1t0d0)进行格式化、创建文件系统、挂载。
断开连接
# iscsiadm modify discovery -t disable
***一个target
# iscsiadm remove discovery-address targetIP地址:端口号
本文出自 “小崔的实验笔记” 博客,谢绝转载!