linux服务之iSCSI(centos7.6)

2024-08-20 21:36
文章标签 linux 服务 iscsi centos7.6

本文主要是介绍linux服务之iSCSI(centos7.6),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在文章的开始,希望大家关注公众号Lind-Learn,在这里会分享各类计算机技术的知识。


1. iSCSI相关介绍

  • 数据存储技术
    • DAS(Direct Attached Storage,直接附加存储)
      本地磁盘接口:IDE SATA SAS SCSI
    • NAS(Network Attacted Storage,网络附加存储)
      网络服务共享:共享的是文件夹。比如Samba、NFS
    • SAN(Storage Attacted Network,存储附加网络)
      网络服务共享:共享的是设备。比如iscsi
  • iSCSI介绍

iSCSI(internet SCSI)技术是由IBM公司研究开发的,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集和可以实现在IP网络上运行SCSI协议,使其能够在诸如告诉千兆以太网上进行路由选择。iSCSI是一种新存储技术,它是将享有SCSI接口与以太网络(Ethernet技术结合),使服务器可与使用IP网络的储存装置互相交换资料。
iSCSI:internet小型计算机系统接口是一个基于tcp/ip的协议,用于通过IP网络仿真SCSI高性能本地存储总线,从而为远程块存储设备提供数据传输和管理。
SCSI协议套件提供基于设备总线通信协议的命令描述块(CBD)命令集,iSCSI同样保留了CBD命令集,通过标准tcp/ip封装的iSCSI系统之间执行总线通信。
将设备通过tcp/ip的方式共享到客户端,仿真为本地设备
iSCSI是一个协议,让远程存储服务器通过网络将存储设备共享给本地计算机,让本地计算机像管理智联存储一样可以对共享的设备存储、分区、格式化、挂载使用
iSCSI是一个C/S软件,S端可以同时共享多个存储设备给客户端,S端上的一个LUN(Logical Unit Number,逻辑单元号;真正提供服务的是LUn)代表一个共享设备

  • SAN和IPSAN

IPSAN是在SAN后产生的,SAN默认指的是FCSAN(以光纤通道构建存储网络,IPSAN则以IP网络构建存储网络,相较于FCSAN,具有更经济、自由扩展等特点)
注:ISCSI属于ipSAN的技术之一

2. ISCSI服务器部署

  • 实验要求

将存储服务器192.158.11.20的sdb磁盘通过网络共享给客户端192.168.11.10机器
共享三个设备(sdb1 10G;sdb2 10G;sdb3 file 3 G)
允许客户端访问共享并实现分区、格式化、挂载存储数据
要求开机自动挂载

# 添加sb*分区
# 添加分区备份文件
[root@Lind dev]# dd if=/dev/sda3 of=/opt/sdb3 bs=1M count=3000# 安装iSCSI服务
[root@Lind ~]# yum -y install targetcli# 设置开机启动
[root@Lind ~]# systemctl enable target;systemctl start target# 通过targetcli命令设置设备共享
# 将设备加入到backstores存储库
# 设置设备全球唯一标识名称IQN
# 设置tpg组定义谁可以从哪个IP及端口访问IQN标识对应的哪些设备[root@Lind ~]# targetcli
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'./> ls
o- / ................................. [...]# 这是存储对象的目录,可以理解为存储后端。你可以在这里定义不同类型的存储设备。o- backstores ...................... [...]# 代表块设备,如硬盘或分区。目前显示 [Storage Objects: 0],意味着还没有配置任何块设备。| o- block ......................... [Storage Objects: 0]# 代表基于文件的存储对象。这里也显示 [Storage Objects: 0],表示没有配置基于文件的存储设备。| o- fileio ........................ [Storage Objects: 0]# 代表经过 SCSI 直通的物理 SCSI 设备。| o- pscsi ......................... [Storage Objects: 0]# 代表基于内存的 RAM 磁盘存储对象。| o- ramdisk ....................... [Storage Objects: 0]# 这是 iSCSI 目标的目录。o- iscsi ........................... [Targets: 0]# 这是 Loopback 目标的目录,通常用于测试目的。o- loopback ........................ [Targets: 0][root@Lind ~]# targetcli
# 将设备加入到backstores存储库
/> cd backstores/block/
/backstores/block> create block1 /dev/sdb1
# Created block storage object block1 using /dev/sdb1.
/backstores/block> create block2 /dev/sdb2
# Created block storage object block2 using /dev/sdb2./backstores> cd fileio 
/backstores/fileio> create block /opt/sdb3
# Created fileio block with size 3145728000# 设置设备全球唯一标识名称IQN
# 设置标识符必须按照统一格式
# iqn.年-月.二级域名倒写:共享名
# 删除的话就是把create改成delete
/iscsi> cd /iscsi/
/iscsi> create iqn.2024-08.com.lind:storage
# Created target iqn.2024-08.com.lind:storage.
# Created TPG 1.
# Global pref auto_add_default_portal=true
# Created default portal listening on all IPs (0.0.0.0), port 3260.# 设置谁可以访问
/iscsi/iqn.20....lind:storage> cd /iscsi/iqn.2024-08.com.lind:storage/tpg1/
/iscsi/iqn.20...:storage/tpg1> acls/ create iqn.2024-08.com.lind:client1
# Created Node ACL for iqn.2024-08.com.lind:client1/backstores> cd /iscsi/iqn.2024-08.com.lind:storage/tpg1
/iscsi/iqn.20...:storage/tpg1> luns/ create /backstores/block/block1 
# Created LUN 0.
# Created LUN 0->0 mapping in node ACL iqn.2024-08.com.lind:client1
/iscsi/iqn.20...:storage/tpg1> luns/ create /backstores/block/block2
# Created LUN 1.
# Created LUN 1->1 mapping in node ACL iqn.2024-08.com.lind:client1
/iscsi/iqn.20...:storage/tpg1> luns/ create /backstores/fileio/block 
# Created LUN 2.
# Created LUN 2->2 mapping in node ACL iqn.2024-08.com.lind:client1# 更换访问ip及端口
/iscsi/iqn.20...:storage/tpg1> portals/ delete 0.0.0.0 3260 
/iscsi/iqn.20...:storage/tpg1> portals/ create 192.168.11.20 3260
# Using default IP port 3260
# Created network portal 192.168.11.20:3260.
/iscsi/iqn.20...:storage/tpg1> exit
# Global pref auto_save_on_exit=true
# Last 10 configs saved in /etc/target/backup/.
# Configuration saved to /etc/target/saveconfig.json

