一、ISCSI简单介绍

iSCSI(Internet Small Computer System Interface)是一种基于IP的存储技术,它使用TCP/IP协议作为传输层,将SCSI命令封装为IP数据包并在网络中传输。iSCSI可以在IP网络上构建SAN(Storage Area Network),实现远程存储访问和管理。iSCSI技术具有以下优点:

  • 基于IP,易于部署和管理;
  • 可以实现远程存储访问;
  • 可以实现数据块级备份和恢复;
  • 可以实现数据的快照和复制;
  • 可以实现数据的容错和冗余。

二、ISCSI构建

1)服务器端配置

ISCSI可以使用一个已格式化的分区,单独块,目录。都可以作为共享给服务器添加一块新硬盘,不进行格式化和分区处理【一定要在关机状态下添加新磁盘;如果是开机状态添加的新磁盘则需要进行重启,否则不生效】

ISCSI块存储构建_ISCSI块存储

安装ISCSI

#centos7中使用targetcli
yum install targetcli -y
#centos6
yum install scsi-target-utils -y

创建IQN标签

targetcli	#在shell中执行此命令进入配置iscsi窗口
cd /backstores/block		
#创建要共享的磁盘,并指定名字
create slave /dev/sdb
#建立iqn 命名在同一子网内确保是惟一的,命名格式为:iqn.yyyy-mm. <主机名反写> :自定义名称
 cd /iscsi
create iqn.2023-06.com.langren.www.master:slave

建立acl允许ISCSI客户端链接

#cd到acl目录下
cd iqn.2023-06.com.langren.www.master:slave/tpg1/acls
#创建acl规则
create iqn.2023-06.com.langren.www.master:slave

建立lun(target块设备的逻辑单元) 把新创建的分区和iqn绑定

create /backstores/block/slave

配置完成后如下图所示,最后记得保存退出

saveconfig    #保存当前配置,如果不保存重启会失效
exit   		   #退出

ISCSI块存储构建_ISCSI块存储_02

设置监听地址和端口

这里要注意的是,使用ls查看一下是否是已经有0.0.0.0 3260这个条目,若是有删除掉再建立,否则会报错,还有一点的是若是 tgtd服务正在开启的状况下也没法建立,必须先停掉tgtd这个服务。

#在iqn下的portals目录内设置
create 10.0.10.11 ip_port=3260

设置登录验证

set auth userid=admin
set auth passwd=admin

2)客户端连接

安装客户端软件

yum install iscsi-initiator-utils -y
#启动客户端程序
service iscsi start
service iscsid start

发现服务器

iscsiadm -m discovery -t st -p 10.10.10.11

ISCSI块存储构建_Linux_03

修改vim /etc/iscsi/initiatorname.iscsi文件内的iqn地址

InitiatorName=【你创建的iqn地址】

登录服务器

iscsiadm -m node -T iqn.2023-06.com.langren.www.master:slave --login
#登出服务器
umount /dev/sdb1   #解除挂载
iscsiadm -m node -T iqn.2023-06.com.langren.www.master:slave --logout
#如何服务端配置了认证,客户端需要在配置文件中开启认证模式填写认证用户和密码

再次查看磁盘可以发现已经有了一块新硬盘

ISCSI块存储构建_ISCSI块存储_04

在客户端使用fdisk命令创建分区即可

#创建分区
fdisk /dev/sdb
#格式化分区
mkfs.ext4 /dev/sdb1
#创建挂载目录
mkdir /mnt/iscsi
mount /dev/sdb1 /mnt/iscsi/

ISCSI块存储构建_Linux_05