哇~真的是你呀!今天是LINUX中的ISCSI服务

简介: iSCSI(Internet Small Computer System Interface)是一种用于将存储设备(如硬盘驱动器)通过网络连接到计算机系统的存储协议。它允许计算机通过IP网络访问远程存储设备,就像访问本地存储设备一样。

前言

iSCSI(Internet Small Computer System Interface)是一种用于将存储设备(如硬盘驱动器)通过网络连接到计算机系统的存储协议。它允许计算机通过IP网络访问远程存储设备,就像访问本地存储设备一样。


在Linux中,iSCSI是通过iSCSI Initiator实现的。iSCSI Initiator是Linux系统中的软件组件,用于建立与远程iSCSI Target(存储设备)之间的通信链接。它将远程iSCSI Target逻辑单元(LUN)映射到本地计算机上,使得计算机可以通过网络访问这些逻辑单元。


使用Linux中的iSCSI,您可以将远程存储设备连接到计算机,并将其作为本地存储设备使用。这对于实现存储共享、数据备份和集中化存储管理等场景非常有用。您可以通过简单的命令行工具(如`iscsiadm`)配置iSCSI Initiator,建立与远程iSCSI Target的连接,然后将它们挂载到Linux文件系统中。


总结起来,Linux中的iSCSI是一种用于通过网络连接远程存储设备的协议,通过iSCSI Initiator可以将远程存储设备映射为本地存储设备,以便Linux系统可以方便地访问和使用这些存储资源。


一、概述


(1)全称:Internet Small Computer System Interface——互联网小型计算机接口


(2)通过网络获取磁盘设备在本地进行存储使用。


(3)iscsi

  1) 基于IP协议进行scsi数据的传输

   2)IP/SAN网络: 基于双绞线为传输介质的存储网络

   3)光纤存储网络:基于光纤传输的存储网络,造价极高

   4)实现方式:软件形式;硬件形式

   5)默认端口号:3260


(4)相关名词

  1) iscsi initiator:iscsi客户端

   2)iscsi target:iscsi服务端

   3)lun:一个块设备存储

   4)iqn:iscsi名称;iqn.时间.域名反写:定义标识


(5)使用targetcli工具进入到iscsi服务器端管理界面

   targetcli

       进入到服务器端的iscsi命令配置信息

   o- / .................... [...]

       顶级目录

     o- backstores ............... [...]

       后备存储,主备存储空间,要共享的设备或分区得先加入到这里

      | o- block .............. [Storage Objects: 0]

       块存储,o- backstores子目录

      | o- fileio ............. [Storage Objects: 0]

       文件存储,o- backstores子目录

      | o- pscsi ................. [Storage Objects: 0]

       真实物理scsi设备,o- backstores子目录

      | o- ramdisk ................ [Storage Objects: 0]

       闪存,o- backstores子目录

     o- iscsi ................ [Targets: 0]

       以ISCSI的方式共享存储设备的目录

     o- loopback ................. [Targets: 0]


二、构建iscsi服务


一、服务器端设置

(1)服务器端

  1) 进入到/backstores/block目录中添加设备到块设备列表

   

create disk0 /dev/sdb1

   2)进入到iscsi目录中生成iqn标签

       create

   3)进入到/iscsi/iqn.20...909/tpg1/luns>目录下创建逻辑单元

   

create /backstores/block/disk0

   4)进入到/iscsi/iqn.20...909/tpg1/acls>目录中创建访问控制规则

 

create iqn.20......

   5)进入到/iscsi/iqn.20.../tpg1/portals>目录中创建端口

 

create 192.168.1.1 3260

           注意:因为原本存在一个端口0.0.0.0:3260,所以需要将原来的端口删除掉再进行创建

   exit退出,否则设置不会被保存

  6) 在认证文件中成iqn编号

     

vim  /etc/iscsi/initiatorname.iscsi

       将原来的认证编号改为新生成的编号

   7)启动服务

systemctl start iscsi
        systemctl start iscsid


二、客户端

(1)客户端

   1)安装软件

 

