iSCSI 存储协议详解

(注意:正确缩写为 iSCSI,全称为 Internet Small Computer System Interface,是一种基于 IP 网络的存储协议。)


1. 什么是 iSCSI?

iSCSI 是一种将 SCSI 命令 封装在 TCP/IP 协议 中的技术,允许通过标准以太网传输块级存储数据。

  • 核心功能:将远程存储设备(如磁盘阵列)模拟成本地硬盘,实现跨网络的块级存储访问。
  • 替代方案:相比传统的光纤通道(FC-SAN),iSCSI 基于廉价的以太网,成本更低,但性能略低。

2. 核心组件

  • iSCSI Initiator(发起端):客户端设备(如服务器),通过软件或硬件发起存储请求。

    • 软件 Initiator:如 Linux 的 open-iscsi、Windows 的 iSCSI Initiator
    • 硬件 Initiator:专用 HBA 卡(支持 TCP Offload 以降低 CPU 负载)。
  • iSCSI Target(目标端):存储设备(如 NAS/SAN),提供存储资源。
    • 常用软件:targetcli(Linux)、StarWind(Windows)、专用存储阵列。

3. 核心功能与作用

功能 作用
块级存储访问 直接读写磁盘块,适合数据库、虚拟机等高性能场景。
IP 网络传输 利用现有以太网,无需专用光纤网络,降低成本。
跨平台兼容性 支持 Windows、Linux、VMware 等操作系统。
集中存储管理 统一管理存储资源,提高利用率。
远程存储映射 将远程存储挂载为本地磁盘,实现异地数据访问。
数据加密与认证 支持 CHAP 认证、IPsec 加密,保障传输安全。

4. 应用场景

(1) 企业级存储网络(SAN)

  • 场景:需要高性能、低延迟的存储环境(如数据库、ERP 系统)。
  • 优势:通过 10Gb/25Gb 以太网,提供接近光纤通道(FC)的性能,但成本更低。

(2) 虚拟化与云计算

  • 场景:VMware/Hyper-V 虚拟机的共享存储。
  • 优势:支持 VMware vSphere 的 VMFS 集群文件系统,实现虚拟机热迁移(vMotion)。

(3) 远程备份与灾备

  • 场景:异地数据中心的数据同步与备份。
  • 优势:通过广域网(WAN)传输,结合去重与压缩技术,降低带宽占用。

(4) 中小型企业存储

  • 场景:预算有限的中小企业,使用普通服务器搭建 iSCSI 存储。
  • 优势:无需专用硬件,利用现有以太网交换机即可部署。

(5) 开发与测试环境

  • 场景:快速部署测试用的存储资源。
  • 优势:通过软件定义存储(如 FreeNAS)灵活分配存储空间。

5. 典型架构示例

+---------------+
| 应用服务器 |
| (iSCSI Initiator)|---[以太网]---+
+---------------+ |
|
+---------------+ | +-------------------+
| 虚拟机集群 | +----| iSCSI Target |
| (VMware ESXi) |---------------------| (存储阵列/NAS) |
+---------------+ | +-------------------+
|
+---------------+ |
| 数据库服务器 | |
| (Oracle DB) |----------------+
+---------------+

6. 优缺点对比

优点 缺点
低成本(基于以太网) 性能受网络延迟和带宽影响
部署简单,无需专用硬件 高负载时 CPU 占用较高(软件方案)
支持标准网络设备(交换机/路由器) 安全性需额外配置(如 IPsec)
跨平台兼容性强 巨型帧(Jumbo Frame)依赖网络支持

7. 配置示例(Linux 环境)

(1) 安装工具

# Ubuntu/Debian
sudo apt-get install open-iscsi targetcli # CentOS/RHEL
sudo yum install iscsi-initiator-utils targetcli

(2) 配置 Target 端

sudo targetcli
# 创建存储后端
/backstores/block create name=disk1 dev=/dev/sdb # 创建 iSCSI Target
/iscsi create iqn.2023-10.com.example:storage.disk1 # 绑定存储
/iscsi/iqn.2023-10.com.example:storage.disk1/tpg1/luns create /backstores/block/disk1 # 设置访问控制
/iscsi/iqn.2023-10.com.example:storage.disk1/tpg1/acls create iqn.2023-10.com.example:server.initiator1 # 保存配置
saveconfig
exit

(3) 配置 Initiator 端

