Linux故障诊断系列3-排除存储问题的故障

78 阅读19分钟

💾 Linux存储故障救急指南 | 文件系统崩了?LVM出错了?这5招让你数据"起死回生"!

📖 写在开头:你是不是也这样?

第一段:痛点场景

你有没有遇到过这样的噩梦场景?系统突然崩溃,重启后提示"file system corrupted",所有数据都访问不了。你拼命尝试修复,但每次都是"mount failed"或者"superblock error"。更糟糕的是,老板已经打来电话:"数据库里的数据能不能恢复?我们的业务还能不能继续?"

或者,你刚扩容了LVM,结果系统报错"Volume group not found",所有逻辑卷都找不到了。用户的数据还在里面,但你却束手无策...

如果你也经历过这种"存储即绝望"的时刻,那么今天FYC要告诉你一个好消息:存储故障其实有章可循,掌握了正确的方法,你就能像数据恢复专家一样让数据"起死回生"!

不仅如此,我们还要聊聊Linux存储栈的完整架构。只有理解了数据是如何从应用程序流向磁盘的,你才能在故障发生时快速定位问题所在。

第二段:解决方案概述

今天我们要聊的是Linux存储故障排除,这是每个运维工程师都必须掌握的生存技能。我们将从Linux存储栈的完整架构讲起,带你一步步学会如何恢复损坏的文件系统、修复LVM配置错误、恢复丢失的加密卷,以及如何快速解决iSCSI存储网络问题。

本文将为你带来:

•🎯 Linux存储栈全景图:从VFS到物理硬件的10层架构详解•🔧 文件系统恢复神器:XFS/ext4损坏修复、超级块恢复•📊 LVM故障排除:vgcfgrestore恢复LVM配置、存档功能详解•🔐 LUKS加密卷恢复:头备份与恢复、解密故障排除•🌐 iSCSI问题诊断:网络连接排查、认证配置、登录故障解决•💡 实战案例解析:真实场景下的存储故障排除全过程

跟着FYC走,从此告别"存储即绝望"的时代!

第三段:5维度评分表

维度评分说明
难度等级⭐⭐⭐⭐⭐需要深入理解存储栈架构和数据恢复原理
实用价值⭐⭐⭐⭐⭐存储故障通常导致数据丢失,是最紧急的故障
技术深度⭐⭐⭐⭐⭐从存储栈架构到数据恢复的全面覆盖
可操作性⭐⭐⭐⭐⭐所有命令和工具都可以直接使用
紧急性⭐⭐⭐⭐⭐存储故障通常是最紧急、最严重的故障类型

📚 正文:干货满满,但要"喂到嘴里"!

🏗️ 一、Linux存储栈全景图:理解数据流动的完整路径

在动手修存储故障之前,FYC想先给你画一幅"地图"。只有理解了数据是如何从应用程序流向磁盘的,你才能在故障发生时快速定位问题所在。

📋 存储栈10层架构:从应用到底层

Linux存储栈分为10层,数据从应用程序流向物理硬盘的完整路径:

应用程序层
    ↓
虚拟文件系统(VFS)       # 第1层:统一接口,缓存管理
    ↓
文件系统层(XFS/ext4)    # 第2层:文件组织、元数据管理
    ↓
设备映射器(Device Mapper) # 第3层:LVM、LUKS、多路径
    ↓
块层(Block Layer)        # 第4层:I/O调度、请求合并
    ↓
设备映射器多路径(DM Multipath) # 第5层:多路径聚合
    ↓
SCSI中间层(SCSI Mid-layer) # 第6层:SCSI协议桥接
    ↓
低级驱动程序(Low-level Drivers) # 第7层:硬件驱动
    ↓
传输层(Transport Layer)  # 第8层:SATA/SAS/FC/iSCSI
    ↓
主机总线适配器(HBA)     # 第9层:物理接口卡
    ↓
物理硬件(Physical Hardware) # 第10层:硬盘/SSD/存储阵列

💡 关键洞察:如果这10层中任何一层出了问题,数据就访问不了!而大部分存储故障都出在第2-4层,也就是文件系统、设备映射器和块层。

