Linux服务管理-iSCSI

iSCSI 基础知识

iSCSI(Internet Small Computer System Interface)协议是一种基于IP网络的存储协议,它允许主机(计算机或服务器)通过TCP/IP网络访问远程存储设备。该协议具有以下主要特点:

  1. 灵活性:iSCSI可以在现有的IP网络基础上进行部署,不需要单独建立存储网络,从而大大降低了存储网络的部署成本。

  2. 高性能:通过使用高速以太网技术,iSCSI可以提供与Fibre Channel相媲美的性能,满足企业对存储性能的需求。

  3. 易管理:iSCSI协议的部署和管理相对简单,可以通过标准的网络管理工具进行管理,降低了对专业存储人员的需求。

  4. 兼容性:iSCSI协议可以与现有的存储设备兼容,无需更换现有的存储设备,进一步降低了存储升级的成本。

实验

参考:第 9 章 配置 iSCSI 目标 | Red Hat Product Documentation

第 10 章 配置 iSCSI initiator | Red Hat Product Documentation

配置 iSCSI 目标

Red Hat Enterprise Linux 使用 targetcli shell 作为命令行界面执行以下操作:

  • 添加、删除、查看和监控 iSCSI 存储间的连接来利用 iSCSI 硬件。

  • 将由文件、卷、本地 SCSI 设备或者 RAM 磁盘支持的本地存储资源导出到远程系统。

targetcli 工具带有一个基于树形的布局,包括内置的 tab 完成 、自动完成支持和在线文档。

安装 targetcli

安装 targetcli 工具来添加、监控和删除 iSCSI 存储间的连接

# 设置selinux为宽容模式
[root@vm1 ~]# setenforce 0
# 在防火墙中打开端口 3260,并重新载入防火墙配置
[root@vm1 ~]# firewall-cmd --permanent --add-port=3260/tcp
[root@vm1 ~]# firewall-cmd --reload
# 安装targetcli
[root@vm1 ~]# yum -y install targetcli

进入交互模式进行配置(可以使用非交互模式):

[root@vm1 ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
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]
/>

创建后备存储

给虚拟机添加一块20G的nvme硬盘

[root@vm1 ~]# ls /dev/nvme0n2
/dev/nvme0n2
[root@vm1 ~]# gdisk /dev/nvme0n2
[root@vm1 ~]# udevadm settle 
[root@vm1 ~]# lsblk /dev/nvme0n2
NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n2     259:3    0  20G  0 disk 
└─nvme0n2p1 259:5    0   2G  0 part 
[root@vm1 ~]#

通过随机字符创建一个500M的文件

[root@vm1 ~]# dd if=/dev/urandom of=/testfile bs=10M count=50
50+0 records in
50+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 14.0538 s, 37.3 MB/s
[root@vm1 ~]# du -sh /testfile 
500M    /testfile
[root@vm1 ~]#

创建块存储对象

创建fileio存储对象

创建 iSCSI 目标

/> iscsi/ create iqn.2024-04.com.a:server
Created target iqn.2024-04.com.a:server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls

创建 iSCSI ACL

targetcli 服务使用访问控制列表(ACL)来定义访问规则,并授予每个启动器访问逻辑单元号(LUN)的权限。

目标和发起方都有唯一的标识名称。您必须知道配置 ACL 的发起方的唯一名称。由 iscsi-initiator-utils 软件包提供的 /etc/iscsi/initiatorname.iscsi 文件包含 iSCSI 启动器名称。

先决条件

  • targetcli 服务 已安装 并在运行。

  • 与目标门户组(TPG)关联的 iSCSI 目标。

创建 iSCSI LUN

逻辑单元号(LUN)是一个由 iSCSI 后端存储支持的物理设备。每个 LUN 都有唯一的数字。

先决条件

  • 已安装并运行 targetcli。如需更多信息,请参阅安装 targetcli。

  • 与目标门户组(TPG)关联的 iSCSI 目标。如需更多信息,请参阅创建 iSCSI 目标。

  • 已创建存储对象。如需更多信息,请参阅 iSCSI Backstore。

创建 iSCSI 门户

创建 iSCSI 门户,为目标添加一个 IP 地址和端口来启用目标。

先决条件

  • 已安装并运行 targetcli。如需更多信息,请参阅安装 targetcli。

  • 与目标门户组(TPG)关联的 iSCSI 目标。如需更多信息,请参阅创建 iSCSI 目标。

修改portals,仅监听ens160网卡的ip和端口