yum -y install iscsi-initator-utils

  2) 在认证文件中生成iqn编号

 

vim  /etc/iscsi/initatorname.iscsi

       将原来的认证编号改为新生成的编号

   3)开启客户端服务

 

systemctl start iscsi
        systemctl start iscsid

  4) 查找可用的iscsi资源列表

 

iscsiadm -m discovery -t st -p 192.168.1.1:3260

       -m    指定模式

       -t    指定动作类型,st,sendtargets

       -p    指定服务器和端口

  5) 访问服务器的共享资源

 

iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3f2f0c3bd909 -l

       -T    targetnameiqn

       -l    login


三、注意事项



   1、自动挂载时必须使用UUID,否则会出问题,同时在参数中添加_netdev,如UUID=33899a29-9f9e-476f-b8e9-cc9ad0986dac /mnt xfs defaults,_netdev

       blkid查看UUID

   2、开机启动关闭防火墙,因为当计算机开机首先是bios自检查找硬盘中的操作系统引导启动,但是当系统没有完全启动时计算机就没有通过网络通讯,而iscsi是基于网络的共享存储,所以开机重启需要告诉内核这条开机挂载是基于网络的存储


四、实验


现有两台主机一台服务器,一台客户机


要求:1、在服务器上构建iscsi服务


           2、客户端实现自动挂载


1)在两台主机上配置基础环境:关闭防火墙、SELINUX、配置yum源、设置IP测试通联行


2)在服务器上添加硬盘,通过热扫描进行识别,进行磁盘分区,格式化

热扫描for i in `ls /sys/class/scsi_host`;do echo "- - -">$i/scan;done

分区fdisk /dev/sdb

格式化分区mkfs -t xfs /dev/sdb1

3)在服务器上安装targercli,使用targetcli工具进入到iscsi服务器端管理界面

安装yum -y install targetcli

使用targetcli命令进入到服务器端的iscsi命令配置信息

进入到/backstores/block目录中添加设备到块设备列表

   create disk0 /dev/sdb1

进入到iscsi目录中生成iqn标签

   create

进入到/iscsi/iqn.20...909/tpg1/luns>目录下创建逻辑单元

   create /backstores/block/disk0

进入到/iscsi/iqn.20...909/tpg1/acls>目录中创建访问控制规则

   create iqn.20......

进入到/iscsi/iqn.20.../tpg1/portals>目录中创建端口

   create 192.168.1.1 3260

       注意:因为原本存在一个端口0.0.0.0:3260,所以需要将原来的端口删除掉再进行创建

退出,否则设置不会被保存


4)在认证文件中成iqn编号

 

vim  /etc/iscsi/initiatorname.iscsi

   将原来的认证编号改为新生成的编号

启动服务

   systemctl start iscsi

   systemctl start iscsid

5)在客户端配置

安装软件

 

yum -y install iscsi-initator-utils

在认证文件中生成iqn编号

 

vim  /etc/iscsi/initatorname.iscsi

   将原来的认证编号改为新生成的编号

开启客户端服务

 

systemctl start iscsi
    systemctl start iscsid

查找可用的iscsi资源列表

iscsiadm -m discovery -t st -p 192.168.1.1:3260

   -m    指定模式

   -t    指定动作类型,st,sendtargets

   -p    指定服务器和端口

访问服务器的共享资源

 

iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3f2f0c3bd909 -l

   -T    targetnameiqn

   -l    login

6)在客户端进行自动挂载

在客户端创建文目录/test

在服务端中查看共享磁盘的UUID

回到客户端进行自动挂载vim /etc/fstab,并mount  -a 检查挂载情况

重启验证

如果要取消连接的话:1在客户端卸载sdb1,2关闭服务

目录
相关文章
|
5月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
378 25
|
6月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
146 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
8月前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
568 19
|
8月前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
3705 7
|
10月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
193 5
linux系统服务二!
|
10月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
164 3
linux系统服务!!!
|
9月前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
10月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
1258 3
|
10月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
565 3
|
11月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
97 2