
dm-zoned-target.c가 I/O 과정의 흐름을 담당하는 함수들이 모여있었다면, dm-zoned-metadata.c는 I/O를 실행하기 위해 필요한 메타데이터들에 관한 함수들이 모여있는 코드입니다. Write 하기 위한 zone이 chunk와 매핑되어있는지, bio가 접근하는 chunk id는 몇 번인지, device 상태는 어떤지 등과 같은 원시적인 데이터와 관련된 로직들이 모여있습니다. 이 파일은 3000 라인이 넘는 많은 양의 코드이지만, 핵심적인 함수들을 우선 파악한다면 I/O 루틴을 보다 수월하게 이해할 수 있습니다. 함수를 소개하기에 앞서, metadata.c 에서 가장 많이 사용되는 zone 구조체와 dmap 구조체를 먼저 이해하고 넘어가겠습니다 ! dm_zone struct dm_z..

dm-zoned는 메타 데이터를 관리하는 dm-zoned-metadata.c, target device를 다루는 dm-zoned-target.c, regular block의 reclaim을 관리하는 dm-zoned-reclaim.c 총 3개의 C 파일과 dm-zoned.h 헤더 파일과 함께 구성되어 있습니다. I/O write Routine dm-zoned의 I/O write 루틴에서 다루는 함수가 정말 많기 때문에 관련된 모든 함수를 정확히 파악하기가 어렵습니다. 또한 참고할만한 레퍼런스가 없기 때문에 직접 코드를 하나씩 까보며 이해하는 과정이 필수입니다. 저 또한 해당 루틴을 파악하기 위해 커널에서 fio를 실행하여 trace 해보고, 코드를 분석하는 과정이 한 달 이상 소요되었습니다. 그러므로 함수..
- Total
- Today
- Yesterday
- 백준
- 우테코 회고
- 네트워크
- 스프링 부트
- ZNS
- 우테코
- 회고
- 런칭 페스티벌
- 알림기능개선기
- 스프링 프레임워크
- 프로젝트
- dm-zoned 코드분석
- 스프링 Logback
- 파이썬
- java
- 피움 6주차 회고
- 5주차 회고
- 8주차 회고
- ZNS SSD
- jpa
- 3차 데모데이
- 피움
- 알림개선기
- CI/CD
- 팀프로젝트
- Spring
- dm-zoned
- 환경 별 로깅 전략 분리
- 2차 데모데이
- 스프링MVC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |