[RH342]iscsi配置与排错

ops/2025/3/29 15:36:58/

[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.ppmy.cn/ops/167153.html

相关文章

Go Ebiten小游戏开发:2048

项目简介 这是一个使用Go语言和Ebiten游戏引擎开发的2048游戏。2048是一款经典的数字滑块游戏,玩家通过上下左右移动合并相同数字,目标是获得2048数字方块。 核心算法实现 游戏数据结构 const (gridSize 4 // 4x4网格 )var (grid [gridSize][gridS…

自然语言处理入门

第一章 自然语言处理入门 1 什么是自然语言处理 【什么是人工智能,分别对应哪几个领域】 AI是模仿甚至超越人的某项机能,NLP、CV、ASR NLP是机器理解并生成人类语言2 自然语言处理的发展简史 1950 -- 图灵提出“机器能思考吗”,划时代性的…

SpringSecurity——如何使用自定义的登录页面

创建自定义登录页面 你需要在你的前端项目中创建一个自定义的登录页面&#xff0c;例如login.html&#xff0c;这个页面将包含一个表单用于输入用户名和密码&#xff0c;并提交到Spring Security的认证端点。 示例login.html页面&#xff1a; <!DOCTYPE html> <htm…

拖拽实现+摇杆实现

拖拽实现 拖拽事件实现: 半透明渐变贴图在ios设备下&#xff0c;使用压缩会造成图片质量损失&#xff0c;所以可以将半透明渐变UI切片单独制作真彩色图集 拖拽事件组 IBeginDragHandler:检测到射线后&#xff0c;当拖拽动作开始时执行一次回调函数 IDragHandler:拖拽开始后&a…

docker 安装mysql

第一步&#xff1a;利用docker拉取镜像 docker pull mysql:5.7 代表安装成功&#xff0c;然后可以使用docker images查询已经拉取成功的镜像 第二步&#xff1a;快速安装mysql 快速安装一般不需要挂载配置&#xff0c;如需挂载配置文件&#xff0c;需要查看当前mysql的配置文…

腾龙T2000边缘计算网关:开启智能物联新时代

在当今数字化浪潮中&#xff0c;物联网与边缘计算技术正以前所未有的速度改变着世界。腾龙一体机应运而生&#xff0c;成为这一变革中的关键力量。它不仅是一款高性能的硬件设备&#xff0c;更是集成了先进的 AIoTedge 物联网平台&#xff0c;为企业和开发者提供强大而灵活的解…

SwinTransformer 改进:添加DoubleAttention模块提升上下文语义提取能力

目录 1. DoubleAttention模块 2. SwinTransformer + DoubleAttention 3. 完整代码 Tips:融入模块后的网络经过测试,可以直接使用,设置好输入和输出的图片维度即可 1. DoubleAttention模块 DoubleAttention 是一种用于计算机视觉任务的注意力机制,旨在通过双重注意力机制…

OceanBase 4.3.3 AP 功能解析:物化视图

OceanBase 在2024 年度发布会中正式发布了 4.3.3 GA 版本&#xff0c;作为 AP 场景的主推版本。本文分享 OB 4.3.3 AP 能力的主力功能之一 —— 物化视图。 物化视图特性概述 OceanBase的AP功能具备众多关键特性。之前我们已经介绍了外部表、JSON类型、RoaringBitmap类型以及列…