목록현장실습 (5)
함께 배워가는 학생개발자
Ext4 파일 시스템은 크게 부트섹터와 블록 그룹으로 이루어져 있다. 블록이란 Ext4 파일시스템에서 기본적으로 데이터를 저장하는 단위를 나타내며, 저장장치에서 한 번의 I/O 과정에 읽어 들이는 단위가 되기도 한다. 부트 섹터를 제외하면 모두 블록 그룹들의 나열로 되어 있다. 파일시스템을 구성하는 정보들은 블록 그룹에 있다. 가장 마지막 블록 그룹을 제외한 모든 블록 그룹들은 같은 블록 개수를 가진다. 이 곳에 파일명, 메타데이터, 파일데이터 등이 저장된다. 1. 블록 그룹(Block Group) 블록 그룹은 블록들의 모임이며 블록들을 여러 그룹으로 나누어서 파일시스템의 정보 및 데이터를 저장한다. OS 커널에서 같은 파일에 속하는 데이터 블록은 같은 블록에 저장하려 하므로 블록 그룹은 파일의 단편화를..

Ext3, 4의 저널에 저장된 메타데이터를 사용한 파일 복구 개요 파일시스템 저널링은 디스크에 데이터를 쓰기 전에 모든 파일 시스템 변화의 로그를 보관할 수 있도록 하는 파일시스템 타입이다. 이 로그를 저널이라고 하며 보통 파일시스템의 할당된 공간에 있는 순환 로그이다. 저널을 이용하여 비정상적인 종료시 손상을 방지할 수 있다. 저널은 Ext뿐 만 아니라 다른 파일 시스템 NTFS, JFS, JFS2 등에도 사용된다. * 파일 시스템 : 파일 시스템의 구조를 기술하며, 데이터 단위의 크기, 구조 오프셋, 마운트 정보, 그룹 디스크립터 등 정보가 포함된다. * 메타 데이터 : 파일의 특징과 구조를 설명하는 정보를 포함한다. 이를 inode라고 한다. 파일 소유자(owner) 식별자, 파일 타입, 파일 접근..
저널 로그를 기록하는 영역은 저널링을 위한 영역에 따로 저장된다. Superblock의 Journal INode Number이 저널링을 위한 아이노드 번호를 나타내며 일반적으로 8번으로 정해져있다. 저널링을 사용하지 않는 경우 Padding을 위한 예약된 영역으로 비워두고 사용한다. 저널링 기능 사용할 수 있는 Device가 다르므로 Superblock의 incompatible feature flags 항목의 EXT3_FEATURE_INCOMPAT_JOURNAL_DEV(0x0008) Flag가 ON 되어있는지 확인한다. 저널링 기능에는 4가지 구조체를 사용한다. 1. Journal Super Block 2. Descriptor 3. Commit 4. Revoke Block 다른 부분과 다르게 Big En..
파일시스템이 정상적으로 종료(언마운트)되지 않았다면, 저장장치 내에 있는 모든 INode와 Bitmap 등의 Meta Data를 검사하여 일관성 문제를 해결한다. 그러나 모두 검사하기에는 시간이 너무 오래 걸리는 이슈가 있다. 이런 상황을 해결하고자 파일시스템 Ext3부터 저널링 방식을 적용하였다. 파일을 쓰는 작업을 할 때 파일시스템의 특정 영역 저널(Journal)이라 불리는 로그를 기록한 뒤, 작업이 정상적으로 완료 되었을 때 커밋(commit)을 하면 실제 사용되는 영역에 기록을 한다. 이 방법을 사용하면 시스템이 중간에 종료가 되어도 종료된 위치를 바로 알 수 있기 때문에 파일시스템 전체를 검사할 필요가 없게 된다. 저널링 방식에는 로그를 기록하는 옵션에 따라 크게 3가지로 분류된다. 1. Wr..
오늘은 Yolov4를 github에서 다운받아 이미지와 동영상을 실행하고 파일 시스템 Ext4의 파일 구조를 공부했다. 앞으로 전이학습(transfer learning)을 할 계획이다. 테스트 할 때 기존 coco dataset의 object set을 지우지 않고 새로운 이미지의 object를 추가해서 학습하는 것을 목표로 한다. 그 예시로 기존 coco dataset 80개 object에 3개의 새로운 object를 추가하고 각각 이미지를 추가해서 학습한다. 문제는 데이터셋이 너무 적다는 것, 그에 따른 데이터의 편차가 일어나 오버피팅이 발생할 수 있다는 점. 데이터셋의 물체의 box를 수작업으로 지정해줘야 한다는 점이다. 오버피팅를 해결하는 방법 중 하나는 데이터의 수를 늘리는 방법이 있다. 이점을 ..