ISCSI网络存储服务

ISCSI网络存储服务

应用场景

服务器硬盘空间不足,可能导致服务器宕机。解决方案通常有两个,一是拷贝出服务器中的部分数据,空出存储空间,但在生产环境中,数据一般会很大,拷贝时间会很长,并且只能暂时解决问题;二是通过远程存储来实现。

现在企业存储一般分类:

①DAS

Direct Attached Storage 直接附加存储,普通电脑中的硬盘,通过 RAID 磁盘阵列、LVM 等管理

DAS存储是第一代存储服务,DAS存储是一堆存储阵列组成的一块盘,这块盘可以挂在到服务器中,进行格式化以及数据存储,相当于一块外挂盘,也就是移动硬盘的概念,服务器连接这块盘需要使用SCSI总线或者FC光纤进行连接。

DAS的优点在于组网简单、成本低廉,缺点也很明显,因为是一根线连接的盘,无法多个服务器同时使用,扩展性差,并且无法共享。DAS存储现在基本不会使用了。

②SAN

Storage Area Network 存储区域网络存储,SNA 却可以透过某些特殊的接口或信道(如光纤)来提供局域网络内的所有机器进行磁盘存取,对速率、冗余性要求高,同时成本也比较高;相当于模拟 DAS

使用iSCSI存储协议,块级传输

换句话说,就是将存储设备通过网络链接起来,实现远程存储,相当于通过网络协议给你的服务器再插上一块硬盘

在这里插入图片描述

③NAS

Network Attachment Storage,网络附加存储,采用普通以太网,对速率.冗余无特别要求;

使用NFS、CIFS共享协议、文件级传输

在这里插入图片描述

  • SAN 是提供【磁盘(block device)】给主机用,而不是像 NAS 提供的是【网络协议的文件系统(NFS,SMB…)】
  • 成本 DAS > SAN > NAS

iSCSI 协议应用

1 iSCSI 概述

快速增长的存储容量使得企业需要采用网络存储解决方案。目前网络存储技术采用的连接技术主要有光纤通道和TCP/IP 。基于 IP 的网络存储能解决基于光纤通道的网络存储中存在的兼容性和传输距离问题,而且能提供相对廉价的解决方案。

iSCSI 协议是 IP 存储网络协议之一,将 SAN 的连接方式改为利用 IP 技术来处理。

iSCSI 主要是透过 TCP/IP 的技术,将存储端透过 iSCSI target 功能,做成可以提供磁盘服务的服务器端,客户端直接可以挂载使用网络磁盘。

2 iSCSI的工作方式

​ 服务(设备)端 —— target
​ 客户(应用)端 —— initiator

在这里插入图片描述

LUN (Logical Unit Number)是逻辑单元号码的简称,它是一种逻辑定义,用于标识存储设备中的逻辑单元。

它不等于某个设备,只是个号码而已,不代表任何实体属性,在我们的实际环境里,我们碰到的LUN可能是磁盘空间,可能是磁带机,或者是media changer等等。

而操作系统的机制使然,操作系统识别的最小存储对象级别就是 LUN Device,这是一个逻辑对象,所以很多时候被称之为Logical Device。

在这里可以把它想象成一辆车,需要新建这辆车,来把硬盘送到客户机

3 配置iSCSI服务器

3.1 准备存储设备

# 方式有5种
1 可以使用dd命令建立一个仿真磁盘
dd if=/dev/zero of=/test/disk1.img bs=1M count=500
2 单独使用一个磁盘
3 单独使用现有分区
4 使用LVM的lv分区
5 使用RAID磁盘阵列

使用 RAID 磁盘阵列,提供远程磁盘

# 安装mdadm工具
yum -y install mdadm
# 使用mdadm工具,创建一个 RAID 5 磁盘阵列和一个备份盘
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e] 
# 格式化文件类型为EXT4
mkfs.ext4 /dev/md0
# 创建mdadm的配置文件
touch /etc/mdadm.conf
# 生成配置文件信息后写入配置文件,永久保存策略
mdadm -Ds >> /etc/mdadm.conf
mdadm -Ds | tee -a /etc/mdadm.conf

在这里插入图片描述

3.2 创建 iSCSI 的对象 target

3.2.1 targetcli 命令

targetcli 是用于管理 iSCSI 服务端存储资源的专用配置命令,它能够提供类似于fdisk命令的交互式配置功能,将iSCSI 共享资源的配置内容抽象成“目录”的形式,只需将各类配置信息填入到相应的“目录”中即可。这里的难点主要在于认识每个“参数目录”的作用。当把配置参数正确地填写到“目录”中后,iSCSI 服务端也可以提供共享资源服务了。

'/backstores/block’是服务器端配置共享设备的位置,需要把创建的Raid阵列加入到配置共享设备的“资源池”中,并将该文件重新命名为 ‘disk0’,这样用户就不会知道是由服务器中的哪块硬盘来提供共享存储资源,而只会看到一个名为disk0的存储设备。

3.2.2 服务端配置流程

输入targetcli,进入到命令状态中

# 安装targetcli
yum -y install targetcli

登录界面

在这里插入图片描述

在这里插入图片描述

①创建共享block
/backstores/block create block1 /dev/md0
# block1 自定义的名字
# /dev/md0 之前创建的磁盘分区
/> /backstores/block create block1 /dev/md0
Created block storage object block1 using /dev/md0.
②创建iSCSI

