Linux与ISCSI

article/2025/9/23 1:25:14

ISCSI(Internet Small Computer System Interface):Internet 小型计算机系统接口,是一个基于 TCP/IP 的协 议,主要用于通过 IP 网络仿真 SCSI,从而为远程块存储设备提供数据传输和管理。说白了,就是通过 网络由专门的服务器提供存储管理,以实现数据的远程储存,便于数据的集中管理,从而简化了数据复 制、迁移和容灾。

NAS(网络附加存储服务器) SAN(存储局域网络)

基本概念:

实验环境:

准备两台虚拟机,系统是 CentOS 7版本

记住两个虚拟机之间要ping通。

一台用作服务端(Server),一台用作客户端(Client)。

主机名也必须得改,Server 改为Target  Client改为Initiator

服务端IP192.168.1.60                                 客户端 IP192.168.1.61

安装后使用命令 yum -y update升级到最新;

安装epel数据源 yum -y install epel-release

在SAN中,主机一般都是Initiator,存储设备则是Target。

Initiator  SCSI会话的发起方,向Target请求LUN,并将数据的读写指令发送给Target

Target    接受SCSI会话的一方 它接收来自Initiator的指令,为Initiator提供LUN,并实现对LUN的读写
IQN        iqn.1994-05.com.redhat:737db83a23df 全球唯一名称,用于以强制命令格式来识别启动器和目标 iqn 表示此名称将使用域作为其标识符 yyyy-mm 拥有域名的第一个月 com.redhat 逆向域名 optional_string 以冒号为前缀的可选字符串,根据需要分配                                                                         

 192.168.1.60:server端192.168.1.61:client端

先在Server端操作

[root@server ~]# yum -y install targetd targetcli
[root@server ~]# systemctl start target
[root@server ~]# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service
to /usr/lib/systemd/system/target.service.
[root@server ~]# systemctl status target
● target.service - Restore LIO kernel target configuration
Loaded: loaded (/usr/lib/systemd/system/target.service; enabled; vendor
preset: disabled)
Active: active (exited) since Sat 2020-05-09 18:12:28 CST; 9s ago
Main PID: 17317 (code=exited, status=0/SUCCESS)

 设置防火墙

[root@server ~]# firewall-cmd --add-port=3260/tcp --permanent
success
[root@server ~]# firewall-cmd --reload
success
[root@server ~]# firewall-cmd --list-ports
3260/tcp

执行targetcli工具

[root@Server ~]# yum install -y targetcli

安装完成后设置target服务开机启动,并启动服务

[root@Server ~]# systemctl enable target
[root@Server ~]# systemctl start target

Client端

安装工具

[root@client ~]# yum -y install iscsi-initiator-utils

给initiator命名

