searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

iSCSI架构及常用命令介绍

2023-05-18 02:42:47
60
0

1、iSCSI架构

iSCSI是Internet Small Computer System Interface的缩写,简单来说就是Internet SCSI,

是把SCSI指令通过TCP/IP协议封装起来,在以太网中传输。这样一来,iSCSI 就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。不像某些 SAN 协议,iSCSI 不需要专用的电缆,它可以在已有的IP 基础架构上运行。

       我们先了解下关于iSCSI的三个名词:iSCSI Initiator、iSCSI Target、 iSCSI LUN。

  1. iSCSI Initiator:I/O操作的启动者,连接IP网络并对iSCSI target发起请求以及接收响应。每一个iSCSI主机通过唯一的IQN来识别,类似于光纤通道的WWN。
  2. iSCSI Target:I/O操作的执行者,目的是给客户端共享存储设备。
  3. iSCSI LUN:每个在同一个target上的backing-store 称为逻辑单元号(LUN),LUN ID由iSCSI Target分配。

我们可以把Target主机看作是服务端,把Initiator主机看作是客户端,LUN 好比是个“逻辑单位磁盘”。

iSCSI 服务端和客户端的通讯就是一个在网络上封包和解包的过程,在网络的一端,数据包被封装成包括TCP/IP头、iSCSI 识别包和SCSI 数据三部分内容,传输到网络另一端时,这三部分内容分别被顺序地解开。

2、iSCSI服务端常用命令

我们需要通过命令tgtadm来创建target,同时把共享资源添加到target中,这样客户端才可以访问服务端上的存储资源。

tgtadm常用于管理三类对象:target、LUN、account

  • 模式target下的语法格式

tgtadm --lld <driver> --mode target –op {new|delete|show|update|bind|unbind} [option]

其中driver一般为iscsi

  • 模式logicalunit下的语法格式

tgtadm --lld <driver> --mode logicalunit –op {new|delete} [option]

其中driver一般为iscsi

  • 模式account下的语法格式

tgtadm --lld <driver> --mode account --op {new|delete|bind|unbind} [option]

其中driver一般为iscsi

下面列举一些常用命令:

  • 创建1个target

[root@node1 ~] tgtadm --lld iscsi --mode target --op new --tid 1 --targetname target1
[root@node1 ~]

  • 向target中添加1个LUN

[root@node1 ~] tgtadm -L iscsi -m logicalunit -o new -t 1 -l 1 --backing-store rbd/foo --bstype rbd
[root@node1 ~]

  • 查看target

tgtadm --lld iscsi -m target -o show

还可以使用tgt-admin -s查看target

  • 绑定ip地址

给target绑定一个ip,表示只有此ip可以连接target,如果不限制ip,就是ALL,还可以绑定一个ip网段。这是iSCSI的一种认证方式:IP认证,除此之外,还有基于account的CHAP认证。

tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address ALL

  • 解绑ip地址

tgtadm --lld iscsi --op unbind --mode target --tid 1 --initiator-address ALL

  • 删除一个lun

tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1

  • 删除一个target

tgtadm -L iscsi -m target -o delete -t 1

  • 新建一个用户

tgtadm --lld iscsi --op new --mode account -u user1 -p 1********

  • 查看用户列表

tgtadm --lld iscsi -m account -o show

  • 绑定一个用户

tgtadm --lld iscsi --op bind --mode account --tid 1 -u user1

  • 解绑一个用户

tgtadm --lld iscsi --op unbind --mode account --tid 1 -u user1

  • 删除一个用户

tgtadm --lld iscsi --op delete --mode account -u user1

target端使用tgtadm命令配置的结果都是工作在内核中的,重启tgt服务或重启系统时,内存中的内容都会丢失。所以要永久让配置生效需要写入到配置文件中去。target的配置文件默认是/etc/tgt/targets.conf,通过target配置文件配置,重启后依然生效。

3、iSCSI客户端常用命令

在Linux 2.6内核中提供了iscsi驱动,iSCSI 驱动(driver)使主机拥有了通过IP网络访问存储的能力,但还需要一个具体的客户端工具(Linux用户空间组件)初始化iSCSI驱动,即iscsi-initiator-utils。

  • 安装initiator程序iscsi-initiator-utils

