Menu Close

8.2. 블록 장치 제거

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

주의

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

사전 요구 사항

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

    # multipathd disablequeueing map multipath-device

    이를 통해 장치의 I/O가 실패하여 장치를 사용하는 애플리케이션을 종료할 수 있습니다.

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

절차

  1. unmount 명령을 사용하여 장치에 마운트된 모든 파일 시스템을 마운트 해제합니다.
  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

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

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

      1. /dev/sd, /dev/disk/by-path, 또는 시스템의 애플리케이션, 스크립트 또는 유틸리티에서 장치의 경로 기반 이름에 대한 참조를 제거합니다. 이렇게 하면 나중에 추가된 다른 장치가 현재 장치에 대해 잘못되지 않습니다.
      2. SCSI 하위 시스템에서 장치로의 각 경로를 제거합니다.

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

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

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

추가 리소스

  • multipath(8), pvPolicies(8), vgreduce(8), blockdev(8)umount(8) 도움말 페이지.