🔍 各层详解:每一层的作用和工具

第1层:虚拟文件系统(VFS) 🗂️

VFS为应用程序提供统一的POSIX接口,无论底层是什么文件系统,应用程序都用相同的系统调用:

# VFS提供的系统调用
open(), read(), write(), close(), mmap()...

# VFS维护的缓存(提高性能)
- inode缓存:文件元数据缓存
- dentry缓存:目录项缓存
- page缓存:文件数据缓存(最重要!)

# 绕过page缓存(数据库常用)
使用O_DIRECT标志打开文件

💡 小技巧:如果怀疑是缓存问题,可以尝试:

# 清除page缓存(危险操作,仅在测试环境!)
echo 1 > /proc/sys/vm/drop_caches

# 查看缓存统计
free -h
cat /proc/meminfo | grep -i cache

第2层:文件系统层(Filesystems) 📁

文件系统负责文件的组织和命名:

# RHEL 7默认文件系统
XFS      # 默认,适合大文件
ext4     # RHEL 6默认,兼容性好
ext3     # 已废弃
ext2     # 已废弃

# 文件系统类型
- 块存储:XFS、ext4(本地磁盘)
- 网络存储:NFS、SMB(网络文件系统)
- 伪文件系统:procfs、sysfs(虚拟文件系统)
- 内存文件系统:tmpfs(内存支持)

第3层:设备映射器(Device Mapper) 🔧

Device Mapper将逻辑设备映射到物理设备,LVM、LUKS都依赖它:

# 查看设备映射
dmsetup ls
dmsetup table

# 示例:LVM逻辑卷映射
/dev/mapper/myvg-mylv → /dev/dm-0 → /dev/vdb1 + /dev/vdb2

第4层:块层(Block Layer)

块层负责I/O调度和请求优化:

# RHEL 7的三种I/O调度器
1. deadline   # 默认,偏向读操作,适合大多数场景
2. cfq        # 完全公平排队,RHEL 6默认,适合SATA
3. noop       # 先进先出,适合自己做调度的设备(存储阵列)

# 查看调度器
cat /sys/block/sda/queue/scheduler

# 修改调度器
echo deadline > /sys/block/sda/queue/scheduler

# blk-mq新机制(RHEL 7.1+,virtio设备使用)
# 绕过传统调度器,使用多队列机制

第5-7层:多路径、SCSI中间层、低级驱动 🔌

这些层负责处理硬件接口和协议转换:

# 多路径聚合多个I/O路径
multipath -ll

# SCSI设备识别
lsscsi

# 查看设备信息
lsblk

🔧 二、从文件系统损坏中恢复:让文件"起死回生"

系统崩溃后文件系统损坏?别慌!FYC教你如何一步步修复。

📊 文件系统选择:XFS vs ext4

RHEL 7默认使用XFS,不再是ext4:

特性XFSext4
RHEL版本RHEL 7默认RHEL 6默认
大文件支持非常好(最大8EB)好(最大16TB)
日志功能
修复工具xfs_repaire2fsck
修复速度快速较慢
⚠️ 修复前的重要提醒:三件事必须做

在动手修复之前,FYC要提醒你三件事:

1先解决硬件问题:如果是硬件故障导致的损坏,先修硬件!2先检查后修复:修复前先用 -n选项检查,模拟运行3必须先卸载:在挂载的文件系统上修复会导致进一步损坏!

# ❌ 错误做法:直接在挂载的文件系统上修复
xfs_repair /dev/vdb1  # 这会损坏文件系统!

# ✅ 正确做法:先卸载
umount /dev/vdb1
xfs_repair /dev/vdb1
🔍 检查文件系统:发现问题才能修复

检查ext3/ext4文件系统

# 安装工具
yum install -y e2fsprogs

# 检查文件系统(不修复,只检查)
e2fsck -n /dev/vdb1

# 退出代码含义:
# 0: 没有错误
# 4: 文件系统错误未修正
# 8: 操作错误
# 16: 用法或语法错误

# 详细模式检查
e2fsck -nv /dev/vdb1

