iSCSI代表Internet小型计算机系统接口是一种存储区域网络协议,可用于共享块设备,例如HDD / SSD分区或LVM分区,或网络上的块文件。iSCSI以客户端-服务器模型工作,并依赖TCP / IP网络在发起方客户端和目标之间发送SCSI命令。iSCSI Target是iSCSI服务器上的一项服务,可提供对共享存储的访问,而iSCSI Initiator是连接到目标并访问共享存储的iSCSI客户端。
1.准备工作
一个Ubuntu 系统用于iSCSI目标机target,和1GB的外接硬盘。
一个Ubuntu 全新系统,用于iSCSI启动器initiator。
一根网线连接目标机和启动器,且在iSCSI目标机(target端)上配置了静态IP地址192.168.10.10,在iSCSI启动器(Initiator端)上配置了192.168.10.11。
两台服务器上均配置了root密码。
2.步骤
target端
(1) 安装iSCSI Target
# apt-get install tgt
(2) 查看状态
# systemctl status tgt
(3) 配置iSCSI目标
首先,您需要在iSCSI服务器上创建LUN(逻辑单元号)设备。LUN是作为物理SCSI设备一部分的后端存储设备。映射到iSCSI Target的所有LUN实际上都已附加到客户端的操作系统。因此,启动器可以在iSCSI LUN上建立和管理文件系统。
# vim /etc/tgt/conf.d/iscsi.conf
内容如下:
<target iqn.2023-11.pendl.com:lun1>
backing-store /dev/sda
initiator-address 192.168.10.11
</target>
命名规则:以 iSCSI 限定名 (iSCSI Qualified Name, iqn) 格式指定目标名称,例如 iqn.1988-12.com.oracle:X5-2-target
(4) 配置完毕,重启tgt
# systemctl restart tgt
(5)查看状态
# systemctl status tgt
可以看到如下信息:
(6) 验证iSCSI Target服务器
# tgtadm --mode target --op show
可以看到如下信息:
Initator端
(1) 安装软件包
# apt-get install open-iscsi
(2) 发现目标
# iscsiadm -m discovery -t st -p 192.168.10.10
注:节点配置文件将存放于目录 /etc/iscsi/nodes/ 中,并且每个LUN都有一个对应的配置目录。
比如:/etc/iscsi/nodes/iqn.2023-11.pend1.com:lun1/192.168.10.10,3260,1/default
在上述发现命令执行完毕后将在 /etc/iscsi/nodes/ 中自动生成指向iscsi target的IP的配置目录。
如果要更新服务端target的配置需要将 /etc/iscsi/nodes/ 下的配置目录删除,然后再执行iscsiadm -m discovery … 发现命令,以生成新的配置。
(3) 添加iSCSI Target LUN名称
# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2023-11.pendl.com:client
# 注意InitiatorName只能有一个。主要用于标识Initiator,与target无关
(4) 验证连接
# iscsiadm -m session -o show
(5) 登录
#iscsiadm -m node --login (后面若想退出:iscsi -m node --logout)
(6) 验证从iSCSI目标共享的存储设备
#lsblk 或 fdisk -l
(7) 在共享设备上创建文件系统
为了在iSCSI启动器上使用共享设备,您将需要在共享设备(sda)上创建文件系统并将其挂载以使该设备有用。
首先,使用以下命令在共享设备(sda)上创建文件系统:
# fdisk /dev/sda
回答如下所示的所有问题以创建文件系统:
格式化分区:
# mkfs.ext4 /dev/sda1
将分区安装到/mnt目录并验证已安装的分区:
以上为如何在UbuntuOS服务器上设置iSCSI目标机和启动器,以及如何在目标服务器上共享设备并从启动器访问它。