iStoreOS 配置 iSCSI 存储及 Windows 客户端连接指南 🖥️
iStoreOS 配置 iSCSI 存储及 Windows 客户端连接指南 🖥️
iSCSI 允许你在网络上共享块设备,客户端可以像使用本地硬盘一样使用这些共享存储。下面是 iStoreOS 上配置 iSCSI 服务端及 Windows 客户端连接的详细指南。
📖 目录导航
✨ iSCSI 简介与优势
iSCSI (Internet Small Computer System Interface) 是一种基于 IP 网络的存储协议,它允许在 IP 网络上传输 SCSI 命令,将远程存储设备映射为本地块设备。
- 成本效益:利用现有网络基础设施,无需专门构建昂贵的光纤通道网络。
- 灵活性:方便扩展存储容量,可在不同操作系统和硬件平台间实现存储共享。
- 应用场景:常用于数据中心服务器存储扩展和企业级应用(如数据库存储)。
🔧 iStoreOS 服务端配置
📦 1. 安装必要的软件包
iStoreOS 基于 OpenWRT,可以使用 opkg
包管理器安装所需软件。
1 | # 更新软件包列表并安装 tgt(iSCSI 目标软件)和内核模块 |
📂 2. 准备存储设备
确保你有一块磁盘(如 /dev/sda1
)可用于共享。使用 df -h
或 lsblk
查看可用磁盘和分区。
1 | # 查看磁盘挂载情况 |
⚙️ 3. 配置 iSCSI 目标服务
iSCSI 目标的配置通常位于 /etc/config/tgt
。你可以直接编辑此文件或使用 uci
命令(如果 iStoreOS 支持)。
1 | # 创建或编辑 tgt 配置文件 |
关键参数说明:
- IQN 名称格式:
iqn.yyyy-mm.reverse.domain.name:optional.identifier
。 device
:要共享的块设备(如/dev/sda1
)或文件(需预先创建)。- CHAP 认证:强烈建议启用以提高安全性。
🔄 4. 启动并验证服务
配置完成后,启动 tgt 服务并设置开机自启。
1 | # 启动 tgt 服务 |
使用 tgtadm
命令验证目标是否发布成功:
1 | # 查看定义的 iSCSI 目标 |
预期输出应显示你定义的 Target IQN 和 LUN 信息。
🔥 5. 防火墙配置
iSCSI 服务默认使用 TCP 端口 3260。确保防火墙允许客户端访问此端口。
1 | # 允许 iSCSI 端口(3260/TCP)的访问(示例,具体命令取决于你的防火墙) |
🖥️ Windows 客户端连接
Windows 系统通常自带 iSCSI 发起程序,但可能需要启用。
⚙️ 1. 启动 iSCSI 发起程序并配置 Initiator Name
- 按
Win + R
,输入iscsicpl.exe
并回车。 - 如果首次使用,系统可能会提示启动 Microsoft iSCSI 服务,选择是。
- 在 iSCSI 发起程序属性 窗口中,转到 Configuration 选项卡。
- 记录或修改 Initiator Name。Windows 会提供一个默认名称,其格式通常为
iqn.1991-05.com.microsoft:[hostname]
,你也可以修改为一个符合格式的唯一名称。此名称需与 iStoreOS 上设置的 ACL(如果配置了的话)匹配。
🔍 2. 发现目标
- 在 Discovery 选项卡中,点击 Discover Portal…。
- 在弹出的对话框中,输入你的 iStoreOS 的 IP 地址。端口保持默认的 3260。点击 OK。
🔗 3. 连接目标并配置 CHAP
- 转到 Targets 选项卡。在 Discovered targets 列表中,你应该能看到在 iStoreOS 上配置的 Target IQN,状态为 Inactive。
- 选中该目标,点击 Connect,然后点击 OK。此时状态应变为 Connected。
- 如果你在 iStoreOS 上配置了 CHAP 认证,需要进一步设置:
- 在 Targets 选项卡,选中已连接的目标,点击 Properties。
- 在 Properties 窗口中,点击 Configure CHAP…。
- 选中 Use CHAP to authenticate。
- 在 Name 中输入 iStoreOS 上设置的 CHAP 用户名(如
admin
)。 - 在 Target secret 中输入对应的密码(如
yifan0719
)。 - 点击 OK 保存。
💾 4. 初始化和使用磁盘
连接成功后,Windows 会将 iSCSI 磁盘识别为新的物理磁盘。
- 打开 磁盘管理(
Win + R
输入diskmgmt.msc
)。 - 系统通常会提示你初始化新磁盘。选择分区样式(MBR 或 GPT,推荐 GPT for large disks)。
- 初始化后,磁盘状态变为 Online 和 Unallocated。
- 右键点击未分配空间,选择 New Simple Volume…,按照向导创建分区、格式化(选择文件系统,如 NTFS)并分配驱动器号。
- 完成后,即可在 文件资源管理器 中像使用本地磁盘一样使用该网络存储。
⚙️ 高级配置与优化
🎯 多目标与多 LUN 配置
你可以在 /etc/config/tgt
中定义多个目标和 LUN。
1 | # 示例:添加第二个目标和使用文件映像 |
创建文件后端:1
2# 创建一个 10GB 的空文件作为存储后端
dd if=/dev/zero of=/path/to/backend-file.img bs=1G count=10
🚀 性能优化参数
在 /etc/config/tgt
的全局选项或特定目标中调整参数:
1 | config options 'tgt' |
网络优化(在 iStoreOS 系统设置中考虑):
- Jumbo Frames:如果网络设备(交换机、网卡)支持,可启用巨帧(MTU 9000)以提升大数据传输效率。
- 专用网络:为 iSCSI 流量划分独立的 VLAN 或物理网络,以减少其他流量的干扰。
🔒 安全加固建议
- 使用强 CHAP 密码:避免使用默认或简单密码。定期更换密码。
1
2# 示例:使用 apg 生成强密码(如果已安装)
apg -m 12 -n 1 - 网络隔离:使用防火墙规则严格限制仅允许授权的客户端 IP 地址访问 iSCSI 端口 3260。
- IP 过滤:在 tgt 配置中使用
allow_address
列表进一步限制访问源 IP。 - 禁用未使用的目标:如果不使用某个目标,最好将其配置注释或删除,而不是仅仅停止服务。
🐛 故障排除
🔍 iStoreOS 端检查
- 服务状态:确认
tgt
服务正在运行:service tgt status
。 - 目标可见性:使用
tgtadm --mode target --op show
确认目标已正确配置且 LUN 状态正常。 - 日志查看:使用
logread | grep tgt
或journalctl -u tgt
(取决于系统)查看服务日志中的错误信息。 - 端口监听:确认 tgt 正在监听 3260 端口:
netstat -tlnp | grep 3260
或ss -tlnp | grep 3260
。 - 防火墙:确认防火墙已放行 3260 端口:
iptables -L -n | grep 3260
。
🔍 Windows 端检查
- 网络连通性:在 Windows 命令提示符中 ping iStoreOS 的 IP 地址:
ping <iStoreOS_IP>
。 - 发起程序服务:确保 Microsoft iSCSI Initiator Service 正在运行。
- 发现目标:在 iSCSI 发起程序 的 Discovery 选项卡中,确认已添加正确的 iStoreOS 门户地址。
- CHAP 认证:仔细核对 CHAP 用户名和密码,大小写敏感,确保与 iStoreOS 配置完全一致。
- 连接状态:在 Targets 选项卡,查看目标状态是否为 Connected。
- Windows 日志:检查 事件查看器 中的系统和应用程序日志,筛选与 iSCSI 或磁盘相关的错误事件。
🔍 常见问题
- 无法发现目标:检查网络连通性、防火墙、iStoreOS 上 tgt 服务状态及配置是否正确。
- 连接失败或认证错误:仔细检查 CHAP 配置(用户名、密码、Secret)在 iStoreOS 和 Windows 端是否完全一致。
- 磁盘未出现在磁盘管理:尝试在 磁盘管理 中操作 “Rescan Disks” 或重启 Windows 的 iSCSI Initiator Service。
- 性能差:检查网络带宽、延迟、是否启用巨帧、iSCSI 参数优化(队列深度等)。
📊 监控与维护
👀 基本监控
- iStoreOS 连接状态:定期使用
tgtadm --mode conn --op show --tid <TID>
查看活动连接。 - Windows 性能计数器:在 任务管理器 → 性能 选项卡或 资源监视器 中监控 iSCSI 磁盘的 I/O 活动。
🔄 定期维护
- 备份配置:定期备份
/etc/config/tgt
文件。1
cp /etc/config/tgt /etc/config/tgt.backup.$(date +%Y%m%d)
- 更新软件:定期更新 iStoreOS 和 tgt 软件包以获取安全补丁和功能更新。
1
opkg update && opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
- 磁盘健康:监控共享磁盘的 SMART 状态和可用空间。
1
2smartctl -a /dev/sda1 # 需要安装 smartmontools
df -h /dev/sda1
遵循本指南,你应该能在 iStoreOS 上成功配置 iSCSI 存储服务,并使其在 Windows 客户端上可用。记得优先启用 CHAP 认证和网络访问控制以保障安全。