리눅스는 USB 저장 장치도 SCSI 장치로 인식한다.

Run Level 3 로 운영 중인 리눅스 서버에 USB 저장 장치를 추가하게 되면 어떤 디바이스가 USB 장치로 잡혔는지 확인하기 쉽지 않을 수가 있다.

물론 서버에 디스크가 한 두개만 장착되어 있다면 어렵지 않지만, 외장 스토리지 LUN이 multipath로 수십개가 붙어 있는 경우에는 핵갈리 수 있다.

USB 저장장치의 host number 확인과 해당 scsi 장치의 블럭디바이스명을 확인하여 실수 없이 작업할 수 있는 방법에 대해 알아 본다.

 

1. 테스트 장치

- 아래는 본인이 테스트한 장비

1) Hard Disk : 파티셔닝 되지 않은 1테라바이트 Western digital Hard Disk

2) Externel Device : USB Type

* 사전에 HDD의 벤더 및 모델명은 확인 필요.

 

2. 장치 확인하기

2.1. USB 장치 SCSI 인식 확인

- USB HDD를 꼽기 전 아래와 같은 명령으로 USB SCSI 장치 인식 확인.

- USB를 꽂으면 디바이스가 보이기 시작한다. 처음 한 줄이 보이다가 곧 3줄이 출력.

[root@rhel66-docker01 ~]# watch -d -n1 'ls -l /sys/bus/scsi/devices/* | grep usb'

lrwxrwxrwx. 1 root root 0 Jul  3 05:54 /sys/bus/scsi/devices/9:0:0:0 -> ../../../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/host9/target9:0:0/9:0:0:0

lrwxrwxrwx. 1 root root 0 Jul  3 05:54 /sys/bus/scsi/devices/host9 -> ../../../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/host9

lrwxrwxrwx. 1 root root 0 Jul  3 05:54 /sys/bus/scsi/devices/target9:0:0 -> ../../../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/host9/target9:0:0

- 이 중에서 /sys/bus/scsi/devices/9:0:0:0 (스카시 호스트)를 확인

- 참고로 USB를 뺏다 꽂았다 할 수 록 host number 값이 증가 된다.

 

2.2. 장치명 확인

- 인식된 USB SCSI 장치의 블록디바이스 명을 스카시 호스트를 통해 확인

[root@rhel66-docker01 ~]# ls -d /sys/bus/scsi/devices/9\:0\:0\:0/block/*

/sys/bus/scsi/devices/9:0:0:0/block/sdb

- 테스트한 서버에서는 sdb로 확인. 시스템 환경에 따라 상이하게 표기되므로 주의해서 확인.

 

2.3. 해당 장치의 벤더, 모델명 확인

- Hard Disk의 모델에 따라 상이하게 표기된다.

[root@rhel66-docker01 ~]# cat /proc/scsi/scsi | egrep -A 2 'scsi9'

Host: scsi9 Channel: 00 Id: 00 Lun: 00

  Vendor: WDC WD10 Model: EACS-00D6B0      Rev:

  Type:   Direct-Access                    ANSI  SCSI revision: 02

- WDC (Western Digital Company) 제품임을 확인 할 수 있습니다.

 

- 아래 명령을 통해서도 USB Hard Disk에 대해 자세한 정보를 얻을 수 있다.

- serial number 까지 확인 가능하므로 확실하게 매칭할 수 있다.

[root@rhel66-docker01 ~]# smartctl -i /dev/sdb

=== START OF INFORMATION SECTION ===

Model Family:     Western Digital Caviar Green

Device Model:     WDC WD10EACS-00D6B0

Serial Number:    WD-WCAU40575612

LU WWN Device Id: 5 0014ee 256fa2f48

Firmware Version: 01.01A01

User Capacity:    1,000,204,886,016 bytes [1.00 TB]

Sector Size:      512 bytes logical/physical

Device is:        In smartctl database [for details use: -P show]

ATA Version is:   8

ATA Standard is:  Exact ATA specification draft version not indicated

Local Time is:    Fri Jul  3 06:36:53 2015 KST

SMART support is: Available - device has SMART capability.

SMART support is: Enabled

 

3. 파티셔닝/파일시스템 생성

3.1. 파티션 유무 확인

[root@rhel66-docker01 ~]# cat /proc/partitions | grep sdb

   8       16  976762584 sdb

 

3.2. 파티션 생성

- pared 툴을 통해 파티션 생성. 파란색 부분처럼 입력.

[root@rhel66-docker01 ~]# parted /dev/sdb

GNU Parted 2.1

Using /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) mklabel gpt

(parted) mkpart primary 1 100%

(parted) print

Model: WDC WD10 EACS-00D6B0 (scsi)

Disk /dev/sdb: 1000GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

 

Number  Start   End     Size    File system  Name     Flags

1      1049kB  1000GB  1000GB               primary

 

(parted) quit

 

3.3. 파티션 생성 확인

[root@rhel66-docker01 ~]# cat /proc/partitions | grep sdb

   8       16  976762584 sdb

   8       17  976760832 sdb1

 

3.4. 파일시스템 생성(포맷)

[root@rhel66-docker01 ~]# mkfs.ext4 /dev/sdb1

 

3.5. 마운트

[root@rhel66-docker01 ~]# mkdir /DB-Backup

[root@rhel66-docker01 ~]# mount -t ext4 /dev/sdb1 /DB-Backup

 

- 데이터 복사가 다 끝난 후 /DB-Backup을 umount 하고 usb 포트를 빼면된다.

- 다른 서버에 USB 장착을 해서 위와 같이 확인 후 mount 해서 사용하면 되겠다.

 

이상이다.

 

리눅스에서 USB 외장 HDD 인식 확인 및 사용법

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다