Linux如何卸载iSCSI设备及配置?

在Linux系统中,iSCSI(Internet Small Computer System Interface)是一种基于TCP/IP的存储网络协议,允许用户通过网络将远程存储设备映射为本地块设备,当需要更换存储方案、排查故障或进行系统维护时,卸载iSCSI连接是必要的操作,本文将详细讲解Linux系统中卸载iSCSI的完整流程,包括准备工作、核心卸载步骤、常见问题处理及注意事项,帮助用户安全、彻底地移除iSCSI配置

linux如何卸载iscsi

卸载前的准备工作

在开始卸载iSCSI之前,需完成以下准备工作,以确保操作安全且避免数据丢失:

  1. 备份数据:确认iSCSI挂载点中的数据已备份,避免误操作导致数据丢失。
  2. 检查挂载状态:使用mountdf -h命令确认iSCSI设备是否仍被挂载,若已挂载需先卸载文件系统。
  3. 确认会话状态:通过iscsiadm -m session查看当前活跃的iSCSI会话,记录目标名称(Target)和门户地址(Portal),便于后续针对性操作。
  4. 获取管理员权限:卸载操作通常需要root权限,建议使用sudo执行相关命令。

详细卸载步骤

卸载iSCSI的核心流程包括“停止会话→删除持久化配置→清理设备文件→可选卸载软件包”,需按顺序执行,确保彻底移除配置。

停止iSCSI会话

iSCSI会话是客户端与目标存储设备之间的活跃连接,停止会话是卸载的第一步,Linux中主要通过iscsiadm工具管理会话,具体操作如下:

  1. 查看活跃会话
    执行以下命令列出当前所有活跃的iSCSI会话:

    iscsiadm -m session

    输出示例类似:

    tcp: [1] 192.168.1.100:3260,1 iqn.2023-01.com.example:storage.target01  

    其中[1]为会话ID,168.1.100:3260为目标门户地址,iqn.2023-01.com.example:storage.target01为目标名称。

  2. 停止指定会话
    若需停止所有会话,可直接使用以下命令:

    iscsiadm -m session -u

    若需停止特定会话(通过会话ID筛选),可结合grepawk提取会话ID后执行:

    iscsiadm -m session | grep '192.168.1.100:3260' | awk '{print $2}' | xargs -I {} iscsiadm -m session -s {} -u

    执行后,系统会终止与目标设备的网络连接,释放相关资源,若提示“Session terminated successfully”,表示会话已停止。

删除持久化配置

Linux的open-iscsi工具默认会持久化保存iSCSI节点配置(如目标地址、认证信息等),即使会话停止后,系统重启仍可能自动重新连接,需手动删除持久化配置,避免意外重连。

  1. 查看节点配置
    执行以下命令列出所有已发现的iSCSI节点配置:

    linux如何卸载iscsi

    iscsiadm -m node

    输出将显示目标名称、门户地址、认证方式等信息,

    iqn.2023-01.com.example:storage.target01  
        192.168.1.100:3260,1  
  2. 删除节点配置
    若需删除所有节点配置,直接执行:

    iscsiadm -m node -o delete

    若需删除特定目标(如通过目标名称筛选),可结合grep精确匹配:

    iscsiadm -m node | grep 'iqn.2023-01.com.example:storage.target01' | awk '{print $2}' | xargs -I {} iscsiadm -m node -T {} -o delete

    执行后,系统会清除/etc/iscsi/nodes//etc/iscsi/send_targets/目录下的相关配置文件,确保目标信息不再被持久化。

清理挂载点与设备文件

iSCSI设备通常被映射为本地块设备(如/dev/sdb),并挂载至指定目录(如/mnt/iscsi_data),若文件系统已挂载,需先卸载;同时需清理残留的设备文件符号链接。

  1. 卸载文件系统
    使用umount命令卸载挂载点,若设备正被占用,需先终止占用进程(如通过fuser -km /mnt/iscsi_data强制释放):

    umount /mnt/iscsi_data

    若提示“device is busy”,可尝试强制卸载:

    umount -l /mnt/iscsi_data
  2. 清理设备文件
    iSCSI设备文件可能残留于/dev/disk/by-path//dev/disk/by-id/目录下,可通过以下命令查看并手动删除:

    ls -l /dev/disk/by-path/ | grep -i iscsi

    找到对应的符号链接(如ip-192.168.1.100:3260-iscsi-iqn.2023-01.com.example:storage.target01-lun-1),使用rm删除:

    rm /dev/disk/by-path/ip-192.168.1.100:3260-iscsi-iqn.2023-01.com.example:storage.target01-lun-1
  3. 删除挂载目录(可选)
    若挂载目录不再需要,可手动删除:

    rmdir /mnt/iscsi_data

卸载iSCSI软件包(可选)

若后续不再使用iSCSI,可彻底卸载open-iscsi软件包,不同Linux发行版的卸载命令略有差异:

linux如何卸载iscsi

  • Ubuntu/Debian
    sudo apt remove --purge open-iscsi
  • CentOS/RHEL/Fedora
    sudo yum remove iscsi-initiator-utils  # 或 dnf remove
  • Arch Linux
    sudo pacman -R open-iscsi

    卸载后,建议清理残留配置文件(如/etc/iscsi/iscsid.conf),确保系统不再保留任何iSCSI相关设置。

验证卸载结果

完成上述步骤后,需验证iSCSI是否已彻底卸载:

  1. 检查会话状态:执行iscsiadm -m session,若无输出,表示会话已全部停止。
  2. 检查节点配置:执行iscsiadm -m node,若无输出,表示持久化配置已删除。
  3. 检查设备文件:执行lsblk | grep -i iscsifdisk -l,确认不再显示iSCSI设备。

