
iSCSI(Internet Small Computer System Interface)作为一种基于IP网络的存储协议,允许通过网络将存储设备连接到服务器,极大地降低了存储成本并提高了资源利用率
而在iSCSI的世界里,IQN(iSCSI Qualified Name)扮演着举足轻重的角色,它作为每个iSCSI发起者和目标的唯一标识符,确保了数据传输的安全性和准确性
本文将深入探讨在Linux系统中如何设置和管理IQN,以助您构建高效、安全的iSCSI存储网络
一、IQN基础概念 IQN,全称iSCSI Qualified Name,是一种遵循RFC 3720标准的命名约定,用于唯一标识iSCSI网络中的每个节点(无论是发起者还是目标)
IQN的格式类似于一个URL,通常由前缀“iqn.”开头,后跟一个日期(YYYY-MM),一个反向域名(reversed domain name),以及一个可选的节点名称(node name)
例如:`iqn.2023-04.com.example:storage.target1`
- 前缀:iqn.,固定不变,表明这是一个IQN
- 日期:2023-04,表示该IQN被创建的时间,有助于避免命名冲突
- 反向域名:com.example,通常是组织或公司的域名反转形式,用于区分不同的实体
- 节点名称:storage.target1,是可选部分,用于进一步区分同一组织内的不同设备或服务
IQN的重要性在于它提供了一种标准化的方式来识别和认证网络中的iSCSI设备,确保了数据传输的可靠性和安全性
二、Linux环境下的iSCSI工具 在Linux系统中,管理和配置iSCSI服务通常依赖于几个关键的工具和库,包括`iscsiadm`、`open-iscsi`以及`targetcli`等
- iscsiadm:这是一个命令行工具,用于管理和配置iSCSI发起者(initiator)和目标(target)的各个方面,包括发现目标、登录会话、查询状态等
- open-iscsi:这是一个开源的iSCSI发起者实现,提供了必要的用户空间和内核模块来支持iSCSI通信
- targetcli:这是一个基于Python的命令行界面,用于配置和管理Linux上的iSCSI目标服务
它允许管理员创建、删除、配置目标以及定义LUN(Logical Unit Number)映射等
三、安装与配置iSCSI服务 1.安装必要的软件包 在大多数Linux发行版上,可以通过包管理器安装`open-iscsi`和`targetcli`
以Ubuntu为例: bash sudo apt update sudo apt install open-iscsi targetcli 2.启动并启用iSCSI服务 安装完成后,需要启动并设置iSCSI服务在系统启动时自动运行: bash sudo systemctl start iscsid sudo systemctl enable iscsid 3.配置iSCSI发起者 编辑`/etc/iscsi/initiatorname.iscsi`文件,设置或确认IQN
通常,在安装`open-iscsi`时,系统会自动生成一个唯一的IQN
如果需要更改,可以手动编辑该文件: bash sudo nano /etc/iscsi/initiatorname.iscsi 将文件中的`InitiatorName=`后面的值修改为您希望的IQN
四、发现、登录与挂载iSCSI目标 1.发现iSCSI目标 使用`iscsiadm`命令发现网络上的iSCSI目标
假设目标的IP地址为`192.168.1.100`: bash sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.100 如果成功,会显示发现的目标列表及其IQN
2.登录到iSCSI目标
使用`iscsiadm`命令登录到发现的目标:
bash
sudo iscsiadm -m node -T 使用`fdisk="" -l`或`lsblk`命令查看新磁盘,然后使用`mkfs`格式化并挂载 ="" fdisk="" -l="" mkfs.ext4="" sdx1="" 假设要格式化的分区为="" mount="" mnt="" iscsi_disk="" 五、配置iscsi目标(使用targetcli)="" 1.启动targetcli="" targetcli="" 2.创建目标="" 在targetcli的交互式界面中,创建一个新的目标:=""> cd /backstores/block
/backstores/block> create disk1 /path/to/your/disk.img 10G 创建一个10GB的虚拟磁盘文件
/backstores/block> cd /
/> cd /iscsi
/iscsi> create iqn.2023-04.com.example:storage.target1
3.配置LUN映射
将创建的磁盘映射到目标:
targetcli
/iscsi/iqn.2023-04.com.example:storage.target1> cd luns
/iscsi/iqn.2023-04.com.example:storage.target1/luns> create /backstores/block/disk1
4.配置访问控制
设置允许访问该目标的发起者IQN:
targetcli
/iscsi/iqn.2023-04.com.example:storage.target1> cd acls
/iscsi/iqn.2023-04.com.example:storage.target1/acls> create iqn.2023-04.com.example:initiator1
5.保存配置并退出
在targetcli中,配置更改不会自动保存,需要手动保存并退出:
targetcli
/> saveconfig
/> exit
六、总结
通过本文,我们详细探讨了Linux系统中IQN的概念、重要性以及如何在Linux环境中设置和管理iSCSI发起者和目标 从安装必要的软件包、配置iSCSI发起者、发现与登录iSCSI目标,到使用targetcli配置iSCSI目标,每一步都至关重要 正确配置IQN不仅确保了网络存储的安全性,还提高了存储资源的灵活性和可扩展性 随着云计算和虚拟化技术的不断发展,掌握iSCSI及其相关技术将为您的数据中心管理带来更大的便利和效益