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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值