iSCSI target名称,是一串用于描述共享资源的唯一字符串。稍后用户端扫描 iSCSI 服务端时即可看到这个字符串,因此不需要记住它。创建一个target名称,还会在/iscsi参数目录中创建一个与其字符串同名的新“目录”用来存放共享资源。我们需要把前面加入到 iSCSI 共享资源池中的硬盘设备添加到这个新目录中,这样用户在登录 iSCSI 服务端后,即可默认使用这硬盘设备提供的共享存储资源了。

命名格式:iqn.yyyy-mm.<主机名(域名)反写>:自定义名称。自定义名称内不能有下划线

格式:iqn.2023-06.com.data:disk
注意:2022-6会失败必须是2022-06
/iscsi create iqn.2023-06.com.data:disk

在这里插入图片描述

3.2.3 为客户机分配存储空间 LUN

‘luns’ 和 ‘acls’ 都在 ‘tpg1’ 目录下,直接进入 ‘tpg1’ 目录下执行命令。

cd /iscsi/iqn.2023-06.com.data:disk/tpg1
luns/ create /backstores/block/block1  # LUN 不设置的话,默认从0开始,依次递增;也可以指定。
# 也可以使用绝对路径
/iscsi/iqn.2023-06.com.data:disk/tpg1/luns create /backstores/block/block1 

在这里插入图片描述

3.2.4 ACL配置

设置访问控制列表。iSCSI 协议是通过客户端名称进行验证的,也就是说,用户在访问存储共享资源时不需要输入密码,只要 iSCSI 客户端的名称与服务端中设置的访问控制列表中某一名称条目一致即可,因此需要在 iSCSI 服务端的配置文件中写入一串能够验证用户信息的名称。

acls 参数目录用于存放能够访问 iSCSI 服务端共享存储资源的客户端名称。iSCSI target后面可以追加上类似于’:client’的参数,这样既能保证客户端的名称具有唯一性,又非常便于管理和阅读。

acls/ create iqn.1994-05.com.redhat:6f4410dee917
# iqn.1994-05.com.redhat:82f34ed61b8 客户端的id

# 客户端ID查询命令如下,在客户端操作
cat /etc/iscsi/initiatorname.iscsi

在这里插入图片描述

在这里插入图片描述

4 客户端使用 iSCSI 存储设备

使用’initiator’连接 iSCSI 对象

# 软件包
iscsi-initiator-utils
# 安装
yum -y install iscsi-initiator-utils
# 使用iscsidm工具查找
iscsiadm -m discovery -t sendtargets -p 192.168.153.134
# 连接target
iscsiadm -m node -T iqn.2023-06.com.data:disk
# 查看
iscsiadm -m node --login

在这里插入图片描述

报错:iscsiadm: connect to 192.168.153.134 timed out

在这里插入图片描述

解决:在服务端打开3260端口

firewall-cmd --add-port=3260/tcp --zone=public

在客户端查询磁盘,客户端本身只有一个磁盘’/dev/sda’

服务端安装使用RAID 5 阵列,3块(一块20G)使用,1块备份,利用率为2/3,大概40G

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iSCSI是一种网络存储协议,可以将远程设备的存储资源映射为本地磁盘,从而实现远程存储的访问。在Linux系统中,我们可以通过iSCSI服务来配置和管理iSCSI存储。 下面是在Linux系统中配置和管理iSCSI存储的步骤: 1. 安装iSCSI服务 在Linux系统中,我们可以使用yum命令安装iSCSI服务,命令如下: ``` yum install iscsi-initiator-utils ``` 2. 配置iSCSI服务 配置iSCSI服务需要以下步骤: (1)编辑iscsi配置文件/etc/iscsi/iscsid.conf,在文件中添加以下内容: ``` node.session.auth.authmethod = CHAP node.session.auth.username = <用户名> node.session.auth.password = <密码> ``` 其中,用户名和密码用于iSCSI的身份验证。 (2)编辑/etc/iscsi/initiatorname.iscsi文件,设置iSCSI的名称,命令如下: ``` echo "InitiatorName=iqn.2021-08.com.example:client1" > /etc/iscsi/initiatorname.iscsi ``` 其中,iqn.2021-08.com.example:client1为iSCSI的名称。 3. 连接iSCSI存储 连接iSCSI存储需要以下步骤: (1)查找iSCSI存储的地址和端口号,命令如下: ``` iscsiadm -m discovery -t st -p <存储地址> ``` 其中,存储地址为iSCSI存储的IP地址或域名。 (2)将iSCSI存储添加到发现列表中,命令如下: ``` iscsiadm -m node -o new -T <存储名> -p <存储地址>:<端口号> ``` 其中,存储名为iSCSI存储的名称,端口号为iSCSI存储的端口号。 (3)连接iSCSI存储,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -l ``` 4. 管理iSCSI存储 连接iSCSI存储成功后,我们可以使用以下命令管理iSCSI存储: (1)查看已连接的iSCSI存储,命令如下: ``` iscsiadm -m session ``` (2)断开与iSCSI存储的连接,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -u ``` (3)删除iSCSI存储,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -o delete ``` 以上就是在Linux系统中配置和管理iSCSI存储的步骤。通过iSCSI服务,我们可以将远程存储资源映射为本地磁盘,从而实现远程存储的访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值