# ISCSI initiator (简体中文)

Related articles

- iSCSI Target (简体中文)
- iSCSI Boot

翻译状态： 本文是英文页面 ISCSI_Initiator 的翻译，最后翻译时间：2015-05-10，点击这里可以查看翻译后英文页面的改动。

来自 维基百科：iSCSI 可以通过基于 IP 的网络访问存储设备。

提供受访的实体是 目标(target)，发起访问的实体称为 发起者(initiator)。

本文讲述如何通过 Open-iSCSI 的 initiator 访问 iSCSI target。

## 安装

可以从 官方源 安装 软件包。

注意: 旧版的 initiator,Linux-iSCSI 已经于二零零五年四月合并进 Open-iSCSI 。 This should not be confused with linux-iscsi.org, the website for the LIO target.

## 概览

下图显示各组件是如何协同工作的。更详细的版本参见：Open-iSCSI 模块

     +-------------------------------------------------------+
     | Targets & Sessions configuration Database (DBM based) |
     +-------------------------------------------------------+

     +--------------------------+     +----------------------------------+
     | iscsiadm                 |     | iscsid: iSCSI daemon             |
     |                          |     |                                  |
     |  * Command line tool     |<--->|  * Implements Session management |
     |  * Manages database of   |     |  * Communicates with iscsiadm    |
     |    sessions and targets  |     |    and iscsi kernel modules      |
     +--------------------------+     +---------------+------------------+
                                                      |
     User space                                       |
    - - - - - - - - - - - - - - - - - - - - - - - - - | - - - - - - - - - -
     Kernel                                           v
             +-----------------------------------------------------------+
             | kernel modules: scsi_transport_iscsi, iscsi_tcp, libiscsi |
             +-----------------------------------------------------------+

来自 Open-iSCSI README:

持久化的配置通过一个 DBM 数据库实现，它包括两个表：

- 发现表（Discovery table）(/etc/iscsi/send_targets)
- 节点表（Node table）(/etc/iscsi/nodes)

## 配置

### 启动服务

`iscsid` 由一个 systemd单元 来管理。

用 systemd 启动 `open-iscsi.service` 。

This article or section is out of date.

Reason: 下列有关 /etc/conf.d/open-iscsi 的建议已过时，参阅讨论页面 (Discuss in Talk:ISCSI initiator (简体中文)#)

You only have to include the IP of the target as `SERVER` in `/etc/conf.d/open-iscsi` at the client.

### 发现目标

    # iscsiadm -m discovery -t sendtargets -p <portalip>

### 删除废旧目标

    # iscsiadm -m discovery -p <portalip> -o delete

### 登录到有效的目标

    # iscsiadm -m node -L all

或者，登录到指定目标

    # iscsiadm -m node --targetname=<targetname> --login

登出：

    # iscsiadm -m node -U all

### 信息

对于运行中的会话

    # iscsiadm -m session -P 3

上面命令输出的最后一行会显示连接到的设备名，比如

    Attached scsi disk sdd State: running

对于已知节点

    # iscsiadm -m node

### 在线修改卷大小

如果 iscsi 块设备包含一个分区表，则不能在线修改卷大小。这种情况下必须首先卸载文件系统，然后再调整相关分区的大小。

1. 重新扫描当前会话中的活动节点。

       # iscsiadm -m node -R

2. 在多路径环境中，也必须重新扫描多路径下的卷信息。

       # multipathd -k"resize map sdx"

3. 完成后再调整文件系统大小。

       # resize2fs /dev/sdx

## 提示与排错

可以用下列命令检查已连接的 iSCSI 设备在 /dev 设备树中的位置： `ls -lh /dev/disk/by-path/*` 。

在服务器端(target)的 acl 配置中应当包含客户端的 iqn（位于客户端的 `/etc/iscsi/initiatorname.iscsi`）。

`iscsiadm` 的许多操作要求 iSCSI 的守护进程 `iscsid` 处于运行状态。To verify that this is the case, check the status of the `open-iscsi.service`.

## 参阅

- iSCSI Boot Booting Arch Linux with / on an iSCSI target.

Categories:

- Storage (简体中文)
- Networking (简体中文)

Hidden category:

- Pages or sections flagged with Template:Out of date