요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Mapped block device state
sysfs-block-rnbd:16-24state는 server에서 정상 mapping되어 I/O를 받으면 open, link failure 등으로 disconnect되면 closed이며 closed 상태의 I/O는 -EIO로 실패합니다.
RTRS session과 remote device path
sysfs-block-rnbd:26-40session은 map_device의 server parameter로 전달한 RTRS session name이고 mapping_path는 device_path로 전달한 remote path입니다.
Access mode와 sector resize
sysfs-block-rnbd:42-52access_mode는 ro·rw·migration 중 하나이며 resize에는 disk의 새 size를 sector 수로 씁니다.
Disconnected remap과 poll queues
sysfs-block-rnbd:54-64remap_device는 session이 아직 destroy되지 않은 disconnected device를 다시 mapping하고 nr_poll_queues는 poll-mode queue 수를 제공합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
What: /sys/block/rnbd<N>/rnbd/unmap_device
Date: Feb 2020
KernelVersion: 5.7
Contact: Jack Wang <[email protected]> Danil Kipnis <[email protected]>
Description: To unmap a volume, "normal" or "force" has to be written to:
/sys/block/rnbd<N>/rnbd/unmap_device
When "normal" is used, the operation will fail with EBUSY if any process
is using the device. When "force" is used, the device is also unmapped
when device is in use. All I/Os that are in progress will fail.
Example::
# echo "normal" > /sys/block/rnbd0/rnbd/unmap_device
What: /sys/block/rnbd<N>/rnbd/state
Date: Feb 2020
KernelVersion: 5.7
Contact: Jack Wang <[email protected]> Danil Kipnis <[email protected]>
Description: The file contains the current state of the block device. The state file
returns "open" when the device is successfully mapped from the server
and accepting I/O requests. When the connection to the server gets
disconnected in case of an error (e.g. link failure), the state file
returns "closed" and all I/O requests submitted to it will fail with -EIO.
What: /sys/block/rnbd<N>/rnbd/session
Date: Feb 2020
KernelVersion: 5.7
Contact: Jack Wang <[email protected]> Danil Kipnis <[email protected]>
Description: RNBD uses RTRS session to transport the data between client and
server. The entry "session" contains the name of the session, that
was used to establish the RTRS session. It's the same name that
was passed as server parameter to the map_device entry.
What: /sys/block/rnbd<N>/rnbd/mapping_path
Date: Feb 2020
KernelVersion: 5.7
Contact: Jack Wang <[email protected]> Danil Kipnis <[email protected]>
Description: Contains the path that was passed as "device_path" to the map_device
operation.
What: /sys/block/rnbd<N>/rnbd/access_mode
Date: Feb 2020
KernelVersion: 5.7
Contact: Jack Wang <[email protected]> Danil Kipnis <[email protected]>
Description: Contains the device access mode: ro, rw or migration.
What: /sys/block/rnbd<N>/rnbd/resize
Date: Feb 2020
KernelVersion: 5.7
Contact: Jack Wang <[email protected]> Danil Kipnis <[email protected]>
Description: Write the number of sectors to change the size of the disk.
What: /sys/block/rnbd<N>/rnbd/remap_device
Date: Feb 2020
KernelVersion: 5.7
Contact: Jack Wang <[email protected]> Danil Kipnis <[email protected]>
Description: Remap the disconnected device if the session is not destroyed yet.
What: /sys/block/rnbd<N>/rnbd/nr_poll_queues
Date: Feb 2020
KernelVersion: 5.7
Contact: Jack Wang <[email protected]> Danil Kipnis <[email protected]>
Description: Contains the number of poll-mode queues
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
RNBD volume normal·force unmap
1-14| 항목 | 전문 번역 |
|---|---|
| What | /sys/block/rnbd<N>/rnbd/unmap_device |
| Date | 2020년 2월 |
| KernelVersion | 5.7 |
| Contact | Jack Wang <[email protected]>, Danil Kipnis <[email protected]> |
| Description | Volume을 unmap하려면 /sys/block/rnbd<N>/rnbd/unmap_device에 "normal" 또는 "force"를 써야 합니다. |
| 입력 | Device가 사용 중일 때 | 진행 중인 I/O |
|---|---|---|
| normal | Operation이 EBUSY로 실패함 | Device가 unmap되지 않음 |
| force | 사용 중이어도 device를 unmap함 | 진행 중인 모든 I/O가 실패함 |
원문 예시는 다음과 같습니다.
# echo "normal" > /sys/block/rnbd0/rnbd/unmap_device
RNBD block device connection state
16-24| 항목 | 전문 번역 |
|---|---|
| What | /sys/block/rnbd<N>/rnbd/state |
| Date | 2020년 2월 |
| KernelVersion | 5.7 |
| Contact | Jack Wang <[email protected]>, Danil Kipnis <[email protected]> |
| Description | 이 file은 block device의 current state를 담습니다. Device가 server에서 성공적으로 mapping되어 I/O request를 받고 있으면 state file은 "open"을 반환합니다. Error가 발생해 server connection이 disconnect되면(예: link failure) state file은 "closed"를 반환하고, 제출되는 모든 I/O request는 -EIO로 실패합니다. |
| State | Connection | I/O 결과 |
|---|---|---|
| open | Server에서 성공적으로 mapped | I/O request를 accept함 |
| closed | Error 또는 link failure로 disconnected | 모든 제출 I/O가 -EIO로 실패함 |
RTRS transport session과 mapping path
26-40| What | Date | KernelVersion | Contact | 전문 번역 |
|---|---|---|---|---|
| /sys/block/rnbd<N>/rnbd/session | 2020년 2월 | 5.7 | Jack Wang <[email protected]>, Danil Kipnis <[email protected]> | RNBD는 client와 server 사이의 data transport에 RTRS session을 사용합니다. "session" entry에는 RTRS session을 establish할 때 사용한 session name이 들어 있습니다. 이 이름은 map_device entry에 server parameter로 전달한 이름과 같습니다. |
| /sys/block/rnbd<N>/rnbd/mapping_path | 2020년 2월 | 5.7 | Jack Wang <[email protected]>, Danil Kipnis <[email protected]> | map_device operation에 "device_path"로 전달한 path를 담습니다. |
map_device parameter가 local RNBD sysfs identity와 remote transport endpoint에 어떻게 반영되는지 보여 준다.
Device access mode와 disk resize
42-52| What | Date | KernelVersion | Contact | 전문 번역 |
|---|---|---|---|---|
| /sys/block/rnbd<N>/rnbd/access_mode | 2020년 2월 | 5.7 | Jack Wang <[email protected]>, Danil Kipnis <[email protected]> | Device access mode인 ro, rw 또는 migration을 담습니다. |
| /sys/block/rnbd<N>/rnbd/resize | 2020년 2월 | 5.7 | Jack Wang <[email protected]>, Danil Kipnis <[email protected]> | Disk size를 변경하려면 sector 수를 씁니다. |
| access_mode | 의미 |
|---|---|
| ro | Read-only access |
| rw | Read-write access |
| migration | Migration access mode |
Disconnected device remap과 poll queues
54-64| What | Date | KernelVersion | Contact | 전문 번역 |
|---|---|---|---|---|
| /sys/block/rnbd<N>/rnbd/remap_device | 2020년 2월 | 5.7 | Jack Wang <[email protected]>, Danil Kipnis <[email protected]> | Session이 아직 destroy되지 않았다면 disconnected device를 remap합니다. |
| /sys/block/rnbd<N>/rnbd/nr_poll_queues | 2020년 2월 | 5.7 | Jack Wang <[email protected]>, Danil Kipnis <[email protected]> | Poll-mode queue 수를 담습니다. |
Link failure 뒤 session lifetime에 따라 기존 device를 remap할 수 있는 조건을 나타낸다.
Normal과 force unmap
sysfs-block-rnbd:1-14unmap_device는 normal일 때 in-use device를 EBUSY로 거부하고, force일 때 사용 중이어도 unmap하여 진행 중인 모든 I/O를 실패시킵니다.