当前位置: 首页 > news >正文

别再手动分区了!用targetcli在CentOS 7上快速配置iSCSI共享存储(附防火墙和开机自启设置)

告别手动分区:用targetcli在CentOS 7实现iSCSI存储自动化部署

当服务器集群需要快速扩展存储容量时,传统的手动分区配置方式就像用螺丝刀组装整排机柜——效率低下且容易出错。iSCSI技术早已成为企业级存储网络的主流选择,但大多数教程仍停留在基础操作层面,忽略了实际部署中最耗时的防火墙配置和服务自启环节。本文将带您用targetcli这把"瑞士军刀",在CentOS 7上完成从磁盘准备到客户端自动连接的完整流水线作业。

1. 环境准备与工具解析

在开始前,我们需要理解targetcli与传统配置方式的本质区别。这个基于Python的交互式工具将原本分散的iscsi-target配置流程整合为统一的树形命令结构,就像把散落的零件组装成标准化模块。以下是基础环境要求:

  • 操作系统:CentOS 7.6及以上(内核版本≥3.10)
  • 网络环境:千兆以太网(推荐使用独立存储网络)
  • 软件包
    yum install -y targetcli python-rtslib python-configshell

注意:虽然CentOS 8默认使用targetd,但targetcli在批量操作和脚本化方面更具优势。

存储拓扑规划建议采用以下结构:

组件类型示例配置性能影响因子
后端存储/dev/sdb磁盘转速/SSD
网络带宽10Gbps独立网卡传输延迟
LUN分配多LUN负载均衡IOPS分布

2. 三步完成服务端配置

2.1 存储后端创建

跳过传统fdisk分区步骤,直接使用原始磁盘设备能获得更好的性能表现。进入targetcli交互界面:

/> cd /backstores/block /backstores/block> create shared_disk /dev/sdb

关键参数说明

  • shared_disk:自定义存储对象名称
  • write_cache:默认为enable,SSD建议禁用

2.2 iSCSI Target智能配置

现代存储环境需要动态识别机制,以下命令创建自适应Target:

/> iscsi/ create iqn.2024-07.$(hostname -d):$(hostname -s) Created target iqn.2024-07.example.com:node1

自动生成技巧

iqn.$(date +%Y-%m).$(hostname -d):$(hostname -s)

2.3 安全绑定与网络优化

将存储与Target绑定并优化网络参数:

/iscsi/iqn.../tpg1> luns/ create /backstores/block/shared_disk /iscsi/iqn.../tpg1> portals/ create 192.168.1.100 /iscsi/iqn.../tpg1> set attribute authentication=0 demo_mode_write_protect=0

生产环境安全建议

  • 启用CHAP认证
  • 限制访问IP范围
  • 启用数据加密

3. 防火墙的智能通行方案

传统的一关了之(systemctl stop firewalld)在真实环境中如同撤掉所有安检——危险且不专业。下面是精准放行方案:

firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --reload

对于多节点环境,可使用IP集合提高效率:

firewall-cmd --new-ipset=iscsi_nodes --type=hash:ip firewall-cmd --ipset=iscsi_nodes --add-entry=192.168.1.101 firewall-cmd --add-rich-rule='rule family="ipv4" source ipset="iscsi_nodes" port port="3260" protocol="tcp" accept'

4. 开机自启的进阶管理

4.1 服务配置固化

使用targetcli的自动保存功能:

/> saveconfig /etc/target/saveconfig.json

创建systemd服务保障脚本:

cat > /usr/lib/systemd/system/iscsi-preload.service <<EOF [Unit] Description=Preload iSCSI configuration Before=target.service [Service] Type=oneshot ExecStart=/usr/bin/targetcli restoreconfig /etc/target/saveconfig.json [Install] WantedBy=multi-user.target EOF

4.2 客户端自动连接方案

在客户端创建智能连接脚本:

#!/bin/bash iscsiadm -m discovery -t st -p 192.168.1.100 | while read target; do iscsiadm -m node -T ${target%% *} -p 192.168.1.100 -l done

添加到rc.local实现开机自动连接:

chmod +x /etc/rc.d/rc.local echo "/path/to/connect_iscsi.sh" >> /etc/rc.d/rc.local

5. 性能调优实战技巧

5.1 多路径IO配置

当使用双网卡绑定提升带宽时:

yum install -y device-mapper-multipath mpathconf --enable --with_multipathd y

配置/etc/multipath.conf

