본문 바로가기

filesystem

Linux storage stack diagram https://www.thomas-krenn.com/de/wikiDE/images/2/2d/Linux-storage-stack-diagram_v4.0.pdf 더보기
loop device and losetup 원문 : https://cafe.naver.com/taskers/10933 loop는 이미지파일을 블록 디바이스로 인식되게 해주는 디바이스 드라이버입니다.즉, 이미지 파일을 마운트 시켜줍니다. 쉽게 말해서 윈도우즈의 데몬툴이나 시디스페이스 같은 것이라 보면 됩니다.그러나 그 기능과 성능은 훨씬 강력합니다. 아래는 loop를 이용하여 100MB짜리 vfat 이미지를 마운트하는 예제입니다. 진행하려면 비지박스와 루팅은 필수입니다.터미널이나 ADB Shell에서 진행하세요. 1. 일단 dd를 이용해서 100메가짜리 공파일을 뜹니다. dd if=/dev/zero of=/mnt/sdcard/vdrive.img bs=1000000 count=100 dd : 덤프를 뜹니다. if=[덤프대상] of=[덤프결과]/dev.. 더보기
rootfs rootfs 란? linux kernel 을 build 할때 가장 최 상의에 위치할 filesystem 의 폴더 경로를 ramdisk로 만들고 미리 package 화 한 binary /bin/dev/etc/lib/proc/root... 더보기
filesystem 잡다한 내용 filesystem 의 파일 삭제 순서1. unlink 호출2. ext4 -> mata data 삭제 (~10초)3. ext4 -> raw data 삭제(TRIM) (~20초) : 삼성외에는 이것을 하지 않는다.4. batched discard : 구글이 만든 기능으로 하루에 한번정도 mata data 만 삭제되고 raw data 가 남아있는 데이터를 찾아서 삭제해줌. 즉, 3번이 수행되지 않은 부분에 수행해줌. securediscard 는 실제로는 잘 쓰지 않고 FTL 에서도 잘 보장되지 않는다. ext4 metadata 종류- bitmap- inode- directory entry : 파일 raw 데이터의 일종이나 내부적으로 해당 디렉토리에 어떤 파일(inode)들이 있는지 기재되어 있다. files.. 더보기
batched discard - ext4 https://lwn.net/Articles/383933/ -> 위 article 에 대한 요약trim 은 나쁜 성능을 가지고 있고, 그것의 대안은 매 ioctl 마다 freed block 을 discard 하지 않는 것이다. 그것을 위해 batched discard 를 만들었다.성능을 위해 minimum free extent length 를 설정했고, ioctl 은 작은 extents 까지 처리하지 않을 것이다.이 방식은 성능을 위해서 freed block 을 track 하는 bitmap 을 저장하고, 한꺼번에 trim 하는 것이다.이것을 구현하기 위해 나는 새로운 bitmap, bb_bitmap_deleted, 을 ext4_group_info 안에 추가 했다.하나의 문제가 있다. bb_bitmap_d.. 더보기
filesystem 용어 - mtdhttp://forum.falinux.com/pds/data-s2410/No11-1.pdf 임베디드 리눅스 장비에서 램디스크를 이용하여 루트 파일 시스템을 구현 하였을 경우에는 보드 동작 중에 파일로 기록된 내용이 전원이 꺼짐과 동시에 소실된다. 기록된 내용을 영구 저장 하기 위해서는 일반적으로 플래시 메모리에 기록하여야 한다. 플래시 메모리를 리눅스의 루트 파일 시스템으로 사용하기 위해서는 MTD (Memory Technology Device ) 블록 디바이스 드라이버를 사용하여야 한다. 더보기
fstab & partition images type 의 emmc -> 는 row data 를 뜻함.즉, filesystem 없이 blk 단위로 read/write 하는 partition 임. # /dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc default recoveryonly/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc default recoveryonly/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 default recoveryonly/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 default wait,leng.. 더보기
wrtie 비교 O_DIRECT and no-delay-alloc mount option - O_DIRCET optionopen 함수에 주는 flag - no-delay-alloc optionfile system mount option : file write 를 보통 지연시켜서 하는데 이기능을 사용하지 않음. umount /cache 일반적인 mount 명령어mount -t ext4 /dev/block/mmcblk0p27 /cache no delay alloc mount 명령어mount -t ext4 -o nodelalloc /dev/block/mmcblk0p27 /cache test source code 하기 파일에서 O_DIRECT 주석을 풀어주면 O_DIRECT 로 동작함.간단히 input file 을 open 하여 내용을 읽고 output 파일에 write 하는 예제임. 결과를 mos.. 더보기
Crash Consistency를 유지하기 위한 방법 (fsck 와 journaling 의 자세한 소개) 얼마전에 소개한 Operating Systems: Three Easy Pieces 책에서 fsck 와 journaling 에 대해 소개한 챕터를 전체 번역하고 요약하였습니다.개인적으로 이 부분에 대한 지식이 필요한 사람들에게 크게 유용한 자료가 될 것이라 생각합니다. 특히, filesystem 의 journaling mode 들에 동작에 대해서, 비교적 상세하게 기술하였기 때문에 이 부분을 이해하는데 큰 도움이 되었습니다. 원문 문서 링크 : http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf번역본 전체 : ※ 사용하시면 꼭 출처를 밝히시기 바랍니다. > - 오래 사용하던 방식임. - 파일시스템이 in-consistency 한 상태가 되도록 놔두었다가 .. 더보기
filesystem 기본을 공부하기에 좋은 책 (operating systems - three easy pieces) 파일 시스템을 공부하는데 매우 좋은 사이트를 추천하고자 한다.위 사이트에 들어가면 아래 책을 모두 pdf 형태로 다운 받을 수 있는데,설명이 매우 친절한 편이다. 이중 file system 을 다룬 Persistence 챕터를 읽고 있는 중인데,어떠한 인터넷 문서보다 차근차근 설명이 잘 되어 있다. 영어 문서에 거부감이 없다면,한번씩 읽어보자. http://pages.cs.wisc.edu/~remzi/OSTEP/ 더보기
File System의 개요 원문 : http://cafe.naver.com/ghson/164 파일시스템을 이해하는데 기초 자료로서 너무나 설명이 잘 되어 있다.자료 보존 차원에서 옮겨 왔다. 파일시스템은 '6.device file의 개요'에서 설명한 바와 같이 섹터로 나누어진 물리적인 디스크를 운영체제가 사용하기 좋게 블럭단위로 나누어 각 블럭에 주소를 부여함으로써 운영체제가 디스크를 관리할 수 있게끔 디스크에 지도를 그리는 작업이라 할 수 있다. 1. 파일시스템의 구조 파일시스템은 루트디스크를 시작으로 디렉토리 트리나 계층구조로 이루어지며, 각 파일시스템은 물리적으로 같은 디스크에 존재할 수도 있고 다른 디스크에 따로 존재할 수 있다. 또한 각 파일시스템안에는 크게 User Data와 Meta Data로 구분되는 구조로 관리되며.. 더보기
linux file system 용어 - UBI 얼마전부터 UBI와 UBIFS 를 분석중에 있습니다. 주로 영문 Document 들을 번역하면서 분석중인데요. 제가 file system 을 체계적으로 공부한적도 없고 해서, 용어들이 매우 헷갈리는군요. 다른 입문자 분들을 위해 간단한 용어의 뜻을 정리해 봅니다. 혹시 잘못된 내용이 있으면 댓글 부탁드립니다. - Flash Tree : data 를 저장하는 tree 구조 - TNC : Tree Node Cache - GC : Garbage collection – 무효한 데이터들을 모아서 erase 함으로서 용량을 확보하는 것 - Wear leveling : flash 의 특성상 erase 반복 횟수가 있으므로 이를 flash memory 의 전 block 에 걸쳐 가급적 균등하게 하려는 알고리즘 - LV.. 더보기
MTD 이해하기 원문 : http://dooeui.blogspot.com/2009/01/mtd.html MTD는 memory technology device의 약자로, char. device, block device와 같은 별도의 디바이스그룹이라고 간주하는것이 맞을 것 같다. 전통적으로 OS에서 장치를 char. device 와 block device 로 나누어왔기 때문에 flash memory용 디바이스 드라이버를 둘 중 어떤 것으로 분류 시켜야 하는지 고민이 생기게 된다, MTD는 분명 hdd를 대체하는 장치로 사용되고 있지만, 그 동작 특성이 block device와는 현저히 다르기 때문에 굳이 이를 block device 로 부르는 것은 옳지 않으므로 그냥 MTD 라고 부르는 것이 맞을 것 같다. MTD가 선보이.. 더보기