yum install iscsi-initiator-utils

安装完成后,比较重要的配置文件有两个: 一个是/etc/iscsi/iscsid.conf,所有刚发起的iSCSI session默认都将使用这个文件中的参数设定,另一个是 /etc/iscsi/initiatorname.iscsi,iSCSI initiator的intiator名称配置文件。

  • 发现target

在ip是172.27.255.111的服务端新建两个target。

iscsiadm -m discovery -t sendtargets -p 172.27.255.111

  • 登录target

iscsiadm -m node -T target1 -p 172.27.255.111 -l

登录成功后能看到新增了一个盘/dev/sdc

  • 查看连接的会话

iscsiadm -m session,可以通过选项-P 0-3 来打印更详细的信息

Iscsiadm -m session -P 3

  • 查看node

发现的target都会保存在本地的数据库中,可以通过命令iscsiadm -m node查看。

  • 退出登录

iscsiadm -m node -T target1 -p 172.27.255.111 -u

客户端退出所有登录

iscsiadm -m node -U all

  • 删除node信息

连接死掉(断网或者target端断掉或目标器IP改变)时,可以删除老节点,然后再重新发起discovery生成新节点,使用如下指令删除

iscsiadm -m node -T target1 -p 172.27.255.111 -o delete

删除所有node信息

iscsiadm -m node -o delete

  • 扫描所有关联的target/session

有时客户端登录后,LUN的信息发生变化,客户端不能立即看到,这样就需要rescan命令。

[root@client2 ~]# iscsiadm -m node -R
Rescanning session [sid:8, target:target1, portal: 172.27.255.111,40000]

[root@client2 ~]# iscsiadm -m session -R
Rescanning session [sid:8, target:target1, portal: 172.27.255.111,40000]

 

 

0条评论
0 / 1000
杨****源
1文章数
0粉丝数
杨****源
1 文章 | 0 粉丝
杨****源
1文章数
0粉丝数
杨****源
1 文章 | 0 粉丝
原创

iSCSI架构及常用命令介绍

2023-05-18 02:42:47
60
0

1、iSCSI架构

iSCSI是Internet Small Computer System Interface的缩写,简单来说就是Internet SCSI,

是把SCSI指令通过TCP/IP协议封装起来,在以太网中传输。这样一来,iSCSI 就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。不像某些 SAN 协议,iSCSI 不需要专用的电缆,它可以在已有的IP 基础架构上运行。

       我们先了解下关于iSCSI的三个名词:iSCSI Initiator、iSCSI Target、 iSCSI LUN。

  1. iSCSI Initiator:I/O操作的启动者,连接IP网络并对iSCSI target发起请求以及接收响应。每一个iSCSI主机通过唯一的IQN来识别,类似于光纤通道的WWN。
  2. iSCSI Target:I/O操作的执行者,目的是给客户端共享存储设备。
  3. iSCSI LUN:每个在同一个target上的backing-store 称为逻辑单元号(LUN),LUN ID由iSCSI Target分配。

我们可以把Target主机看作是服务端,把Initiator主机看作是客户端,LUN 好比是个“逻辑单位磁盘”。

iSCSI 服务端和客户端的通讯就是一个在网络上封包和解包的过程,在网络的一端,数据包被封装成包括TCP/IP头、iSCSI 识别包和SCSI 数据三部分内容,传输到网络另一端时,这三部分内容分别被顺序地解开。

2、iSCSI服务端常用命令

我们需要通过命令tgtadm来创建target,同时把共享资源添加到target中,这样客户端才可以访问服务端上的存储资源。

tgtadm常用于管理三类对象:target、LUN、account

  • 模式target下的语法格式

tgtadm --lld <driver> --mode target –op {new|delete|show|update|bind|unbind} [option]

其中driver一般为iscsi

  • 模式logicalunit下的语法格式

tgtadm --lld <driver> --mode logicalunit –op {new|delete} [option]