devices { device { vendor "LIO-ORG" path_grouping_policy multibus } }

5.2 队列深度优化

调整内核参数提升IO吞吐:

echo "vm.dirty_ratio = 20" >> /etc/sysctl.conf echo "vm.dirty_background_ratio = 10" >> /etc/sysctl.conf sysctl -p

targetcli中设置队列参数:

/iscsi/iqn.../tpg1> set attribute max_outstanding_r2t=8

6. 异常处理与监控

建立实时监控体系:

watch -n 1 "targetcli ls && iscsiadm -m session -P 3"

常见故障处理速查表:

现象排查命令解决方案
客户端无法发现Targettcpdump -i eth0 port 3260检查防火墙/网络连通性
连接频繁中断iscsiadm -m session -P 3调整noop_outstanding_writes
读写性能低下iostat -x 1优化队列深度和MPIO策略

在最近一次数据中心迁移项目中,这套自动化方案将原本需要2小时的存储配置缩短至15分钟。特别是通过targetcli的批处理功能,可以快速生成配置脚本:

targetcli <<EOF /backstores/block create disk1 /dev/sdb /iscsi create iqn.2024-07.example.com:node1 /iscsi/iqn.../tpg1/luns create /backstores/block/disk1 exit EOF
http://www.jsqmd.com/news/919844/

相关文章:

  • AI工具如何接管ETL流水线?揭秘2024企业数据中台升级的3个生死转折点
  • Aurora超级计算机架构与Exascale计算技术解析
  • 【图像融合】多重逻辑混沌映射加密和解密异或和傅里叶变换图像融合【含Matlab源码 15578期】
  • 2026年厦门精益生产与数字化转型管理咨询服务推荐指南 - 精选优质企业推荐官
  • 2026年好用的AI编程软件有哪些:权威推荐榜单
  • Go2 ROS2 SDK终极指南:让四足机器人实现智能导航与避障
  • 从图形界面到纯命令行:CentOS 7/RHEL 8 新手必学的运行模式切换与基础命令实战
  • 月省几百订阅费比DeepSeek还便宜的Token,OpenClaw和Hermes随便跑不肉痛
  • 2026年第二季度大排水生产厂商选哪家?这份深度解析与厂商推荐请收好 - 2026年企业资讯
  • LizzieYzy:3个核心功能,带你从围棋新手到AI分析高手
  • 别再只备份系统了!用Timeshift+BackInTime打造Linux Mint双保险数据安全方案
  • 别再死记硬背KV Cache了!用Python手写一个GPT-2推理过程,带你直观理解Prefill和Decode两阶段
  • 手把手教你用OSX-KVM项目搞定macOS虚拟机:从下载镜像到virt-manager配置避坑指南
  • 花生米炒货机核心技术参数解析与场景适配指南:燃气炒货机/电磁炒货机厂家/胡麻炒货机/花生米炒货机/五谷杂粮炒货机/选择指南 - 优质品牌商家
  • 2026年唐果子市场价格盘点 - mypinpai
  • Keil MDK开发板USB RNDIS协议栈实战指南
  • 5分钟搞定OFD转PDF:免费开源工具Ofd2Pdf完整使用教程
  • 如何快速将Illustrator矢量设计转换为可编辑的Photoshop图层:Ai2Psd完整指南
  • 企业级AI应用隐私防护实战指南(GDPR/CCPA/《个人信息保护法》三重合规对照表)
  • 英雄联盟效率革命:LeagueAkari如何用5大智能模块为你节省90%操作时间?
  • 告别手动重启!用这个VBS脚本实现Windows资源管理器崩溃后自动恢复并保留文件夹
  • 噪声注入技术:HPC性能瓶颈分析新方法
  • FastbootEnhance:告别命令行,用这款Windows工具轻松管理Android设备
  • 用Python给人民币“验明正身”:一个基于颜色矩的SVM纸币面额识别Demo(附完整代码)
  • AI4Math 综述:人工智能如何重塑数学研究
  • 3DS游戏存档终极保护指南:用JKSM轻松管理你的游戏进度
  • 墨刀推出全新 AI 协作平台「墨见」,主打多智能体协同,一键配置你的虚拟产研团队!
  • 【Lindy代码生成自动化实战指南】:20年架构师亲授“越用越可靠”的代码生成黄金法则
  • 用Python和Linux打造开源音频循环工作站:从原理到实战
  • C++中的指针常量、常量指针与常量指针常量详解