检查XFS文件系统

# 安装工具
yum install -y xfsprogs

# 检查XFS文件系统(必须卸载!)
umount /dev/vdb1
xfs_check /dev/vdb1    # 旧版本命令
xfs_repair -n /dev/vdb1  # 新版本检查(不修复)

# xfs_repair -n 只检查,不修复
🛠️ 修复文件系统:让数据重见天日

修复ext3/ext4文件系统

# 1. 先卸载(重要!)
umount /dev/vdb1

# 2. 检查文件系统
e2fsck -n /dev/vdb1

# 3. 修复文件系统
e2fsck -p /dev/vdb1    # -p: 自动修复
# 或
e2fsck -y /dev/vdb1    # -y: 对所有问题回答"是"

# 4. 详细模式修复
e2fsck -vy /dev/vdb1

# 5. 使用备用超级块修复(如果主超级块损坏)
e2fsck -b 32768 /dev/vdb1  # 32768是备用超级块位置

修复XFS文件系统

# 1. 先卸载(重要!)
umount /dev/vdb1

# 2. 检查文件系统
xfs_repair -n /dev/vdb1

# 3. 修复文件系统
xfs_repair /dev/vdb1

# 4. 如果日志损坏,需要清零日志(危险!)
xfs_repair -L /dev/vdb1
# ⚠️ 警告:-L选项会清零日志,可能导致数据不一致!

# 5. 重新挂载验证
mount /dev/vdb1 /mnt
ls -l /mnt

实战案例:恢复损坏的XFS文件系统

# 场景:系统崩溃后,/dev/vdb1上的XFS文件系统无法挂载

# Step 1: 检查文件系统状态
xfs_repair -n /dev/vdb1
# 输出:发现不一致问题

# Step 2: 尝试修复
umount /mnt    # 如果已挂载,先卸载
xfs_repair /dev/vdb1

# Step 3: 如果日志损坏,清零日志(谨慎使用!)
xfs_repair -L /dev/vdb1

# Step 4: 重新挂载验证
mount /dev/vdb1 /mnt/etc_restore

# Step 5: 恢复无主文件(如果有备份)
tar -xzf /root/etc.tgz -C /mnt/etc_restore --diff

📦 三、从LVM事故中恢复:让逻辑卷"起死回生"

LVM配置被破坏了?别慌!LVM有存档功能,可以帮你恢复!

🔍 LVM架构回顾:物理卷→卷组→逻辑卷

在修LVM之前,先回忆一下LVM的三层架构:

物理卷(PV) → 卷组(VG) → 逻辑卷(LV)
/dev/vdb1       myvg          mylv
/dev/vdb2       └─            ├─ /dev/mapper/myvg-mylv1
/dev/vdb3       └─            └─ /dev/mapper/myvg-mylv2
💾 LVM存档功能:你的"时光机"

LVM可以在每次操作前自动创建存档,这就像游戏的存档点,出问题时可以读档!

查看LVM配置选项

# LVM配置文件
cat /etc/lvm/lvm.conf

# 重要配置项:
# dir: 扫描物理卷的目录
# filter: 过滤设备扫描
# backup: 是否备份元数据(建议开启!)
# backup_dir: 备份目录(默认/etc/lvm/backup)
# archive: 是否归档旧配置(建议开启!)
# archive_dir: 归档目录(默认/etc/lvm/archive)

查看LVM存档

# 查看卷组的所有存档
vgcfgrestore -l myvg

# 查看存档文件内容
ls -l /etc/lvm/archive/
cat /etc/lvm/archive/<vgname>_<timestamp>.vg
🔧 恢复LVM配置:vgcfgrestore大法

如果LVM配置被破坏了,可以用存档恢复:

# 1. 查看可用的存档
vgcfgrestore -l myvg

# 2. 停用逻辑卷(如果已经激活)
lvchange -an /dev/myvg/mylv

# 3. 从存档恢复卷组元数据
vgcfgrestore -f /etc/lvm/archive/myvg_20240101.vg myvg

# 4. 重新激活逻辑卷
lvchange -ay /dev/myvg/mylv

