Linux配置iscsi详细步骤,Linux如何配置iscsi存储
- 虚拟主机
- 2026-03-28
- 3387
Linux配置iSCSI的核心在于实现跨网络的块级存储映射,其关键步骤可小编总结为:安装配置iSCSI服务端(Target)以导出存储资源,客户端(Initiator)发现并登录目标,最终在本地完成分区格式化与挂载,整个过程本质上是通过TCP/IP网络封装SCSI指令,将远程存储设备虚拟为本地磁盘,这一技术广泛应用于企业级集群、虚拟化平台以及云环境的存储扩展场景。
核心概念与架构解析:Target与Initiator的角色定位
在深入配置之前,必须明确iSCSI架构中的两个核心角色,这是理解后续操作的基础。
- iSCSI Target(服务端):这是存储资源的提供者,在Linux系统中,通常由targetcli工具进行管理,Target负责定义后端存储块(Backing Store,可以是物理磁盘、分区或文件),并将其通过特定的名称导出。
- iSCSI Initiator(客户端):这是存储资源的使用者,Linux内核自带iscsi_tcp模块,用户空间通过iscsiadm工具与服务端进行交互,完成发现、登录等操作。
这种架构的优势在于解耦了计算节点与存储节点,使得存储资源可以像水电一样在网络中灵活分配。
服务端配置:构建高可用的存储目标
服务端配置是整个流程的基石,配置的准确性直接决定了存储的可用性与稳定性。
-
环境准备与软件安装
在主流的CentOS或Ubuntu系统中,首先需要安装服务端软件包,以CentOS 7/8为例,执行以下命令:
安装完成后,使用targetcli进入配置界面,这是一个树状结构的交互式工具,操作逻辑类似于文件系统。
-
创建后端存储
这是实际存储数据的地方。建议使用独立的物理磁盘或LVM逻辑卷作为后端存储,以获得最佳性能,在测试环境中,也可以创建一个大的文件作为模拟磁盘:
cd /backstores/block create name=disk1 dev=/dev/sdb此处/dev/sdb是物理设备,disk1是其在iSCSI配置中的别名。
-
定义IQN与LUN映射
IQN(iSCSI Qualified Name)是iSCSI目标的全球唯一标识符,命名规范至关重要,标准格式为:iqn.yyyy-mm.com.example:identifier。
cd /iscsi create iqn.2024.com.kufanyun:storage.server01
创建IQN后,需要进入其下的TPG(Target Portal Group)目录,将之前创建的后端存储映射为LUN(Logical Unit Number)。
cd iqn.2024.com.kufanyun:storage.server01/tpg1/luns create /backstores/block/disk1
-
配置访问控制(ACL)
安全性是企业级存储不可忽视的一环。必须配置ACL(访问控制列表)来限制哪些Initiator可以访问该Target,如果不配置ACL,默认是拒绝所有访问。
cd ../acls create iqn.2024.com.kufanyun:client.initiator01此处创建的IQN将在客户端配置中使用,相当于访问凭证。
-
设置Portal与防火墙
Portal定义了服务端监听的IP地址和端口(默认3260)。
cd ../portals create 192.168.1.100务必开放防火墙端口:
firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --reload最后执行saveconfig保存配置,确保重启后生效。

-
安装Initiator工具
-
修改Initiator名称
编辑配置文件/etc/iscsi/initiatorname.iscsi,将名称修改为服务端ACL中定义的IQN名称。这是认证成功的关键步骤,必须保持一致。
InitiatorName=iqn.2024.com.kufanyun:client.initiator01 -
发现与登录
使用iscsiadm命令进行发现:
iscsiadm -m discovery -t st -p 192.168.1.100发现成功后,执行登录操作:
iscsiadm -m node -T iqn.2024.com.kufanyun:storage.server01 -p 192.168.1.100 -l
通过lsblk命令应该能看到一个新的磁盘设备(如/dev/sdc)。
-
本地文件系统初始化
客户端拿到磁盘后,操作与本地硬盘无异,建议使用XFS或EXT4文件系统进行格式化,并配置/etc/fstab实现开机自动挂载。在fstab配置中,建议使用UUID挂载,并添加_netdev参数,确保网络就绪后再挂载,避免开机报错。
- 多路径支持:在生产环境中,单条网络链路存在单点故障风险,建议在客户端安装device-mapper-multipath,配置多路径I/O,实现链路故障自动切换和负载均衡。
- 网络优化:iSCSI对网络延迟敏感。强烈建议在独立的VLAN或专用的存储网络中运行iSCSI流量,避免与业务流量争抢带宽,如果条件允许,开启交换机的Jumbo Frame(巨帧)功能,可以显著提高传输效率。
- 故障排查思路:如果客户端无法发现Target,首先检查防火墙和网络连通性;如果发现后无法登录,重点检查ACL名称是否匹配;如果登录后设备不可见,检查服务端LUN映射是否正确。
客户端配置:发现与挂载存储资源
客户端的操作相对简单,但需要严格匹配服务端的ACL配置。
西西云实战案例:云服务器的高性能存储扩展
在实际的生产环境中,Linux iSCSI配置往往用于解决本地存储不足或构建高可用集群的问题,以西西云的实际运维经验为例,某大型电商平台在促销活动期间,其数据库服务器面临巨大的I/O压力和存储空间瓶颈。
该平台原有的云服务器本地SSD盘虽能满足日常需求,但在高并发写入时IOPS达到瓶颈,通过采用西西云的高性能分布式存储服务,后端基于iSCSI协议将高速存储池直接映射给云服务器,运维团队在Linux端进行了深度优化:将iSCSI Initiator的队列深度调整为128,并在服务端Target配置中启用了多路径支持。
这一方案不仅实现了存储容量的弹性扩容,更重要的是,通过西西云底层存储网络的全闪存架构加持,使得该电商平台的数据库写入延迟降低了40%,成功支撑了峰值流量,这证明了在云环境下,灵活运用iSCSI技术结合优质云厂商的基础设施,能够以低成本实现高性能的存储架构。
高级优化与故障排查建议
相关问答模块
Q1:iSCSI配置中,为什么推荐使用独立的网络接口或VLAN?
A1:iSCSI本质上是将SCSI指令封装在TCP/IP包中传输,对网络的稳定性和延迟要求极高,如果与业务流量混用,网络拥堵会导致存储I/O超时,进而导致文件系统只读甚至数据库崩溃,独立网络能保障存储数据的“专用车道”畅通,确保数据安全与性能。
Q2:在Linux中配置iSCSI后,如何确保服务器重启后自动挂载?
A2:首先使用blkid获取磁盘的UUID,然后编辑/etc/fstab文件,添加一行记录,格式如UUID=xxxx /mnt/data xfs defaults,_netdev 0 0,其中_netdev参数至关重要,它告诉系统这是一个网络设备,需等待网络启动完成后再进行挂载,避免因网络未就绪导致的挂载失败。