1. 初识iSCSI:网络存储的平民化方案
第一次接触iSCSI是在2015年接手公司老旧存储系统改造项目时。当时面临一个典型困境:业务部门需要扩容存储,但预算只够买几台中端服务器。正是在这种背景下,我发现了iSCSI这个将专业存储平民化的神奇协议。
iSCSI(Internet Small Computer System Interface)本质上是通过TCP/IP网络传输SCSI指令,让客户端机器能够像使用本地硬盘一样访问远程存储设备。与光纤通道(FC)这类专业存储网络相比,iSCSI最大的优势就是可以利用现有以太网基础设施。记得当时用几台淘汰的服务器加上开源软件,就搭建出了性能足以支撑ERP系统的存储环境,硬件成本不到传统SAN的十分之一。
协议栈层面,iSCSI位于OSI模型的传输层之上,将SCSI命令封装在TCP包中传输。这种设计带来几个关键特性:
- 标准以太网兼容(建议使用千兆及以上网络)
- 支持IP路由,突破传统存储网络的距离限制
- 可利用现有网络管理工具进行监控和排错
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实战环境搭建:从零构建iSCSI服务
2.1 服务端配置(以Linux为例)
在Ubuntu 22.04上配置iSCSI target服务,我推荐使用LIO(Linux IO Target)内核子系统,这是目前最活跃的开源方案。以下是经过生产验证的配置流程:
bash复制# 安装必要工具
sudo apt update
sudo apt install -y targetcli-fb
# 启动服务
sudo systemctl enable --now target
# 进入交互式配置界面
sudo targetcli
在targetcli界面中,需要依次创建:
- 存储后端(backstore):可以是物理磁盘、LVM卷或文件镜像
- iSCSI目标(target):使用iqn命名规范(如iqn.2024-08.com.example:server)
- 逻辑单元(LUN):将存储后端映射到目标
- ACL访问控制:限制合法发起方(initiator)
关键细节:生产环境中一定要配置CHAP认证,避免存储被未授权访问。建议使用双向CHAP:
code复制/iscsi/iqn.20.../tpg1/portals create 0.0.0.0
/iscsi/iqn.20.../tpg1 set auth userid=storage_user
/iscsi/iqn.20.../tpg1 set auth password=Complex@Pass123
2.2 Windows客户端连接
Windows自带的iSCSI发起程序位于"控制面板 > 管理工具"。连接时需要特别注意:
- 发现门户(Discovery)填写服务端IP
- 目标(Targets)选项卡中选择对应IQN
- 在"高级设置"中配置CHAP凭证
- 连接成功后需在磁盘管理初始化并格式化
实测中发现的一个坑:Windows默认启用多路径(MPIO),如果服务端未配置多路径支持,会导致连接不稳定。解决方法是在注册表中禁用:
code复制HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curren
