targetcli搭建iscsi

targetcli搭建iscsi

介绍

linux中,使用targetcli搭建iscsi

假设使用磁盘分区或者逻辑卷,/dev/sdb1 /dev/sdb2,并且

一台机器为服务器,两台机器为客户端

服务器:192.168.0.3
客户端:192.168.0.4 192.168.0.5

如果只有两台机器,那么需要一台机器既为服务端又为客户端。

内容
1、下载安装软件

Centos下:

yum -y install targetcli

其他自行下载

https://pkgs.org/

自行下载

下载安装后需要在服务端保证服务启动,执行如下命令:

systemctl start target
或
systemctl start tgt.service

服务端保证iSCSI正常启动,执行如下:

systemctl status iscsi

systemctl start iscsi

防火墙或者开放端口,主要是3260端口,自行设置。

2、服务端配置

执行如下进入targetcli界面

targetcli

首先创建要使用的逻辑卷,如下命令:

/backstores/block/ create xendata1 /dev/sdb1
/backstores/block/ create xendata2 /dev/sdb2

如图:
在这里插入图片描述

然后配置ISCSITarget命名,即创建 IQN (Iscsi Qualified Name) ,执行如下命令:

 iscsi/ create iqn.2024-05.com.smile:smile1

创建完成后开始下面的配置:

 cd iscsi/iqn.2024-05.com.smile:smile1/tpg1/

创建lun(target块设备的逻辑单元):

luns/ create /backstores/block/xendata1
luns/ create /backstores/block/xendata2

后续我们的客户端都会共享到这两个逻辑卷,如果更多配置请自行设置。

此处如果没有portals/,需要自行创建,大部分情况下已经存在!

并且后续使用此端口:

portals/ create 0.0.0.0 3261

创建ACL允许ISCSI客户机连接:

acls/ create iqn.2018-06.com.xenserver:client

此处的 “iqn.2018-06.com.xenserver:client” 应该去客户端上看,
位于 /etc/iscsi/initiatorname.iscsi 下,应该和此文件中的名称一致

创建用户和密码,执行如下:

cd acls/
cd iqn.2018-06.com.xenserver:client/
set auth userid=ye
set auth password=123456
info

如果需要多台机器共享,重复创建acls即可
在这里插入图片描述
在这里插入图片描述

3、客户端配置
安装:
yum -y install iscsi-initiator-utils
或
yum -y install iscsi-initiator-utils

配置ISCSIInitiator名称(此处InitiatorName须与服务端配置的ACL允许ISCSI客户机连接的名称一致),如下:

InitiatorName=iqn.2018-06.com.xenserver:client

最好不要修改这个文件!!!!!!

修改ISCSIInitiator配置文件:

vim /etc/iscsi/iscsid.conf

添加:
node.session.auth.authmethod = CHAP
node.session.auth.username = ye
node.session.auth.password = 123456

查找、连接ISCSI设备,如下:

iscsiadm --mode discovery --type st --portal xxxx:xx
iscsiadm --mode node --targetname xxx --portal xxxx:xx --login

在这里插入图片描述

### 配置和搭建 Linux 上的 iSCSI 服务器及客户端 #### 安装必要的软件包 为了使 Linux 成为一个功能齐全的 iSCSI 服务器,需先安装 `targetcli` 或者 `lio-utils` 软件包来提供 iSCSI Target 功能。对于大多数现代发行版来说,可以使用默认的包管理器完成此操作。 ```bash sudo apt-get install targetcli-fb # 对于基于 Debian 的系统 # 或者 sudo yum install lio-utils # 对于基于 Red Hat 的系统 ``` #### 创建并配置 iSCSI Target 创建一个新的 LUN (逻辑单元号),这可以通过文件或者实际硬盘分区实现。这里展示通过创建稀疏文件的方式建立虚拟磁盘: ```bash dd if=/dev/zero of=/var/lib/iscsi/disks/mydisk.img bs=1M count=0 seek=10240 ``` 接着启动 `targetcli` 并进入交互模式设置 Target 和映射刚创建好的文件作为 LUN: ```bash sudo targetcli /> backstores/fileio create mydisk /var/lib/iscsi/disks/mydisk.img /> iscsi/ create iqn.2023-08.com.example:myserver /> iscsi/iqn.../tpg1/luns/ create /backstores/fileio/mydisk /> saveconfig ``` 上述命令会创建一个名为 `mydisk` 的 LUN,并将其关联到指定 IQN 下的一个 TPG(Target Portal Group)[^4]。 #### 启动服务与防火墙配置 确保 iSCSI Target 服务已启用并且开机自启: ```bash sudo systemctl enable tcm\_service --now ``` 如果存在防火墙,则允许相应的端口通行(通常是 TCP 3260 端口): ```bash sudo firewall-cmd --add-port=3260/tcp --permanent sudo firewall-cmd --reload ``` #### Windows 客户端连接至 iSCSI Target 在 Windows 中,需要下载并安装 Microsoft 提供的官方 iSCSI Initiator 工具[^1]。一旦安装完毕,在图形界面里输入之前定义的目标名称(IQN),点击快速链接按钮即可尝试自动发现 Targets;成功后选择要挂载的具体 LUN 进行登录操作。 #### Linux 客户端连接至 iSCSI Target 对于其他 Linux 主机而言,同样也需要安装对应的 iSCSI Initiator 实现访问远程设备的功能。一般情况下可以直接利用系统的内置支持而无需额外安装任何东西。编辑 `/etc/iscsi/initiatorname.iscsi` 文件设定本机发起者的唯一标识符(IQN), 接着运行如下指令扫描可用 targets 及登陆选定 session : ```bash sudo iscsiadm -m discovery -t sendtargets -p <Target IP Address> sudo iscsiadm -m node -T <Target IQN> -l ``` 最后一步是确认新加入的 SCSI 设备已经正确识别出来,可通过查看 dmesg 输出或直接查询 `/dev/sd*` 列表变化得知结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值