Linux上使用iSCSI概述

iSCSI简介

1、 scsi和iscsi

  1. SCSI技术是存储设备最基本的标准协议,通常需要设备互相靠近并用SCSI总线连接,因此受到物理环境的限制
  2. iSCSI(Internet Small Computer System Interface),顾名思义,iSCSI是网络上的SCSI,也就是通过网络连接的SCSI
  3. 实现在IP网络上运行SCSI协议的存储技术,能够让SCSI接口与以太网技术相结合,使用iSCSI协议基于以太网传送SCSI命令与数据
  4. 克服了SCSI需要直接连接存储设备的局限性,使得可以跨越不同的服务器共享存储设备,并可以做到不停机状态下扩展存储容量
  5. iSCSI实现的是IP SAN,数据传输基于以太网

2、 iSCSI数据封装

  1. initiator向target发起scsi命令后,在数据报文从里向外逐层封装SCSI协议报文、iSCSI协议报文、tcp头、ip头
  2. 封装是需要消耗CPU资源的,如果完全以软件方式来实现iscsi,那么所有的封装过程都由操作系统来完成
  3. 除了软件方式实现,还有硬件方式的initiator(TOE卡和HBA卡),通过硬件方式实现iSCSI
    • TOE卡,操作系统首先封装SCSI和iSCSI协议报文,而TCP/IP头则交由TOE内的芯片来封装,这样就能减少一部分系统资源消耗
    • HBA卡,操作系统只需封装SCSI,剩余的iSCSI协议报文还有TCP/IP头由HBA芯片负责封装
      Linux上使用iSCSI概述
  4. 很显然,HBA卡实现iSCSI是最好的方案,但是它要花钱,还不便宜

3、 部署iscsi的说明和需求描述

  1. 说明
    • iscsi在target端是工作在套接字上的,监听端口默认是3260,且使用的是tcp连接。因为要保证数据安全性,使用udp可能会导致丢包
    • iscsi对客户端有身份认证的需要,有两种认证方式:基于IP认证,基于CHAP认证(双方都进行验证,即双向认证)
  2. 需求描述
  • 找一台服务器A作为iscsi的target,将其中的一块磁盘或分区/dev/sdb当作要共享的存储设备共享出去。再找两台服务器B和C当作iscsi initiator连接到target的共享存储上
    大致拓扑图如下:
    Linux上使用iSCSI概述
    请确保服务器A上已经关闭了防火墙或者允许了3260端口
    下图描述了使用iSCSI的大致过程:
    Linux上使用iSCSI概述

Linux上使用iSCSI概述

上一篇:什么是Linux?作为热门的操作系统你了解吗?


下一篇:linux系统中安装ifconfig命令