DA(4)

명칭
da - SCSI 다이렉트 액세스 디바이스 드라이버

서식
device da0 device da1 at scbus0 target 4 lun 0

해설
da 드라이버는, 서포트 끝난 SCSI 호스트 어댑터를 이용해 시스템에 접속되고 있는 다이렉트 액세스형의 모든 SCSI 디바이스의 서포트를 제공합니다. 다이렉트 액세스형은 디스크, 광자기, 그리고 반도체 디바이스를 포함합니다.

SCSI 호스트 어댑터는 SCSI 다이렉트 액세스 디바이스가 설정되기 전에 시스템 중(안)에서 별도로 설정되는 것이 필요합니다.

구획 나누기 (파티쇼닝)
da 드라이버는 디스크에 2 개의 레벨의 구획 나누기를 가지는 것을 허가합니다. 1 번째의 층은, “슬라이스층” (으)로 불려 다른 operating system로 사용되고 있는 area로부터, FreeBSD 의 디스크의 area를 분리하기 위해서 이용됩니다. 2 번째의 층은, 4.4BSD 에 고유의 구획 구성으로, disklabel(5) 에 의해, 개개의 파일 시스템과 스왑 공간을 위한 area에 FreeBSD 의 슬라이스를 재분할하기 위해서 이용됩니다. 보다 자세한 정보는, 각각, fdisk(8) (와)과 disklabel(8) (을)를 봐 주세요.

만약, 초기화되어 있지 않은 디스크를 열었을 경우에는, 디스크 전체를 계측 해, 가짜의 FreeBSD 슬라이스를 이용해, 슬라이스 테이블의 초기화를 합니다. 같이 초기화되어 있지 않다 (또는 비 FreeBSD) 슬라이스가 열렸을 경우, 그 디스크 label는 드라이브에 의해 돌려주어지는 파라미터로 초기화되어 단일의 ‘c’ 파티션으로 슬라이스 전체를 포괄합니다.

캐쉬의 효과
많은 다이렉트 액세스 디바이스는, 읽기와 기입의 양쪽 모두 혹은 한편의 캐쉬를 가지고 있습니다. 디바이스 캐쉬의 효과를 가져오는 파라미터는 모드 페이지 8, 즉 캐쉬 제어 페이지에 납입할 수 있고 있습니다. 모드 페이지는 camcontrol(8) 유틸리티에 의해 조사해, 변경할 수가 있습니다. 읽기 캐쉬는, 몇번이나 이용되는 데이터 뿐만이 아니라, 디바이스에 의한 예측 조작의 데이터를 격납하기 위해서 이용됩니다. 읽기 캐쉬는 유저에게 투과이며, 유효하게 해도 전혀 해는 없습니다. 읽기 캐쉬를 가진 대부분의 디바이스는, 공장 출하시에 이 기능이 유효하게 되고 있습니다. 읽기 캐쉬는 캐쉬 제어 모드 페이지의 RCD (읽기 캐쉬 불허가) 비트를 세트 하는 것으로, 불허가로 할 수 있습니다. 기입 캐쉬는 기입해 조작에 의한 지연을 큰폭으로 줄일 수가 있어 효율과 성능을 증가시키기 위해서(때문에), 기입을 재편성 하는 것을 디바이스에 인정합니다. 이 성능의 증가에는 상당한 대상이 발생합니다. 만약, 기입 조작이 종료하고 있지 않는 캐쉬를 포함하고 있을 때, 디바이스 전원이 소실하면(자), 이러한 기입은 없어지겠지요. 기입 처리의 실패의 영향은, 파일 시스템에 불확정성을 가져와, 부정한 상황을 일으키겠지요. 많은 디바이스에서는, 기입 트랜잭션(transaction)를 에이징 해, 최근 완료 보고한 소수의 트랜잭션(transaction)에만 약점을 한정합니다. 그러나, 그런데도 덧붙여 UPS 장치 (UPS)를 갖춘 기입 캐쉬를 가능하게 한 디바이스의 시스템에서는, 추천 됩니다. da 디바이스 드라이버는, 디바이스의 마지막 클로우즈, 또는 예기치 않은 셧다운 (패닉) 이벤트의 풀어에, 캐쉬와 미디어가 동기 하는 것 프로텍션합니다. 이것에 의해, operating system가 정지한 것을 보고한 다음에는, 전원을 절단 해도 안전하다라고 하는 것이 프로텍션됩니다. 기입 캐쉬는 캐쉬 제어 모드 페이지의 WCE (기입 캐쉬 허가) 비트를 세트 하는 것으로 허가에 할 수 있습니다.

