暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

全面掌握iSCSI存储协议:从概念到实践

周同学带您玩AI 2024-07-15
286

iSCSI存储协议概念和工作原理

1、iSCSI存储概念

iSCSI(Internet Small Computer System Interface)是一种在Internet协议上,特别是以大网上进行数据块传输的标准。它是一种基于IP Storage理论的新型存储技术,将SCSI接口与IP网络技术相结合,可以在IP网络上构建SAN存储区域网络。简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术。

2、iSCSI技术优势

  1. 地域延伸: 把原来只用于本机的SCSI通过TCP/IP网络传送,使连接距离可作无限的地域延伸;
  2. 连接数量无限: 连接的服务器数量无限(原来的SCSI-3的上限是15);
  3. 动态部署: 由于是服务器架构,因此也可以实现在线扩容以至动态部署。

3、iSCSI存储架构

  1. iSCSI Target:被用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以被称为“iSCSI Target”。利用iSCSI Target软件,可以将服务器的存储空间分配给客户机使用,客户机就可以像使用本地硬盘一样使用iSCSI硬盘。

  2. iSCSI Initiator:iSCSI initiator是一个安装在计算机上的一个软件或是一个硬件设备,它负责处理同iSCSI存储设备进行通信。

4、iSCSI存储过程

  1. Initiator发出请求后,会在本地的操作系统生成相应的SCSI命令和数据I/O请求,然后这些命令和请求被封装加密成IP信息包,通过以太网(TCP/IP)传输到Target。
  2. 当Target接收到信息包时,将进行解密和解析,将SCSI命令和I/O请求分开。SCSI命令被发送到SCSI控制器,再传送到iSCSI存储设备。
  3. 设备执行SCSI命令后的响应,通过Target封装成iSCSI响应PDU,再通过已连接的TCP/IP网络传送给Initiator。
  4. Initiator会从iSCSI响应PDU里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。

CentOS上安装和配置iSCSI服务端和客户端

在CentOS上安装iSCSI Target(服务端)

  1. 安装软件包

    sudo yum install targetcli -y

  2. 配置iSCSI Target

    sudo targetcli

    /backstores/block create block1 /dev/sdb
    /iscsi create iqn.2023-07.com.example:storage.target01
    /iscsi/iqn.2023-07.com.example:storage.target01/tpg1/luns create /backstores/block/block1
    /iscsi/iqn.2023-07.com.example:storage.target01/tpg1/acls create iqn.2023-07.com.example:client01
    /saveconfig
    exit

  3. 启动并启用target服务

    sudo systemctl start target
    sudo systemctl enable target

在CentOS上安装iSCSI Initiator(客户端)

  1. 安装软件包

    sudo yum install iscsi-initiator-utils -y

  2. 发现和登录到iSCSI Target

    sudo iscsiadm -m discovery -t sendtargets -p [Target_IP]
    sudo iscsiadm -m node -T iqn.2023-07.com.example:storage.target01 -p [Target_IP] -l

  3. 查看已登录的iSCSI设备

    sudo lsblk

挂载iSCSI存储设备

  1. 创建挂载点

    sudo mkdir /mnt/iscsi_disk

  2. 挂载iSCSI磁盘

    sudo mount /dev/sdX /mnt/iscsi_disk

    替换/dev/sdX
    为实际的iSCSI设备路径。

  3. 配置开机自动挂载编辑/etc/fstab
    文件,添加以下内容:

    /dev/sdX /mnt/iscsi_disk ext4 _netdev 0 0

详细举例

在CentOS上安装iSCSI Target(服务端)

  1. 安装软件包

    sudo yum install targetcli -y

  2. 配置iSCSI Target

    sudo targetcli

    /backstores/fileio create file1 /var/iscsi_disks/disk1.img 10G
    /iscsi create iqn.2024-07.com.example:storage.target02
    /iscsi/iqn.2024-07.com.example:storage.target02/tpg1/luns create /backstores/fileio/file1
    /iscsi/iqn.2024-07.com.example:storage.target02/tpg1/acls create iqn.2024-07.com.example:client02
    /saveconfig
    exit

  3. 启动并启用target服务

    sudo systemctl start target
    sudo systemctl enable target

在CentOS上安装iSCSI Initiator(客户端)

  1. 安装软件包

    sudo yum install iscsi-initiator-utils -y

  2. 发现和登录到iSCSI Target

    sudo iscsiadm -m discovery -t sendtargets -p [Target_IP]
    sudo iscsiadm -m node -T iqn.2024-07.com.example:storage.target02 -p [Target_IP] -l

  3. 查看已登录的iSCSI设备

    sudo lsblk

挂载iSCSI存储设备

  1. 创建挂载点

    sudo mkdir /mnt/iscsi_disk2

  2. 挂载iSCSI磁盘

    sudo mount /dev/sdY /mnt/iscsi_disk2

    替换/dev/sdY
    为实际的iSCSI设备路径。

  3. 配置开机自动挂载编辑/etc/fstab
    文件,添加以下内容:

    /dev/sdY /mnt/iscsi_disk2 ext4 _netdev 0 0

    非常感谢您读到这里!如果您觉得这篇文章对您有帮助,请不要忘记关注公众号。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。

    点击页面右上角的“关注”按钮,不错过任何精彩内容!

    扫码获取联系方式



文章转载自周同学带您玩AI,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论