Red Hat Training

A Red Hat training course is available for RHEL 8

8.2. 블록 장치 제거

실행 중인 시스템에서 블록 장치를 안전하게 제거하여 시스템 메모리 과부하 및 데이터 손실을 방지할 수 있습니다.

주의

다음에 설명된 절차 없이 SCSI 버스를 다시 스캔하거나 운영 체제 상태를 변경하는 다른 작업을 수행하면 I/O 시간 초과, 장치가 예기치 않게 제거되거나 데이터 손실로 인한 지연이 발생할 수 있습니다.

사전 요구 사항

  • 다중 경로 장치를 제거하려면 경로 장치에 액세스할 수 없는 경우 다중 경로 장치의 대기열을 비활성화합니다.

    # multipathd disablequeueing map multipath-device

    그러면 장치의 I/O가 실패할 수 있으므로 장치를 사용하는 애플리케이션이 종료될 수 있습니다.

  • 제거하려는 장치를 사용하는 다른 애플리케이션 또는 서비스가 없는지 확인합니다.
  • 제거할 장치에서 데이터를 백업했는지 확인합니다.

절차

  1. ArgoCD 명령을 사용하여 장치에 마운트된 모든 파일 시스템을 마운트 해제합니다.
  2. 모든 MD RAID 배열 또는 해당 장치가 속하는 LVM 볼륨에서 장치를 제거합니다. 장치 유형에 따라 다음 단계 중 하나를 실행합니다.

    • 장치가 LVM 그룹의 멤버이고 다중 경로 장치인 경우 다음을 수행합니다.

      1. 데이터를 다른 장치로 이동합니다.

        # pvmove -b /dev/mapper/from-multipath-device /dev/mapper/to-multipath-device
      2. 볼륨 그룹에서 장치를 제거합니다.

        # vgreduce volume-group /dev/mapper/from-multipath-device
      3. 선택 사항: 물리 장치에서 LVM 메타데이터를 제거합니다.

        # pvremove /dev/mapper/from-multipath-device
    • 다중 경로 장치를 제거하는 경우 다음 명령을 실행합니다.

      1. 장치에 대한 모든 경로를 표시합니다.

        # multipath -l

        이 명령의 출력은 이후 단계에서 필요합니다.

      2. I/O를 플러시하고 다중 경로 장치를 제거합니다.

        # multipath -f multipath-device
    • 장치가 다중 경로 장치로 구성되지 않았거나 장치가 다중 경로 장치로 구성되어 있고 이전에 I/O를 개별 경로로 전달한 경우 사용되는 모든 장치 경로로 미해결 I/O를 플러시합니다.

      # blockdev --flushbufs device

      umount 또는 vgreduce 명령이 I/O를 플러시하지 않는 위치에서 직접 액세스하는 장치에 중요합니다.

    • SCSI 장치를 제거하는 경우 다음 명령을 실행합니다.

      1. 시스템의 애플리케이션, 스크립트 또는 유틸리티에서 /dev/sd, /dev/disk/by-path 또는 major:minor 번호와 같은 장치의 경로 기반 이름에 대한 참조를 제거합니다. 이렇게 하면 향후 추가되는 다른 장치가 현재 장치에 대해 실수를 하지 않습니다.
      2. SCSI 하위 시스템에서 장치에 대한 각 경로를 제거합니다.

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

        여기서 device-name 은 이전에 다중 경로 장치로 사용된 경우 multipath -l 명령의 출력에서 검색됩니다.

  3. 실행 중인 시스템에서 물리적 장치를 제거합니다. 이 장치를 제거해도 다른 장치의 I/O는 중지되지 않습니다.

추가 리소스

  • multipath(8), pv move(8), arrow reduce(8), blockdev(8) 및 ArgoCD (8) 도움말 페이지.