CentOS挂载iSCSI磁盘技巧
小樊
45
2025-12-21 13:30:55
CentOS 挂载 iSCSI 磁盘实用技巧
一 快速上手流程
- 安装客户端并启动服务
- 安装软件包:yum install -y iscsi-initiator-utils
- 启动与开机自启:systemctl start iscsi && systemctl enable iscsi
- 配置发起端名称
- 编辑:/etc/iscsi/initiatorname.iscsi
- 示例:InitiatorName=iqn.1994-05.com.centos:your-host
- 发现与登录目标
- 发现:iscsiadm -m discovery -t sendtargets -p <存储IP>
- 登录:iscsiadm -m node -T <target_iqn> -p <存储IP>:3260 --login
- 识别磁盘与分区
- 查看设备:lsblk 或 fdisk -l
- 分区:小于 2TB 用 fdisk;大于等于 2TB 用 parted(推荐 GPT)
- 格式化与挂载
- 格式化:mkfs.xfs /dev/sdX1 或 mkfs.ext4 /dev/sdX1
- 挂载:mount /dev/sdX1 /mnt/data
- 设置开机自动挂载
- 获取 UUID:blkid /dev/sdX1
- 写入 /etc/fstab:UUID= /mnt/data xfs defaults,_netdev 0 0
- 验证:mount -a 无报错再重启测试
二 安全与认证配置
- 单向 CHAP(最常见)
- 在客户端编辑:/etc/iscsi/iscsid.conf
- 启用:node.session.auth.authmethod = CHAP
- 设置凭据:node.session.auth.username = <用户名> 与 node.session.auth.password = <密码>
- 重启服务:systemctl restart iscsid
- 重新发现与登录,使配置生效
- 双向 CHAP(若存储端要求)
- 在 iscsid.conf 同时配置:
- node.session.auth.username_in / node.session.auth.password_in
- 注意事项
- 修改 iscsid.conf 后需重启 iscsid 才会生效
- 登录失败优先检查:发起端 IQN、CHAP 用户名/密码、存储端 ACL 是否放行该 IQN
三 多路径与高可用
- 适用场景:同一 LUN 通过多条网络路径访问,提高可靠性与带宽
- 基本做法
- 存储端导出同一 LUN 到多个 Portal IP
- 客户端对每个 Portal 执行发现与登录,会话会聚合为多条路径
- 安装多路径工具(如 device-mapper-multipath),启用并生成 /dev/mapper/mpathX
- 后续分区与格式化在 /dev/mapper/mpathX 上进行,避免单路径设备名漂移
- 提示
- 多路径能显著提升可用性,但应用层仍需处理文件锁与并发写入一致性;若需要真正的共享并发写,请使用集群文件系统或对象存储方案
四 常见问题与排查
- 设备名漂移
- 现象:重启后 /dev/sdb 可能变成 /dev/sdc
- 解决:在 /etc/fstab 中使用 UUID 挂载,并加上 _netdev 选项
- 开机卡住或挂载失败
- 原因:网络未就绪即尝试挂载
- 解决:/etc/fstab 使用 defaults,_netdev,确保网络与 iscsi 服务先启动
- 会话未自动重连
- 将节点设为自动启动:iscsiadm -m node -T -p :3260 --op update -n node.startup -v automatic
- 登出与清理
- 登出:iscsiadm -m node -T -p :3260 --logout
- 清理发现信息:iscsiadm -m node -o delete -T (谨慎,删除后需重新发现)
- 多客户端同时挂载同一 LUN
- 默认不保证共享写一致性,后写入可能覆盖先前内容;如需共享,请使用集群文件系统或专用共享存储方案