3. ISCSI客户端

  • 安装客户端服务并启动
[root@Lind ~]# yum -y install iscsi-initiator-utils
  • 设置客户端iscsi名称
[root@Lind ~]# vim /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.2024-08.com.lind:client1
  • 启动iSCSI客户端服务
[root@Lind ~]# systemctl enable iscsi;systemctl start iscsi
# Created symlink from /etc/systemd/system/remote-fs.target.wants/iscsi.service to /usr/lib/systemd/system/iscsi.service.

在客户端有两个服务iscsi、iscsid
这两个的区别是什么呢?

iSCSI

  • 定义: iSCSI(Internet Small Computer Systems Interface)是一种基于IP网络的存储协议,用于将SCSI命令封装在TCP/IP包中,从而实现通过网络访问远程存储设备。iSCSI使计算机(称为 iSCSI Initiators)能够将远程存储设备(称为 iSCSI Targets)视为本地磁盘。
  • 使用场景: iSCSI常用于构建基于以太网的存储区域网络(SAN),特别是在需要通过网络共享存储设备的环境中,比如虚拟化环境、数据中心等。

iscsid

  • 定义: iscsid 是 iSCSI 的守护进程(daemon),它在Linux系统上负责管理 iSCSI 连接和会话。具体来说,iscsid 处理 iSCSI 的发现、登录、认证、连接管理和会话管理等任务。
  • 功能:
    • 管理 iSCSI 目标的发现和登录。
    • 处理与 iSCSI 目标之间的连接建立、维护和终止。
    • 处理 iSCSI 连接中的事件,如掉线或重新连接等。
  • 配置文件: iscsid 的行为通常由配置文件 /etc/iscsi/iscsid.conf 控制,系统管理员可以通过编辑该文件来调整 iSCSI 的配置和行为。

联系

  • 协同工作: iSCSI 是一种协议,而 iscsid 是该协议在Linux系统上的实现部分。iscsid 守护进程负责管理 iSCSI 协议的运行,确保 Initiator 能够正确地连接到 Target 并保持稳定的连接。
  • 依赖关系: 在使用 iSCSI 时,iscsid 是必不可少的组件,它确保 iSCSI 连接的正常工作。Initiator 需要通过 iscsid 守护进程与远程的 iSCSI 目标建立通信。
  • 访问共享
# 发现设备
[root@Lind send_targets]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.11.20 --discover
# 192.168.11.20:3260,1 iqn.2024-08.com.lind:storage# 查看发现的设备以及相关信息
[root@Lind ~]# ls /var/lib/iscsi/send_targets/
192.168.11.20,3260
[root@Lind ~]# ls /var/lib/iscsi/nodes/
iqn.2024-08.com.lind:storage# 载入
[root@Lind ~]# iscsiadm --mode node --targetname iqn.2024-08.com.lind:storage --portal 192.168.11.20:3260 --login# 分区,直接默认回车就行(因为这里客户端有两个硬盘所以挂载的设备从c开始的)
[root@Lind ~]# fdisk /dev/sdc
[root@Lind ~]# fdisk /dev/sdd
[root@Lind ~]# fdisk /dev/sde# 格式化
[root@Lind ~]# mkfs.ext4 /dev/sdc1
[root@Lind ~]# mkfs.ext4 /dev/sdd1
[root@Lind ~]# mkfs.ext4 /dev/sde1# 挂载
[root@Lind opt]# mkdir /opt/block{1..3}
[root@Lind opt]# vim /etc/fstab 
/dev/sdc1				  /opt/block1		  ext4	  _netdev	  0 0
/dev/sdd1				  /opt/block2		  ext4	  _netdev	  0 0
/dev/sde1				  /opt/block3		  ext4	  _netdev	  0 0# 删除
# 删除/etc/fastab对应内容
# unmount对应sd?.?
# 再登出
[root@Lind ~]# iscsiadm --mode node --targetname iqn.2024-08.com.lind:storage --portal 192.168.11.20:3260 --logout
# 再删除iscsi下的nodes和send_tragets对应的目录以及目录中的文件# 查看信息
# 显示简略信息
[root@Lind ~]# iscsiadm --mode node
# 显示详细信息
[root@Lind ~]# iscsiadm --mode node --targetname iqn.2024-08.com.lind:storage --portal 192.168.11.20:3260

这篇关于linux服务之iSCSI(centos7.6)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091233

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

[Linux]:进程(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 进程终止 1.1 进程退出的场景 进程退出只有以下三种情况: 代码运行完毕,结果正确。代码运行完毕,结果不正确。代码异常终止(进程崩溃)。 1.2 进程退出码 在编程中,我们通常认为main函数是代码的入口,但实际上它只是用户级