iscsi挂载

服务端创建大小为1G的虚拟块设备

dd if=/dev/zero of=/root/virt_block_dev bs=1M count=1024

---------------------------------------linux---------------------------------------

服务端安装步骤(initiator-address以网段赋值,允许该网段的所有主机连接):

yum install scsi-target-utils.x86_64

vim /etc/tgt/targets.conf
<target iqn.2021-12.dev.iscsi-target:iscsidisk>
backing-store /root/virt_block_dev
initiator-address ***.***.***.0/24
incominguser name pwd
write-cache off
</target>

service tgtd restart
tgt-admin -show

客户端安装步骤:

yum install -y iscsi-initiator-utils
systemctl start iscsi
systemctl start iscsid
iscsiadm -m discovery -t sendtargets -p IP
iscsiadm -m node -T iqn.**** -p IP -l  (-l为登入,-u为登出,-o delete为删除)
iscsiadm -m session 

fdisk -l 查看新增盘
fdisk /dev/* 分区
mkfs.xfs *** 格式化
mount /dev/*1 /mnt 挂载  (注:网络较差时需加上 -o sync 选项)

注:若客户端登入成功,fdisk -l却发现不了新的块设备,可往对应target再添加新的lun试试,tgtadm --lld iscsi --op new --mode logicalunit --tid 2 --lun 1 -b /dev/sdd   (标黄部分对应tgt-admin -show中的目标ID、新建的lun ID、对应块设备),后续删除指令 tgtadm --lld iscsi --op delete --mode logicalunit --tid 2 --lun 1

若为windows下进行挂载,在搜索框输入iscsi,双击“iscsi发起程序”,按照提示安装iscsi服务。进入界面输入ip快速连接,下方发现框出现目标,选中后点击连接即可。挂载成功后,在服务器管理器中查看新增的磁盘,右键关联,再新增卷分区格式化即可。

若服务端已经配置了initiator-address对应网段,且已经关闭防火墙和SELINUX等服务,此时客户端仍然无法发现目标,可能是targets.conf配置的ini地址没生效,可设置该iqn开放给全部客户端。

方法如下:

服务端执行: tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL,对target 1指定所有客户端ip都能访问,再到客户端查看发现情况。

服务端动态添加配置(重启后将失效),以下实例添加 target 2

#添加target
tgtadm --lld iscsi --mode target --op new --targetname iqn.2022-01.dev.iscsi-target:sdd --tid 2
#对target添加lun,绑定块设备
tgtadm --lld iscsi --mode logicalunit --op new --tid 2 --lun 1 --backing-store /dev/sdd
#开放目标地址
tgtadm --lld iscsi --mode target --op bind --tid 2 --initiator-address 192.168.11.19
./exptool create-target /root/qcow_dir/1111.qcow2 --uuid 1111122222 --initiator iqn.1994-05.com.redhat:8fafc81149aa

./exptool delete-target /root/qcow_dir/1111.qcow2

-----------------------------------------windows----------------------------------

客户端:

1、启动服务 net start msiscsi

2、发现 iscsicli QAddTargetPortal 192.168.***

3、登录 iscsicli QloginTarget iqn****

4、登出 iscsicli logoutTarget iqn****

5、删除目标 iscsicli RemoveTarget iqn****

******************************以下为targetcliiscsiadm的使用示例************************************

存储管理端targetcli使用(使用分区添加lun):

一、存储端添加lun

1、/backstores/block create sto_obj /dev/sdc1   关联存储对象  名称为sto_obj (也可在/backstores/fileio中创建文件io,关联qcow2、img等文件)

2、iscsi/ create  创建target 名称自动生成

3、iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.18cb4269e24a/tpg1/luns create /backstores/block/sto_obj  创建lun,关联对象sto_obj

4、iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.18cb4269e24a/tpg1/acls create TARGET_IQN  创建acl  (这里的TARGET_IQN是目标机的iqn,/etc/iscsi/initiatorname.iscsi文件中)

二、客户端挂载iscsi,卸载iscsi

1、iscsiadm -m discovery -t sendtargets -p 《存储ip》

2、iscsiadm -m node -T 《选中的iqn》 -p 《存储ip》 -l

3、mount /dev/sd* ***

4、使用存储的lun

5、不使用了进行卸载umount -l ***

6、iscsiadm -m node -T 《选中的iqn》 -p 《存储ip》 -u

7、iscsiadm -m node -T 《选中的iqn》 -p 《存储ip》 -o delete

三、存储端删除lun

1、iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.18cb4269e24a/tpg1/acls/ delete iqn.1994-05.com.redhat:a629759f4cf  删除acl

2、iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.18cb4269e24a/tpg1/luns/ delete lun0  删除lun

3、iscsi/ delete iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.18cb4269e24a  删除target

4、backstores/block/ delete sto_obj   删除对象

###########################常见问题#########################

1、iscsi挂载中突然断电导致下次重启后,iscsi discovery报异常,且login无法成功。警告如下:iscsiadm: Could not stat *****。此时只需删除/var/lib/iscsi/nodes/目录下的全部内容即可,重新发现在登录即可成功。

2、怎么区别那个磁盘时iscsi挂载过来的,linux环境下使用  lsscsi -t  指令可以查看(再使用iscsiadm -m session 则可以查看存储端的ip)。如下图

3、写入挂载点的数据有异常,系统日志/var/log/messages报错:"I/Oerror****lost async page****",这是因为网络环境差波动大导致的iscsi连接经常断线重连,会丢数据。mount 命令默认使用async的方式挂载,使用了缓存,网络较差时有丢数据的风险,解决方法为卸载挂载点重新执行mount -o sync ***使用同步挂载的方式则可解决。

windows一键删除所有iscsi连接的批处理脚本(linux直接执行命令iscsiadm -m node -U all):

@echo off
::退出所有session
for /f "tokens=4" %%a in ('iscsicli SessionList ^| findstr 会话') do (
    iscsicli LogoutTarget %%a
)

::删除所有target
for /f %%a in ('iscsicli ListTargets') do (
    iscsicli RemoveTarget %%a
)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux iSCSI是一种用于在计算机之间传输块级数据的协议。它允许将存储设备(如硬盘驱动器)通过网络连接到远程计算机,并使其在本地计算机上看起来像本地存储设备一样。这样,远程计算机可以像使用本地存储设备一样访问和操作远程存储设备。 要在Linux上使用iSCSI,您需要进行以下步骤: 1. 安装iSCSI软件:使用以下命令安装与iSCSI相关的软件: ```shell yum install iscsi yum install iscsi-initiator-utils.x86_64 ``` 2. 配置iSCSI Initiator:编辑iSCSI Initiator的配置文件以指定远程存储设备的位置和访问凭据。您可以使用以下命令编辑配置文件: ```shell vi /etc/iscsi/initiatorname.iscsi ``` 在文件中,您需要设置以下参数: - InitiatorName:指定本地计算机的iSCSI Initiator名称。 - TargetAddress:指定远程存储设备的IP地址或主机名。 - TargetName:指定远程存储设备的iSCSI Target名称。 - Username和Password:如果需要身份验证,则指定访问远程存储设备所需的用户名和密码。 3. 连接到远程存储设备:使用以下命令连接到远程存储设备: ```shell iscsiadm -m discovery -t sendtargets -p <远程存储设备的IP地址或主机名> iscsiadm -m node -T <远程存储设备的iSCSI Target名称> -l ``` 4. 验证连接:使用以下命令验证与远程存储设备的连接: ```shell iscsiadm -m session ``` 您应该能够看到已建立的iSCSI会话。 请注意,这只是一个简单的介绍和演示,实际使用iSCSI可能涉及更多的配置和设置。具体的步骤和命令可能因您的操作系统和iSCSI实现而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值