[RH342]iscsi配置与排错

[RH342]iscsi配置与排错

  • 1. 服务端配置
    • 1.1 安装targetcli
    • 1.2 准备磁盘
    • 1.3 服务端配置
    • 1.4 防火墙配置
  • 2. 客户端配置
    • 2.1 安装客户端软件
    • 2.2 配置客户端
    • 2.3 连接登录服务端
    • 2.4 挂载使用
  • 3. 安全验证扩展
    • 3.1 服务端
    • 3.2 客户端
  • 4. 常见的排错点
    • 4.1 服务端常见错误
    • 4.2 客户端常见错误

1. 服务端配置

1.1 安装targetcli

安装iscsi组件

dnf install -y targetcli

1.2 准备磁盘

iscsi服务需要一个磁盘,我们就利用vdb上的空余磁盘建一个vdb2来作为iscsi数据存放的位置

fdisk /dev/vdb

在这里插入图片描述

1.3 服务端配置

启动服务

systemctl enable --now targetclid.service

创建backstores

[root@serverd ~]# targetcli
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'./> ls
o- / ......................................................................................................................... [...]o- backstores .............................................................................................................. [...]| o- block .................................................................................................. [Storage Objects: 0]| o- fileio ................................................................................................. [Storage Objects: 0]| o- pscsi .................................................................................................. [Storage Objects: 0]| o- ramdisk ................................................................................................ [Storage Objects: 0]o- iscsi ............................................................................................................ [Targets: 0]o- loopback ......................................................................................................... [Targets: 0]
/> backstores/block create 
dev=       name=      readonly=  wwn=       
/> backstores/block create dev=/dev/vdb2
Missing required parameter name
/> backstores/block create dev=/dev/vdb2 name=target1
Created block storage object target1 using /dev/vdb2.
/> ls
o- / ......................................................................................................................... [...]o- backstores .............................................................................................................. [...]| o- block .................................................................................................. [Storage Objects: 1]| | o- target1 ..................................................................... [/dev/vdb2 (200.0MiB) write-thru deactivated]| |   o- alua ................................................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]| o- fileio ................................................................................................. [Storage Objects: 0]| o- pscsi .................................................................................................. [Storage Objects: 0]| o- ramdisk ................................................................................................ [Storage Objects: 0]o- iscsi ............................................................................................................ [Targets: 0]o- loopback ......................................................................................................... [Targets: 0]

创建acl

/> backstores/block create dev=/dev/vdb2 name=target1
Created block storage object target1 using /dev/vdb2.
/> ls
o- / ......................................................................................................................... [...]o- backstores .............................................................................................................. [...]| o- block .................................................................................................. [Storage Objects: 1]| | o- target1 ..................................................................... [/dev/vdb2 (200.0MiB) write-thru deactivated]| |   o- alua ................................................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]| o- fileio ................................................................................................. [Storage Objects: 0]| o- pscsi .................................................................................................. [Storage Objects: 0]| o- ramdisk ................................................................................................ [Storage Objects: 0]o- iscsi ............................................................................................................ [Targets: 0]o- loopback ......................................................................................................... [Targets: 0]
/> iscsi/ create iqn.2025-02.com.example.lab:serverd
Created target iqn.2025-02.com.example.lab:serverd.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls
o- / ......................................................................................................................... [...]o- backstores .............................................................................................................. [...]| o- block .................................................................................................. [Storage Objects: 1]| | o- target1 ..................................................................... [/dev/vdb2 (200.0MiB) write-thru deactivated]| |   o- alua ................................................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]| o- fileio ................................................................................................. [Storage Objects: 0]| o- pscsi .................................................................................................. [Storage Objects: 0]| o- ramdisk ................................................................................................ [Storage Objects: 0]o- iscsi ............................................................................................................ [Targets: 1]| o- iqn.2025-02.com.example.lab:serverd ............................................................................... [TPGs: 1]|   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]|     o- acls .......................................................................................................... [ACLs: 0]|     o- luns .......................................................................................................... [LUNs: 0]|     o- portals .................................................................................................... [Portals: 1]|       o- 0.0.0.0:3260 ..................................................................................................... [OK]o- loopback ......................................................................................................... [Targets: 0]
/> iscsi/iqn.2025-02.com.example.lab:serverd/tpg1/acls create iqn.2025-02.com.example.lab:serverc
Created Node ACL for iqn.2025-02.com.example.lab:serverc
/> ls
o- / ......................................................................................................................... [...]o- backstores .............................................................................................................. [...]| o- block .................................................................................................. [Storage Objects: 1]| | o- target1 ..................................................................... [/dev/vdb2 (200.0MiB) write-thru deactivated]| |   o- alua ................................................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]| o- fileio ................................................................................................. [Storage Objects: 0]| o- pscsi .................................................................................................. [Storage Objects: 0]| o- ramdisk ................................................................................................ [Storage Objects: 0]o- iscsi ............................................................................................................ [Targets: 1]| o- iqn.2025-02.com.example.lab:serverd ............................................................................... [TPGs: 1]|   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]|     o- acls .......................................................................................................... [ACLs: 1]|     | o- iqn.2025-02.com.example.lab:serverc .................................................................. [Mapped LUNs: 0]|     o- luns .......................................................................................................... [LUNs: 0]|     o- portals .................................................................................................... [Portals: 1]|       o- 0.0.0.0:3260 ..................................................................................................... [OK]o- loopback ......................................................................................................... [Targets: 0]
/> iscsi/iqn.2025-02.com.example.lab:serverd/tpg1/luns create /backstores/block/target1 
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2025-02.com.example.lab:serverc

