2017-04-04 17 views
0

나는 새로운 디스크를 자동으로 스캔하여 기존 VG에 넣고 그것을 확장하는 대신에 쓸만한 플레이 북을 쓰려고합니다.Linux에서 다음 장치 매퍼를 어떻게 알 수 있습니까?

안타깝게도 리눅스가 다음 장치 매퍼 (예 :/dev/sdc)를 어떻게 알고 있는지 알 수 없으므로이 작업을 수행 할 수있는 완벽한 플래 플레이 북을 만들 수 있습니다.

새 디스크를 온라인으로 스캔 :

echo 0 0 0 | tee /sys/class/scsi_host/host*/scan 

누군가가 이것에 대해 어떤 생각을 가지고?

감사합니다.

답변

1

혼란스러운 용어를 사용하고 있습니다. 장치 매퍼는 LVM에서 사용되는 프레임 워크이며 때로는 장치 매퍼를 사용하는 응용 프로그램에서 만든 장치의 이름으로 device mapper을 사용할 수 있습니다. 보통/dev/mapper에 있습니다.

/dev/sdc (및 기타는 /dev/sd[a-z][a-z]?)는 차단 장치입니다. LVM에서 PV (물리 볼륨)를 생성하는 데 사용할 수 있지만 "장치 매퍼"가 아닙니다. 이제 대답

:

리눅스는 새로운 장치에 대한 '알파벳 문자에서 사용 가능한 다음'사용합니다. 불행히도, 커널과 사용자를위한 '다음으로 이용 가능하다'는 것은 다른 것일 수 있습니다. 장치가 연결 해제되었거나 (또는 ​​재설정으로 다시 스캔 된 경우) 기본 장치가 여전히 사용 중이라고 표시되면 Linux는 '다음 문자'를 사용하므로 /dev/sdc/dev/sdd으로 표시되거나 /dev/sdd이 사용 중일 경우 /dev/sde으로 표시 될 수 있습니다. /dev/sdja (나는 그것이 어디에서 끝나는 지 잘 모르겠다. 그러나 어떤 것도 없다. /dev/sdzz AFAIK).

장치를 식별하려면 udev에서 제공하는 심볼릭 링크를 사용할 수 있습니다. 그들은 /dev/disk에 존재하고 장치를 식별하는 다른 방법 반영 - by-uuid - - 디스크 에 기존 파티션의 UUID로 - by-id - 장치 ID (일반적으로 이름 및 공급 업체)를 사용 - by-partuuid 생성 된 UUID 고유의 각 드라이브 위해를 - by-path - 논리적 인 위치에 있습니다.

내가 가장 좋아하는 것 : 동일한 슬롯에 장치를 연결하면 공급 업체, ID, 기존 파일 시스템 및 다른 블록 장치의 상태에 관계없이 /dev/disk/by-path에 동일한 이름이 지정됩니다. 이름

다음은 몇 가지 예입니다 당신이 찾을 수 있습니다 :

  • pci-0000:00:1f.2-ata-3 - PCI에서 특정 컨트롤러에 연결된 ATA 디스크 # 3.
  • pci-0000:08:00.0-sas-0x50030480013afa6c-lun-0 - 특정 PCI 컨트롤러에 연결된 WWN 0x50030480013afa6c가있는 SAS 드라이브.
  • pci-0000:01:00.0-scsi-0:2:1:0 - 특정 PCI 컨트롤러에 연결된 '이상한'scsi 장치 # 2. 제 경우에는 LSI에 의한 하드웨어 RAID입니다.

이름에 관계없이 새로운 장치를 실제로 처리하려면 새 장치에 반응 할 수있는 Udev 스크립트를 살펴보십시오.udev를 다루는 것은 까다로울 수 있습니다. 예를 들어 Ceph 프로젝트의 스크립트 예 : udev 규칙에 따라 특정 파티션 ID가있는 모든 디스크를 자동으로 처리합니다. https://github.com/ceph/ceph/tree/master/udev

0

이 항목에 대한 내용?

- name: Find /sys/class/scsi_host hostX softlinks 
    find: 
    path: '/sys/class/scsi_host' 
    file_type: link 
    pattern: 'host*' 
    register: _scsi_hosts 

- name: Rescanning for new disks 
    command: 'echo "- - -" > {{ item }}/scan' 
    changed_when: false 
    with_items: _scsi_hosts.files.path