/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json
[root@vm1 ~]# 退出自动保存
[root@vm1 ~]# systemctl enable --now target
Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.
[root@vm1 ~]# 

客户端验证

# vm2:客户端   192.168.99.200 
[root@vm2 ~]# setenforce 0
[root@vm2 ~]# firewall-cmd --set-default-zone=trusted
[root@vm2 ~]# yum -y install iscsi-initiator-utils
[root@vm2 ~]# vim /etc/iscsi/initiatorname.iscsi 
[root@vm2 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2024-04.com.a:vm2(服务端acl)
[root@vm2 ~]# systemctl restart iscsid iscsi
[root@vm2 ~]#
​
# 发现并登录远程存储:可以从man帮助查看示例:
[root@vm2 ~]# man iscsiadm
发现:
[root@vm2 ~]# iscsiadm --mode discoverydb --type sendtargets  --portal  192.168.99.100 --discover
192.168.99.100:3260,1 iqn.2024-04.com.a:server
[root@vm2 ~]# lsblk
NAME              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0                11:0    1  10.6G  0 rom  /run/media/root/CentOS-Stream-8-x86_64-dvd
nvme0n1           259:0    0   200G  0 disk 
├─nvme0n1p1       259:1    0     1G  0 part /boot
└─nvme0n1p2       259:2    0   199G  0 part ├─cs_bogon-root 253:0    0    70G  0 lvm  /├─cs_bogon-swap 253:1    0     4G  0 lvm  [SWAP]└─cs_bogon-home 253:2    0 125.1G  0 lvm  /home
[root@vm2 ~]#
​
# 登录:
[root@vm2 ~]# iscsiadm  --mode  node --targetname iqn.2024-04.com.a:server --portal 192.168.99.100:3260 --login
Logging in to [iface: default, target: iqn.2024-04.com.a:server, portal: 192.168.99.100,3260]
Login to [iface: default, target: iqn.2024-04.com.a:server, portal: 192.168.99.100,3260] successful.
[root@vm2 ~]# lsblk
NAME              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                 8:0    0     2G  0 disk 
sdb                 8:16   0   500M  0 disk 
sr0                11:0    1  10.6G  0 rom  /run/media/root/CentOS-Stream-8-x86_64-dvd
nvme0n1           259:0    0   200G  0 disk 
├─nvme0n1p1       259:1    0     1G  0 part /boot
└─nvme0n1p2       259:2    0   199G  0 part ├─cs_bogon-root 253:0    0    70G  0 lvm  /├─cs_bogon-swap 253:1    0     4G  0 lvm  [SWAP]└─cs_bogon-home 253:2    0 125.1G  0 lvm  /home
[root@vm2 ~]#
​
# 登出:
[root@vm2 ~]# iscsiadm  --mode  node --targetname iqn.2024-04.com.a:server --portal 192.168.99.100:3260 --logout
Logging out of session [sid: 1, target: iqn.2024-04.com.a:server, portal: 192.168.99.100,3260]
Logout of [sid: 1, target: iqn.2024-04.com.a:server, portal: 192.168.99.100,3260] successful.
[root@vm2 ~]# lsblk
NAME              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0                11:0    1  10.6G  0 rom  /run/media/root/CentOS-Stream-8-x86_64-dvd
nvme0n1           259:0    0   200G  0 disk 
├─nvme0n1p1       259:1    0     1G  0 part /boot
└─nvme0n1p2       259:2    0   199G  0 part ├─cs_bogon-root 253:0    0    70G  0 lvm  /├─cs_bogon-swap 253:1    0     4G  0 lvm  [SWAP]└─cs_bogon-home 253:2    0 125.1G  0 lvm  /home
[root@vm2 ~]#
​
# 注:登录后会保留记录信息
[root@vm2 ~]# cat /var/lib/iscsi/nodes/iqn.2024-04.com.a\:server/192.168.99.100\,3260\,1/default
​
# 此时无需再次发现,可以直接登录:
[root@vm2 ~]# iscsiadm  --mode  node --targetname iqn.2024-04.com.a:server --portal 192.168.99.100:3260 --login
Logging in to [iface: default, target: iqn.2024-04.com.a:server, portal: 192.168.99.100,3260]
Login to [iface: default, target: iqn.2024-04.com.a:server, portal: 192.168.99.100,3260] successful.
[root@vm2 ~]#

挂载使用设备

[root@vm2 ~]# mkfs.xfs /dev/sda 
meta-data=/dev/sda               isize=512    agcount=4, agsize=131072 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=524288, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@vm2 ~]# mount /dev/sda /opt
[root@vm2 ~]# touch /opt/1.txt
[root@vm2 ~]# umount /opt
​
# 登出后清除记录:
[root@vm2 ~]# iscsiadm  --mode  node --targetname iqn.2024-04.com.a:server --portal 192.168.99.100:3260 --logout
Logging out of session [sid: 2, target: iqn.2024-04.com.a:server, portal: 192.168.99.100,3260]
Logout of [sid: 2, target: iqn.2024-04.com.a:server, portal: 192.168.99.100,3260] successful.
[root@vm2 ~]# iscsiadm  --mode  node --targetname iqn.2024-04.com.a:server --portal 192.168.99.100:3260 -o delete
[root@vm2 ~]# cat /var/lib/iscsi/nodes/iqn.2024-04.com.a\:server/192.168.99.100\,3260\,1/default
cat: '/var/lib/iscsi/nodes/iqn.2024-04.com.a:server/192.168.99.100,3260,1/default': No such file or directory
[root@vm2 ~]#

