iscsi 基础指南

layout: post

title: “iscsi-howto”

iscsi简述

iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。

iSCSI协议,即internet SCSI,是IETF制订的一项存储传输协议标准,用于将SCSI数据区块映射成以太网数据封包。iSCSI协议基本上是一种跨过IP网络来传输SCSI 数据区块的方法,发起读写请求的来源机器设备称作Initiator(发起方),被请求的目标设备则称作Target。透过这种方式可在IP网络上以区块级模式存取大量数据。

要实现iSCSI读写,除了使用特定硬设备外,也可透过软件方式,将服务器仿真为iSCSI的发起端或目标端,利用既有的处理器与普通的以太网络卡资源实现iSCSI的连接。

iscsi 服务端的基本配置

安装软件包

ubuntu-12.04系统:

apt-get install linux-headers-3.2.0-23-generic iscsitarget-dkms iscsitarget

重要组件

  • iscsi_trgt.ko 内核模块
  • /usr/sbin/ietd iscsitarget的守护进程
  • /usr/sbin/ietadm iscsitarget的用户层管理工具

创建 Target Disk

修改文件/etc/default/iscsitarget

ISCSITARGET_ENABLE=true

修改文件/etc/iet/ietd.conf

Target iqn.2013-03.world.server:target0
Lun 0 Path=/dev/sdb,Type=fileio

重新启动iscsitarget服务后,使用命令 ietadm –op show –tid=1,如果返回类似如下信息,说明服务端配置已经OK:

Wthreads=8
Type=0
QueuedCommands=32
NOPInterval=0
NOPTimeout=0

iscsi 客户端的基本配置

  • /etc/iscsi/iscsid.conf 所有刚发起的iSCSI session默认都将使用这个文件中的参数设定。

  • /etc/iscsi/initiatorname.iscsi

    InitiatorName=iqn.1993-08.org.debian:01:4283b26ce7a5

    软件iSCSI initiator的intiator名称配置文件,里面定义了InitiatorName,这是iscsi客户端和服务端认证通信时候用到的重要标识

  • /etc/iscsi/nodes 当前系统使用的节点信息表存放位置

  • /etc/iscsi/send_targets 发现的节点信息表存放位置

注意:使用rsync同步系统模板前设置 /etc/iscsi/下的文件目录只读属性,以免被覆盖或清除,导致重启后无法自动挂载存储节点

iscsiadm命令的基本使用

获取节点信息

默认情况下,iscsi发起方和目标方之间通过端口3260连接。假设已知iscsi的目标方IP是192.168.2.200

iscsiadm -m discovery -t sendtargets -p 192.168.2.200:3260

显示信息如下:

192.168.2.200:3260,0 iqn.1997-05.tw.com.proware:proips-000a8a9ff:default-target

此时发现一个目标,被发现的目标也叫做节点,iscsi发起方和目标方,建立连接后可以,可以进行登陆节点操作:

登陆节点命令示例:

iscsiadm -m node --targetname iqn.1997-05.tw.com.proware:proips-000a8a9ff:default-target --login

显示信息如下:

Logging in to [iface: default, target: iqn.1997-05.tw.com.proware:proips-000a8a9ff:default-target, portal: 192.168.2.200,3260]
Login to [iface: default, target: iqn.1997-05.tw.com.proware:proips-000a8a9ff:default-target, portal: 192.168.2.200,3260]: successful

注销节点命令示例:

iscsiadm -m node --targetname iqn.1997-05.tw.com.proware:proips-000a8a9ff:default-target --logout

显示信息如下:

Logging out of session [sid: 1, target: iqn.1997-05.tw.com.proware:proips-000a8a9ff:default-target, portal: 192.168.2.200,3260]
Logout of [sid: 1, target: iqn.1997-05.tw.com.proware:proips-000a8a9ff:default-target, portal: 192.168.2.200,3260]: successful

设置自动登入节点:

iscsiadm -m node --targetname iqn.1997-05.tw.com.proware:proips-000a8a9ff:default-target --op update -n node.startup -v automatic

设置分区自动挂载:

当前的CDN系统模板,按照安装文档所说的创建 /etc/fstab.iscsi, 或定义/etc/fstab 挂载点添加 auto,_netdev 重启均会导致/home无法挂载而不能顺利启动,当前的解决办法是:
在 /etc/rc.local 中添加

mount /dev/mapper/vg_data-lv_home /home
mount --bind /home /mnt/ubuntu/home

前面的操作都成功后,应该可以看到新的设备/dev/sdX的相关信息,剩下的就是像对待本地硬盘一样的建立分区,格式化等操作。

参考文档

  • https://help.ubuntu.com/12.04/serverguide/iscsi-initiator.html
  • http://www.open-iscsi.org/docs/README

你可能感兴趣的:(iscsi 基础指南)