journaling
Storage에 데이터의 변경 내역을 기록하여 시스템의 비정상적인 종료 시에도 로그에 저장된 데이터를 검사하여 fsck(file system check) 무결성, 안정적인 복구기능을 제공하는 파일 시스템 기술
fsck(file system check)
리눅스에서 제공하는 명령어로 파일의 무결성을 검사하고 손상된 파일이 있다면 복구를 해준다.
file system
내부의 모든 데이터를 조직화하고 저장된 데이터를 액세스 가능한 상테로 관리하는 내부 구조를 메타데이터(Metadata)라고 하는데, 이런 메타데이터를 통해 데이터를 저장, 검색 및 처리 해주는 시스템이다.
journaling file system
특별한 데이터 구조체 혹은 데이터 영역에 시스템의 변경 사항들을 기록해 놓고(journaling), 이를 참조하여 파일 시스템에 변경 사항을 적용하기 전에 변경점들을 추적하는 시스템이다. 이를 통해 시스템 오류 시에 정상 상태로 빠르게 복구할 수 있고, 내부 데이터의 손상 가능성을 낮춘다.
일반적으로 시스템에서 파일 입출력 속도를 높이기 위해 주 메모리에 buffer를 만들어 사용하는데, 갑작스러운 정전과 같은 이유로 시스템에 손상이 오는 경우 해당 buffer의 데이터 손실로 인해 재부팅 후 시스템이 비정상적으로 동작할 수 있다. 이런 경우를 대비하여 Database와 Filesystem이 하드디스크에 데이터를 저장해 시스템을 복구할 수 있도록 하는데, 유닉스 파일 시스템 같은 경우 파일 시스템의 크기가 커짐에 따라 파일 시스템의 복구 시간이 많이 필요하게 되고 이러한 처리 시간은 용량이 큰 서버일 수 록 성능 저하가 심해지기 때문에 Database 복구를 빠르게 처리하기 위해 저널링 파일시스템이 생겨나게 되었다.
Database와의 차이점은 Database는 사용자와 제어할 Data의 기록을 남기지만, 저널링 파일 시스템은 단지 메타데이터만을 저장한다.
저널링 파일 시스템의 종류
1.
ext : 리눅스 파일 시스템으로 사용되며, 암호화를 지원하지 않는다.
2.
ext2 : ext를 대체하기 위해 고안되었으며, 역시 리눅스 파일 시스템으로 사용된다. 서버의 비정상적 종료 후 데이터 손실을 방지하기 위해 fsck 복구 명령어가 추가되었다.
3.
ext3 : 파일 내용 변경 시 파일 시스템과 동기화 작업(저널링 파일 시스템 도입)이 이루어진다. ext2에서 자료 삭제 및 손실 없이 ext3으로 변경 가능하다.
4.
ext4 : 삭제 파일 복구와 점검 속도를 높인 버전이다. ext3와 호환이 되며 16TB까지 지원하고 64bit 에서 공간의 제한을 두지 않는다.
ext : extened file system
swap area
swap area는 메모리 공간(RAM)이 부족할 때 메모리의 inactive page를 swap area로 이동시켜 약간의 RAM 공간을 확보하는데 사용된다. swap area는 하드 디스크에 존재하며 RAM보다 느리기 때문에 RAM의 대체 메모리가 아닌 것을 인지하고 있어야한다.