# 5. 验证
vgs
lvs
mount /dev/myvg/mylv /mnt

实战案例:恢复误删除的LVM配置

# 场景:用户要求扩容/mnt/lvm,操作后目录无法访问

# Step 1: 检查LVM状态
vgs    # 发现卷组状态异常
lvs    # 逻辑卷无法显示

# Step 2: 查看LVM日志
journalctl -u lvm2-monitor.service

# Step 3: 查看存档列表
vgcfgrestore -l myvg

# Step 4: 从最近的存档恢复
vgcfgrestore -f /etc/lvm/archive/myvg_20240101_123456.vg myvg

# Step 5: 重新激活逻辑卷
lvchange -ay /dev/myvg/mylv

# Step 6: 重新挂载
mount /dev/myvg/mylv /mnt/lvm

# Step 7: 验证数据
ls -l /mnt/lvm

🔐 四、处理LUKS问题:让加密卷"起死回生"

加密卷无法解密?别慌!FYC教你如何恢复LUKS加密卷!

🔒 LUKS加密卷启动流程:三步走

理解LUKS的启动流程,才能快速定位问题:

1. 读取/etc/crypttab → 解密加密卷
2. 映射到/dev/mapper/name → 创建解密后的设备
3. 挂载到/etc/fstab指定的位置 → 正常使用

配置文件位置

# /etc/crypttab格式
# name /dev/device /path/to/keyfile [options]
secure /dev/vdb2 /root/keyfile

# 如果最后一个字段留空,启动时会提示输入密码
secure /dev/vdb2
🛠️ LUKS故障排除:常见问题三件套

问题1:/etc/crypttab配置错误

# 检查配置文件
cat /etc/crypttab

# 常见错误:
# 1. 加密设备名称错误
# 2. 密钥文件路径错误
# 3. 映射名称与/etc/fstab不匹配

# 验证配置
cryptsetup status secure

问题2:解密失败

场景A:LUKS密码遗忘

# LUKS支持最多8个密钥槽
cryptsetup luksDump /dev/vdb2

# 如果还有其他密钥槽,可以重置密码
cryptsetup luksAddKey /dev/vdb2

# 使用现有密钥添加新密钥
cryptsetup luksAddKey /dev/vdb2 --key-file /root/keyfile

# 删除密钥槽(如果有其他密钥)
cryptsetup luksRemoveKey /dev/vdb2

场景B:LUKS头被破坏

# 如果头被破坏,数据就访问不了
# 解决方法:从备份恢复头

# 1. 先测试备份的头文件
cryptsetup luksOpen /dev/vdb2 secure --header /root/luks_header_backup

# 2. 如果测试成功,恢复头
cryptsetup luksHeaderRestore /dev/vdb2 --header-backup-file /root/luks_header_backup

# ⚠️ 警告:恢复头会覆盖现有头,确保备份是正确的!

问题3:/etc/fstab配置错误

# 常见错误:配置加密设备而不是映射设备
# ❌ 错误:
/dev/vdb2 /mnt/secure xfs defaults 0 0

# ✅ 正确:
/dev/mapper/secure /mnt/secure xfs defaults 0 0

# 检查配置
cat /etc/fstab | grep secure
💾 LUKS头备份与恢复:关键时刻的救命稻草

LUKS头备份是存储管理中的超级重要的操作!头坏了还能恢复,头没备份数据就永远找不回来了!

备份LUKS头

# 备份头文件(超级重要!)
cryptsetup luksHeaderBackup /dev/vdb2 --header-backup-file /root/luks_header_backup

# 验证备份文件
ls -lh /root/luks_header_backup
# 头文件大小通常是几MB

恢复LUKS头

# 1. 先测试备份(重要!)
cryptsetup luksOpen /dev/vdb2 test_secure --header /root/luks_header_backup

# 2. 如果能成功打开,说明备份正确
cryptsetup close test_secure

# 3. 恢复头
cryptsetup luksHeaderRestore /dev/vdb2 --header-backup-file /root/luks_header_backup

