Linux运维篇-iscsi存储搭建

目录

  • 概念
  • 实验介绍
    • 环境准备
    • 存储端
      • 软件安装
      • 使用targetcli来管理iSCSI共享存储
    • 客户端
      • 软件安装
      • 连接存储

概念

iSCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP Storage理论的存储技术,该技术是将存储行业广泛应用的SCSI接口技术与IP网络技术相结合,可以在IP网络上构建SAN存储区域网,简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术。

实验介绍

使用iSCSI共享存储来模拟存储实际挂载到操作系统中的情况,我这里使用两张网卡模拟两条路径的存储挂载。

IP用途
10.253.170.200客户端IP
10.253.170.201、10.253.170.202存储端IP,使用两个IP模拟多路径挂载

环境准备

两台虚拟机,其中,一台服务器做存储端,需要两张网卡,单独的一块或多块磁盘做共享存储。
在这里插入图片描述另一台做客户端,只需要一张网卡。

在这里插入图片描述需要保障两台服务器之间网络互通,另外,需要配置好yum源,来安装所需的软件。
关于配置yum源,可以参考我之前写的关于yum源搭建的文章。

存储端

软件安装

安装targetcli软件包,我这里已经提前安装过了
在这里插入图片描述
启动target服务,并配置target服务开机自启动,确保服务状态为active
在这里插入图片描述

使用targetcli来管理iSCSI共享存储

使用用tragetcli进入交互模式,修改服务端配置信息

$ targetcli  
/> ls  #使用ls命令查看菜单结构
o- / ..... [...] #顶级目录o- backstores ........................... [...] #后备存储,主备存储空间要共享的设备或分区需要添加到此处| o- block ............... [Storage Objects: 0] #块存储,backstores子目录| o- fileio .............. [Storage Objects: 0] #文件存储镜像img根据一个事先准备的文件提供存储功能,backstores子目录| o- pscsi ............... [Storage Objects: 0] #真实物理scsi设备不推荐使用,backstores子目录| o- ramdisk ............. [Storage Objects: 0] #闪存利用内存当做存储,backstores子目录    o- iscsi ......................... [Targets: 0] #以ISCSI的方式共享存储设备的目录o- loopback ...................... [Targets: 0] #回路

在这里插入图片描述将我们准备的分区添加进来(注意我们准备的分区是块设备,所以应将其添加到块设备文件之中)

/>/backstores/block create dev=/dev/sda name=lun0  #通过create命令添加设备dev用来指定要添加的设备磁盘,nam为逻辑单元名(可以自定义)

在这里插入图片描述
通过ls命令查看所添加的设备
在这里插入图片描述创建 iSCSI target

iSCSI target 名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串。稍后用户在扫描 iSCSI 服务端时即可看到这个字符串,因此我们不需要记住它。系统在生成这个 target 名称后,还会在/iscsi 参数目录中创建一个与其字符串同名的新“目录”用来存放共享资源。我们需要把前面加入到 iSCSI 共享资源池中的硬盘设备添加到这个新目录中,这样用户在登录 iSCSI 服务端后,即可默认使用这硬盘设备提供的共享存储资源了。

也可自定义生成target 名称如下规则:

通用格式:iqn.YYYY-MM.com.reversed.domain[:optional_string];
iqn:表示此名称将使用域作为其标识符;
YYYY-MM:拥有域名的第一个月;
com.reversed.domain:此 iSCSI 名称的创建组织的逆向域名;
optional_string:以冒号为前缀的可选字符串

在这里插入图片描述
查看target
在这里插入图片描述默认会一个网络监听信息 {portal} 以发现target,也可以删除默认监听自行添加
在这里插入图片描述我这里配置两个IP来做共享,因为要模拟两条路径的情况

/> /iscsi/iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952/tpg1/portals/ delete 0.0.0.0 3260 
/> /iscsi/iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952/tpg1/portals/ create 10.253.170.201 3260 
/> /iscsi/iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952/tpg1/portals/ create 10.253.170.202 3260 

