iSCSI共享存储实战:从单服务器配置到多主机集群数据访问测试
1. iSCSI共享存储基础概念与场景解析第一次接触iSCSI时我被它神奇的网络磁盘共享能力震撼到了——就像给服务器插上了无线硬盘。iSCSIInternet Small Computer System Interface本质上是通过IP网络传输SCSI协议把远程存储设备映射成本地磁盘使用。这种技术在企业级存储方案中特别实用比如当我们需要为Web集群提供共享的日志存储或者让数据库集群访问同一份数据文件时。核心组件理解起来其实很简单Target目标端存储服务器相当于硬盘柜Initiator发起端客户端服务器相当于电脑主机LUN逻辑单元号可以理解为虚拟硬盘的编号实际项目中我遇到过这样的典型场景某电商平台需要部署三台负载均衡的Web服务器但用户上传的图片需要统一存储。使用iSCSI后所有Web节点都能像访问本地磁盘一样读写同一个存储空间完美解决了文件同步问题。2. 服务器端配置全流程实战2.1 环境准备与磁盘配置先给服务器加块新硬盘这步我在VMware中测试时经常操作# 查看新磁盘是否识别 lsblk # 分区操作以/dev/sdb为例 fdisk /dev/sdb n - p - 1 - 回车 - 回车 - w记得用partprobe刷新分区表有次我忘了这步折腾了半天找不到新分区。安装targetcli工具包yum -y install targetcli* systemctl enable target --now2.2 targetcli配置详解进入交互式配置界面后目录结构初看有点复杂其实逻辑很清晰targetcli / ls / backstores后端存储 iscsiiSCSI目标配置创建存储对象的踩坑记录先在后端存储创建映射/backstores/block create disk1 /dev/sdb1建立iSCSI目标时命名格式要规范/iscsi create iqn.2023-08.com.example:storage.disk1有次我漏了日期段系统直接报错拒绝。2.3 ACL与LUN配置技巧访问控制列表(ACL)相当于门禁系统建议生产环境一定要配置/iscsi/iqn.2023-08.../tpg1/acls create iqn.2023-08.com.example:client1添加LUN时最容易犯的错是路径写错正确的姿势/iscsi/iqn.2023-08.../tpg1/luns create /backstores/block/disk13. 多主机客户端配置指南3.1 客户端基础配置安装必要的软件包后关键是要修改initiator名称匹配服务端ACLvi /etc/iscsi/initiatorname.iscsi InitiatorNameiqn.2023-08.com.example:client1发现目标的命令我总记混参数后来总结了个口诀-m discovery找目标-t st是扫描类型-p指定目标地址iscsiadm -m discovery -t st -p 192.168.1.1003.2 连接与挂载实战登录目标存储时推荐用这种显式指定方式iscsiadm -m node -T iqn.2023-08... -p 192.168.1.100 -l格式化挂载时要特别注意mkfs.xfs /dev/sdb mount -o _netdev /dev/sdb /mnt/iscsi忘记加_netdev参数导致过系统启动卡死血泪教训啊4. 多主机共享存储测试与排错4.1 并发访问测试在主机A上操作dd if/dev/zero of/mnt/iscsi/testfile bs1G count1在主机B上立即能看到文件但要注意文件系统需要支持并发访问如XFS应用层可能需要文件锁机制实测发现ext4上的小文件同步可能有延迟4.2 常见故障排查连接失败时检查清单防火墙状态systemctl status firewalld端口连通性telnet 192.168.1.100 3260服务端ACL名称是否匹配性能调优参数加到/etc/iscsi/iscsid.confnode.session.timeo.replacement_timeout 120 node.conn[0].timeo.noop_out_interval 30有次性能问题折腾我三天最后发现是MTU不匹配用这个命令检查ping -s 8972 192.168.1.1005. 生产环境进阶配置5.1 多路径IO配置为防止网络单点故障配置多路径很重要yum install -y device-mapper-multipath mpathconf --enable --with_multipathd y配置文件示例devices { device { vendor LIO-ORG path_grouping_policy multibus } }5.2 安全加固措施启用CHAP认证/iscsi/iqn.../tpg1 set auth useridusername /iscsi/iqn.../tpg1 set auth passwordpassword客户端配置node.session.auth.authmethod CHAP node.session.auth.username username node.session.auth.password password6. 性能监控与维护日常维护时我习惯用这些命令# 实时监控IO负载 iostat -xm 1 # 查看会话状态 iscsiadm -m session -P 3 # 检查多路径状态 multipath -ll设置邮件告警脚本示例#!/bin/bash if ! iscsiadm -m session | grep -q 192.168.1.100; then echo iSCSI连接中断 | mail -s 存储告警 adminexample.com fi最后提醒大家任何存储操作前一定要备份重要数据。有次我在凌晨三点误删了LUN配置幸好有备份才没酿成大祸。iSCSI虽然强大但越是强大的工具越需要谨慎使用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2602524.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!