常见问题与注意事项

  1. 设备占用导致卸载失败
    umount提示“device is busy”,可通过fuser -vm /mnt/iscsi_data查看占用进程,或使用lsof | grep /mnt/iscsi_data定位具体进程,终止后重试。

  2. 会话停止后仍自动重连
    可能是未删除持久化配置或iscsid服务未停止,需确保执行了iscsiadm -m node -o delete,并检查iscsid服务状态:

    systemctl status iscsid  # 若运行,可执行 systemctl stop iscsid
  3. 多路径环境下的卸载
    若使用多路径(如multipathd),需先停止多路径服务并清理多路径映射,再执行iSCSI卸载,避免残留多路径设备:

    systemctl stop multipathd
    multipath -F  # 清理多路径映射

Linux iSCSI卸载核心步骤及命令总结

以下表格汇总了卸载过程中的关键步骤、对应命令及操作说明,便于快速查阅:

操作阶段 命令示例 说明
查看活跃会话 iscsiadm -m session 列出当前所有iSCSI会话,包含目标地址和会话ID
停止所有会话 iscsiadm -m session -u 终止所有活跃的iSCSI会话,释放网络连接
停止特定会话 iscsiadm -m session -s [会话ID] -u 通过会话ID精确终止指定会话(需先通过grep提取会话ID)
查看节点配置 iscsiadm -m node 列出所有持久化的iSCSI节点配置,包含目标名称和门户地址
删除所有节点配置 iscsiadm -m node -o delete 清除系统中的iSCSI目标持久化配置,防止重启后自动重连
卸载文件系统 umount /mnt/iscsi_data 卸载iSCSI设备挂载的文件系统,若占用可强制卸载(umount -l
清理设备文件 rm /dev/disk/by-path/ip-[目标地址]-iscsi-[目标名称]-lun-[LUN号] 删除iSCSI设备在/dev/disk/by-path/下的符号链接
卸载软件包 sudo apt remove --purge open-iscsi(Ubuntu)或sudo yum remove iscsi-initiator-utils(CentOS) 彻底移除iSCSI客户端软件及配置文件(可选操作)

相关问答FAQs

Q1:卸载iSCSI后,为什么lsblk仍能看到残留设备?
A:这通常是因为内核缓存未刷新或设备未被彻底释放,可尝试以下方法解决:

  1. 重启系统(最彻底的方式,可清除所有内核缓存和设备映射);
  2. 手动刷新设备缓存:echo 1 > /sys/block/sdb/device/delete(将sdb替换为实际设备名);
  3. 检查多路径服务是否运行:systemctl status multipathd,若运行需先停止并清理多路径映射(multipath -F)。

Q2:如何批量卸载多个iSCSI会话?
A:当存在多个会话时,可通过循环命令批量处理,停止所有会话并删除对应节点配置:

# 停止所有会话
iscsiadm -m session | awk '{print $2}' | xargs -I {} iscsiadm -m session -s {} -u  
# 删除所有节点配置
iscsiadm -m node | awk '{print $2}' | xargs -I {} iscsiadm -m node -T {} -o delete

上述命令通过awk提取会话ID或目标名称,结合xargs批量执行操作,适用于大规模iSCSI环境的快速卸载。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22912.html

(0)
酷番叔酷番叔
上一篇 2025年9月10日 11:24
下一篇 2025年9月10日 11:37

相关推荐

  • Linux中如何查看用户权限的具体信息及查看方式?

    在Linux系统中,用户权限是保障系统安全与资源合理分配的核心机制,通过精细化的权限控制,确保不同用户只能访问其被授权的资源,要查看用户权限,需从用户身份、文件/目录权限、特殊权限、sudo授权等多个维度入手,结合多种命令和工具进行综合分析,以下将从基础到进阶,详细说明Linux中查看用户权限的方法及核心知识点……

    2025年10月4日
    6500
  • Linux打开文件有哪些方法?

    命令行打开文件(终端操作)查看文本文件内容cat 命令(显示全部内容)cat filename.txt # 直接输出文件内容适用场景:快速查看小文件,less 命令(分页浏览,推荐)less filename.txt # 按空格翻页,按 `q` 退出优势:支持上下滚动、搜索(输入 ),more 命令(基础分页……

    2025年6月14日
    10500
  • Linux注销用户会话有哪些方法?

    终端/命令行注销(适用于本地或SSH连接)基础命令logout或exit适用场景:当前终端会话的直接退出,快捷键注销按 Ctrl + D 组合键(等效于 exit 命令),多会话处理若同时开启多个终端:逐个执行 exit 关闭会话使用 who 查看活动会话强制结束其他用户会话(需root权限):sudo pki……

    2025年8月9日
    9400
  • Linux系统如何设置为ANSI编码?

    在Linux系统中,ANSI转义序列常用于控制终端输出,如设置文本颜色、光标位置、清屏等,提升交互体验,要启用或优化ANSI支持,需从终端模拟器配置、Shell环境设置及工具适配三方面入手,以下是具体操作步骤和注意事项,检查终端ANSI支持情况首先确认当前终端是否支持ANSI转义序列,打开终端,运行以下命令:e……

    2025年9月23日
    8000
  • Linux如何ping通外网地址?

    在Linux系统中,ping命令是最常用的网络连通性测试工具之一,它通过发送ICMP(Internet Control Message Protocol)回显请求包,目标主机收到后会返回响应包,从而判断本地与目标主机之间的网络是否可达、延迟情况以及丢包率等,测试外网地址时,需确保本地网络已正确配置(如IP地址……

    2025年9月23日
    8500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信