文件存储与访问实践——iSCSI

上周实践了nfs挂载,总的来说,nfs是基于文件级别的、依赖于IP进行访问控制的网络存储共享协议。

iSCSI

iSCSI(Internet Small Computer System Interface,发音为/ˈаɪskʌzi/),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。

作为光纤通道(FC)的一种IP替代方案,它和FC一样,都是将块级的SCSI命令进行封装发送。也就是说,和NFS相比,它是基于数据块的网络存储共享协议。

iscsi是基于TCP/IP和scsi协议的一项技术,任一主机通过iscsi target功能成为iscsi存储空间的共享者/服务端;同样的,任一主机通过iscsi initiator(初始化用户)功能可以成为iscsi存储空间的使用者/客户端;限制iscsi的相互之间的联系需要配置规则,在无规则情况下,双方是可以建立联系的
iSCSI共享存储流程

实践

用手里的kali虚拟机克隆一下,弄两台出来做实验

服务端:192.168.183.132

客户端:192.168.183.131

服务端

首先给服务端扩展一个用于共享的磁盘块,VMWARE的话直接设置里扩展一个SCSI磁盘就好了,比如下图的磁盘2

image-20230218161612768

之后用lsblk查看系统磁盘情况

image-20230218161936348

/dev/sda就是新扩展出来的磁盘,对其分区

image-20230218162616135

之后需要安装targetcli

yum直接yum install targetcli -y

作为经典的debian系linux,kali使用apt做包管理,需要sudo apt install targetcli-fb -y

如果提示找不到targetcli相关包,先apt update即可

接下来targetcli定义块设备与target

image-20230218164513373

创建客户端与服务端的识别名与卷

image-20230218165406285

这里也可以直接create,系统会自动给你分配识别名

客户端

客户端也需要先安装包

yum:yum install iscsi-initiator-utils

apt:apt install open-iscsi -y 没权限就加sudo,找不到包就apt update

之后 sudo vim /etc/iscsi/initiatorname.iscsi

image-20230218171756866

添加客户端识别名

修改完毕后,需要systemctl restart iscsid 重启该配置文件

之后通过两条命令发现并登录iscsi

sudo iscsiadm -m discovery -t sendtargets -p 192.168.183.132

sudo iscsiadm -m node -T iqn.2023-02.com.test:server -p 192.168.183.132:3260 -l

image-20230218171957290

image-20230218172057643

挂载成功,查看挂载前后的磁盘情况

挂载前:

image-20230218172157966

挂载后:

image-20230218172219079

这里需要注意的是,dev/sdb1已分配的磁盘也挂载过来了,意思是我们在服务端那边做的分配情况会同步过来;当然我们在服务端那边不分配,直接挂载过来,然后在客户端再进行分配也是可以的。

之后就是传统的Mount挂载了

先通过sudo mkfs.ext4 /dev/sdb1 格式化磁盘

然后sudo mount /dev/sdb1 /mnt/iscsi挂载到需要的文件夹

image-20230218172948313

总结

最近看了一些NFS与iscsi的相关资料,这两种协议目前说不上谁好谁坏,只能说各有特点。从文件系统的管理角度,NFS使用文件级别的共享,而iSCSI使用数据块,不关心文件系统到底存储了什么。这就导致了NFS系统对存储在其中的应用数据具有更高的可视性(比如我用过的黑群晖,感觉非常方便),不过听说最近在VMware的VAAI中实现的SCSI T10也为块存储增加了感知功能。从安全角度看,两者都支持IP安全限制,而iscsi还内置了对双向挑战握手认证协议的支持。此外,NFS v2完全基于UDP实现,不过v3之后也支持了TCP/IP协议。

这两周实践了两种网络存储共享协议,NFS和iSCSI,主要走了一遍部署和挂载的流程,其实他们俩实际上性能与特点的差别(尤其是实际部署后流量控制、网速差异)是没实验出来的,有待以后有条件了再做实验。

参考资料

[1] (23条消息) iscsi服务器搭建_bojiSAMA的博客-CSDN博客_iscsi存储服务器搭建