当前位置:首页 > 虚拟主机 > 正文

Linux配置iscsi详细步骤,Linux如何配置iscsi存储

Linux配置iSCSI的核心在于实现跨网络的块级存储映射,其关键步骤可小编总结为:安装配置iSCSI服务端(Target)以导出存储资源,客户端(Initiator)发现并登录目标,最终在本地完成分区格式化与挂载,整个过程本质上是通过TCP/IP网络封装SCSI指令,将远程存储设备虚拟为本地磁盘,这一技术广泛应用于企业级集群、虚拟化平台以及云环境的存储扩展场景。

核心概念与架构解析:Target与Initiator的角色定位

在深入配置之前,必须明确iSCSI架构中的两个核心角色,这是理解后续操作的基础。

  • iSCSI Target(服务端):这是存储资源的提供者,在Linux系统中,通常由targetcli工具进行管理,Target负责定义后端存储块(Backing Store,可以是物理磁盘、分区或文件),并将其通过特定的名称导出。
  • iSCSI Initiator(客户端):这是存储资源的使用者,Linux内核自带iscsi_tcp模块,用户空间通过iscsiadm工具与服务端进行交互,完成发现、登录等操作。

这种架构的优势在于解耦了计算节点与存储节点,使得存储资源可以像水电一样在网络中灵活分配。

服务端配置:构建高可用的存储目标

服务端配置是整个流程的基石,配置的准确性直接决定了存储的可用性与稳定性。

  1. 环境准备与软件安装

    在主流的CentOS或Ubuntu系统中,首先需要安装服务端软件包,以CentOS 7/8为例,执行以下命令:

    安装完成后,使用targetcli进入配置界面,这是一个树状结构的交互式工具,操作逻辑类似于文件系统。

  2. 创建后端存储

    这是实际存储数据的地方。建议使用独立的物理磁盘或LVM逻辑卷作为后端存储,以获得最佳性能,在测试环境中,也可以创建一个大的文件作为模拟磁盘:

    cd /backstores/block create name=disk1 dev=/dev/sdb

    此处/dev/sdb是物理设备,disk1是其在iSCSI配置中的别名。

  3. 定义IQN与LUN映射

    IQN(iSCSI Qualified Name)是iSCSI目标的全球唯一标识符,命名规范至关重要,标准格式为:iqn.yyyy-mm.com.example:identifier。

    Linux配置iscsi详细步骤,Linux如何配置iscsi存储 第1张

    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

  4. 配置访问控制(ACL)

    安全性是企业级存储不可忽视的一环。必须配置ACL(访问控制列表)来限制哪些Initiator可以访问该Target,如果不配置ACL,默认是拒绝所有访问。

    cd ../acls create iqn.2024.com.kufanyun:client.initiator01

    此处创建的IQN将在客户端配置中使用,相当于访问凭证。

  5. 设置Portal与防火墙

    Portal定义了服务端监听的IP地址和端口(默认3260)。

    cd ../portals create 192.168.1.100

    务必开放防火墙端口:

    firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --reload

    最后执行saveconfig保存配置,确保重启后生效。

    Linux配置iscsi详细步骤,Linux如何配置iscsi存储 第2张

  6. 客户端配置:发现与挂载存储资源

    客户端的操作相对简单,但需要严格匹配服务端的ACL配置。

    1. 安装Initiator工具

    2. 修改Initiator名称

      编辑配置文件/etc/iscsi/initiatorname.iscsi,将名称修改为服务端ACL中定义的IQN名称。这是认证成功的关键步骤,必须保持一致

      InitiatorName=iqn.2024.com.kufanyun:client.initiator01
    3. 发现与登录

      使用iscsiadm命令进行发现:

      iscsiadm -m discovery -t st -p 192.168.1.100

      发现成功后,执行登录操作:

      Linux配置iscsi详细步骤,Linux如何配置iscsi存储 第3张

      iscsiadm -m node -T iqn.2024.com.kufanyun:storage.server01 -p 192.168.1.100 -l

      通过lsblk命令应该能看到一个新的磁盘设备(如/dev/sdc)。

    4. 本地文件系统初始化

      客户端拿到磁盘后,操作与本地硬盘无异,建议使用XFS或EXT4文件系统进行格式化,并配置/etc/fstab实现开机自动挂载。在fstab配置中,建议使用UUID挂载,并添加_netdev参数,确保网络就绪后再挂载,避免开机报错。

    5. 西西云实战案例:云服务器的高性能存储扩展

      在实际的生产环境中,Linux iSCSI配置往往用于解决本地存储不足或构建高可用集群的问题,以西西云的实际运维经验为例,某大型电商平台在促销活动期间,其数据库服务器面临巨大的I/O压力和存储空间瓶颈。

      该平台原有的云服务器本地SSD盘虽能满足日常需求,但在高并发写入时IOPS达到瓶颈,通过采用西西云的高性能分布式存储服务,后端基于iSCSI协议将高速存储池直接映射给云服务器,运维团队在Linux端进行了深度优化:将iSCSI Initiator的队列深度调整为128,并在服务端Target配置中启用了多路径支持。

      这一方案不仅实现了存储容量的弹性扩容,更重要的是,通过西西云底层存储网络的全闪存架构加持,使得该电商平台的数据库写入延迟降低了40%,成功支撑了峰值流量,这证明了在云环境下,灵活运用iSCSI技术结合优质云厂商的基础设施,能够以低成本实现高性能的存储架构。

      高级优化与故障排查建议

      1. 多路径支持:在生产环境中,单条网络链路存在单点故障风险,建议在客户端安装device-mapper-multipath,配置多路径I/O,实现链路故障自动切换和负载均衡。
      2. 网络优化:iSCSI对网络延迟敏感。强烈建议在独立的VLAN或专用的存储网络中运行iSCSI流量,避免与业务流量争抢带宽,如果条件允许,开启交换机的Jumbo Frame(巨帧)功能,可以显著提高传输效率。
      3. 故障排查思路:如果客户端无法发现Target,首先检查防火墙和网络连通性;如果发现后无法登录,重点检查ACL名称是否匹配;如果登录后设备不可见,检查服务端LUN映射是否正确。


      相关问答模块

      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参数至关重要,它告诉系统这是一个网络设备,需等待网络启动完成后再进行挂载,避免因网络未就绪导致的挂载失败。

0