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

Linux下搭建iSCSI共享存储-Tgt

Linux下搭建iSCSI共享存储-Tgt

在Linux上使用tgt搭建iSCSI共享存储,可以实现多个客户端同时访问共享存储。

1. 安装iSCSI Target软件包

使用下面命令安装:

# centos
sudo yum install scsi-target-utils
sudo systemctl status tgtd

# ubuntu
sudo apt-get update -y
sudo apt-get install tgt -y
sudo systemctl status tgt

2. 配置iSCSI Target

编辑iSCSI Target的配置文件/etc/tgt/targets.conf,添加你想要共享的磁盘或分区。

<target iqn.2023-09.com.example:mytarget>
    backing-store /dev/vdb
</target>

iqn.2023-09.com.example:mytarget是iSCSI目标的唯一标识符,/dev/vdb是要共享的磁盘或分区。

说明

  1. /etc/tgt/conf.d/sample.conf下面是配置文件示例,更多复杂的配置参考该文件语法格式。
  2. 如果是ubuntu系统,配置文件路径应为:/etc/tgt/conf.d/iscsi.conf

重启tgtd服务使配置生效:

sudo systemctl enable tgtd/tgt
sudo systemctl restart tgtd/tgt

显示所有的iSCSI target:

tgtadm --mode target --op show

3. 配置防火墙

确保iSCSI端口(默认是3260)在防火墙中开放:

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

4. 配置发起端(Initiator)

以linux为例,安装iSCSI Initiator:

# centos
sudo yum install iscsi-initiator-utils -y

# ubuntu
sudo apt-get install open-iscsi -y

4.1 发现iSCSI target端

在发起端,首先使用以下命令发现目标端上的iSCSI目标:

sudo iscsiadm -m discovery -t st -p <目标端IP地址>

输出类似于:

<目标端IP地址>:3260,1 iqn.2023-09.com.example:mytarget

4.2 登录到目标端

sudo iscsiadm -m node --targetname iqn.2023-09.com.example:mytarget --portal <目标端IP地址> --login

输出类似于:

Logging in to [iface: default, target: iqn.2023-09.com.example:mytarget, portal: <目标端IP地址>,3260] (multiple)
Login to [iface: default, target: iqn.2023-09.com.example:mytarget, portal: <目标端IP地址>,3260] successful.

登录成功后,发起端的系统会检测到一个新的磁盘设备,可以通过lsblkfdisk -l查看。

5. 自动登录并挂载iSCSI存储

5.1 配置开机自动登录

sudo iscsiadm -m node --targetname iqn.2023-09.com.example:mytarget --portal <目标端IP地址> --op update -n node.startup -v automatic

5.2 挂载iSCSI存储

创建文件系统并挂载新磁盘,例如:

sudo mkfs.ext4 /dev/sdX
sudo mkdir /mnt/iscsi_disk
sudo mount /dev/sdX /mnt/iscsi_disk

说明

如果是多个发起端挂载同一个LUN,需要配置共享集群文件系统,而ext4等linux常用的文件系统用于单节点的文件系统。

6. 测试

在发起端上可以向挂载的iSCSI存储中写入数据,并通过目标端验证存储是否正常工作。

7. 退出iSCSI会话

如果需要断开连接,可以使用以下命令:

sudo iscsiadm -m node --targetname iqn.2023-09.com.example:mytarget --portal <目标端IP地址> --logout

http://www.kler.cn/a/318134.html

相关文章:

  • Django 模型中使用选择(choices):全面指南
  • 重塑数字文档处理:TX Text Control的2024年里程碑
  • 用Python PySide6 复刻了两软件UI 做下练习
  • Spring(三)-SpringWeb-概述、特点、搭建、运行流程、组件、接受请求、获取请求数据、特殊处理、拦截器
  • 利用Gurobi追溯模型不可行原因的四种方案及详细案例
  • 【经验总结】AUTOSAR架构下基于TJA1145收发器偶发通信丢失不可恢复问题分析
  • C++封装
  • 如何在C++中使用Poppler库读取PDF文件(一)
  • 解决方案 | 镭速助力动漫游戏行业突破跨网文件交换瓶颈
  • JUC并发编程_四大函数式接口
  • provide,inject父传子
  • Git使用教程-将idea本地文件配置到gitte上的保姆级别教程
  • 3.postman脚本语言、接口关联(json引用(变量)、脚本用正则表达式)、断言封装、自动化构造接口请求(Postman工具)
  • 如何在云端使用 Browserless 进行网页抓取?
  • 数据结构_1.1、数据结构的基本概念
  • 高校心理辅导系统:Spring Boot技术实现指南
  • Linux usb core阅读
  • 安卓沉浸式状态栏遇到的问题
  • 【Linux实践】实验三:LINUX系统的文件操作命令
  • 【强化学习系列】Gym库使用——创建自己的强化学习环境3:矢量化环境+奖励函数设计
  • 【30天玩转python】单元测试与调试
  • 制造企业MES系统委外工单管理探析
  • js中正则表达式中【exec】用法深度解读
  • 【Finetune】(五)、transformers之LORA微调
  • JetLinks物联网学习(前后端项目启动)
  • 学习编程利器《西蒙学习法》