配置共享资源

创建LUN代表设备(LUN 逻辑单元关联后端存储)

create /backstores/block/lun0 lun=lun0 #链接后端存储,lun可以自定义,默认是lun0

在这里插入图片描述设置访问控制列表

在这里插入图片描述开启ACL


/> /iscsi/iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952/tpg1/ set attribute generate_node_acls=1
Parameter generate_node_acls is now '1'.
/>

查看全局配置

/> ls
o- / ......................................................................................................................... [...]o- backstores .............................................................................................................. [...]| o- block .................................................................................................. [Storage Objects: 1]| | o- test ............................................................................ [/dev/vdb (40.0GiB) write-thru activated]| |   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.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952 ..................................................... [TPGs: 1]|   o- tpg1 .................................................................................................. [gen-acls, no-auth]|     o- acls .......................................................................................................... [ACLs: 1]|     | o- iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952 ........................................ [Mapped LUNs: 1]|     |   o- mapped_lun0 .................................................................................. [lun0 block/test (rw)]|     o- luns .......................................................................................................... [LUNs: 1]|     | o- lun0 ....................................................................... [block/test (/dev/vdb) (default_tg_pt_gp)]|     o- portals .................................................................................................... [Portals: 2]|       o- 10.253.170.201:3260 .............................................................................................. [OK]|       o- 10.253.170.202:3260 .............................................................................................. [OK]o- loopback ......................................................................................................... [Targets: 0]o- vhost ............................................................................................................ [Targets: 0]o- xen-pvscsi ....................................................................................................... [Targets: 0]

这里监听端口配置使用默认设置,也就是0.0.0.0:3206,也就是说使用本机的所有IP都可访问到,因为本次测试不涉及到端口监听,所以不用修改这块的配置

退出会自动保存配置信息,并重启target服务
在这里插入图片描述
确认下端口监听是否正常
在这里插入图片描述
到这里,存储端(服务端的配置就完成了)

关闭firewalld和selinux这个两个默认步骤别忘记!!!

客户端

软件安装

安装iSCSI客户端,我这里是open-iscsi

因为操作系统的不同,客户端软件可能会有所不同,但是操作是一样的。

在这里插入图片描述### 配置修改
修改客户端iSCSI 唯一标识
iSCSI 协议是通过客户端的名称来进行验证,而该名称也是 iSCSI 客户端的唯一标识,而且必须与服务端配置文件中访问控制列表中的信息一致,否则客户端在尝试访问存储共享设备时,系统会弹出验证失败的保存信息。
将原先文件中的InitiatorName注释,添加配置好的服务端的InitiatorName
在这里插入图片描述
重启iscsi服务
在这里插入图片描述

连接存储

扫描iSCSI服务端的存储资源,这里没有指定监听IP,所以需要使用客户端的主机IP

m discovery 扫描并发现可用的存储资源
-t sendtargets 指定 SCSI 目标发现
-p xx.xx.xx.xx 指定 iSCSI 发现的网络地址
[root@client ~]# iscsiadm -m discovery -t st -p 10.253.170.201:3260
10.253.170.201:3260,1 iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952
10.253.170.202:3260,1 iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952
[root@client ~]#
[root@client ~]# iscsiadm -m discovery -t st -p 10.253.170.202:3260
10.253.170.201:3260,1 iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952
10.253.170.202:3260,1 iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952
[root@client ~]#

连接iSCSI Target

[root@client ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952 -p 10.253.170.202:3260 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952, portal: 10.253.170.202,3260]
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952, portal: 10.253.170.202,3260] successful.
[root@client ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952 -p 10.253.170.201:3260 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952, portal: 10.253.170.201,3260]
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.aarch64:sn.34f9bd0c0952, portal: 10.253.170.201,3260] successful.

查看客户端的连接情况

sda和sdb设备就是我们的iSCSI存储,到这里iSCSI存储的配置就完成了

