본문 바로가기 메뉴 바로가기

기록하는 개발자

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

기록하는 개발자

검색하기 폼
  • 분류 전체보기 (127)
    • JAVA (6)
    • Spring (38)
    • Django (7)
    • 알고리즘 (28)
    • Network (16)
    • 회고 (17)
      • 우아한테크코스 (11)
    • Linux (11)
    • 이슈 (2)
    • 인프라 (2)
  • 방명록

dm-zoned 코드분석 (2)
[Linux] ZNS SSD dm-zoned 동작 원리(2) - dm-zoned-metadata.c code분석

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..

Linux 2022. 12. 6. 16:40
[Linux] ZNS SSD dm-zoned 동작 원리(1) - dm-zoned-target.c code분석

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 해보고, 코드를 분석하는 과정이 한 달 이상 소요되었습니다. 그러므로 함수..

Linux 2022. 12. 4. 20:51
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 네트워크
  • jpa
  • 우테코 회고
  • 2차 데모데이
  • 스프링 부트
  • 프로젝트
  • 8주차 회고
  • 피움
  • dm-zoned 코드분석
  • 스프링 프레임워크
  • 5주차 회고
  • ZNS SSD
  • 스프링MVC
  • 백준
  • CI/CD
  • ZNS
  • 회고
  • 팀프로젝트
  • dm-zoned
  • 3차 데모데이
  • 런칭 페스티벌
  • 알림기능개선기
  • 파이썬
  • 알림개선기
  • 우테코
  • 환경 별 로깅 전략 분리
  • java
  • Spring
  • 피움 6주차 회고
  • 스프링 Logback
more
«   2025/05   »
일 월 화 수 목 금 토
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 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바