ISCSI initiator (简体中文)

From ArchWiki
Jump to: navigation, search
翻译状态: 本文是英文页面 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

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

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.