作业

留作业啦!要求如下:

准备两张网卡,一张nat(dhcp),一张桥接(不要网关和dns,静态ip)

  1. 使用桥接网卡配置iscsi服务端(IP地址任意/24) 添加一块硬盘,使用其中两个分区做一个逻辑卷名为lv1 创建一个文件,大小200M,路径为/file1 将lv1和file1作为后端存储 创建一个目标,包含两个lun,对应两个后端存储,WWN和acl自定义 挂载验证

  2. 可以调整portals监听所有网卡,使用windows挂载共享

  3. 配置CHAP身份认证

附录

使用windows发现并使用iscsi共享:

Windows-------> 管理工具----------> iscsi发起程序

指定目标、发现:

在配置处,填写ACL

返回目标页点击连接即可,登录后,可从磁盘管理看到未格式化的磁盘

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

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

相关文章

快速掌握——python类 封装[私有属性方法]、继承【python进阶】(内附代码)

1.类的定义 与 实例化对象 在python中使用class关键字创建一个类。 举例子 class Stu(object):id 1001name 张三def __init__(self):passdef fun1(self):pass# 实例化对象 s1 Stu() s2 Stu() print(s1.name) print(s2.name) 第一个方法 __init__是一种特殊的方法&#x…

HarmonyOS 如何实现传输中的数据加密