其中driver一般为iscsi

  • 模式account下的语法格式

tgtadm --lld <driver> --mode account --op {new|delete|bind|unbind} [option]

其中driver一般为iscsi

下面列举一些常用命令:

  • 创建1个target

[root@node1 ~] tgtadm --lld iscsi --mode target --op new --tid 1 --targetname target1
[root@node1 ~]

  • 向target中添加1个LUN

[root@node1 ~] tgtadm -L iscsi -m logicalunit -o new -t 1 -l 1 --backing-store rbd/foo --bstype rbd
[root@node1 ~]

  • 查看target

tgtadm --lld iscsi -m target -o show

还可以使用tgt-admin -s查看target

  • 绑定ip地址

给target绑定一个ip,表示只有此ip可以连接target,如果不限制ip,就是ALL,还可以绑定一个ip网段。这是iSCSI的一种认证方式:IP认证,除此之外,还有基于account的CHAP认证。

tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address ALL

  • 解绑ip地址

tgtadm --lld iscsi --op unbind --mode target --tid 1 --initiator-address ALL

  • 删除一个lun

tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1

  • 删除一个target

tgtadm -L iscsi -m target -o delete -t 1

  • 新建一个用户

tgtadm --lld iscsi --op new --mode account -u user1 -p 1********

  • 查看用户列表

tgtadm --lld iscsi -m account -o show

  • 绑定一个用户

tgtadm --lld iscsi --op bind --mode account --tid 1 -u user1

  • 解绑一个用户

tgtadm --lld iscsi --op unbind --mode account --tid 1 -u user1

  • 删除一个用户

tgtadm --lld iscsi --op delete --mode account -u user1

target端使用tgtadm命令配置的结果都是工作在内核中的,重启tgt服务或重启系统时,内存中的内容都会丢失。所以要永久让配置生效需要写入到配置文件中去。target的配置文件默认是/etc/tgt/targets.conf,通过target配置文件配置,重启后依然生效。

3、iSCSI客户端常用命令

在Linux 2.6内核中提供了iscsi驱动,iSCSI 驱动(driver)使主机拥有了通过IP网络访问存储的能力,但还需要一个具体的客户端工具(Linux用户空间组件)初始化iSCSI驱动,即iscsi-initiator-utils。

  • 安装initiator程序iscsi-initiator-utils

yum install iscsi-initiator-utils

安装完成后,比较重要的配置文件有两个: 一个是/etc/iscsi/iscsid.conf,所有刚发起的iSCSI session默认都将使用这个文件中的参数设定,另一个是 /etc/iscsi/initiatorname.iscsi,iSCSI initiator的intiator名称配置文件。

  • 发现target

在ip是172.27.255.111的服务端新建两个target。

iscsiadm -m discovery -t sendtargets -p 172.27.255.111

  • 登录target

iscsiadm -m node -T target1 -p 172.27.255.111 -l

登录成功后能看到新增了一个盘/dev/sdc

  • 查看连接的会话

iscsiadm -m session,可以通过选项-P 0-3 来打印更详细的信息

Iscsiadm -m session -P 3

  • 查看node

发现的target都会保存在本地的数据库中,可以通过命令iscsiadm -m node查看。

  • 退出登录

iscsiadm -m node -T target1 -p 172.27.255.111 -u

客户端退出所有登录

iscsiadm -m node -U all

  • 删除node信息

连接死掉(断网或者target端断掉或目标器IP改变)时,可以删除老节点,然后再重新发起discovery生成新节点,使用如下指令删除

iscsiadm -m node -T target1 -p 172.27.255.111 -o delete

删除所有node信息

iscsiadm -m node -o delete

  • 扫描所有关联的target/session

有时客户端登录后,LUN的信息发生变化,客户端不能立即看到,这样就需要rescan命令。

[root@client2 ~]# iscsiadm -m node -R
Rescanning session [sid:8, target:target1, portal: 172.27.255.111,40000]

[root@client2 ~]# iscsiadm -m session -R
Rescanning session [sid:8, target:target1, portal: 172.27.255.111,40000]

 

 

文章来自个人专栏
云硬盘
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0