# 发现 Target
sudo iscsiadm -m discovery -t st -p 192.168.1.100 # 登录 Target
sudo iscsiadm -m node -T iqn.2023-10.com.example:storage.disk1 -p 192.168.1.100 --login # 查看挂载的磁盘
lsblk

8. 性能优化

  • 网络优化:使用 10Gb/25Gb 以太网、专用 VLAN、启用巨型帧(MTU=9000)。
  • 硬件加速:使用支持 TCP Offload Engine(TOE)的网卡。
  • 多路径 I/O:配置多路径(MPIO)提高冗余和带宽。

9. 总结

iSCSI 是 IP 时代存储网络的核心技术之一,尤其适合以下场景:

  • 需要低成本 SAN 的企业。
  • 虚拟化环境中的共享存储。
  • 跨地域数据同步与灾备。

    通过合理配置和优化,iSCSI 可提供接近光纤通道的性能,同时大幅降低 TCO(总拥有成本)。

iSCSI存储协议详解的更多相关文章

  1. HTTP协议详解(转)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  2. HTTP协议详解

    Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  3. ASP.NET知识总结(3.HTTP协议详解)

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  4. 接口测试之HTTP协议详解

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  5. 计算机网络(12)-----HTTP协议详解

    HTTP协议详解 http请求 http请求由三部分组成,分别是:请求行.消息报头.请求正文 (1)请求行 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Metho ...

  6. HTTP协议详解(真的很经典)

    HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展.目前在WWW中使用的是HTTP/1.0 ...

  7. HTTP协议详解--转载http://blog.csdn.net/gueter/article/details/1524447

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  8. 关于http协议详解

    Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前 ...

  9. bt协议详解 DHT篇(上)

    bt协议详解 DHT篇(上) 最近开发了一个免费教程的网站,突然产生了仔细了解bt协议的想法,这篇文章是bt协议详解系列的第三篇,后续还会写一些关于搜索和索引的东西,都是在开发这个网站的过程中学习到的 ...

  10. HTTP协议详解(一直在用可是这篇太好了转一下)

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

随机推荐

  1. React并发机制揭秘

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  2. TypeScript实用技巧大杂烩,助你成为真正的全栈工程师

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  3. manim变换效果总结

    在ManimCE中,除了上一篇介绍的丰富的动画效果外,变换效果也是制作精彩视觉内容的重要工具. 变换效果主要用于改变对象的形状.大小.颜色或位置,让对象在动画中呈现出动态的变化. 本文详细总结了 Ma ...

  4. Windows平台调试器原理与编写03.单步

    调试器原理与编写03.单步-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 单步 TF - 置位(置1 复位就是置0) 单步步入 -- 遇到call便入 单步步过 ...

  5. WPF与WinForm的对比

    WPF与WinForm的对比 本文同时为b站WPF课程的笔记,相关示例代码 创建新项目 在vs2022中,这两者分别叫做WPF应用和Windows窗体应用. 渲染引擎和设计 WPF使用DirectX作 ...

  6. 【转载】DeltaFIFO源码分析

    DeltaFIFO源码分析 介绍 我们已经知道 Reflector 中通过 ListAndWatch 获取到数据后传入到了本地的存储中,也就是 DeltaFIFO 中.从 DeltaFIFO 的名字可 ...

  7. hot100之双指针

    移动0(283) 先看代码 class Solution { public void moveZeroes(int[] nums) { int idx0 = 0; for (int idx = 0; ...

  8. 🔥《刚刚问世》系列初窥篇-Java+Playwright自动化测试-19- 操作鼠标悬停(详细教程)

    1.简介 在实际工作中,我们往往会遇到有些测试场景或者事件,playwright根本就没有直接提供方法去操作,而且也不可能面面俱到地把各种测试场景都全面覆盖提供方法去操作,这个时候就需要我们去掌握一些 ...

  9. 一文读懂Cookie、Session和Token:原理、区别与应用场景

    咱上网冲浪的时候,天天和各种网站.APP打交道.但HTTP协议有个"毛病"--它记性不好,每次请求都像第一次见面,根本不记得之前和你聊过啥.为了解决这个问题,程序员们整出了Cook ...

  10. typescript结构化类型应用两例

    介绍 结构化类型是typescript类型系统的一个重要特性,如果不了解这个特性,则经常会被typescript的行为搞得一头雾水,导致我们期待的行为与实际的行为不一致.今天我们就来看两个例子. 不了 ...