文章目录 摘要引言数据传输加密概述选择加密算法和传输协议加密实现方案与 Demo 代码配置 HTTPS/TLSAES 加密的实现代码详解RSA加密的实现代码详解 QA环节总结参考资料 摘要 本文将介绍在 HarmonyOS 应用中如何实现数据传输的加密策略。我们将讨论常见的加密算法(如…

Bilibili-超能用户榜入口优化-技术方案反思与总结

目录 客户端实现: 高能用户入口实现逻辑: 接口服务信息(服务端下发): 执行方案: (1)数据类新增服务端下发字段 ​编辑 (2) UI添加 寻找思路: (3)超能用户icon显示…

vue实现图片无限滚动播放

本人vue新手菜鸡,文章为自己在项目中遇到问题的记录,如有不足还请大佬指正 文章目录 实现效果代码展示总结 因为刚接触vue,本想着看看能不能用一些element的组件实现图片的轮播效果,尝试使用过element-UI里的走马灯Carouse&#x…

MySQL缓存使用率超过80%的解决方法

MySQL缓存使用率超过80%的解决方法 一、识别缓存使用率过高的问题1.1 使用SHOW GLOBAL STATUS命令监控1.2 监控其他相关指标二、分析缓存使用率过高的原因2.1 数据量增长2.2 查询模式变化2.3 配置不当三、解决缓存使用率过高的方法3.1 调整Buffer Pool大小3.1.1 计算合理的Buff…

LeetCode【0036】有效的数独

本文目录 1 中文题目2 求解方法:python内置函数set2.1 方法思路2.2 Python代码2.3 复杂度分析 3 题目总结 1 中文题目 请根据以下规则判断一个 9 x 9 的数独是否有效。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线…

UNIAPP发布小程序调用讯飞在线语音合成+实时播报

语音合成能够将文字转化为自然流畅的人声,提供100发音人供您选择,支持多语种、多方言和中英混合,可灵活配置音频参数。广泛应用于新闻阅读、出行导航、智能硬件和通知播报等场景。 在当下大模型火爆的今日,语音交互页离不开语音合…

成都睿明智科技有限公司解锁抖音电商新玩法

在这个短视频风起云涌的时代,抖音电商以其独特的魅力迅速崛起,成为众多商家争夺的流量高地。而在这片充满机遇与挑战的蓝海中,成都睿明智科技有限公司犹如一颗璀璨的新星,以其专业的抖音电商服务,助力无数品牌实现从零…

Llama旋转位置编码代码实现及详解

旋转位置编码RoPE 在旋转位置编码与Transformer和BERT之间的区别中介绍了旋转位置编码(RoPE)的特点和优势,这种输入长度动态可变的优势使得在Llama编码时,不需要掩码将多余的嵌入掩住。为了详细了解RoPE是如何实现的,…

遇到“msvcr120.dll丢失”要怎么解决?详解msvcr120.dll的解决方法

遇到“msvcr120.dll丢失”错误通常表明你的系统缺少一个关键的DLL文件,这是Microsoft Visual C 2013的一部分。这个问题可能导致某些程序无法运行,影响电脑性能。不过,解决这一问题并不复杂。接下来,本文将向你展示几种简单的修复…

【机器学习】平均绝对误差(MAE:Mean Absolute Error)

平均绝对误差 (Mean Absolute Error, MAE) 是一种衡量预测值与实际值之间平均差异的统计指标。它在机器学习、统计学等领域中广泛应用,用于评估模型的预测精度。与均方误差 (MSE) 或均方误差根 (RMSE) 不同,MAE 使用误差的绝对值,因此它在处理…

项目功能--运营数据统计

一、需求分析 通过运营数据统计可以展示出体检机构的运营情况,包括会员数据、预约到诊数据、热门套餐等信息。我们要通过一个表格的形式来展示这些运营数据。如下图: 二、代码实现 实现步骤: 步骤一:定义数据模型,通过…

网络安全技术在能源领域的应用

摘要 随着信息技术的飞速发展,能源领域逐渐实现了数字化、网络化和智能化。然而,这也使得能源系统面临着前所未有的网络安全威胁。本文从技术的角度出发,探讨了网络安全技术在能源领域的应用,分析了能源现状面临的网络安全威胁&a…

wangeditor富文本编辑器以文本的形式展示公式

最终展示的效果 1.首先将要传给后端的富文本值进行转化 //假设workContent是富文本写入的值this.workContent this.escapeHTML(this.workContent)//通过escapeHTML方法转化传给后端 methods:{escapeHTML(str) {return str.replace(/&/g, &) // 将 & 替换为…

内置RTK北斗高精度定位的4G执法记录仪、国网供电服务器记录仪

内置RTK北斗高精度定位的4G执法记录仪、国网供电服务器记录仪BD311R 发布时间: 2024-10-23 11:28:42 一、 产品图片: 二、 产品特性: 4G性能:支持2K超高清图传,数据传输不掉帧,更稳定。 独立北…

【自学笔记】神经网络(2) -- 模型评估和优化

文章目录 划分数据集训练集和测试集训练误差 测试误差交叉验证测试集 偏差与方差偏差方差表现基准 学习曲线error - train set sizeerror - degree of polynomial 数据增强迁移学习项目的完整周期样本不平衡问题精确率和召回率精确率与召回率的平衡 划分数据集 我们当然希望把所…

Windows 局域网IP扫描工具:IPScaner 轻量免安装

IPScaner是一款258KB的工具,具备快捷修改IP、批量扫描、地址计算等功能,自动识别本机IP网段,快速查看IP使用情况,适用于监控维护、企业IT运维等场 软件功能介绍: 1)快捷修改本地IP、IP批量扫描、IP地址计算…

2024 年Postman 如何安装汉化中文版?

2024 年 Postman 的汉化中文版安装教程

SQL面试题——飞猪SQL面试 重点用户

飞猪SQL面试题—重点用户 在一些场景中我们经常听到这样的一些描述,例如20%的用户贡献了80%的销售额,或者是20%的人拥有着80%的财富,你知道这样的数据是怎么算出来的吗 数据如下,uid 是用户的id ,amount是用户的消费金额 |uid|amount| ---…

fork函数详解

前言 之前我们提到,创建子进程的时候,需要使用fork()函数,其中分别有id 0和id >0的if函数,但是实验表明,两个if函数中的内容都得到了实现。按照我们之前所学,一个变量同一时间只能有一个值,…