分类: LINUX
2013-12-27 15:34:31
iSCSI Target可以用来:
a]用来安装stateless server/client (用于无盘安装)
b]通过局域网、无线网络或者因特网共享磁盘或者磁带设备
c]安装SAN——存储阵列
d]通过Linux下的分布式文件系统实现负载均衡的web服务器集群
iSCSI target(server)
存储资源所在的iSCSI服务器被称为“target”。iSCSI target通常是一个硬盘存储设备。当前大部分的主流操作系统都提供了配合iSCSI target使用的客户端软件initiator。
iSCSI initiator(client)
initiator就是iSCSI传输的服务端。典型的initiator都有共同的目的,就是作为一个SCSI总线的适配器,代替物理上的SCSI设备(类似硬盘或者磁带)。iSCSI initiator通过IP网络传输SCSI命令。
CentOS / RHEL / fedora 安装tgt
$yum install scsi-target-utils
Debian / Ubuntu Linux 安装tgt
$ sudo apt-get install tgt
定义iSCSI target名
以下的例子中,创建了一个id为1的target,它的iqn为:iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz,并且添加了一个lun( logical unit)号为1的逻辑单元(由/dev/hdc1提供)
$ tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz
iqn号是局域网内iSCSI target的唯一标识,用来区分不同的target,所以在一个网络内,iqn号一定不能相同
要显示当前的iqn号,输入:
$ tgtadm --lld iscsi --op show --mode target
通常输出如下:
Target 1: iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB
Online: Yes
Removable media: No
Backing store type: rdwr
Backing store path: None
Account information:
ACL information:
为target增加一个lun(/dev/sdb1)
$ tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1
接受iSCSI initiator的访问:
要使target接受initiator的访问,需要输入:不过一般情况下3260端口就是监听状态,所以这一步可以省略
# tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
这样将打开了3260端口
#netstat -tulpn | grep 3260
结果如下:
t c p 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 27328/tgtd
tcp6 0 0 :::3260 :::* LISTEN 27328/tgtd
当你做完这些操作,你的系统就被设置成一个iSCSI Target了。远程的客户端计算机就可以通过网络访问这台计算机上的硬盘了。你可以使用分布式的集群文件系统来安装真正的共享存储。如果需要的话,打开防火墙上的3260端口。
如果你发现从initiator上登录不了target:
# iptables -F
# setenforce 0
2. iscsi initiator 管理iscsi卷
安装所需的包
RHEL/CentOS/Febra
iscsi-initiator-utils ——这个安装包由一个iSCSI协议的服务端程序,和管理这个服务端的工具组成。iSCSI通过网络层协议传输SCSI命令来读取分布的磁盘。安装这个包可以通过如下命令:
# yum install iscsi-initiator-utils
Debian/Ubuntu Linux
如果使用的是Debian或者Ubuntu操作系统,可以通过如下命令:
$ sudo apt-get install open-iscsi
ISCSI设置
使用iSCSI存储需要配置如下步骤:
1.通过init.d下的脚本或者手动启动iSCSI。需要修改/etc/iscsi/iscsid.conf配置文件。
2.寻找网络上的targets(存储的服务端,通常是SAN)。
3.当下次重启系统时,自动登录target。
4.获得iSCSI taget端的用户名、密码和存储服务器的IP地址或者主机名。
Step # 1:配置iSCSI
通过vi打开/etc/iscsi/iscsid.conf:
# vi /etc/iscsi/iscsid.conf
设置用户名和密码(当target端设置CHAP验证时必需,如果target端没有设置CHAP验证,可以跳过):
node.session.auth.username = My_ISCSI_USR_NAME
node.session.auth.password = MyPassword
discovery.sendtargets.auth.username = My_ISCSI_USR_NAME
discovery.sendtargets.auth.password = MyPassword
这里:
也可以设置其它的选项,可以参考man下面的说明。现在开始运行iSCSI服务程序:
# service iscsi startStep # 2:搜索targets
现在就可以通过iscsiadm命令,来搜索和登录到iSCSI的targets,同时它也可以读取和访问open-iscsi提供的数据库。如果你的存储服务器的ip地址为 192.168.1.5,输入:
# iscsiadm -m discovery -t sendtargets -p 192.168.1.5现在,就可以看到在/dev/目录下多出了一个块设备,要获得这个设备的名称,输入:
# fdisk -l
Step # 3:格式化并挂载iSCSI卷
可以使用fdisk对/dev/sdd进行分区,再用mkfs.ext3在/dev/sdd上创建文件系统,命令如下:
# fdisk /dev/sdd
......
# mke2fs -j -m 0 -O dir_index /dev/sdd1 #格式化
或者
# mkfs.ext3 /dev/sdd1 #格式化
提示:如果卷大于1TB,则可以使用nohup在后台运行mkfs.ext3:
# nohup mkfs.ext3 /dev/sdd1 &
挂载新分区:
# mkdir /mnt/iscsi
# mount /dev/sdd1 /mnt/iscsi
Step # 4:当下次启动系统时自动挂载iSCSI设备
首先,确定iscsi服务能够在系统启动时运行:
# chkconfig iscsi on
再打开/etc/fstab文件,增加如下设置:
/dev/sdd1 /mnt/iscsi ext3 _netdev 0 0
保存后退出
yangyangRH2014-11-06 11:13:30
How to setup iscsi server on RHEL7
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Storage_Administration_Guide/ch26.html#target-setup-create-block-backstore
yangyangRH2014-09-28 11:45:27
If you met the following issue, stop iptables and selinux
# service tgtd restart
Stopping SCSI target daemon: [ OK ]
Starting SCSI target daemon:  
yangyangRH2014-07-25 18:02:53
# service tgtd restart
<juzhou> Stopping SCSI target daemon: [ OK ]
<juzhou> Starting SCSI target daemon: [ OK &nbs
yangyangRH2014-04-09 15:05:55
1. Prepared two machines, one as iscsi-target, one as iscsi-initiator. There are two disks on the iscsi-target.
2. Installed package: scsi-target-utils.x86_64 on the iscsi-target machine. rhel7上还要装perl-config-General
3. On the iscsi target server:
Created the target by adding an XML entry to the configuration file:
# vi /etc/tgt/targets.conf