保存配置

/> saveconfig 
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

在这里插入图片描述

1.4 防火墙配置

[root@serverd ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[root@serverd ~]# firewall-cmd --reload 
success

2. 客户端配置

2.1 安装客户端软件

安装iscsi-initiator-utils

dnf install -y iscsi-initiator-utils

2.2 配置客户端

修改配置文件/etc/iscsi/initiatorname.iscsi

[root@serverc ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2025-02.com.example.lab:serverc

启动iscsid服务

systemctl enable --now iscsid

2.3 连接登录服务端

发现,登录服务端

iscsiadm --mode discoverydb --type sendtargets --portal 172.25.250.13 --discover
iscsiadm --mode node --targetname iqn.2025-02.com.example.lab:serverd --portal 172.25.250.13:3260 --login

此时可以看到iscsi磁盘已经完成挂载,本地出现新磁盘sda

fdisk -l

在这里插入图片描述

2.4 挂载使用

将磁盘格式化并挂载

[root@serverc ~]# mkfs.xfs /dev/sda
meta-data=/dev/sda               isize=512    agcount=4, agsize=12800 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1
data     =                       bsize=4096   blocks=51200, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@serverc ~]# mkdir -p /data/iscsi
[root@serverc ~]# mount /dev/sda /data/iscsi
[root@serverc ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  360M     0  360M   0% /dev
tmpfs          tmpfs     405M   84K  405M   1% /dev/shm
tmpfs          tmpfs     405M   11M  394M   3% /run
tmpfs          tmpfs     405M     0  405M   0% /sys/fs/cgroup
/dev/vda3      xfs       9.9G  5.6G  4.4G  56% /
/dev/vda2      vfat      100M  5.8M   95M   6% /boot/efi
tmpfs          tmpfs      81M  140K   81M   1% /run/user/1002
tmpfs          tmpfs      81M     0   81M   0% /run/user/0
/dev/sda       xfs       195M   12M  184M   6% /data/iscsi

测试写入

[root@serverc ~]# echo 123 > /data/iscsi/test.txt
[root@serverc ~]# cat /data/iscsi/test.txt
123

到这里基本算完成了.但既然RH342了就加点难度.
我们发现只要任何一个网络通的节点,只要客户端配置正确就能挂载这个iscsi磁盘.
这显然是不够安全的.那么我们再上点验证.

3. 安全验证扩展

假设我们给这个iscsi加个验证
用户名为:admin
密码为:redhat

3.1 服务端

配置用户名密码

/> iscsi/iqn.2025-02.com.example.lab:serverd/tpg1/acls/iqn.2025-02.com.example.lab:serverc/ set auth userid=admin password=redhat
Parameter userid is now 'admin'.
Parameter password is now 'redhat'.
/> saveconfig 
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json
/> 

3.2 客户端

先卸载挂载并退出iscsi登录

[root@serverc ~]# umount /data/iscsi 
[root@serverc ~]# iscsiadm --mode node --targetname iqn.2025-02.com.example.lab:serverd --portal 172.25.250.13:3260 --logout
Logging out of session [sid: 4, target: iqn.2025-02.com.example.lab:serverd, portal: 172.25.250.13,3260]
Logout of [sid: 4, target: iqn.2025-02.com.example.lab:serverd, portal: 172.25.250.13,3260] successful.
[root@serverc ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda           252:0    0   10G  0 disk 
├─vda1        252:1    0    1M  0 part 
├─vda2        252:2    0  100M  0 part /boot/efi
└─vda3        252:3    0  9.9G  0 part /
vdb           252:16   0    1G  0 disk 
└─datavg-lv01 253:0    0  300M  0 lvm  

修改配置文件

vi vim /etc/iscsi/iscsid.conf

打开红框这3行内容并按服务端配置修改成对应值
在这里插入图片描述
重启iscsid服务

 systemctl restart iscsid.service 

尝试重新登录

[root@serverc ~]# iscsiadm --mode node --targetname iqn.2025-02.com.example.lab:serverd --portal 172.25.250.13:3260 --login
Logging in to [iface: default, target: iqn.2025-02.com.example.lab:serverd, portal: 172.25.250.13,3260]
Login to [iface: default, target: iqn.2025-02.com.example.lab:serverd, portal: 172.25.250.13,3260] successful.
[root@serverc ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0  200M  0 disk 
vda           252:0    0   10G  0 disk 
├─vda1        252:1    0    1M  0 part 
├─vda2        252:2    0  100M  0 part /boot/efi
└─vda3        252:3    0  9.9G  0 part /
vdb           252:16   0    1G  0 disk 
└─datavg-lv01 253:0    0  300M  0 lvm  
[root@serverc ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  360M     0  360M   0% /dev
tmpfs          tmpfs     405M   84K  405M   1% /dev/shm
tmpfs          tmpfs     405M   11M  394M   3% /run
tmpfs          tmpfs     405M     0  405M   0% /sys/fs/cgroup
/dev/vda3      xfs       9.9G  5.6G  4.4G  56% /
/dev/vda2      vfat      100M  5.8M   95M   6% /boot/efi
tmpfs          tmpfs      81M  140K   81M   1% /run/user/1002
tmpfs          tmpfs      81M     0   81M   0% /run/user/0
[root@serverc ~]# mount -a
[root@serverc ~]# df -TH
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  377M     0  377M   0% /dev
tmpfs          tmpfs     425M   87k  425M   1% /dev/shm
tmpfs          tmpfs     425M   12M  414M   3% /run
tmpfs          tmpfs     425M     0  425M   0% /sys/fs/cgroup
/dev/vda3      xfs        11G  6.0G  4.8G  56% /
/dev/vda2      vfat      105M  6.1M   99M   6% /boot/efi
tmpfs          tmpfs      85M  144k   85M   1% /run/user/1002
tmpfs          tmpfs      85M     0   85M   0% /run/user/0
[root@serverc ~]# mount /dev/sda /data/iscsi/
[root@serverc ~]# cat /data/iscsi/test.txt 
123

可以看到iscsi的磁盘及内容未出现变化.而且这样多了一层用户名密码也更为安全.

4. 常见的排错点

4.1 服务端常见错误

  1. 防火墙端口未打开
  2. 服务未启动和自动开启(systemctl enable --now target)
  3. targetcli中未创建luns

4.2 客户端常见错误

  1. /etc/iscsi/initiatorname.iscsi配置和服务端不一致
  2. /etc/iscsi/iscsid.conf 配置和服务端不一致,通常是密码验证.要么就都开,要么都不开
  3. 修改配置后没有重启iscsid服务
  4. login时由于之前的错误导致无法登陆,删除/var/lib/iscsi/nodes/下的异常目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服装零售行业数字化时代的业务与IT转型规划P111(111页PPT)(文末有下载方式)

服装零售行业数字化时代的业务与IT转型规划P111 详细资料请看本解读文章的最后内容。 随着数字化技术的迅猛发展,服装零售行业正经历着前所未有的变革。本文将对《服装零售行业数字化时代的业务与IT转型规划P111》进行详细解读,探讨未来几年内该行业的…

基于javaweb的SSM+Maven宠物领养宠物商城流浪动物管理系统与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

PostgreSQL 数据库中导入大量数据

在 PostgreSQL 数据库中导入大量数据,可根据数据来源和格式选择不同的方法。以下为你详细介绍几种常见的方式: 1. 使用 COPY 命令(适用于本地数据文件) COPY 命令是 PostgreSQL 内置的高效数据导入工具,适合处理本地的数据文件。 步骤 准备数据文件 确保你的数据文件格…

C++语法之命名空间二

A.h头文件中代码&#xff1a; namespace a {void 输出(); }; A.cpp源文件中代码&#xff1a; #include <iostream> #include "A.h" void a::输出() {std::cout << "A.h里的输出函数" << std::endl; } B.h头文件中代码&#xff1a; …

基于FPGA的DDS连续FFT 仿真验证

基于FPGA的 DDS连续FFT 仿真验证 1 摘要 本文聚焦 AMD LogiCORE IP Fast Fourier Transform (FFT) 核心,深入剖析其在 FPGA 设计中的应用。该 FFT 核心基于 Cooley - Tukey 算法,具备丰富特性,如支持多种数据精度、算术类型及灵活的运行时配置。文中详细介绍了其架构选项、…

美团Leaf分布式ID生成器使用教程:号段模式与Snowflake模式详解

引言 在分布式系统中&#xff0c;生成全局唯一ID是核心需求之一。美团开源的Leaf提供了两种分布式ID生成方案&#xff1a;号段模式&#xff08;高可用、依赖数据库&#xff09;和Snowflake模式&#xff08;高性能、去中心化&#xff09;。本文将手把手教你如何配置和使用这两种…

Swift 并发任务的协作式取消

在 Swift 并发&#xff08;Swift Concurrency&#xff09;中&#xff0c;任务&#xff08;Task&#xff09;不会被强行终止&#xff0c;而是采用**协作式取消&#xff08;cooperative cancellation&#xff09;**机制。这意味着任务会被标记为“已取消”&#xff0c;但是否真正…

大数据(1.1)纽约出租车大数据分析实战:从Hadoop到Azkaban的全链路解析与优化

目录 一、背景与数据价值‌ ‌二、技术选型与组件分工‌ ‌三、数据准备与预处理‌ 四、实战步骤详解‌ ‌1. 数据上传至HDFS ‌2. Hive数据建模与清洗‌ 4‌.2.1 建表语句&#xff08;分区表按年份&#xff09;‌&#xff1a; ‌4‌.2.2 数据清洗&#xff08;剔除无效…

代码随想录刷题day50|(回溯算法篇)131.分割回文串▲

目录 一、回溯算法基础知识 二、分割回文串思路 2.1 如何切割 2.2 判断回文 2.3 回溯三部曲 2.4 其他问题 三、相关算法题目 四、总结 一、回溯算法基础知识 详见&#xff1a;代码随想录刷题day46|&#xff08;回溯算法篇&#xff09;77.组合-CSDN博客 二、分割回文…

VS Code PowerShell、Windows PowerShell、CMD 的区别与联系

VS Code PowerShell、Windows PowerShell、CMD 的区别与联系? VS Code PowerShell、Windows PowerShell、CMD 的区别与联系&#xff1a; 一、核心概念对比 名称 全称 类型 定位 VS Code PowerShell Visual Studio Code PowerShell 代码编辑器集成终端 开发/脚本编写…

关于Unity的CanvasRenderer报错

MissingReferenceException: The object of type ‘CanvasRenderer’ has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.UI.GraphicRaycaster.Raycast (UnityEng…

C++编译流程

编译器其实就是一个翻译器&#xff0c;把我们的文件内容翻译成机器能够看懂的指令&#xff0c;但如何合理翻译是核心。 C语言编译 需要经过以下几步&#xff1a; 词法分析&#xff1a;扫描代码&#xff0c;确定单词类型&#xff0c;比如是变量还是函数&#xff0c;是标识符还…

python学智能算法(八)|决策树

【1】引言 前序学习进程中&#xff0c;已经对KNN邻近算法有了探索&#xff0c;相关文章链接为&#xff1a; python学智能算法&#xff08;七&#xff09;|KNN邻近算法-CSDN博客 但KNN邻近算法有一个特点是&#xff1a;它在分类的时候&#xff0c;不能知晓每个类别内事物的具…

使用 OpenCV 拼接进行图像处理对比:以形态学操作为例

图像处理在计算机视觉中起着至关重要的作用&#xff0c;而 OpenCV 作为一个强大的图像处理库&#xff0c;提供了丰富的函数来实现各类图像处理任务。形态学操作&#xff08;Morphological Operations&#xff09;是其中常用的技术&#xff0c;尤其适用于二值图像的处理。常见的…

版本控制器Git ,Gitee如何连接Linux Gitee和Github区别

&#x1f4d6; 示例场景 假设你和朋友在开发一个「在线笔记网站」&#xff0c;代码需要频繁修改和协作&#xff1a; 只用本地文件管理 每次修改后手动复制文件&#xff0c;命名为 v1.html、v2.html 问题&#xff1a;无法追踪具体改动内容&#xff1b;多人修改易冲突&#xff1…

使用DeepSeek翻译英文科技论文,以MarkDown格式输出,使用Writage 3.3.1插件转换为Word文件

一、使用DeepSeek翻译英文科技论文&#xff0c;以MarkDown格式输出 以科技论文“Electrical Power System Sizing within the Numerical Propulsion System Simulation”为例。 关于Writage 3.3.1的进一步了解&#xff0c;可发送邮件至邮箱pyengine163.com. 首先&#xff0c;打…

【NPU 系列专栏 3.0 -- scale-out 和 scale-in 和 scale-up 和 scale-down

文章目录 Overview1. Scale-out 和 Scale-in (横向扩展/缩减)举例:AI SoC 中的 Scale-out 和 Scale-in2. Scale-up 和 Scale-down (纵向扩展/缩减)举例:AI SoC 中的 Scale-up 和 Scale-down对比总结Overview 本文会 以 AI SoC 为例 详细介绍什么是 scale-out 和 scale-i…

Spring Boot 集成 Quartz 实现定时任务(Cron 表达式示例)

Spring Boot 集成 Quartz 实现定时任务&#xff08;Cron 表达式示例&#xff09; 前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Spring Boot 观察定时任务执行5. Quartz Cron 表达式详解6. 结论 前言 在 Spring Boot 项目中&#xff0c;我们经常…

智能汽车图像及视频处理方案,支持视频智能拍摄能力

美摄科技&#xff0c;作为智能汽车图像及视频处理领域的先行者&#xff0c;凭借其卓越的技术实力和前瞻性的设计理念&#xff0c;为全球智能汽车制造商带来了一场视觉盛宴的革新。我们自豪地推出——美摄科技智能汽车图像及视频处理方案&#xff0c;一个集高效性、智能化、画质…

QPrintDialog弹出慢的问题

开发环境 操作系统: openkylin2qt版本 : 5.15.10排查过程 首先看下问题的现象, 问题现象 复现问题的demo很简单,只能是从跟踪qt代码方面入手 void MainWindow::on_pushButton_clicked(){QPrinter printer;QPrintDialog dialog(&printer,this);dialog.exec();} 现在需要找一…