# ⚠️ 警告:这会覆盖现有头,确保备份是正确的!

实战案例:恢复LUKS加密卷

# 场景:管理员修改密码后新密码不工作,需要恢复

# Step 1: 查看LUKS信息
cryptsetup luksDump /dev/vdb2

# Step 2: 尝试用旧密码
cryptsetup luksOpen /dev/vdb2 secure
# 如果失败,说明密码确实不工作

# Step 3: 使用备份的头文件恢复
cryptsetup luksHeaderRestore /dev/vdb2 --header-backup-file /root/luks_header_backup

# Step 4: 用旧密码解密
cryptsetup luksOpen /dev/vdb2 secure
# 输入旧密码:RedHatR0cks!

# Step 5: 重新挂载
mount /dev/mapper/secure /mnt/secure

# Step 6: 验证数据
ls -l /mnt/secure

🌐 五、解决iSCSI问题:让网络存储"起死回生"

iSCSI存储连不上?别慌!FYC教你如何一步步排查和修复。

📋 iSCSI基础概念:必须先理解这些术语

在修iSCSI之前,先理解这些术语:

术语说明示例
InitiatoriSCSI客户端你的服务器
TargetiSCSI存储资源存储服务器
IQNiSCSI限定名称(全球唯一)iqn.2016-01.com.example.lab:iscsistorage
LUN逻辑单元号(块设备)连接到target的块设备
PortalIP地址和端口192.168.1.100:3260
ACL访问控制列表限制哪些initiator可以访问
Discovery发现目标查询target服务器
🔧 配置iSCSI Initiator:三步走

Step 1: 安装软件包

# 安装iSCSI工具
yum install -y iscsi-initiator-utils

# 软件包包含:
# - iscsi服务:负责iSCSI连接
# - iscsid守护进程:管理iSCSI会话
# - iscsiadm工具:命令行管理工具

Step 2: 配置Initiator名称

# 配置文件:/etc/iscsi/initiatorname.iscsi
# 格式:InitiatorName=iqn.YYYY-MM.com.reversed.domain[:optional]

cat /etc/iscsi/initiatorname.iscsi
# InitiatorName=iqn.2016-01.com.example.lab:servera

# ⚠️ 注意:修改后需要重启iscsid服务
systemctl restart iscsid

Step 3: 发现目标

# 发现目标服务器
iscsiadm -m discovery -t sendtargets -p target_server_ip

# 示例
iscsiadm -m discovery -t sendtargets -p 192.168.1.100:3260

# 查看发现的目标
iscsiadm -m node
🔐 配置CHAP认证(可选但推荐)

如果需要增强安全性,可以配置CHAP认证:

# 编辑配置文件
vim /etc/iscsi/iscsid.conf

# 发现认证(Discovery Authentication)
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = username
discovery.sendtargets.auth.password = password

# 正常认证(Normal Authentication)
node.session.auth.authmethod = CHAP
node.session.auth.username = username
node.session.auth.password = password

# 重启服务应用配置
systemctl restart iscsid
🔍 iSCSI故障排除:两步诊断法

第一步:诊断网络问题

如果无法发现目标,通常是网络问题:

# 1. 检查网络连接
ping target_server_ip

# 2. 检查端口连接(iSCSI默认端口3260)
nc -v target_server_ip 3260
# 如果连接失败,检查防火墙和网络配置

# 3. 检查名称解析(如果使用主机名)
host target_server_hostname

第二步:诊断登录问题

如果发现成功但登录失败,通常是ACL或认证问题:

# 1. 查看发现的目标
iscsiadm -m node

# 2. 查看目标详细信息
iscsiadm -m node -T iqn.2016-01.com.example.lab:iscsistorage

# 3. 检查Initiator名称配置
cat /etc/iscsi/initiatorname.iscsi
systemctl restart iscsid

# 4. 检查CHAP配置
grep -E 'auth|username|password' /etc/iscsi/iscsid.conf

# 5. 使用调试模式登录(查看详细错误信息)
iscsiadm -m node -T iqn.2016-01.com.example.lab:iscsistorage --login -d8

