Skip to main content

Шпаргалка: LUN и безопасная очистка сигнатур (wipefs)

🎯 Описание

Для чего эта шпаргалка: Быстро и безопасно управлять LUN'ами: опознавать, отключать потребителей, стирать сигнатуры (GPT/LVM/MD/FS/crypto), пересканировать шину/карты multipath и возвращать диски в "чистое" состояние.

Когда используется:

  • Перед повторным использованием LUN (re-provisioning)
  • При конфликте сигнатур (неверные FS/LVM/MD метки)
  • Перед окончательным отцеплением от хоста

Краткий контекст: Linux-серверы с LVM/MD, dm-crypt, multipath; хранилища по iSCSI/FC/NVMe. Команды применимы для Debian/Ubuntu/RHEL-подобных систем.


🔧 Быстрые команды

🔍 Шаг 1: Идентификация LUN

# Компактный обзор всех дисков
lsblk -e7 -o NAME,KNAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,UUID,MODEL,SERIALMODEL

# WWID/ID-ссылки (используйте ТОЛЬКО их, не /dev/sdX)
ls -l /dev/disk/by-id /dev/disk/by-path

# Multipath карты
multipath -ll

# Просмотр сигнатур (dry-run)
sudo wipefs -n /dev/mapper/mpatha

🛑 Шаг 2: Остановка потребителей (безопасное отцепление)

# Проверка кто держит устройство
sudo lsof /dev/mapper/mpatha
sudo fuser -vm /dev/mapper/mpatha

# Отключение файловых систем и свопа
sudo umount -R /mnt/ТОЧКА_МОНТИРОВАНИЯ 2>/dev/null || true
sudo swapoff -a

# Деактивация LVM
sudo lvchange -an VG/LV || true
sudo vgchange -an VG || true

# Остановка MD-RAID
sudo mdadm --stop /dev/mdX || true

# Закрытие dm-crypt
sudo cryptsetup luksClose ИМЯ_МАПЫ || true

🗑️ Шаг 3: Очистка сигнатур (ДЕСТРУКТИВНО)

# Просмотр что будет удалено
sudo wipefs -n /dev/mapper/mpatha

# ⚠️ ДЕСТРУКТИВНО: Стирание всех сигнатур
sudo wipefs -a /dev/mapper/mpatha

# ⚠️ ДЕСТРУКТИВНО: Полная очистка GPT (основной + backup заголовок)
sudo sgdisk -Z /dev/mapper/mpatha

# Очистка остатков MD/LVM
sudo mdadm --zero-superblock /dev/mapper/mpatha || true
sudo pvremove -ff -y /dev/mapper/mpatha || true

# ⚠️ ДЕСТРУКТИВНО: UNMAP для thin LUN (освобождение места на СХД)
sudo blkdiscard -f /dev/mapper/mpatha

🔄 Шаг 4: Обновление таблицы разделов и multipath

# Перечитывание таблицы разделов
sudo partprobe /dev/mapper/mpatha || sudo blockdev --rereadpt /dev/mapper/mpatha

# Обновление multipath карт
sudo multipath -r

# ⚠️ ДЕСТРУКТИВНО: Удаление конкретной карты multipath
sudo multipath -f mpatha

🔄 Шаг 5: Пересканирование шины (по ситуации)

# SCSI пересканирование
for h in /sys/class/scsi_host/host*; do echo "- - -" | sudo tee $h/scan; done

# Удаление SCSI устройства (когда LUN убран на массиве)
echo 1 | sudo tee /sys/block/sdX/device/delete

# iSCSI управление
sudo iscsiadm -m session          # просмотр сессий
sudo iscsiadm -m node --rescan    # пересканирование
sudo iscsiadm -m node -T iqn... -u # отключение (если LUN уходит)

# NVMe управление
sudo nvme list
sudo nvme rescan

🔍 Диагностика:

# Общая картина дисков/ФС
lsblk -e7 -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,MODEL,SERIAL,WWN

# Детальная информация о блочных устройствах
blkid -o full
wipefs -n /dev/DEVICE
file -s /dev/DEVICE

# Device Mapper и multipath
dmsetup ls --tree
multipath -ll
multipathd show maps status

# LVM/MD/Crypto состояние
pvs -o+pv_used
vgs -o+vg_free
lvs -a -o+devices
mdadm --examine /dev/sdX
cryptsetup luksDump /dev/DEVICE

# Проверка использования устройства
lsof /dev/DEVICE
fuser -vm /dev/DEVICE
mount | grep DEVICE
swapon --show

📊 Проверка статуса сервисов:

# Статус основных сервисов
systemctl status multipathd iscsid systemd-udevd

# Состояние multipath
multipathd show maps

# Информация об устройстве
udevadm info -q all -n /dev/mapper/mpatha

📋 Просмотр логов:

# Системные логи
journalctl -k -b | egrep -i 'scsi|nvme|multipath|dm-|lvm|md|iSCSI'

# Сообщения ядра
dmesg | egrep -i 'sense data|I/O error|nvme|multipath'

🔧 Устранение проблем:

# Перезапуск основных сервисов
sudo systemctl restart multipathd
sudo systemctl restart iscsid
sudo systemctl restart systemd-udevd

# Обновление правил и кэша
sudo multipath -r
sudo udevadm control --reload-rules
sudo udevadm trigger --action=change
sudo udevadm settle

# Принудительная перезагрузка устройства
sudo blockdev --setrw /dev/sdX  # если диск read-only

💡 Полезные советы

  • Всегда используйте WWID/by-id вместо /dev/sdX - имена могут измениться
  • Делайте dry-run: wipefs -n показывает что будет удалено без записи
  • Полная стерильность: связка wipefs -a + sgdisk -Z очищает FS и резервный GPT
  • Тонкие LUN: если массив поддерживает UNMAP, blkdiscard освободит место на СХД
  • Документируйте WWID: scsi_id -g -u -d /dev/sdX или cat /sys/block/sdX/device/wwid
  • Проверяйте трижды перед выполнением деструктивных операций

⚠️ Частые ошибки

Ошибка Причина Решение
wipefs: ... busy Том смонтирован/используется процессом lsof/fuser, umount, swapoff, lvchange -an, mdadm --stop, cryptsetup luksClose
BLKRRPART: ... busy Ядро держит партиции/DM-узлы dmsetup remove, blockdev --rereadpt, partprobe, sgdisk -Z
GPT PMBR size mismatch Поврежден backup заголовок GPT sgdisk -Z /dev/DEVICE затем создание новой метки
multipathd: map in use Карта используется или есть партиции Закрыть потребителей → multipath -f mpathXmultipath -r
Старый LUN "висит" Udev/SCSI не удалил устройство echo 1 > /sys/block/sdX/device/delete → пересканирование
Диск внезапно read-only Ошибки контроллера/массива blockdev --setrw /dev/sdX, проверить dmesg
iSCSI старые параметры Кэш устаревших настроек iscsiadm -m node --rescan, переподключение сессии

🚨 Критически важно

⚠️ ВСЕ ДЕСТРУКТИВНЫЕ ОПЕРАЦИИ НЕОБРАТИМЫ!

Перед выполнением команд с пометкой "ДЕСТРУКТИВНО":

  1. Убедитесь что работаете с правильным устройством
  2. Сделайте резервные копии важных данных
  3. Проверьте что устройство не используется (lsof, fuser)
  4. Используйте dry-run команды где возможно

Примечание: Для специфических связок (iSCSI/FC/NVMe, конкретные multipath политики, LVM/MD/crypto) может потребоваться адаптация команд под вашу инфраструктуру.