[root@client ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   40G  1 disk
sdb             8:16   0   40G  1 disk
sr0            11:0    1  3.9G  0 rom  /mnt
vda           253:0    0   40G  0 disk
├─vda1        253:1    0  600M  0 part /boot/efi
├─vda2        253:2    0    1G  0 part /boot
└─vda3        253:3    0 38.4G  0 part├─klas-root 252:0    0 34.4G  0 lvm  /└─klas-swap 252:1    0    4G  0 lvm  [SWAP]

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

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

相关文章

《Spring 数据访问:高效整合数据库与 ORM》

一、Spring 数据访问概述 Spring 在数据访问方面具有至关重要的地位,它为开发者提供了强大而高效的数据访问解决方案。 (一)强大的数据访问支持 Spring 提供了多种数据访问方式,以满足不同项目的需求。JDBC 是一种传统的数据访问…

AMD(Xilinx) FPGA配置Flash大小选择

目录 1 FPGA配置Flash大小的决定因素2 为什么选择的Flash容量大小为最小保证能够完成整个FPGA的配置呢? 1 FPGA配置Flash大小的决定因素 在进行FPGA硬件设计时,选择合适的配置Flash是我们进行硬件设计必须考虑的,那么配置Flash大小的选择由什…

解读缓存问题的技术旅程

目录 前言1. 问题的突发与初步猜测2. 缓存的“隐身术”3. 缓存策略的深层优化4. 反思与感悟结语 前言 那是一个普通的工作日,团队例行的早会刚刚结束,我正准备继续优化手头的模块时,突然收到了用户反馈。反馈的内容是部分数据显示异常&#…

Block Successive Upper Bound Minimization Method(BSUM)算法

BSUM优化方法学习 先验知识参考资料1 A Unified Convergence Analysis of Block Successive Minimization Methods for Nonsmooth OptimizationSUCCESSIVE UPPER-BOUND MINIMIZATION (SUM) 连续上限最小化算法THE BLOCK SUCCESSIVE UPPER-BOUND MINIMIZATION ALGORITHM 块连续上…

开源 AI 智能名片 2+1 链动模式商城小程序:场景驱动的商业创新与用户价值挖掘

摘要:本文围绕开源 AI 智能名片 21 链动模式商城小程序源码,深入分析了场景中的时间、空间、设备、社交和状态五大核心元素。阐述了各元素的表现形式、应用策略及价值,包括时间元素对业务周期和用户行为的影响及相应营销策略;空间…

【PyTorch】Pytorch中torch.nn.Conv1d函数详解

1. 函数定义 torch.nn.Conv1d 是 PyTorch 中用于一维卷积操作的类。定义如下: 官方文档:https://pytorch.ac.cn/docs/stable/generated/torch.nn.Conv1d.html#torch.nn.Conv1d torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride1,paddi…

绿光一字线激光模组:工业制造与科技创新的得力助手

在现代工业制造和科技创新领域,绿光一字线激光模组以其独特的性能和广泛的应用前景,成为了不可或缺的关键设备。这种激光模组能够发射出一条明亮且精确的绿色激光线,具有高精度、高稳定性和长寿命的特点,为各种精密加工和测量需求…

【Linux】【Shell】Shell 基础与变量

Shell 基础 Shell 基础查看可用的 Shell判断当前 Shell 类型 变量环境变量查看环境变量临时环境变量永久环境变量PATH 变量 自定义变量特殊赋值(双引号、单引号、反撇号) 预定义变量bashrc Shell 基础 Shell 是一个用 C 语言编写的程序,相当于是一个翻译&#xff0c…

【SQL50】day 2

目录 1.每位经理的下属员工数量 2.员工的直属部门 3.判断三角形 4.上级经理已离职的公司员工 5.换座位 6.电影评分 7.修复表中的名字 8.患某种疾病的患者 9.删除重复的电子邮箱 1.每位经理的下属员工数量 # Write your MySQL query statement below #e1是经理,…

FIFO和LRU算法实现操作系统中主存管理

FIFO&#xff0c;用数组实现 1和2都是使用nextReplace实现新页面位置的更新 1、不精确时间&#xff1a;用ctime输出运行时间都是0.00秒 #include <iostream> #include <iomanip> #include<ctime>//用于计算时间 using namespace std;// 页访问顺序 int pa…

ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;资源共享平台设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本资源共享平台就是在…

LeetCode 力扣 热题 100道(六)合并两个有序链表(C++)

合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[]示…

ubuntu显示管理器_显示导航栏

ubuntu文件管理器_显示导航栏 一、原始状态&#xff1a; 二、显示导航栏状态&#xff1a; 三、原始状态--->导航栏状态: 1、打开dconf编辑器&#xff0c;直接在搜索栏搜索 dconf-editor ------如果没有安装&#xff0c;直接按流程安装即可。 2、进入目录&#xff1a;org …

高集成的MCU方案已成电机应用趋势?

【哔哥哔特导读】高集成化的芯片成为当下MCU领域研发和市场布局的重点&#xff0c;但是在实际应用中仍然面临散热等痛点问题&#xff0c;MCU厂商是如何解决和优化这些痛点&#xff1f; 随着全球工业自动化、智能制造和绿色发展的不断推进&#xff0c;中国电机行业正站在新一轮…

购物街项目TabBar的封装

1.TabBar介绍 在购物街项目中 不论页面如何滚动 始终存在一个TabBar固定在该项目的底部 他在该项目中 扮演者选项卡栏的角色 内部存在若干选项 而选项中 固定存在两部分(图片文本) 其中主要涉及到TabBar/TabBarItem这些和业务无关的共享组件(建议存放于components/common中)、…

优化表单交互:在 el-select 组件中嵌入表格显示选项

介绍了一种通过 el-select 插槽实现表格样式数据展示的方案&#xff0c;可更直观地辅助用户选择。支持列配置、行数据绑定及自定义搜索&#xff0c;简洁高效&#xff0c;适用于复杂选择场景。完整代码见GitHub 仓库。 背景 在进行业务开发选择订单时&#xff0c;如果单纯的根…

最新Kali安装详细版教程(附安装包,傻瓜式安装教程)

本文主要详细介绍 kali 的安装过程&#xff0c;以及安装完成后的基本设置&#xff0c;比如安装增强工具&#xff0c;安装中文输入法以及更新升级等操作。 文章目录 实验环境准备工作步骤说明安装虚拟机安装 Kali安装增强工具安装中文输入法更新升级 实验环境 VMware &#x…

细说STM32单片机DMA中断收发RTC实时时间并改善其鲁棒性的方法

目录 一、DMA基础知识 1、DMA简介 (1)DMA控制器 (2)DMA流 (3)DMA请求 (4)仲裁器 (5)DMA传输属性 2、源地址和目标地址 3、DMA传输模式 4、传输数据量的大小 5、数据宽度 6、地址指针递增 7、DMA工作模式 8、DMA流的优先级别 9、FIFO或直接模式 10、单次传输或突…

H.265流媒体播放器EasyPlayer.js H5流媒体播放器如何验证视频播放是否走硬解

随着技术的不断进步和5G网络的推广&#xff0c;中国流媒体播放器行业市场规模以及未来发展趋势都将持续保持稳定的增长&#xff0c;并将在未来几年迎来新的发展机遇。流媒体播放器将继续作为连接内容创作者和观众的重要桥梁&#xff0c;推动数字媒体产业的创新和发展。 EasyPla…

仿Mybatis代码生成.获取索引信息

获取索引信息 1.核心思路 通过以下sql语句&#xff0c;例如对于user表 show index from user 执行结果如下: 2.实现 连接数据库后执行sql语句&#xff0c;我们重点关注下图标注的三个熟悉 代码如下: PreparedStatement ps null;ResultSet fieldResult null;List<Fiel…