← Documents Documentation/admin-guide/blockdev/drbd/DRBD-data-packets.svg GitHub 원문 ↗

Linux 6.18.37 · Admin guide

DRBD 8 데이터 패킷 흐름

DRBD 8의 일반 미러 쓰기, 디스크리스 읽기, 블록 재동기화에서 두 노드 사이를 이동하는 데이터·요청·응답·쓰기 확인 패킷과 관련 완료 함수를 설명하는 SVG 흐름도입니다.

Source pathDocumentation/admin-guide/blockdev/drbd/DRBD-data-packets.svg
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

DRBD-data-packets.svg:1-459

DRBD 8의 일반 미러 쓰기, 디스크리스 읽기, 블록 재동기화에서 두 노드 사이를 이동하는 데이터·요청·응답·쓰기 확인 패킷과 관련 완료 함수를 설명하는 SVG 흐름도입니다.

세 경로는 패킷 왕복 방향과 완료 조건이 다릅니다. 일반 미러 쓰기는 `WriteAck`와 활동 로그 완료를 기다리고, 디스크리스 읽기는 `DataRequest`·`DataReply`만 왕복하며, 재동기화는 `RSDataRequest`·`RSDataReply` 뒤 대상 기록과 `WriteAck`까지 확인합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!-- Created with Inkscape (http://www.inkscape.org/) -->
3 <svg
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns="http://www.w3.org/2000/svg"
6 version="1.0"
7 width="210mm"
8 height="297mm"
9 viewBox="0 0 21000 29700"
10 id="svg2"
11 style="fill-rule:evenodd">
12 <defs
13 id="defs4" />
14 <g
15 id="Default"
16 style="visibility:visible">
17 <desc
18 id="desc176">Master slide</desc>
19 </g>
20 <path
21 d="M 11999,19601 L 11899,19301 L 12099,19301 L 11999,19601 z"
22 id="path189"
23 style="fill:#008000;visibility:visible" />
24 <path
25 d="M 11999,18801 L 11999,19361"
26 id="path193"
27 style="fill:none;stroke:#008000;visibility:visible" />
28 <path
29 d="M 7999,21401 L 7899,21101 L 8099,21101 L 7999,21401 z"
30 id="path205"
31 style="fill:#008000;visibility:visible" />
32 <path
33 d="M 7999,20601 L 7999,21161"
34 id="path209"
35 style="fill:none;stroke:#008000;visibility:visible" />
36 <path
37 d="M 11999,18801 L 11685,18840 L 11724,18644 L 11999,18801 z"
38 id="path221"
39 style="fill:#008000;visibility:visible" />
40 <path
41 d="M 7999,18001 L 11764,18754"
42 id="path225"
43 style="fill:none;stroke:#008000;visibility:visible" />
44 <text
45 x="-3023.845"
46 y="1106.8124"
47 transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
48 id="text243"
49 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
50 <tspan
51 x="6115.1553 6344.1553 6555.1553 6784.1553 6962.1553 7051.1553 7228.1553 7457.1553 7635.1553 7813.1553 7885.1553"
52 y="21390.812"
53 id="tspan245">RSDataReply</tspan>
54 </text>
55 <path
56 d="M 7999,20601 L 8281,20458 L 8311,20655 L 7999,20601 z"
57 id="path255"
58 style="fill:#008000;visibility:visible" />
59 <path
60 d="M 11999,20001 L 8236,20565"
61 id="path259"
62 style="fill:none;stroke:#008000;visibility:visible" />
63 <text
64 x="3502.5356"
65 y="-2184.6621"
66 transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
67 id="text277"
68 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
69 <tspan
70 x="12321.536 12550.536 12761.536 12990.536 13168.536 13257.536 13434.536 13663.536 13841.536 14019.536 14196.536 14374.536 14535.536"
71 y="15854.338"
72 id="tspan279">RSDataRequest</tspan>
73 </text>
74 <text
75 id="text293"
76 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
77 <tspan
78 x="4034 4263 4440 4703 4881 5042 5219 5397 5503 5681 5842 6003 6180 6341 6519 6625 6803 6980 7158 7336 7497 7586 7692"
79 y="17807"
80 id="tspan295">w_make_resync_request()</tspan>
81 </text>
82 <text
83 id="text309"
84 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
85 <tspan
86 x="12199 12305 12483 12644 12821 12893 13054 13232 13410 13638 13816 13905 14083 14311 14489 14667 14845 15023 15184 15272 15378"
87 y="18806"
88 id="tspan311">receive_DataRequest()</tspan>
89 </text>
90 <text
91 id="text325"
92 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
93 <tspan
94 x="12199 12377 12483 12660 12838 13016 13194 13372 13549 13621 13799 13977 14083 14261 14438 14616 14794 14955 15133 15294 15399"
95 y="19606"
96 id="tspan327">drbd_endio_read_sec()</tspan>
97 </text>
98 <text
99 id="text341"
100 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
101 <tspan
102 x="12191 12420 12597 12775 12953 13131 13309 13486 13664 13770 13931 14109 14287 14375 14553 14731 14837 15015 15192 15298"
103 y="20007"
104 id="tspan343">w_e_end_rsdata_req()</tspan>
105 </text>
106 <text
107 id="text357"
108 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
109 <tspan
110 x="4444 4550 4728 4889 5066 5138 5299 5477 5655 5883 6095 6324 6501 6590 6768 6997 7175 7352 7424 7585 7691"
111 y="20507"
112 id="tspan359">receive_RSDataReply()</tspan>
113 </text>
114 <text
115 id="text373"
116 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
117 <tspan
118 x="4457 4635 4741 4918 5096 5274 5452 5630 5807 5879 6057 6235 6464 6569 6641 6730 6908 7086 7247 7425 7585 7691"
119 y="21407"
120 id="tspan375">drbd_endio_write_sec()</tspan>
121 </text>
122 <text
123 id="text389"
124 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
125 <tspan
126 x="4647 4825 5003 5180 5358 5536 5714 5820 5997 6158 6319 6497 6658 6836 7013 7085 7263 7424 7585 7691"
127 y="21907"
128 id="tspan391">e_end_resync_block()</tspan>
129 </text>
130 <path
131 d="M 11999,22601 L 11685,22640 L 11724,22444 L 11999,22601 z"
132 id="path401"
133 style="fill:#000080;visibility:visible" />
134 <path
135 d="M 7999,21801 L 11764,22554"
136 id="path405"
137 style="fill:none;stroke:#000080;visibility:visible" />
138 <text
139 x="4290.3008"
140 y="-2369.6162"
141 transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
142 id="text423"
143 style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
144 <tspan
145 x="13610.301 13911.301 14016.301 14088.301 14177.301 14355.301 14567.301 14728.301"
146 y="19573.385"
147 id="tspan425">WriteAck</tspan>
148 </text>
149 <text
150 id="text439"
151 style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
152 <tspan
153 x="12199 12377 12555 12644 12821 13033 13105 13283 13444 13604 13816 13977 14138 14244"
154 y="22559"
155 id="tspan441">got_BlockAck()</tspan>
156 </text>
157 <text
158 id="text455"
159 style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
160 <tspan
161 x="7999 8304 8541 8753 8964 9201 9413 9531 9769 9862 10099 10310 10522 10734 10852 10971 11208 11348 11585 11822"
162 y="16877"
163 id="tspan457">Resync blocks, 4-32K</tspan>
164 </text>
165 <path
166 d="M 12000,7601 L 11900,7301 L 12100,7301 L 12000,7601 z"
167 id="path467"
168 style="fill:#008000;visibility:visible" />
169 <path
170 d="M 12000,6801 L 12000,7361"
171 id="path471"
172 style="fill:none;stroke:#008000;visibility:visible" />
173 <path
174 d="M 12000,6801 L 11686,6840 L 11725,6644 L 12000,6801 z"
175 id="path483"
176 style="fill:#008000;visibility:visible" />
177 <path
178 d="M 8000,6001 L 11765,6754"
179 id="path487"
180 style="fill:none;stroke:#008000;visibility:visible" />
181 <text
182 x="-1288.1796"
183 y="1279.7666"
184 transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
185 id="text505"
186 style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
187 <tspan
188 x="8174.8208 8475.8203 8580.8203 8652.8203 8741.8203 8919.8203 9131.8203 9292.8203"
189 y="9516.7666"
190 id="tspan507">WriteAck</tspan>
191 </text>
192 <path
193 d="M 8000,8601 L 8282,8458 L 8312,8655 L 8000,8601 z"
194 id="path517"
195 style="fill:#000080;visibility:visible" />
196 <path
197 d="M 12000,8001 L 8237,8565"
198 id="path521"
199 style="fill:none;stroke:#000080;visibility:visible" />
200 <text
201 x="1065.6655"
202 y="-2097.7664"
203 transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
204 id="text539"
205 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
206 <tspan
207 x="10682.666 10911.666 11088.666 11177.666"
208 y="4107.2339"
209 id="tspan541">Data</tspan>
210 </text>
211 <text
212 id="text555"
213 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
214 <tspan
215 x="4746 4924 5030 5207 5385 5563 5826 6003 6164 6342 6520 6626 6803 6981 7159 7337 7498 7587 7692"
216 y="5505"
217 id="tspan557">drbd_make_request()</tspan>
218 </text>
219 <text
220 id="text571"
221 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
222 <tspan
223 x="12200 12306 12484 12645 12822 12894 13055 13233 13411 13639 13817 13906 14084 14190"
224 y="6806"
225 id="tspan573">receive_Data()</tspan>
226 </text>
227 <text
228 id="text587"
229 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
230 <tspan
231 x="12200 12378 12484 12661 12839 13017 13195 13373 13550 13622 13800 13978 14207 14312 14384 14473 14651 14829 14990 15168 15328 15434"
232 y="7606"
233 id="tspan589">drbd_endio_write_sec()</tspan>
234 </text>
235 <text
236 id="text603"
237 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
238 <tspan
239 x="12192 12370 12548 12725 12903 13081 13259 13437 13509 13686 13847 14008 14114"
240 y="8007"
241 id="tspan605">e_end_block()</tspan>
242 </text>
243 <text
244 id="text619"
245 style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
246 <tspan
247 x="5647 5825 6003 6092 6269 6481 6553 6731 6892 7052 7264 7425 7586 7692"
248 y="8606"
249 id="tspan621">got_BlockAck()</tspan>
250 </text>
251 <text
252 id="text635"
253 style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
254 <tspan
255 x="8000 8305 8542 8779 9016 9109 9346 9486 9604 9956 10049 10189 10328 10565 10705 10942 11179 11298 11603 11742 11835 11954 12191 12310 12428 12665 12902 13139 13279 13516 13753"
256 y="4877"
257 id="tspan637">Regular mirrored write, 512-32K</tspan>
258 </text>
259 <text
260 id="text651"
261 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
262 <tspan
263 x="5381 5610 5787 5948 6126 6304 6482 6659 6837 7015 7087 7265 7426 7587 7692"
264 y="6003"
265 id="tspan653">w_send_dblock()</tspan>
266 </text>
267 <path
268 d="M 8000,6800 L 7900,6500 L 8100,6500 L 8000,6800 z"
269 id="path663"
270 style="fill:#008000;visibility:visible" />
271 <path
272 d="M 8000,6000 L 8000,6560"
273 id="path667"
274 style="fill:none;stroke:#008000;visibility:visible" />
275 <text
276 id="text683"
277 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
278 <tspan
279 x="4602 4780 4886 5063 5241 5419 5597 5775 5952 6024 6202 6380 6609 6714 6786 6875 7053 7231 7409 7515 7587 7692"
280 y="6905"
281 id="tspan685">drbd_endio_write_pri()</tspan>
282 </text>
283 <path
284 d="M 12000,13602 L 11900,13302 L 12100,13302 L 12000,13602 z"
285 id="path695"
286 style="fill:#008000;visibility:visible" />
287 <path
288 d="M 12000,12802 L 12000,13362"
289 id="path699"
290 style="fill:none;stroke:#008000;visibility:visible" />
291 <path
292 d="M 12000,12802 L 11686,12841 L 11725,12645 L 12000,12802 z"
293 id="path711"
294 style="fill:#008000;visibility:visible" />
295 <path
296 d="M 8000,12002 L 11765,12755"
297 id="path715"
298 style="fill:none;stroke:#008000;visibility:visible" />
299 <text
300 x="-2155.5266"
301 y="1201.5964"
302 transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
303 id="text733"
304 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
305 <tspan
306 x="7202.4736 7431.4736 7608.4736 7697.4736 7875.4736 8104.4736 8282.4736 8459.4736 8531.4736"
307 y="15454.597"
308 id="tspan735">DataReply</tspan>
309 </text>
310 <path
311 d="M 8000,14602 L 8282,14459 L 8312,14656 L 8000,14602 z"
312 id="path745"
313 style="fill:#008000;visibility:visible" />
314 <path
315 d="M 12000,14002 L 8237,14566"
316 id="path749"
317 style="fill:none;stroke:#008000;visibility:visible" />
318 <text
319 x="2280.3804"
320 y="-2103.2141"
321 transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
322 id="text767"
323 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
324 <tspan
325 x="11316.381 11545.381 11722.381 11811.381 11989.381 12218.381 12396.381 12573.381 12751.381 12929.381 13090.381"
326 y="9981.7861"
327 id="tspan769">DataRequest</tspan>
328 </text>
329 <text
330 id="text783"
331 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
332 <tspan
333 x="4746 4924 5030 5207 5385 5563 5826 6003 6164 6342 6520 6626 6803 6981 7159 7337 7498 7587 7692"
334 y="11506"
335 id="tspan785">drbd_make_request()</tspan>
336 </text>
337 <text
338 id="text799"
339 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
340 <tspan
341 x="12200 12306 12484 12645 12822 12894 13055 13233 13411 13639 13817 13906 14084 14312 14490 14668 14846 15024 15185 15273 15379"
342 y="12807"
343 id="tspan801">receive_DataRequest()</tspan>
344 </text>
345 <text
346 id="text815"
347 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
348 <tspan
349 x="12200 12378 12484 12661 12839 13017 13195 13373 13550 13622 13800 13978 14084 14262 14439 14617 14795 14956 15134 15295 15400"
350 y="13607"
351 id="tspan817">drbd_endio_read_sec()</tspan>
352 </text>
353 <text
354 id="text831"
355 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
356 <tspan
357 x="12192 12421 12598 12776 12954 13132 13310 13487 13665 13843 14021 14110 14288 14465 14571 14749 14927 15033"
358 y="14008"
359 id="tspan833">w_e_end_data_req()</tspan>
360 </text>
361 <g
362 id="g835"
363 style="visibility:visible">
364 <desc
365 id="desc837">Drawing</desc>
366 <text
367 id="text847"
368 style="font-size:318px;font-weight:400;fill:#008000;font-family:Helvetica embedded">
369 <tspan
370 x="4885 4991 5169 5330 5507 5579 5740 5918 6096 6324 6502 6591 6769 6997 7175 7353 7425 7586 7692"
371 y="14607"
372 id="tspan849">receive_DataReply()</tspan>
373 </text>
374 </g>
375 <text
376 id="text863"
377 style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
378 <tspan
379 x="8000 8305 8398 8610 8821 8914 9151 9363 9575 9693 9833 10070 10307 10544 10663 10781 11018 11255 11493 11632 11869 12106"
380 y="10878"
381 id="tspan865">Diskless read, 512-32K</tspan>
382 </text>
383 <text
384 id="text879"
385 style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
386 <tspan
387 x="5029 5258 5435 5596 5774 5952 6130 6307 6413 6591 6769 6947 7125 7230 7408 7586 7692"
388 y="12004"
389 id="tspan881">w_send_read_req()</tspan>
390 </text>
391 <text
392 id="text895"
393 style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
394 <tspan
395 x="6961 7266 7571 7854 8159 8278 8515 8633 8870 9107 9226 9463 9581 9700 9793 10030"
396 y="2806"
397 id="tspan897">DRBD 8 data flow</tspan>
398 </text>
399 <path
400 d="M 3900,5300 L 3700,5300 L 3700,7000 L 3900,7000"
401 id="path907"
402 style="fill:none;stroke:#000000;visibility:visible" />
403 <path
404 d="M 3900,17600 L 3700,17600 L 3700,22000 L 3900,22000"
405 id="path919"
406 style="fill:none;stroke:#000000;visibility:visible" />
407 <path
408 d="M 16100,20000 L 16300,20000 L 16300,18500 L 16100,18500"
409 id="path931"
410 style="fill:none;stroke:#000000;visibility:visible" />
411 <text
412 id="text947"
413 style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
414 <tspan
415 x="2126 2304 2376 2554 2731 2909 3087 3159 3337 3515 3587 3764 3870"
416 y="5202"
417 id="tspan949">al_begin_io()</tspan>
418 </text>
419 <text
420 id="text963"
421 style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
422 <tspan
423 x="1632 1810 1882 2060 2220 2398 2661 2839 2910 3088 3177 3355 3533 3605 3783 3888"
424 y="7331"
425 id="tspan965">al_complete_io()</tspan>
426 </text>
427 <text
428 id="text979"
429 style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
430 <tspan
431 x="2126 2232 2393 2571 2748 2926 3104 3176 3354 3531 3603 3781 3887"
432 y="17431"
433 id="tspan981">rs_begin_io()</tspan>
434 </text>
435 <text
436 id="text995"
437 style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
438 <tspan
439 x="1626 1732 1893 2071 2231 2409 2672 2849 2921 3099 3188 3366 3544 3616 3793 3899"
440 y="22331"
441 id="tspan997">rs_complete_io()</tspan>
442 </text>
443 <text
444 id="text1011"
445 style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
446 <tspan
447 x="16027 16133 16294 16472 16649 16827 17005 17077 17255 17432 17504 17682 17788"
448 y="18402"
449 id="tspan1013">rs_begin_io()</tspan>
450 </text>
451 <text
452 id="text1027"
453 style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
454 <tspan
455 x="16115 16221 16382 16560 16720 16898 17161 17338 17410 17588 17677 17855 18033 18105 18282 18388"
456 y="20331"
457 id="tspan1029">rs_complete_io()</tspan>
458 </text>
459 </svg>
460

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

미러 쓰기, 디스크리스 읽기 및 재동기화 데이터 경로

1-459

이 SVG는 `DRBD 8 data flow`를 세 가지 대표 작업으로 나누어 보여 줍니다. 왼쪽 열과 오른쪽 열은 서로 연결된 두 DRBD 노드를 뜻하고, 기울어진 화살표는 노드 사이를 오가는 프로토콜 패킷을 나타냅니다. 녹색은 데이터·요청·응답의 주 경로이고 짙은 파란색은 원격 쓰기 완료를 알리는 `WriteAck` 경로입니다. 검은 괄호와 함수명은 로컬 활동 로그 또는 재동기화 I/O 보호 구간의 시작과 끝을 표시합니다.

`Regular mirrored write, 512-32K`에서는 주 노드의 `drbd_make_request()`가 로컬 요청을 만들고 `al_begin_io()`로 활동 로그 보호 구간을 시작합니다. `w_send_dblock()`이 `Data` 패킷을 피어로 보내는 동안 로컬 쓰기는 `drbd_endio_write_pri()`에서 완료됩니다. 보조 노드는 `receive_Data()`로 데이터를 받아 디스크에 기록하고, `drbd_endio_write_sec()`와 `e_end_block()`을 거쳐 `WriteAck`를 돌려보냅니다. 주 노드가 `got_BlockAck()`를 처리한 뒤 `al_complete_io()`로 활동 로그 구간을 마칩니다.

`Diskless read, 512-32K`는 로컬 디스크가 없는 노드가 피어의 디스크에서 데이터를 읽는 경로입니다. `drbd_make_request()`와 `w_send_read_req()`가 `DataRequest`를 보내면 피어의 `receive_DataRequest()`가 이를 받고 `drbd_endio_read_sec()`에서 보조 디스크 읽기를 완료합니다. `w_e_end_data_req()`가 `DataReply`를 보내며 요청 노드의 `receive_DataReply()`가 최종 데이터를 받습니다. 이 경로에는 로컬 데이터 디스크 쓰기나 별도 `WriteAck`가 없습니다.

`Resync blocks, 4-32K`에서는 재동기화 대상이 `rs_begin_io()`로 I/O 구간을 열고 `w_make_resync_request()`가 `RSDataRequest`를 소스에 보냅니다. 소스는 `receive_DataRequest()`로 요청을 받아 `drbd_endio_read_sec()`에서 블록을 읽고 `w_e_end_rsdata_req()`가 `RSDataReply`를 반환합니다. 대상의 `receive_RSDataReply()`가 데이터를 받은 뒤 `drbd_endio_write_sec()`와 `e_end_resync_block()`으로 기록을 끝내고 `WriteAck`를 보냅니다. 소스가 `got_BlockAck()`를 처리하며, 양쪽의 `rs_complete_io()`가 각각의 재동기화 I/O 보호 구간을 닫습니다.

그림의 패킷 크기는 일반 미러 쓰기와 디스크리스 읽기가 512바이트부터 32KiB까지이고, 재동기화 블록은 4KiB부터 32KiB까지입니다. 함수명·패킷명·크기 표기는 커널 소스와 프로토콜을 추적할 수 있도록 원문 표기를 그대로 유지하고, 한국어 설명에서 역할과 실행 위치를 보충합니다.

표현 요소와 실행 위치
요소원문 표기한국어 해설
제목DRBD 8 data flowDRBD 8의 두 노드 사이 데이터 및 확인 패킷 흐름
녹색 화살표Data / DataRequest / DataReply / RSDataRequest / RSDataReply데이터와 읽기·재동기화 요청 및 응답
짙은 파란색 화살표WriteAck피어 디스크 쓰기 완료 확인
왼쪽 함수 열drbd_make_request(), w_send_dblock(), w_send_read_req()요청을 시작하는 노드의 처리 경로
오른쪽 함수 열receive_Data(), receive_DataRequest()요청 또는 데이터를 받는 피어의 처리 경로
활동 로그 괄호al_begin_io() / al_complete_io()일반 미러 쓰기가 활동 로그에서 보호되는 구간
재동기화 괄호rs_begin_io() / rs_complete_io()각 노드가 재동기화 I/O를 예약하고 해제하는 구간
일반 쓰기 크기Regular mirrored write, 512-32K512바이트부터 32KiB까지의 미러 쓰기
디스크리스 읽기 크기Diskless read, 512-32K512바이트부터 32KiB까지의 원격 읽기
재동기화 크기Resync blocks, 4-32K4KiB부터 32KiB까지의 재동기화 블록

SVG의 색상, 열, 괄호와 크기 표기가 무엇을 뜻하는지 정리합니다.

일반 미러 쓰기
주 노드drbd_make_request()al_begin_io()w_send_dblock()Data피어 receive_Data()
주 노드drbd_endio_write_pri()로컬 디스크 쓰기 완료
피어drbd_endio_write_sec()e_end_block()WriteAck주 노드 got_BlockAck()al_complete_io()

주 노드가 데이터를 로컬과 피어에 기록하고 원격 확인을 받은 뒤 활동 로그 구간을 닫는 순서입니다.

디스크리스 읽기
요청 노드drbd_make_request()w_send_read_req()DataRequest피어 receive_DataRequest()
피어drbd_endio_read_sec()w_e_end_data_req()DataReply요청 노드 receive_DataReply()

디스크가 없는 요청 노드가 피어 디스크에서 블록을 읽어 오는 요청·응답 순서입니다.

재동기화 블록 전송
재동기화 대상rs_begin_io()w_make_resync_request()RSDataRequest소스 receive_DataRequest()
재동기화 소스drbd_endio_read_sec()w_e_end_rsdata_req()RSDataReply대상 receive_RSDataReply()
재동기화 대상drbd_endio_write_sec()e_end_resync_block()WriteAck소스 got_BlockAck()
양쪽 노드rs_complete_io()재동기화 I/O 구간 종료

대상이 소스에 블록을 요청하고 기록 완료 확인을 소스에 돌려주는 전체 순서입니다.

함수와 패킷 역할 전체
원문 라벨경로역할
drbd_make_request()일반 쓰기·디스크리스 읽기상위 블록 요청을 DRBD 요청으로 만듦
al_begin_io()일반 쓰기활동 로그 I/O 보호 구간 시작
w_send_dblock()일반 쓰기미러링할 데이터 블록 전송
Data일반 쓰기피어에 기록할 실제 데이터 패킷
drbd_endio_write_pri()일반 쓰기주 노드 로컬 쓰기 완료 처리
receive_Data()일반 쓰기피어가 미러 쓰기 데이터를 수신
drbd_endio_write_sec()일반 쓰기·재동기화보조 또는 대상 디스크 쓰기 완료 처리
e_end_block()일반 쓰기피어의 일반 블록 처리 완료
WriteAck일반 쓰기·재동기화원격 디스크 기록 완료 확인 패킷
got_BlockAck()일반 쓰기·재동기화상대 노드의 블록 확인 응답 처리
al_complete_io()일반 쓰기활동 로그 I/O 보호 구간 종료
w_send_read_req()디스크리스 읽기피어에 원격 읽기 요청 전송
DataRequest디스크리스 읽기일반 데이터 읽기 요청 패킷
receive_DataRequest()디스크리스 읽기·재동기화피어가 데이터 또는 재동기화 읽기 요청 수신
drbd_endio_read_sec()디스크리스 읽기·재동기화피어의 보조 디스크 읽기 완료 처리
w_e_end_data_req()디스크리스 읽기일반 읽기 응답 전송 작업 완료
DataReply디스크리스 읽기요청한 블록 데이터를 담은 응답 패킷
receive_DataReply()디스크리스 읽기요청 노드가 원격 읽기 데이터를 수신
rs_begin_io()재동기화재동기화 I/O 보호 구간 시작
w_make_resync_request()재동기화재동기화할 블록 요청 생성
RSDataRequest재동기화재동기화 데이터 읽기 요청 패킷
w_e_end_rsdata_req()재동기화재동기화 데이터 응답 전송 작업 완료
RSDataReply재동기화재동기화할 블록 데이터를 담은 응답 패킷
receive_RSDataReply()재동기화대상이 재동기화 블록 데이터 수신
e_end_resync_block()재동기화대상 디스크의 재동기화 블록 처리 완료
rs_complete_io()재동기화재동기화 I/O 보호 구간 종료
Regular mirrored write, 512-32K일반 쓰기일반 미러 쓰기 경로와 전송 크기
Diskless read, 512-32K디스크리스 읽기원격 읽기 경로와 전송 크기
Resync blocks, 4-32K재동기화재동기화 경로와 블록 크기
DRBD 8 data flow전체SVG 전체 도식의 제목

그림에 표시된 고유 함수 및 패킷 라벨 30개의 역할을 흐름별로 대응시킵니다.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   version="1.0"
   width="210mm"
   height="297mm"
   viewBox="0 0 21000 29700"
   id="svg2"
   style="fill-rule:evenodd">
  <defs
     id="defs4" />
  <g
     id="Default"
     style="visibility:visible">
    <desc
       id="desc176">Master slide</desc>
  </g>
  <path
     d="M 11999,19601 L 11899,19301 L 12099,19301 L 11999,19601 z"
     id="path189"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 11999,18801 L 11999,19361"
     id="path193"
     style="fill:none;stroke:#008000;visibility:visible" />
  <path
     d="M 7999,21401 L 7899,21101 L 8099,21101 L 7999,21401 z"
     id="path205"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 7999,20601 L 7999,21161"
     id="path209"
     style="fill:none;stroke:#008000;visibility:visible" />
  <path
     d="M 11999,18801 L 11685,18840 L 11724,18644 L 11999,18801 z"
     id="path221"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 7999,18001 L 11764,18754"
     id="path225"
     style="fill:none;stroke:#008000;visibility:visible" />
  <text
     x="-3023.845"
     y="1106.8124"
     transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
     id="text243"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="6115.1553 6344.1553 6555.1553 6784.1553 6962.1553 7051.1553 7228.1553 7457.1553 7635.1553 7813.1553 7885.1553"
       y="21390.812"
       id="tspan245">RSDataReply</tspan>
  </text>
  <path
     d="M 7999,20601 L 8281,20458 L 8311,20655 L 7999,20601 z"
     id="path255"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 11999,20001 L 8236,20565"
     id="path259"
     style="fill:none;stroke:#008000;visibility:visible" />
  <text
     x="3502.5356"
     y="-2184.6621"
     transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
     id="text277"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12321.536 12550.536 12761.536 12990.536 13168.536 13257.536 13434.536 13663.536 13841.536 14019.536 14196.536 14374.536 14535.536"
       y="15854.338"
       id="tspan279">RSDataRequest</tspan>
  </text>
  <text
     id="text293"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="4034 4263 4440 4703 4881 5042 5219 5397 5503 5681 5842 6003 6180 6341 6519 6625 6803 6980 7158 7336 7497 7586 7692"
       y="17807"
       id="tspan295">w_make_resync_request()</tspan>
  </text>
  <text
     id="text309"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12199 12305 12483 12644 12821 12893 13054 13232 13410 13638 13816 13905 14083 14311 14489 14667 14845 15023 15184 15272 15378"
       y="18806"
       id="tspan311">receive_DataRequest()</tspan>
  </text>
  <text
     id="text325"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12199 12377 12483 12660 12838 13016 13194 13372 13549 13621 13799 13977 14083 14261 14438 14616 14794 14955 15133 15294 15399"
       y="19606"
       id="tspan327">drbd_endio_read_sec()</tspan>
  </text>
  <text
     id="text341"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12191 12420 12597 12775 12953 13131 13309 13486 13664 13770 13931 14109 14287 14375 14553 14731 14837 15015 15192 15298"
       y="20007"
       id="tspan343">w_e_end_rsdata_req()</tspan>
  </text>
  <text
     id="text357"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="4444 4550 4728 4889 5066 5138 5299 5477 5655 5883 6095 6324 6501 6590 6768 6997 7175 7352 7424 7585 7691"
       y="20507"
       id="tspan359">receive_RSDataReply()</tspan>
  </text>
  <text
     id="text373"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="4457 4635 4741 4918 5096 5274 5452 5630 5807 5879 6057 6235 6464 6569 6641 6730 6908 7086 7247 7425 7585 7691"
       y="21407"
       id="tspan375">drbd_endio_write_sec()</tspan>
  </text>
  <text
     id="text389"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="4647 4825 5003 5180 5358 5536 5714 5820 5997 6158 6319 6497 6658 6836 7013 7085 7263 7424 7585 7691"
       y="21907"
       id="tspan391">e_end_resync_block()</tspan>
  </text>
  <path
     d="M 11999,22601 L 11685,22640 L 11724,22444 L 11999,22601 z"
     id="path401"
     style="fill:#000080;visibility:visible" />
  <path
     d="M 7999,21801 L 11764,22554"
     id="path405"
     style="fill:none;stroke:#000080;visibility:visible" />
  <text
     x="4290.3008"
     y="-2369.6162"
     transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
     id="text423"
     style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="13610.301 13911.301 14016.301 14088.301 14177.301 14355.301 14567.301 14728.301"
       y="19573.385"
       id="tspan425">WriteAck</tspan>
  </text>
  <text
     id="text439"
     style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12199 12377 12555 12644 12821 13033 13105 13283 13444 13604 13816 13977 14138 14244"
       y="22559"
       id="tspan441">got_BlockAck()</tspan>
  </text>
  <text
     id="text455"
     style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="7999 8304 8541 8753 8964 9201 9413 9531 9769 9862 10099 10310 10522 10734 10852 10971 11208 11348 11585 11822"
       y="16877"
       id="tspan457">Resync blocks, 4-32K</tspan>
  </text>
  <path
     d="M 12000,7601 L 11900,7301 L 12100,7301 L 12000,7601 z"
     id="path467"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 12000,6801 L 12000,7361"
     id="path471"
     style="fill:none;stroke:#008000;visibility:visible" />
  <path
     d="M 12000,6801 L 11686,6840 L 11725,6644 L 12000,6801 z"
     id="path483"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 8000,6001 L 11765,6754"
     id="path487"
     style="fill:none;stroke:#008000;visibility:visible" />
  <text
     x="-1288.1796"
     y="1279.7666"
     transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
     id="text505"
     style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="8174.8208 8475.8203 8580.8203 8652.8203 8741.8203 8919.8203 9131.8203 9292.8203"
       y="9516.7666"
       id="tspan507">WriteAck</tspan>
  </text>
  <path
     d="M 8000,8601 L 8282,8458 L 8312,8655 L 8000,8601 z"
     id="path517"
     style="fill:#000080;visibility:visible" />
  <path
     d="M 12000,8001 L 8237,8565"
     id="path521"
     style="fill:none;stroke:#000080;visibility:visible" />
  <text
     x="1065.6655"
     y="-2097.7664"
     transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
     id="text539"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="10682.666 10911.666 11088.666 11177.666"
       y="4107.2339"
       id="tspan541">Data</tspan>
  </text>
  <text
     id="text555"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="4746 4924 5030 5207 5385 5563 5826 6003 6164 6342 6520 6626 6803 6981 7159 7337 7498 7587 7692"
       y="5505"
       id="tspan557">drbd_make_request()</tspan>
  </text>
  <text
     id="text571"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12200 12306 12484 12645 12822 12894 13055 13233 13411 13639 13817 13906 14084 14190"
       y="6806"
       id="tspan573">receive_Data()</tspan>
  </text>
  <text
     id="text587"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12200 12378 12484 12661 12839 13017 13195 13373 13550 13622 13800 13978 14207 14312 14384 14473 14651 14829 14990 15168 15328 15434"
       y="7606"
       id="tspan589">drbd_endio_write_sec()</tspan>
  </text>
  <text
     id="text603"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12192 12370 12548 12725 12903 13081 13259 13437 13509 13686 13847 14008 14114"
       y="8007"
       id="tspan605">e_end_block()</tspan>
  </text>
  <text
     id="text619"
     style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="5647 5825 6003 6092 6269 6481 6553 6731 6892 7052 7264 7425 7586 7692"
       y="8606"
       id="tspan621">got_BlockAck()</tspan>
  </text>
  <text
     id="text635"
     style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="8000 8305 8542 8779 9016 9109 9346 9486 9604 9956 10049 10189 10328 10565 10705 10942 11179 11298 11603 11742 11835 11954 12191 12310 12428 12665 12902 13139 13279 13516 13753"
       y="4877"
       id="tspan637">Regular mirrored write, 512-32K</tspan>
  </text>
  <text
     id="text651"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="5381 5610 5787 5948 6126 6304 6482 6659 6837 7015 7087 7265 7426 7587 7692"
       y="6003"
       id="tspan653">w_send_dblock()</tspan>
  </text>
  <path
     d="M 8000,6800 L 7900,6500 L 8100,6500 L 8000,6800 z"
     id="path663"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 8000,6000 L 8000,6560"
     id="path667"
     style="fill:none;stroke:#008000;visibility:visible" />
  <text
     id="text683"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="4602 4780 4886 5063 5241 5419 5597 5775 5952 6024 6202 6380 6609 6714 6786 6875 7053 7231 7409 7515 7587 7692"
       y="6905"
       id="tspan685">drbd_endio_write_pri()</tspan>
  </text>
  <path
     d="M 12000,13602 L 11900,13302 L 12100,13302 L 12000,13602 z"
     id="path695"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 12000,12802 L 12000,13362"
     id="path699"
     style="fill:none;stroke:#008000;visibility:visible" />
  <path
     d="M 12000,12802 L 11686,12841 L 11725,12645 L 12000,12802 z"
     id="path711"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 8000,12002 L 11765,12755"
     id="path715"
     style="fill:none;stroke:#008000;visibility:visible" />
  <text
     x="-2155.5266"
     y="1201.5964"
     transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
     id="text733"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="7202.4736 7431.4736 7608.4736 7697.4736 7875.4736 8104.4736 8282.4736 8459.4736 8531.4736"
       y="15454.597"
       id="tspan735">DataReply</tspan>
  </text>
  <path
     d="M 8000,14602 L 8282,14459 L 8312,14656 L 8000,14602 z"
     id="path745"
     style="fill:#008000;visibility:visible" />
  <path
     d="M 12000,14002 L 8237,14566"
     id="path749"
     style="fill:none;stroke:#008000;visibility:visible" />
  <text
     x="2280.3804"
     y="-2103.2141"
     transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
     id="text767"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="11316.381 11545.381 11722.381 11811.381 11989.381 12218.381 12396.381 12573.381 12751.381 12929.381 13090.381"
       y="9981.7861"
       id="tspan769">DataRequest</tspan>
  </text>
  <text
     id="text783"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="4746 4924 5030 5207 5385 5563 5826 6003 6164 6342 6520 6626 6803 6981 7159 7337 7498 7587 7692"
       y="11506"
       id="tspan785">drbd_make_request()</tspan>
  </text>
  <text
     id="text799"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12200 12306 12484 12645 12822 12894 13055 13233 13411 13639 13817 13906 14084 14312 14490 14668 14846 15024 15185 15273 15379"
       y="12807"
       id="tspan801">receive_DataRequest()</tspan>
  </text>
  <text
     id="text815"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12200 12378 12484 12661 12839 13017 13195 13373 13550 13622 13800 13978 14084 14262 14439 14617 14795 14956 15134 15295 15400"
       y="13607"
       id="tspan817">drbd_endio_read_sec()</tspan>
  </text>
  <text
     id="text831"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="12192 12421 12598 12776 12954 13132 13310 13487 13665 13843 14021 14110 14288 14465 14571 14749 14927 15033"
       y="14008"
       id="tspan833">w_e_end_data_req()</tspan>
  </text>
  <g
     id="g835"
     style="visibility:visible">
    <desc
       id="desc837">Drawing</desc>
    <text
       id="text847"
       style="font-size:318px;font-weight:400;fill:#008000;font-family:Helvetica embedded">
      <tspan
         x="4885 4991 5169 5330 5507 5579 5740 5918 6096 6324 6502 6591 6769 6997 7175 7353 7425 7586 7692"
         y="14607"
         id="tspan849">receive_DataReply()</tspan>
    </text>
  </g>
  <text
     id="text863"
     style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="8000 8305 8398 8610 8821 8914 9151 9363 9575 9693 9833 10070 10307 10544 10663 10781 11018 11255 11493 11632 11869 12106"
       y="10878"
       id="tspan865">Diskless read, 512-32K</tspan>
  </text>
  <text
     id="text879"
     style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="5029 5258 5435 5596 5774 5952 6130 6307 6413 6591 6769 6947 7125 7230 7408 7586 7692"
       y="12004"
       id="tspan881">w_send_read_req()</tspan>
  </text>
  <text
     id="text895"
     style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="6961 7266 7571 7854 8159 8278 8515 8633 8870 9107 9226 9463 9581 9700 9793 10030"
       y="2806"
       id="tspan897">DRBD 8 data flow</tspan>
  </text>
  <path
     d="M 3900,5300 L 3700,5300 L 3700,7000 L 3900,7000"
     id="path907"
     style="fill:none;stroke:#000000;visibility:visible" />
  <path
     d="M 3900,17600 L 3700,17600 L 3700,22000 L 3900,22000"
     id="path919"
     style="fill:none;stroke:#000000;visibility:visible" />
  <path
     d="M 16100,20000 L 16300,20000 L 16300,18500 L 16100,18500"
     id="path931"
     style="fill:none;stroke:#000000;visibility:visible" />
  <text
     id="text947"
     style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="2126 2304 2376 2554 2731 2909 3087 3159 3337 3515 3587 3764 3870"
       y="5202"
       id="tspan949">al_begin_io()</tspan>
  </text>
  <text
     id="text963"
     style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="1632 1810 1882 2060 2220 2398 2661 2839 2910 3088 3177 3355 3533 3605 3783 3888"
       y="7331"
       id="tspan965">al_complete_io()</tspan>
  </text>
  <text
     id="text979"
     style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="2126 2232 2393 2571 2748 2926 3104 3176 3354 3531 3603 3781 3887"
       y="17431"
       id="tspan981">rs_begin_io()</tspan>
  </text>
  <text
     id="text995"
     style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="1626 1732 1893 2071 2231 2409 2672 2849 2921 3099 3188 3366 3544 3616 3793 3899"
       y="22331"
       id="tspan997">rs_complete_io()</tspan>
  </text>
  <text
     id="text1011"
     style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="16027 16133 16294 16472 16649 16827 17005 17077 17255 17432 17504 17682 17788"
       y="18402"
       id="tspan1013">rs_begin_io()</tspan>
  </text>
  <text
     id="text1027"
     style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
    <tspan
       x="16115 16221 16382 16560 16720 16898 17161 17338 17410 17588 17677 17855 18033 18105 18282 18388"
       y="20331"
       id="tspan1029">rs_complete_io()</tspan>
  </text>
</svg>