Red Hat Training

A Red Hat training course is available for RHEL 8

8.2. 删除块设备和相关元数据

要从正在运行的系统中安全地删除块设备,以帮助防止系统内存过载和数据丢失,您需要首先从它们中删除元数据。从文件系统开始,处理堆栈中的每个层,然后继续到磁盘。这些操作可防止将您的系统处于不一致的状态。

根据您要删除的设备类型,使用可能不同的特定命令:

  • lvremovevgremovepvremove 特定于 LVM。
  • 对于软件 RAID,请运行 mdadm 以删除该阵列。如需更多信息,请参阅 管理 RAID
  • 对于使用 LUKS 加密的块设备,有特定的额外步骤。以下流程不适用于使用 LUKS 加密的块设备。如需更多信息,请参阅使用 LUKS 加密块设备
警告

重新扫描 SCSI 总线或执行更改操作系统状态的其他操作,而无需遵循这个流程,因为 I/O 超时、设备被意外删除或数据丢失。

先决条件

  • 您有一个现有的块设备堆栈,其中包含文件系统、逻辑卷和卷组。
  • 您确定没有其他应用程序或服务正在使用您要删除的设备。
  • 您从您要删除的设备备份了数据。
  • 可选:如果要删除多路径设备,且您无法访问其路径设备,请运行以下命令来禁用多路径设备的队列:

    # multipathd disablequeueing map multipath-device

    这可让设备的 I/O 失败,允许使用该设备的应用程序关闭。

注意

一次删除其元数据层的设备,确保不会在磁盘上保留过时的签名。

流程

  1. 卸载文件系统:

    # umount /mnt/mount-point
  2. 删除文件系统:

    # wipefs -a /dev/vg0/myvol
    注意

    如果您已在 /etc/fstab 文件中添加一个条目,以便在文件系统和挂载点之间永久关联,您还应在此点编辑 /etc/fstab 以删除该条目。

    根据您要删除的设备类型,继续执行以下步骤:

  3. 删除包含文件系统的逻辑卷(LV):

    # lvremove vg0/myvol
  4. 如果卷组中没有剩余的其他逻辑卷(VG),您可以安全地删除包含该设备的 VG:

    # vgremove vg0
  5. 从 PV 设备中删除物理卷(PV)元数据:

    # pvremove /dev/sdc1
    # wipefs -a /dev/sdc1
  6. 删除包含 PV 的分区:

    # parted /dev/sdc rm 1
注意

只有在您要完全擦除该设备时,才按照以下步骤操作。

  1. 删除分区表:

    # wipefs -a /dev/sdc
注意

只有在您想要物理删除该设备时,才按照以下步骤操作。

  • 如果您要删除多路径设备,请执行以下命令:

    1. 查看该设备的所有路径:

      # multipath -l

      稍后需要这个命令的输出。

      1. 清除 I/O 并删除多路径设备:

        # multipath -f multipath-device
  • 如果该设备没有配置为多路径设备,或者设备配置为多路径设备,并且您之前将 I/O 传递给单个路径,请将任何未完成的 I/O 刷新到所有使用的设备路径:

    # blockdev --flushbufs device

    对于直接访问的设备非常重要,umountvgreduce 命令不会清除 I/O。

  • 如果您要删除 SCSI 设备,请执行以下命令:

    1. 删除对基于路径的设备名称的任何引用,如 /dev/sd/dev/disk/by-pathmajor:minor number(在系统上的应用程序、脚本或工具中)。这样可保证以后添加的不同设备不会为当前的设备错误。
    2. 从 SCSI 子系统中删除该设备的每个路径:

      # echo 1 > /sys/block/device-name/device/delete

      此处,如果设备之前用作多路径设备,则 device-namemultipath -l 命令的输出中检索。

  1. 从正在运行的系统中删除物理设备。请注意,当您删除此设备时,I/O 到其它设备不会停止。

验证

  • 验证您要删除的设备是否没有显示 lsblk 命令的输出。以下是一个输出示例:

    # lsblk
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0    5G  0 disk
    sr0     11:0    1 1024M  0 rom
    vda    252:0    0   10G  0 disk
    |-vda1 252:1    0    1M  0 part
    |-vda2 252:2    0  100M  0 part /boot/efi
    `-vda3 252:3    0  9.9G  0 part /

其他资源

  • multipath (8), pvremove (8), vgremove (8), lvremove (8), wipefs (8), parted (8), blockdev (8)umount (8) 手册页。