Chinaunix首页 | 论坛 | 博客
  • 博客访问: 281634
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 642
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-16 15:11
文章分类

全部博文(56)

文章存档

2017年(6)

2015年(3)

2014年(41)

2013年(6)

我的朋友

分类: LINUX

2013-12-27 15:34:31

1. 构建iscsi target

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


启动tgtd
service tgtd start

定义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

 

这里:

  • node.session.* target端设置的CHAP权限验证中的用户名和密码
  • discovery.sendtargets.* is used to set a discovery session CHAP username and password for the initiator authentication by the target(s) 搜索过程中使用的CHAP权限验证用户名和密码

也可以设置其它的选项,可以参考man下面的说明。现在开始运行iSCSI服务程序:

   # service iscsi start

Step # 2:搜索targets

现在就可以通过iscsiadm命令,来搜索和登录到iSCSI的targets,同时它也可以读取和访问open-iscsi提供的数据库。如果你的存储服务器的ip地址为 192.168.1.5,输入:

# iscsiadm -m discovery -t sendtargets -p 192.168.1.5
# service iscsi start

现在,就可以看到在/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

保存后退出


阅读(2397) | 评论(5) | 转发(0) |
0

上一篇:VI 小结

下一篇:编译NBD模块

给主人留下些什么吧!~~

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-07-25 16:57:58

http://blog.csdn.net/do2jiang/article/details/5097730

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