61.Linux
리눅스 파일시스템
1010
2008. 10. 20. 23:27
반응형
* FAT16(File Allocation Table 16)
FAT16은 도스(DOS)에서부터 사용하던 파일 시스템으로 최대 2GB 이상의 파티션은 인식하지 못하기 때문에 고용량의 하드 디스크 드라이브에는 적합하지 않은 파일 시스템이라고 할 수 있다.
또 클러스터의 크기도 파티션의 용량에 따라 정해져 있기 때문에 파티션의 크기가 2GB 일 경우에는 64KB로 클러스터의 크기가 설정된다. 예를 들어 65KB 크기의 파일을 저장할 때는 부득이 하게 두 개의 클러스터를 써야 한다. 64KB 와 1KB를 저장하고 남은 63KB 의 빈공간은 사용할 수 없게 된다. 이렇게 사용할 수 없는 공간을 슬랙 이라고 한다. 하드 디스크 드라이브의 슬랙이 많이 발생하면 사용하지 못하는 공간이 많아져 실질적인 데이타 저장량이 감소하여 효율면에서 단점이라고 할 수 있다.
FAT16 환경에서 이런 문제를 극복하기 위해 파티션의 크기를 줄여서 사용하는 경우가 있지만 이렇게 되면 큰 용량의 파일을 저장하는데 어려움이 있다. 그래서 FAT16의 이런 단점을 개선하여 FAT32 파일 시스템을 선보였다.
* FAT32(File Allocation Table 32)
FAT32는 현재 가장 많이 사용하고 있는 파일 시스템이라고 할 수 있다. 윈도우 95 OSR2에서 부터 사용된 파일 시스템으로 기존의 FAT16의 파티션 용량의 한계와 클러스터의 크기를 개선한 파일시스템이다. 이 파일 시스템은 2GB 이상의 파티션 용량을 지원하고 있으며 클러스터 당 크기도 최소 4KB로 감소시켜 하드 디스크의 효율면에서 많은 발전을 가져왔다. 대용량의 하드 디스크의 출시에도 많은 영향을 주었다고 볼 수 있다.
* NTFS(New Technology File System)
NTFS는 윈도우NT와 같은 서버 운영체제에서 주로 사용된다. 윈도우2000이나 XP에서는 NTFS 5.0이 사용되고 이전 버전에서는 NTFS 4.0이 사용됐다. NTFS는 윈도우 9X(95,98, Me) 계열에서는 사용할 수 없다.
파티션의 크기는 제한이 없으며 클러스터의 크기도 512Byte 에서 64KB 까지 다양하게 지원해 하드 디스크의 용량을 효율적으로 사용할 수 있는 장점이 있다. 하지만 클러스터의 크기는 한 번 정하면 변경할 수 없는 점에 주의해야 한다.
NTFS 파일시스템의 가장 큰 장점은 보안성 면에서 매우 우수한 기능을 제공한다는 것이다. 윈도우 98의 경우 네트워크 상에서는 어느 정도 자기 컴퓨터에 대한 보안 환경을 구축할 수 있지만 직접 자기 컴퓨터를 엑세스하는 경우에 대한 보안 대책은 미비했다. NTFS의 경우 각 폴더와 파일에 접근 권한을 줄 수 있으며 서버 관리자의 경우에는 각 클라이언트가 사용할 수 있는 하드 디스크의 용량의 제한이 가능하며 접속하는 클라이언트들에 대해 그룹별로 접근 권한을 다양하게 적용할 수 있어 보안면에서 매우 우수한 편이다.
디스크 오류를 자동으로 복구해주는 기능의 채택으로 NTFS는 안정성이 우수해 중요한 데이터의 손실을 감소시켜 서버급의 대용량 컴퓨터에서 많이 사용하고 있다. 일반 개인 사용자들의 경우에도 NTFS 포맷을 사용하는 분들도 많이 있는 것으로 알고 있다.
NTFS 는 이렇게 유용한 기능도 많지만 네트워크로 연결되어 있는 경우나 윈도우 98과 2000과 같이 서로 다른 파일 시스템을 사용해 멀티 부팅 환경을 만들 경우, 파티션별로 데이터의 이동이 많을 경우에는 NTFS보다는 FAT32 시스템을 사용하는 것이 유리하다고 볼 수 있다.
* ext
리눅스 초기 사용되던 파일 시스템으로 호환성이 없던 ext2의 구 버전이다. 지금은 대부분 사용하지 않는다.
* ext2
현재 가장 많이 사용하는 파일 시스템으로 리눅스 파일 시스템 대부분의 기능을 제공하는 파일시스템이다. 뛰어난 안전성과 속도로 사랑받고 있는 파일 시스템이다. 쉽게 호환되며, 업그레이드도 쉽게 설계되어 있다.
ext2는 파일의 데이터와 메타-데이터(파일의 위치,크기,소유자,접근 권한 등의 파일과 관련된 데이터)를 동시에 저장하지 않는 비동기식 파일시스템이다.
비동기식 파일시스템은 메타-데이터를 파일의 내용 자체를 저장할 때 저장하는 것이 아니라, 메모리에 두었다가 일정한 시간 간격을 두고 저장한다. 이런 메카니즘을 이용하면 성능상의 이점이 있으나 비동기식 파일시스템을 가진 운영체제는 일정 횟수만큼 파일시스템을 마운트 했다거나, 갑자기 시스템이 다운될 경우에 재부팅하는 과정에서 무결성을 검사하기 위해 상당한 시간을 소비한다. 인터넷을 통해 어떤 중요한 서비스를 하는 서버나 개인이 사용하는 시스템에게 있어서 오랫동안 시스템이 접속 불능 상태로 방치되고 데이터의 일부가 손상되는 것은 매우 심각한 문제이다.
* ext3
데이터베이스에서 쓰이는 저널링 기술을 적용한 저널링 파일 시스템이다.
저널링 파일 시스템은 일정부분을 기록을 위해 남겨두어, 백업 및 복구 능력이 있는 파일 시스템을 말하며, 시스템 크래쉬 후에 파일 시스템 복구에 드는 시간이 아주 적다.
저널링 파일 시스템은 사용자가 데이터를 입력 또는 수정하면 그 데이터를 바로 하드디스크에 기록하기 전에 관련 데이터를 로그에 기록한다. 만약 기록 중에 가장 빈번하게 발생하는 문제인 정전이나 기타 다른 이유로 인하여 비정상적인 종료를 하게 되면 다시 부팅할 때 로그에 기록된 데이터를 참고로 하여 다시 작성하거나 복구하게 된다.
저널링 파일 시스템의 장점은 서버에서는 다양한 데이터를 빈번하게 기록하고 수정한다. 이런 방식은 수많은 사용자들이 입력하고 수정하는 데이터가 예기치 못한 사고로 인하여 시스템이 다운되더라도 복구할 수 있는 확률이 기존의 ext2 시스템보다 상당히 높다.
시스템 재부팅시, 기존 ext2 시스템에서 보여주는 fsck(file system check)의 오랜 복구 시간은 파일 시스템의 용량이 기가 바이트에서 테라 바이트급으로 발전하고 있는 시점에서 리눅스의 감점 요인이 될 수 있다는 것도 고려해 보아야 할 요소 중의 한가지일 것이다. 물론 이것은 개인 사용자들의 컴퓨터 시스템의 저장 용량도 점점 더 대용량화 되어가는 현 상황에도 부합된다고 할 수 있다.
* minix
과거 Minix에서 사용되었던 파일 시스템으로 가장 오래되고 기본이 되는 파일 시스템이라 하지만 몇 가지 제한이 있다. 우선 몇몇 Time Stamp가 유실되고, 파일 이름은 30문자로 제한된다. 파일 시스템마다 최대 64MB 성능 제한이 있다.
대부분의 배포판의 부팅 디스크는 보통 Minix 파일 시스템으로 구성되어 있다.
* xiafs
minix의 제한이었던 파일 이름과 파일 시스템에 대한 제한을 보완한 minix 파일 시스템의 수정 버전이다.
한때 ext2와 함께 많이 사용되던 파일 시스템이었으나 현재는 많이 사용되지 않는다.
* msdos
MS-DOS의 FAT 파일 시스템과 호환을 지원하는 파일 시스템이다.
또한 msdos는 OS/2와 윈도우 NT의 FAT파일 시스템과도 호환된다.
* hpfs OS/2
OS/2의 파일 시스템이다. 하지만 현재는 읽기 전용인 파일 시스템으로 파일 시스템에 대한 읽기 만이 가능하다.
* isofs CD-ROM
ISO 기준을 따르는 표준 CD-ROM의 파일 시스템이다. isofs CD-ROM는 CD-ROM에 좀 더 긴 파일명을 사용할 수 있도록 확장된 록 브리지(Rock Bridge)가 기본으로 지원된다.
* umsdos
ms-dos 파일 시스템을 리눅스상에서도 긴 파일명과 소유자, 접근허가, 링크와 장치 파일 등을 사용할 수 있도록 확장한 파일 시스템이다. umsdos는 일반적으로 DOS 파일 시스템이 마치 리눅스 파일 시스템인 것처럼 보이도록 하는 기능을 제공하므로 따로 리눅스를 위한 파티션을 필요하지 않는다.
* nfs
네트워크 파일 시스템 (Network File System) 네트워크 상의 많은 컴들이 각각의 시스템에 가진 파일들을 서로 쉽게 공유하기 위해 제공되는 상호간의 공유 파일 시스템이다.
* sysv
System V/396, Xenix 그리고 Coherent의 파일 시스템이다.
* UFS(Unified File System)
일반적으로 유닉스에서 많이 사용되는 파일 시스템으로 버클리 패스트 파일 시스템(Berkeley Fast File system)에서 발전된 파일 시스템이다. 기본적으로 UFS 파일 시스템은 inode, 디렉토리와 데이터 블록으로 구성된다.
FAT16은 도스(DOS)에서부터 사용하던 파일 시스템으로 최대 2GB 이상의 파티션은 인식하지 못하기 때문에 고용량의 하드 디스크 드라이브에는 적합하지 않은 파일 시스템이라고 할 수 있다.
또 클러스터의 크기도 파티션의 용량에 따라 정해져 있기 때문에 파티션의 크기가 2GB 일 경우에는 64KB로 클러스터의 크기가 설정된다. 예를 들어 65KB 크기의 파일을 저장할 때는 부득이 하게 두 개의 클러스터를 써야 한다. 64KB 와 1KB를 저장하고 남은 63KB 의 빈공간은 사용할 수 없게 된다. 이렇게 사용할 수 없는 공간을 슬랙 이라고 한다. 하드 디스크 드라이브의 슬랙이 많이 발생하면 사용하지 못하는 공간이 많아져 실질적인 데이타 저장량이 감소하여 효율면에서 단점이라고 할 수 있다.
FAT16 환경에서 이런 문제를 극복하기 위해 파티션의 크기를 줄여서 사용하는 경우가 있지만 이렇게 되면 큰 용량의 파일을 저장하는데 어려움이 있다. 그래서 FAT16의 이런 단점을 개선하여 FAT32 파일 시스템을 선보였다.
* FAT32(File Allocation Table 32)
FAT32는 현재 가장 많이 사용하고 있는 파일 시스템이라고 할 수 있다. 윈도우 95 OSR2에서 부터 사용된 파일 시스템으로 기존의 FAT16의 파티션 용량의 한계와 클러스터의 크기를 개선한 파일시스템이다. 이 파일 시스템은 2GB 이상의 파티션 용량을 지원하고 있으며 클러스터 당 크기도 최소 4KB로 감소시켜 하드 디스크의 효율면에서 많은 발전을 가져왔다. 대용량의 하드 디스크의 출시에도 많은 영향을 주었다고 볼 수 있다.
* NTFS(New Technology File System)
NTFS는 윈도우NT와 같은 서버 운영체제에서 주로 사용된다. 윈도우2000이나 XP에서는 NTFS 5.0이 사용되고 이전 버전에서는 NTFS 4.0이 사용됐다. NTFS는 윈도우 9X(95,98, Me) 계열에서는 사용할 수 없다.
파티션의 크기는 제한이 없으며 클러스터의 크기도 512Byte 에서 64KB 까지 다양하게 지원해 하드 디스크의 용량을 효율적으로 사용할 수 있는 장점이 있다. 하지만 클러스터의 크기는 한 번 정하면 변경할 수 없는 점에 주의해야 한다.
NTFS 파일시스템의 가장 큰 장점은 보안성 면에서 매우 우수한 기능을 제공한다는 것이다. 윈도우 98의 경우 네트워크 상에서는 어느 정도 자기 컴퓨터에 대한 보안 환경을 구축할 수 있지만 직접 자기 컴퓨터를 엑세스하는 경우에 대한 보안 대책은 미비했다. NTFS의 경우 각 폴더와 파일에 접근 권한을 줄 수 있으며 서버 관리자의 경우에는 각 클라이언트가 사용할 수 있는 하드 디스크의 용량의 제한이 가능하며 접속하는 클라이언트들에 대해 그룹별로 접근 권한을 다양하게 적용할 수 있어 보안면에서 매우 우수한 편이다.
디스크 오류를 자동으로 복구해주는 기능의 채택으로 NTFS는 안정성이 우수해 중요한 데이터의 손실을 감소시켜 서버급의 대용량 컴퓨터에서 많이 사용하고 있다. 일반 개인 사용자들의 경우에도 NTFS 포맷을 사용하는 분들도 많이 있는 것으로 알고 있다.
NTFS 는 이렇게 유용한 기능도 많지만 네트워크로 연결되어 있는 경우나 윈도우 98과 2000과 같이 서로 다른 파일 시스템을 사용해 멀티 부팅 환경을 만들 경우, 파티션별로 데이터의 이동이 많을 경우에는 NTFS보다는 FAT32 시스템을 사용하는 것이 유리하다고 볼 수 있다.
* ext
리눅스 초기 사용되던 파일 시스템으로 호환성이 없던 ext2의 구 버전이다. 지금은 대부분 사용하지 않는다.
* ext2
현재 가장 많이 사용하는 파일 시스템으로 리눅스 파일 시스템 대부분의 기능을 제공하는 파일시스템이다. 뛰어난 안전성과 속도로 사랑받고 있는 파일 시스템이다. 쉽게 호환되며, 업그레이드도 쉽게 설계되어 있다.
ext2는 파일의 데이터와 메타-데이터(파일의 위치,크기,소유자,접근 권한 등의 파일과 관련된 데이터)를 동시에 저장하지 않는 비동기식 파일시스템이다.
비동기식 파일시스템은 메타-데이터를 파일의 내용 자체를 저장할 때 저장하는 것이 아니라, 메모리에 두었다가 일정한 시간 간격을 두고 저장한다. 이런 메카니즘을 이용하면 성능상의 이점이 있으나 비동기식 파일시스템을 가진 운영체제는 일정 횟수만큼 파일시스템을 마운트 했다거나, 갑자기 시스템이 다운될 경우에 재부팅하는 과정에서 무결성을 검사하기 위해 상당한 시간을 소비한다. 인터넷을 통해 어떤 중요한 서비스를 하는 서버나 개인이 사용하는 시스템에게 있어서 오랫동안 시스템이 접속 불능 상태로 방치되고 데이터의 일부가 손상되는 것은 매우 심각한 문제이다.
* ext3
데이터베이스에서 쓰이는 저널링 기술을 적용한 저널링 파일 시스템이다.
저널링 파일 시스템은 일정부분을 기록을 위해 남겨두어, 백업 및 복구 능력이 있는 파일 시스템을 말하며, 시스템 크래쉬 후에 파일 시스템 복구에 드는 시간이 아주 적다.
저널링 파일 시스템은 사용자가 데이터를 입력 또는 수정하면 그 데이터를 바로 하드디스크에 기록하기 전에 관련 데이터를 로그에 기록한다. 만약 기록 중에 가장 빈번하게 발생하는 문제인 정전이나 기타 다른 이유로 인하여 비정상적인 종료를 하게 되면 다시 부팅할 때 로그에 기록된 데이터를 참고로 하여 다시 작성하거나 복구하게 된다.
저널링 파일 시스템의 장점은 서버에서는 다양한 데이터를 빈번하게 기록하고 수정한다. 이런 방식은 수많은 사용자들이 입력하고 수정하는 데이터가 예기치 못한 사고로 인하여 시스템이 다운되더라도 복구할 수 있는 확률이 기존의 ext2 시스템보다 상당히 높다.
시스템 재부팅시, 기존 ext2 시스템에서 보여주는 fsck(file system check)의 오랜 복구 시간은 파일 시스템의 용량이 기가 바이트에서 테라 바이트급으로 발전하고 있는 시점에서 리눅스의 감점 요인이 될 수 있다는 것도 고려해 보아야 할 요소 중의 한가지일 것이다. 물론 이것은 개인 사용자들의 컴퓨터 시스템의 저장 용량도 점점 더 대용량화 되어가는 현 상황에도 부합된다고 할 수 있다.
* minix
과거 Minix에서 사용되었던 파일 시스템으로 가장 오래되고 기본이 되는 파일 시스템이라 하지만 몇 가지 제한이 있다. 우선 몇몇 Time Stamp가 유실되고, 파일 이름은 30문자로 제한된다. 파일 시스템마다 최대 64MB 성능 제한이 있다.
대부분의 배포판의 부팅 디스크는 보통 Minix 파일 시스템으로 구성되어 있다.
* xiafs
minix의 제한이었던 파일 이름과 파일 시스템에 대한 제한을 보완한 minix 파일 시스템의 수정 버전이다.
한때 ext2와 함께 많이 사용되던 파일 시스템이었으나 현재는 많이 사용되지 않는다.
* msdos
MS-DOS의 FAT 파일 시스템과 호환을 지원하는 파일 시스템이다.
또한 msdos는 OS/2와 윈도우 NT의 FAT파일 시스템과도 호환된다.
* hpfs OS/2
OS/2의 파일 시스템이다. 하지만 현재는 읽기 전용인 파일 시스템으로 파일 시스템에 대한 읽기 만이 가능하다.
* isofs CD-ROM
ISO 기준을 따르는 표준 CD-ROM의 파일 시스템이다. isofs CD-ROM는 CD-ROM에 좀 더 긴 파일명을 사용할 수 있도록 확장된 록 브리지(Rock Bridge)가 기본으로 지원된다.
* umsdos
ms-dos 파일 시스템을 리눅스상에서도 긴 파일명과 소유자, 접근허가, 링크와 장치 파일 등을 사용할 수 있도록 확장한 파일 시스템이다. umsdos는 일반적으로 DOS 파일 시스템이 마치 리눅스 파일 시스템인 것처럼 보이도록 하는 기능을 제공하므로 따로 리눅스를 위한 파티션을 필요하지 않는다.
* nfs
네트워크 파일 시스템 (Network File System) 네트워크 상의 많은 컴들이 각각의 시스템에 가진 파일들을 서로 쉽게 공유하기 위해 제공되는 상호간의 공유 파일 시스템이다.
* sysv
System V/396, Xenix 그리고 Coherent의 파일 시스템이다.
* UFS(Unified File System)
일반적으로 유닉스에서 많이 사용되는 파일 시스템으로 버클리 패스트 파일 시스템(Berkeley Fast File system)에서 발전된 파일 시스템이다. 기본적으로 UFS 파일 시스템은 inode, 디렉토리와 데이터 블록으로 구성된다.