요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Transport error와 reconnect timer
sysfs-transport-srp:8-24, 33-39I/O를 실패시킬 시점, target port를 제거할 시점, 실패한 reconnect를 재시도할 시점을 각각 독립적으로 제어합니다.
Port identity, role과 state
sysfs-transport-srp:26-31, 41-5816-byte SRP port identifier와 remote-port role을 제공하고 transport layer의 operational·error recovery 상태를 표시합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
What: /sys/class/srp_remote_ports/port-<h>:<n>/delete
Date: June 1, 2012
KernelVersion: 3.7
Contact: linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org
Description: Instructs an SRP initiator to disconnect from a target and to
remove all LUNs imported from that target.
What: /sys/class/srp_remote_ports/port-<h>:<n>/dev_loss_tmo
Date: February 1, 2014
KernelVersion: 3.13
Contact: linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org
Description: Number of seconds the SCSI layer will wait after a transport
layer error has been observed before removing a target port.
Zero means immediate removal. Setting this attribute to "off"
will disable the dev_loss timer.
What: /sys/class/srp_remote_ports/port-<h>:<n>/fast_io_fail_tmo
Date: February 1, 2014
KernelVersion: 3.13
Contact: linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org
Description: Number of seconds the SCSI layer will wait after a transport
layer error has been observed before failing I/O. Zero means
failing I/O immediately. Setting this attribute to "off" will
disable the fast_io_fail timer.
What: /sys/class/srp_remote_ports/port-<h>:<n>/port_id
Date: June 27, 2007
KernelVersion: 2.6.24
Contact: linux-scsi@vger.kernel.org
Description: 16-byte local SRP port identifier in hexadecimal format. An
example: 4c:49:4e:55:58:20:56:49:4f:00:00:00:00:00:00:00.
What: /sys/class/srp_remote_ports/port-<h>:<n>/reconnect_delay
Date: February 1, 2014
KernelVersion: 3.13
Contact: linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org
Description: Number of seconds the SCSI layer will wait after a reconnect
attempt failed before retrying. Setting this attribute to
"off" will disable time-based reconnecting.
What: /sys/class/srp_remote_ports/port-<h>:<n>/roles
Date: June 27, 2007
KernelVersion: 2.6.24
Contact: linux-scsi@vger.kernel.org
Description: Role of the remote port. Either "SRP Initiator" or "SRP Target".
What: /sys/class/srp_remote_ports/port-<h>:<n>/state
Date: February 1, 2014
KernelVersion: 3.13
Contact: linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org
Description: State of the transport layer used for communication with the
remote port. "running" if the transport layer is operational;
"blocked" if a transport layer error has been encountered but
the fast_io_fail_tmo timer has not yet fired; "fail-fast"
after the fast_io_fail_tmo timer has fired and before the
"dev_loss_tmo" timer has fired; "lost" after the
"dev_loss_tmo" timer has fired and before the port is finally
removed.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
SRP target 연결 해제
1-6| 항목 | 내용 |
|---|---|
| What | /sys/class/srp_remote_ports/port-<h>:<n>/delete |
| Date | 2012년 6월 1일 |
| KernelVersion | 3.7 |
| Contact | linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org |
| Description | SRP initiator가 target에서 disconnect하고 해당 target으로부터 import한 모든 LUN을 제거하도록 지시한다. |
Transport error 이후 I/O 실패와 port 제거 시간
8-24| 경로 suffix | 도입 | 내용 |
|---|---|---|
| dev_loss_tmo | 2014-02-01 / Linux 3.13 | Transport layer error를 관찰한 뒤 SCSI layer가 target port를 제거하기 전까지 기다릴 초 수이다. 0은 즉시 제거를 뜻하며, `off`를 쓰면 dev_loss timer를 비활성화한다. |
| fast_io_fail_tmo | 2014-02-01 / Linux 3.13 | Transport layer error를 관찰한 뒤 SCSI layer가 I/O를 실패 처리하기 전까지 기다릴 초 수이다. 0은 I/O를 즉시 실패 처리함을 뜻하며, `off`를 쓰면 fast_io_fail timer를 비활성화한다. |
두 attribute의 공통 경로 prefix는 `/sys/class/srp_remote_ports/port-<h>:<n>/`이고, contact는 `linux-scsi@vger.kernel.org`와 `linux-rdma@vger.kernel.org`이다.
16-byte local SRP port identifier
26-31| 항목 | 내용 |
|---|---|
| What | /sys/class/srp_remote_ports/port-<h>:<n>/port_id |
| Date | 2007년 6월 27일 |
| KernelVersion | 2.6.24 |
| Contact | linux-scsi@vger.kernel.org |
| Description | 16-byte local SRP port identifier를 hexadecimal 형식으로 나타낸다. |
| Example | 4c:49:4e:55:58:20:56:49:4f:00:00:00:00:00:00:00 |
Reconnect 재시도 간격
33-39| 항목 | 내용 |
|---|---|
| What | /sys/class/srp_remote_ports/port-<h>:<n>/reconnect_delay |
| Date | 2014년 2월 1일 |
| KernelVersion | 3.13 |
| Contact | linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org |
| Description | Reconnect 시도가 실패한 뒤 SCSI layer가 다시 시도하기 전까지 기다릴 초 수이다. 이 attribute를 `off`로 설정하면 시간 기반 reconnect를 비활성화한다. |
Remote port role
41-45| 항목 | 내용 |
|---|---|
| What | /sys/class/srp_remote_ports/port-<h>:<n>/roles |
| Date | 2007년 6월 27일 |
| KernelVersion | 2.6.24 |
| Contact | linux-scsi@vger.kernel.org |
| Description | Remote port의 role이다. 값은 `SRP Initiator` 또는 `SRP Target` 중 하나이다. |
Transport layer의 현재 상태
47-58| 항목 | 내용 |
|---|---|
| What | /sys/class/srp_remote_ports/port-<h>:<n>/state |
| Date | 2014년 2월 1일 |
| KernelVersion | 3.13 |
| Contact | linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org |
| Description | Remote port와 통신하는 데 사용하는 transport layer의 상태이다. |
| 값 | 의미 |
|---|---|
| running | Transport layer가 정상 동작 중이다. |
| blocked | Transport layer error가 발생했지만 fast_io_fail_tmo timer가 아직 만료되지 않았다. |
| fail-fast | fast_io_fail_tmo timer가 만료된 뒤이며 dev_loss_tmo timer는 아직 만료되지 않았다. |
| lost | dev_loss_tmo timer가 만료된 뒤부터 port가 최종 제거되기 전까지의 상태이다. |
두 timeout은 서로 다른 경계를 만든다. 먼저 I/O가 빠르게 실패하고, 이후 target port가 lost 상태를 거쳐 제거된다.
Target 연결 해제와 LUN 제거
sysfs-transport-srp:1-6SRP initiator가 target에서 disconnect하고 그 target으로부터 import한 모든 LUN을 제거하도록 지시합니다.