태그 첨부 큐잉
da 디바이스 드라이버는, 태그 첨부 큐잉으로서 알려져 있는 SCSI 기능의 이점을 완전하게 이용합니다. 태그 첨부 큐잉은 디바이스가 동시에 다수의 트랜잭션(transaction)를 처리하는 것을 가능하게 해, 자주 시크의 수로 길이를 줄이기 위해서(때문에), 그것들을 늘어놓고 바꿉니다. 현재의 헤드의 위치에 의해 가까운 서비스의 요구에 의해, 미디어의 먼 부분에의 트랜잭션(transaction)가 불확정에 연기 당할지도 모릅니다. 이러한 트랜잭션(transaction)가 적절한 시기에 완료하는 것을 프로텍션하기 위해서, 디바이스의 조작이 계속되고 있는 동안, 차례 붙이고 된 태그 첨부 트랜잭션(transaction)가 1 개 15 초 마다 보내집니다.

불량 블록의 수복
다이렉트 액세스 디바이스는 결함이 있는 미디어의 부분을 MAP 아웃 하는 능력을 가지고 있습니다. 미디어의 수복 파라미터는 모드 페이지 1, 즉 읽고 쓰기 에러 수복 모드 페이지에 위치하고 있습니다. 대부분의 중요한 미디어의 재배치 기능은 '자동 기입 재할인 맞히고'와 '자동 읽기 재할인 맞히고'여, 각각, 읽고 쓰기 에러 수복 페이지의 AWRE 비트와 ARRE 비트를 유효하게 하는 것으로 기능합니다. 많은 디바이스는, 공장 출하시에 이러한 기능이 무효로 되고 있습니다. 모드 페이지는 camcontrol(8) 유틸리티에 의해 조사해, 변경할 수가 있습니다.

커널의 설정
하나의 da 디바이스를 명시적으로 설정하는 것만이 필요합니다. SCSI 버스상에 발견된 디스크 마다 데이터 구조가 동적으로 할당할 수 있습니다.

IOCTL
다음의 ioctl(2) 호출은 다른 디스크와 같게 SCSI 드라이브에도 적용됩니다. 그것들은, 헤더 파일 <sys/disklabel.h> 중(안)에서 정의되고 있습니다.

DIOCSBAD
    일반적으로 디스크의 불량 블록의 매핑 시스템의 셋업에 이용됩니다. SCSI 디바이스는 그것들 자신에게 불량 블록 매핑이 짜넣어지고 있으므로, 이 명령은 실장되고 있지 않습니다.

DIOCGDINFO
    드라이브의 디스크 label의 in-core 카피를 커널로부터 읽어들입니다. 만약, 드라이브가 한번도 초기화되어 있지 않을 때는, 가짜의 디스크 label를 주어 그 경우에는, SCSI 의 inquiry 명령로부터, 읽어들인 정보를 포함하고 있습니다.

DIOCSDINFO
    사용하는 새로운 디스크 label를 드라이버에게 줍니다. 드라이버는 디스크에 새로운 디스크 label를 기입해 선

DIOCWLABEL
    디스크상의 디스크 label에 대한, 드라이버의 소프트웨어 기입 프로텍트를 유효 또는 무효로 합니다.

DIOCWDINFO
    사용하는 새로운 디스크 label를 드라이버에게 줍니다. 드라이버는 디스크에 새로운 디스크 label를 기입해

주
만약, 디바이스가 무효가 되면(자) (미디어가 떼어내지는, 디바이스가 응답하지 않게 된다), 커널중에 보관 유지되고 있는 디스크 label나 디바이스 붙은 정보는 무효가 됩니다. 새롭게 삽입된 미디어나 옮겨놓을 수 있었던 디바이스의 파괴를 막기 위해서(때문에), 낡은 디바이스를 참조하고 있는 마지막 파일 기술자가 닫혀질 때까지, 디바이스에의 모든 액세스는 파기됩니다. 이전은, 모든 새로운 파일을 열려고 하는 시도는 거부됩니다.

관련 파일
/dev/rdau
    raw 모드 SCSI 디스크 유니트 u, 구획 나누어되어 있지 않은 디바이스로서 액세스 됩니다
/dev/dausn
    block 모드 SCSI 디바이스 유니트 u, 슬라이스 n, 구획 나누어되어 있지 않은 디바이스로서 액세스 됩니다
/dev/rdausn
    raw 모드 SCSI 디스크 유니트 u, 슬라이스 n, 구획 나누어되어 있지 않은 디바이스로서 액세스 됩니다
/dev/daup
    block 모드 SCSI 디스크 유니트 u, 처음의 FreeBSD 슬라이스, 파티션 p
/dev/dadup
    raw 모드 SCSI 디스크 유니트 u, 처음의 FreeBSD 슬라이스, 파티션 p
    /dev/da u s n p block 모드 SCSI 디스크 유니트 u, n 번째의 슬라이스, 파티션 p
    /dev/dad u s n p raw 모드 SCSI 디스크 유니트 u, n 번째의 슬라이스, 파티션 p

진단
없음.

관련 항목
wd(4), disklabel(5), disklabel(8), fdisk(8), da(9)

역사
da 드라이버는 CAM SCSI 하부조직용으로 Justin T. Gibbs 가 썼습니다. Julian Elischer 하지만 Mach 2.5 로부터 이식하고 썼다 sd 디바이스 드라이버로부터, 많은 아이디어가 모아졌습니다. 슬라이스의 서포트는 Bruce Evans 가 썼습니다.