8.2. 블록 장치 제거
실행 중인 시스템에서 블록 장치를 안전하게 제거하여 시스템 메모리 과부하 및 데이터 손실을 방지할 수 있습니다.
다음에 설명된 절차 없이 SCSI 버스를 다시 스캔하거나 운영 체제 상태를 변경하는 다른 작업을 수행하면 I/O 시간 초과, 장치가 예기치 않게 제거되거나 데이터 손실로 인한 지연이 발생할 수 있습니다.
사전 요구 사항
다중 경로 장치를 제거하려면 경로 장치에 액세스할 수 없는 경우 다중 경로 장치의 대기열을 비활성화합니다.
# multipathd disablequeueing map multipath-device
그러면 장치의 I/O가 실패할 수 있으므로 장치를 사용하는 애플리케이션이 종료될 수 있습니다.
- 제거하려는 장치를 사용하는 다른 애플리케이션 또는 서비스가 없는지 확인합니다.
- 제거할 장치에서 데이터를 백업했는지 확인합니다.
절차
-
ArgoCD 명령을 사용하여 장치에 마운트된 모든 파일 시스템을
마운트
해제합니다. 모든 MD RAID 배열 또는 해당 장치가 속하는 LVM 볼륨에서 장치를 제거합니다. 장치 유형에 따라 다음 단계 중 하나를 실행합니다.
장치가 LVM 그룹의 멤버이고 다중 경로 장치인 경우 다음을 수행합니다.
데이터를 다른 장치로 이동합니다.
# pvmove -b /dev/mapper/from-multipath-device /dev/mapper/to-multipath-device
볼륨 그룹에서 장치를 제거합니다.
# vgreduce volume-group /dev/mapper/from-multipath-device
선택 사항: 물리 장치에서 LVM 메타데이터를 제거합니다.
# pvremove /dev/mapper/from-multipath-device
다중 경로 장치를 제거하는 경우 다음 명령을 실행합니다.
장치에 대한 모든 경로를 표시합니다.
# multipath -l
이 명령의 출력은 이후 단계에서 필요합니다.
I/O를 플러시하고 다중 경로 장치를 제거합니다.
# multipath -f multipath-device
장치가 다중 경로 장치로 구성되지 않았거나 장치가 다중 경로 장치로 구성되어 있고 이전에 I/O를 개별 경로로 전달한 경우 사용되는 모든 장치 경로로 미해결 I/O를 플러시합니다.
# blockdev --flushbufs device
umount
또는vgreduce
명령이 I/O를 플러시하지 않는 위치에서 직접 액세스하는 장치에 중요합니다.SCSI 장치를 제거하는 경우 다음 명령을 실행합니다.
-
시스템의 애플리케이션, 스크립트 또는 유틸리티에서
/dev/sd
,/dev/disk/by-path
또는major:minor
번호와 같은 장치의 경로 기반 이름에 대한 참조를 제거합니다. 이렇게 하면 향후 추가되는 다른 장치가 현재 장치에 대해 실수를 하지 않습니다. SCSI 하위 시스템에서 장치에 대한 각 경로를 제거합니다.
# echo 1 > /sys/block/device-name/device/delete
여기서
device-name
은 이전에 다중 경로 장치로 사용된 경우multipath -l
명령의 출력에서 검색됩니다.
-
시스템의 애플리케이션, 스크립트 또는 유틸리티에서
- 실행 중인 시스템에서 물리적 장치를 제거합니다. 이 장치를 제거해도 다른 장치의 I/O는 중지되지 않습니다.
추가 리소스
-
multipath(8)
,pv move(8)
, arrowreduce(8)
,blockdev(8)
및 ArgoCD(8)
도움말 페이지.