当前位置:首页 > Linux > 正文

linux系统如何挂载iscsi

Linux系统中挂载iSCSI需先安装 open-iscsi工具,启动服务,用 iscsiadm发现并登录目标,扫描设备后分区格式化,最后挂载使用

是Linux系统挂载iSCSI存储的详细操作指南,涵盖从环境准备到自动化管理的全流程:

前期准备与软件安装

  1. 确认依赖工具:确保系统已安装open-iscsi客户端工具,不同发行版的安装命令如下:

    • Debian/Ubuntu系:sudo apt install open-iscsi
    • CentOS/RHEL系:sudo yum install iscsi-initiator-utils
      若未安装,可通过包管理器完成部署],部分旧版本可能需要手动指定RPM包路径进行安装(如从系统光盘提取)。
  2. 启动并启用服务:执行以下命令启动iSCSI守护进程,并设置为开机自启:

    sudo systemctl start iscsid      # 立即启动服务
    sudo systemctl enable iscsid     # 加入启动项

    或传统SysV风格指令:service iscsi start + chkconfig iscsi on --level 235

发现与连接目标端

  1. 扫描可用目标:使用iscsiadm命令主动探测存储服务器发布的LUN(逻辑单元号):

    sudo iscsiadm -m discovery -t sendtargets -p <目标服务器IP>

    示例:sudo iscsiadm -m discovery -t sendtargets -p 192.168.4.104,成功执行后会返回目标设备的IQN(iSCSI合格名称)列表。

    linux系统如何挂载iscsi  第1张

  2. 登录指定目标:根据上一步获取的IQN和端口信息,建立连接会话:

    sudo iscsiadm -m node -T <完整IQN> -p <目标IP>:<端口号> --login

    典型参数组合如:sudo iscsiadm -m node -T iqn.2004-01.com.storbridge:block01-wt -p 192.16.10.188:3260 -l,可通过iscsiadm -m session查看已建立的会话状态。

  3. 验证设备识别:运行fdisk -llsblk查看新出现的块设备节点(通常命名为/dev/sdX系列),此时设备尚未格式化,需进一步处理。

磁盘初始化与挂载

步骤 命令示例 说明
分区创建 sudo fdisk /dev/sdb 交互式划分主分区/扩展分区
文件系统写入 sudo mkfs.ext4 /dev/sdb1 选择Ext4格式兼顾性能与兼容性
创建挂载点 sudo mkdir -p /mnt/iscsi_data 根据实际需求调整路径位置
执行挂载操作 sudo mount /dev/sdb1 /mnt/iscsi_data 临时生效,重启后失效
持久化配置 编辑/etc/fstab添加条目 /dev/sdb1 /mnt/iscsi_data ext4 defaults 0 2

注意:直接使用设备名可能在磁盘顺序变化时导致故障,建议用UUID替代(通过blkid获取)。

高级配置优化

  1. 多路径I/O(MPIO):通过安装UltraPath等多路径软件提升可靠性,例如安装RPM包:rpm -Uvh UltraPath-5.01.010.suse11_sp1.x86_64.default.rpm,实现负载均衡与故障切换。

  2. 自动登录设置:修改配置文件/etc/iscsid.conf中的node.startup参数为automatic,使系统启动时自动完成目标登录,减少人工干预。

  3. 安全增强措施:如需CHAP认证,可在/etc/iscsi/iscsid.conf中配置用户名和密钥,确保传输链路加密验证。

常见问题排查

  1. 无法发现目标端:检查防火墙是否开放3260端口;确认目标服务器的IP地址和TCP端口配置正确性;确保网络路由可达。

  2. 登录失败提示认证错误:核对IQN名称拼写一致性;检查目标端的ACL访问控制列表是否包含本机发起端的IQN地址;验证CHAP凭证有效性。

  3. 设备未被内核识别:执行modprobe iscsi_ibft强制加载驱动模块;查看dmesg日志定位错误原因。


FAQs

Q1: 如何在不重启系统的情况下重新扫描新增的iSCSI设备?

A: 使用命令sudo rescan-scsi-bus触发SCSI总线重检,或者执行echo "scsi add-single-device" > /proc/scsi/scsiX(需替换X为对应编号),该操作会立即更新设备列表而无需重启。

Q2: 为什么挂载后的iSCSI存储无法被Windows主机同时访问?

A: 因为iSCSI协议基于块级传输,同一时间只能有一个操作系统持有锁,若需跨平台共享,应改用NFS等文件级协议,或将LUN划分为独立卷分别分配给不同OS使用

0