# 6. 如果配置更改后仍然失败,删除保存的设置
rm -rf /var/lib/iscsi/nodes/*
systemctl restart iscsid
📊 iSCSI常用命令速查表
# 发现目标
iscsiadm -m discovery -t sendtargets -p target_ip

# 查看目标列表
iscsiadm -m node

# 登录到目标
iscsiadm -m node -T iqn.xxx --login

# 登出目标
iscsiadm -m node -T iqn.xxx --logout

# 删除目标
iscsiadm -m node -T iqn.xxx -o delete

# 查看会话
iscsiadm -m session

# 重新扫描目标
iscsiadm -m node --rescan

实战案例:解决iSCSI登录问题

# 场景:可以发现目标,但无法登录

# Step 1: 检查发现的目标
iscsiadm -m node
# 输出:发现目标iqn.2016-01.com.example.lab:iscsistorage

# Step 2: 尝试登录(失败)
iscsiadm -m node -T iqn.2016-01.com.example.lab:iscsistorage --login
# 错误:登录失败

# Step 3: 检查Initiator名称
cat /etc/iscsi/initiatorname.iscsi
# 发现:名称是iqn.2016-01.com.example.lab:servera

# Step 4: 检查ACL配置(在target端)
# target端应该允许这个IQN访问

# Step 5: 重启iscsid服务
systemctl restart iscsid

# Step 6: 删除保存的设置并重新发现
rm -rf /var/lib/iscsi/nodes/*
iscsiadm -m discovery -t sendtargets -p target_ip

# Step 7: 重新登录
iscsiadm -m node -T iqn.2016-01.com.example.lab:iscsistorage --login

# Step 8: 验证设备
lsblk
# 应该能看到新的iSCSI设备

💼 六、实战案例:完整存储故障排除流程

说了这么多理论,FYC给你来个综合实战案例,看看这些技能是怎么组合使用的!

案例1:文件系统损坏恢复(XFS)

场景:系统崩溃后,/dev/vdb1上的XFS文件系统无法挂载,提示"mount: wrong fs type, bad option, bad superblock"。

排查步骤

# Step 1: 检查文件系统状态
xfs_repair -n /dev/vdb1
# 输出:发现不一致问题

# Step 2: 尝试挂载(确认无法挂载)
mount /dev/vdb1 /mnt
# 错误:mount: wrong fs type...

# Step 3: 卸载(如果已经挂载)
umount /dev/vdb1

# Step 4: 修复文件系统
xfs_repair /dev/vdb1

# Step 5: 如果修复失败,尝试清零日志(谨慎!)
xfs_repair -L /dev/vdb1

# Step 6: 重新挂载
mount /dev/vdb1 /mnt/etc_restore

# Step 7: 检查文件
ls -l /mnt/etc_restore

# Step 8: 恢复无主文件(如果有备份)
tar -xzf /root/etc.tgz -C /mnt/etc_restore --keep-newer-files
案例2:LVM配置恢复

场景:扩容后 /mnt/lvm无法访问,LVM显示异常。

排查步骤

# Step 1: 检查LVM状态
vgs
lvs
# 发现:卷组或逻辑卷显示异常

# Step 2: 查看系统日志
journalctl -u lvm2-monitor.service | tail -20

# Step 3: 检查LVM存档
vgcfgrestore -l myvg

# Step 4: 查看最近的存档文件
ls -lt /etc/lvm/archive/ | head -5

# Step 5: 停用逻辑卷(如果已激活)
lvchange -an /dev/myvg/mylv

# Step 6: 从存档恢复
vgcfgrestore -f /etc/lvm/archive/myvg_20240101.vg myvg

# Step 7: 重新激活
lvchange -ay /dev/myvg/mylv

# Step 8: 重新挂载
mount /dev/myvg/mylv /mnt/lvm

# Step 9: 验证数据
ls -l /mnt/lvm
df -h /mnt/lvm
案例3:LUKS加密卷恢复

场景:LUKS密码修改后新密码不工作,需要恢复。

排查步骤

# Step 1: 查看LUKS信息
cryptsetup luksDump /dev/vdb2

# Step 2: 尝试用旧密码
cryptsetup luksOpen /dev/vdb2 secure
# 输入旧密码:RedHatR0cks!

# Step 3: 如果旧密码也不工作,查看是否有头备份
ls -lh /root/luks_header_backup

# Step 4: 先测试备份的头文件(重要!)
cryptsetup luksOpen /dev/vdb2 test_secure --header /root/luks_header_backup
# 如果成功,说明备份正确

# Step 5: 关闭测试
cryptsetup close test_secure

# Step 6: 恢复头文件
cryptsetup luksHeaderRestore /dev/vdb2 --header-backup-file /root/luks_header_backup

# Step 7: 用旧密码解密
cryptsetup luksOpen /dev/vdb2 secure
# 输入密码:RedHatR0cks!

# Step 8: 重新挂载
mount /dev/mapper/secure /mnt/secure

# Step 9: 验证数据
ls -l /mnt/secure
案例4:iSCSI综合故障排除

场景:无法访问iSCSI存储上的加密卷,需要排查网络、iSCSI和LUKS三层问题。

排查步骤

# Step 1: 检查iSCSI连接
iscsiadm -m session
# 如果为空,说明未连接

# Step 2: 检查网络连接
ping target_server_ip
nc -v target_server_ip 3260

# Step 3: 发现目标
iscsiadm -m discovery -t sendtargets -p target_server_ip

# Step 4: 登录到目标
iscsiadm -m node -T iqn.2016-01.com.example.lab:iscsistorage --login

# Step 5: 验证设备
lsblk
# 应该能看到新的iSCSI设备,例如/dev/sdc

# Step 6: 检查LVM卷组
vgs
# 应该能看到iSCSI设备上的卷组

# Step 7: 激活逻辑卷
lvchange -ay /dev/save/old

# Step 8: 挂载逻辑卷(包含LUKS头备份)
mount /dev/save/old /mnt/save

# Step 9: 恢复LUKS头
cryptsetup luksHeaderRestore /dev/sdc1 --header-backup-file /mnt/save/luks/iscsistorage_luks_header

# Step 10: 用密码解密
cryptsetup luksOpen /dev/sdc1 finance
# 输入密码:RedHatR0cks!

# Step 11: 挂载加密卷
mount /dev/mapper/finance /mnt/finance

# Step 12: 验证
ls -l /mnt/finance

🎁 写在结尾!

📋 价值总结

今天FYC为你带来了Linux存储故障排除的完整攻略:

Linux存储栈全景图

•从VFS到物理硬件的10层架构详解•理解数据流动路径,快速定位问题所在

文件系统恢复神器

•XFS/ext4损坏修复、超级块恢复•检查→修复→验证的完整流程

LVM故障排除

•vgcfgrestore恢复LVM配置•LVM存档功能:关键时刻的救命稻草

LUKS加密卷恢复

•头备份与恢复、解密故障排除•密码遗忘解决方案

iSCSI问题诊断

•网络连接排查、认证配置•发现→登录→使用的完整流程

掌握了这些技能,你就能在关键时刻让数据"起死回生",从"数据救援队员"升级为"存储恢复专家"!

🎯 行动号召

觉得这篇文章还不够过瘾?想要看到更详细的Linux存储栈架构图、文件系统修复的深度解析、以及更多存储故障排查实战案例吗?

👉 Follow我的公众号【源宇宙十三站】 ,即可获取:

•📚 完整的存储故障排查检查清单(Checklist)•🔧 Linux存储栈10层架构详解图(可视化)•📊 文件系统修复工具速查表(所有命令和参数)•🎯 LVM存档管理最佳实践(备份和恢复流程)•💡 更多真实存储故障案例解析(XFS/LVM/LUKS/iSCSI全覆盖)•🔐 LUKS头备份脚本(自动化备份工具)

FYC的使命:让每个运维工程师都能成为存储恢复专家!技术要硬核,文案要上头!🔥


#运维 #Linux #存储故障 #文件系统 #LVM #LUKS #iSCSI #数据恢复 #技术干货 #RedHat #RCA