[root@client ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-05.com.bdqn:client1

启动服务

[root@client ~]# systemctl start iscsi
[root@client ~]# systemctl enable iscsi
[root@client ~]# systemctl status iscsi
● iscsi.service - Login and scanning of iSCSI devices
Loaded: loaded (/usr/lib/systemd/system/iscsi.service; enabled; vendor preset:
disabled)
Active: inactive (dead)
Condition: start condition failed at Sat 2020-05-09 19:23:49 CST; 10s ago
Docs: man:iscsiadm(8)
man:iscsid(8

 发现存储

[root@client ~]# iscsiadm -m discovery -t st -p 192.168.1.60
192.168.1.60:3260,1 iqn.2020-05.com.bdqn:disk1

 登录存储/连接target

[root@client ~]# iscsiadm -m discovery -t st -p 192.168.1.60 -l
192.168.1.60:3260,1 iqn.2020-05.com.bdqn:disk1
Logging in to [iface: default, target: iqn.2020-05.com.bdqn:disk1, portal:
192.168.1.60,3260] (multiple)
Login to [iface: default, target: iqn.2020-05.com.bdqn:disk1, portal:
192.168.1.60,3260] successful.

验证iscsi连接,查看是否得到外界硬盘

[root@client ~]# lsscsi
[0:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
[2:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0
[3:0:0:0] disk LIO-ORG server0.disk1 4.0 /dev/sdb

然后就可以像操作本地磁盘一样来操作iscsi磁盘 了。

[root@client ~]# gdisk /dev/sdb
...
Number Start (sector) End (sector) Size Code Name
1 2048 10487807 5.0 GiB 8300 Linux filesystem
2 10487808 20971486 5.0 GiB 8300 Linux filesystem
[root@client ~]# partprobe /dev/sdb
[root@client ~]# partprobe /dev/sdb
[root@client ~]# partprobe /dev/sdb
[root@client ~]# cat /proc/partitions
major minor #blocks name
...
8 16 10485760 sdb
8 17 5242880 sdb1
8 18 5241839 sdb2

这里将/dev/sdb1分区挂载到/mnt/iscsi目录中使用

[root@client ~]# mkdir /mnt/iscsi
[root@client ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310720, 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@client ~]# mount /dev/sdb1 /mnt/iscsi/
[root@client ~]# mount | tail -1
/dev/sdb1 on /mnt/iscsi type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
[root@client ~]# df -hT /mnt/iscsi/
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 xfs 5.0G 33M 5.0G 1% /mnt/iscsi

iscsi,网络存储,经过网络,那么就必须要注意安全。注意是以防火墙来体现安全。 可以再开一台虚拟机。当做iscsi客户端,看看是否能够发现iscsi存储。

[root@work ~]# yum install iscsi*
[root@work ~]# systemctl start iscsi
[root@work ~]# iscsiadm -m discovery -t st -p 192.168.1.60
192.168.1.60:3260,1 iqn.2020-05.com.bdqn:disk1

查看状态

[root@server ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor
preset: enabled)
Active: active (running) since Sat 2020-05-09 18:06:03 CST; 5 days ago
Docs: man:firewalld(1)
Main PID: 6414 (firewalld)
...

查看开放端口

[root@server ~]# firewall-cmd --zone=public --list-ports
3260/tcp

然后我们就要想,怎么能够添加只允许的客户端IP。使用防火墙规则来实现。

[root@server ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source
address=192.168.1.161 port port=3260 protocol=tcp accept' --permanent
success
[root@server ~]# firewall-cmd --reload
success
[root@server ~]# firewall-cmd --list-rich-rules
rule family="ipv4" source address="192.168.1.161" port port="3260"
protocol="tcp" accept

那么现在,我们的服务器同时有开启了httpd服务。那么如果没有设置的话,其他机器是无法访问的。 设置才能够让其他机器访问到那里。

[root@server ~]# systemctl start httpd
[root@server ~]# cat > /var/www/html/index.html <<EOF
> How are you ?
> I'm fine!
> EOF
[root@server ~]# curl 127.0.0.1
How are you ?
I'm fine!
//此时其他机器是访问不了的。
[root@work ~]# curl 192.168.1.60
curl: (7) Failed connect to 192.168.1.60:80; No route to host

可以来添加一下规则,说明一下,这里仅仅只是为了练习添加规则,通常只是开启80端口即可。

[root@server ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source
address=192.168.1.200 port port=80 protocol=tcp accept' --permanent
success
[root@server ~]# firewall-cmd --reload
success

然后再用客户端,就可以访问了。

[root@work ~]# curl 192.168.1.60
How are you ?
I'm fine

http://chatgpt.dhexx.cn/article/2ujcDSXR.shtml

相关文章

ISCSI服务

Internet Small Computer System Interface:Internet 小型计算机系统接口&#xff0c;是一个基于 TCP/IP 的协 议&#xff0c;主要用于通过 IP 网络仿真 SCSI&#xff0c;从而为远程块存储设备提供数据传输和管理。说白了&#xff0c;就是通过 网络由专门的服务器提供存储管理&…

iSCSI 网络磁盘共享

17.1 iSCSI技术介绍 iSCSI技术实现了物理硬盘设备与TCP/TP网络传输协议的相互结合&#xff0c;使得用户可以通过互联网方便的获取到远程机房提供的共享存储资源 硬盘是计算机硬件设备中重要的组成部分之一&#xff0c;存储设备的IO读写速度快慢也直接影响着服务器整体性能的高…

ISCSI的部署与安装

iSCSI&#xff08;Internet Small Computer System Interface&#xff0c;Internet小型计算机系统接口&#xff09;是一种由IBM公司研究开发的IP SAN技术。 该技术是将现有SCSI接口与以太网络(Ethernet)技术结合&#xff0c;基于 TCP/IP的协议连接iSCSI服务端&#xff08;Targe…

SCSI协议与iSCSI协议

文章目录 1.SCSI协议2.iSCSI协议3.IO--SCSI错误处理机制 1.SCSI协议 SCSI的起源 SCSI出现的原因主要是因为原来的IDE接口的硬盘转速太慢&#xff0c;传输速率太低&#xff0c;因此高速的SCSI硬盘出现。其实SCSI并不是专为硬盘设计的&#xff0c;实际上它是一种总线型接口。由…

ISCSI详解(三)——ISCSI原理和架构

今天继续给大家介绍Linux运维相关知识&#xff0c;本文主要内容是ISCSI基础知识。 一、ISCSI架构 ISCSI的架构主要有以下两种&#xff1a; 1、控制器架构 在控制器架构下&#xff0c;ISCSI使用专门的数据传输芯片&#xff0c;专门的RAID数据校验芯片、高性能的cache缓存以及专…

iscsi服务器搭建

iscsi搭建 ISCSI服务介绍服务器配置&#xff08;IP:192.168.155.28&#xff09;客户端配置Linux&#xff08;IP:192.168.155.30&#xff09;Windows配置&#xff08;192.168.155.200&#xff09; ISCSI服务介绍 全称&#xff1a;Internet Small Computer System Interface——…

Windows iSCSI

iSCSI 题目一、安装iSCSI并创建存储位置二、配置iSCSI三、DC1连接iSCSI四、创建盘提示:若需要问题欢迎私聊‘ 题目 iSCSI 磁盘存储在D:\ISCSIDATA 中; iSCSI 磁盘提供给DC1 使用,磁盘容量500 G,启用chap 验证; DC1 上连接成功后,把磁盘格式化为NTFS 格式并挂载到卷标D …

【基于CentOS 7 的iscsi服务】

目录 一、概述 1.简述 2.作用 3. iscsi 4.相关名称 二、使用步骤 - 构建iscsi服务 1.使用targetcli工具进入到iscsi服务器端管理界面 2.实现步骤 2.1 服务器端 2.2 客户端 2.2.1 安装软件 2.2.2 在认证文件中生成iqn编号 2.2.3 开启客户端服务 2.2.4 查找可用的i…

ISCSI服务器搭建与配置

ISCSI服务简介 ISCSI简介&#xff1a; iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口) 技术是一种新存储技术&#xff0c;该技术是将现有的SCSI接口与以太网技术相结合&#xff0c;使服务器可与使用IP网络的存储装置互相交换资料。 iscsi 结构…

SCSI/ISCSI协议

SCSI即小型计算机接口&#xff08;Small Computer System Interface&#xff09;&#xff0c;指的是一个庞大协议体系&#xff0c;到目前为止经历了SCSI-1/SCSI-2/SCSI-3变迁。 SCSI协议定义了一套不同设备&#xff08;磁盘&#xff0c;磁带&#xff0c;处理器&#xff0c;光设…

iSCSI协议简介

本文综合了几篇参考文献的内容&#xff0c;做了删减与重组&#xff0c;但严格来说&#xff0c;不算原创。 笔者笔记如下&#xff1a; iSCSI initiator和target的核心功能都在内核中&#xff0c;无须人工干预&#xff1b;而要人工干预的大约是这么几件事&#xff1a; 1. 建立…

【存储】SCSI、iSCSI协议详解及对比

作 者&#xff1a; NGDCN 原文链接&#xff1a;【存储】SCSI、iSCSI协议详解及对比 - NGDCN 版 权&#xff1a; 本文由 NGDCN 于2022-11-11原创发布在 NGDCN&#xff0c;未经许可&#xff0c;禁止转载。 SCSI SCSI是小型计算机系统接口&#xff08;Small Compu…

ISCSI详解(二)——ISCSI基础知识

今天继续给大家介绍Linux运维相关知识&#xff0c;本文主要内容是ISCSI基础知识。 一、ISCSI简介 ISCSI&#xff0c;即Internel Small Computer System Interface&#xff0c;互联网小型计算机接口&#xff0c;就是在互联网上运行SCSI协议的一种技术。 ISCSI把原本用于用于计…

ISCSI介绍

ISCSI Internet Small Computer System Interface ISCSI是一种在Internet协议上&#xff0c;特别是以太网上进行数据块传输的标准&#xff0c;它是一种基于IP Storage理论的新型存储技术&#xff0c;该技术是将存储行业广泛应用的SCSI接口技术与IP网络技术相结合&#xff0c;…

iSCSI详解及 iSCSI服务端配置、客户端(Linux、Windows配置)

一、简介&#xff1a; iSCSI&#xff0c;Internet小型计算机系统接口&#xff0c;又称为IP-SAN&#xff0c;是一种基于因特网及SCSI-3协议下的存储技术&#xff0c;由IETF提出&#xff0c;并于2003年2月11日成为正式的标准。iscsi通过TCP/IP协议&#xff0c;实现远程存储单元的…

交换机的Access口与Trunk口

基本概念 Access类型的端口只能属于1个VLAN&#xff0c;一般用于连接计算机的端口&#xff1b; Trunk类型的端口可以允许多个VLAN通过&#xff0c;可以接收和发送多个VLAN的报文&#xff0c;一般用于交换机之间连接的端口&#xff1b; 处理流程 Acess端口收报文&#xff1a;…

交换机中access和trunk详解

首先需要说明的是&#xff0c;vlan的标准802.1q中采用的是untagged,tagged这两个术语来制定vlan规范&#xff0c;并没有access,trunk。然而大多数实际的交换机设备在配置时&#xff0c;却都采用access&#xff0c;trunk。 以下简称802.1q中数据包中的vlan标识部分为vid标签。 …

什么是trunk端口?

什么是iis7服务器监控工具Trunk端口 基本概念 Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口; 处理流程 trunk端口收报文: 收到一个报文,判断是否有VLAN信息,如果没有则打上端口的PVID,并进行交换转发;如果有判断…

链路聚合Eth-Trunk

链路聚合简介 以太网链路聚合Eth-Trunk简称链路聚合&#xff0c;它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路&#xff0c;从而实现增加链路带宽的目的。同时&#xff0c;这些捆绑在一起的链路通过相互间的动态备份&#xff0c;可以有效地提高链路的可靠性。 目的&…

超详细讲解access和trunk的区别,从此不再迷糊

我在网上阅读了好几篇关于这个主题的博文&#xff0c;发现很多都是有错误理解的&#xff0c;特此发表一下关于本人的理解&#xff0c;本文只简单概述access和trunk的区别并且hybrid不做探讨。 一、接收区别 access收到的帧通常是不带vlanTag的&#xff0c;收到无tag的帧会打上…