-
리눅스 파일 시스템과 디스크 관리리눅스 2022. 6. 8. 09:17
파일 시스템
- 파일과 디렉터리의 집합을 구조적으로 관리하는 체계
- 어떤 구조를 구성하여 파일과 디렉토리를 관리하느냐에 따라 다양한 형식의 파일 시스템이 존재
리눅스 고유의 디스크 기반 파일 시스템
- ext(ext1) : fpal zkemrk roqkf, 'Extended File System'의 약자로 extfs라고도 하며 MFS의 기능을 확장했다는 의미
그러나 inode 의 수정과 데이터의 수정 시간 지원이 안되는 문제, 링크드 리스트로 복잡해지고 파편화되는 문제 발생. 현재는 쓰지 않음.
- ext2 : 'Second Extended File System' , ext파일 시스템의 문제를 해결하기 위해 출시, 현재 이론적으로 32TB까지 지원
- ext3 : 스티븐 트위디 개발, 가장 큰 장점으로는 저널링 기능을 도입했다는 것. 저널링은 디스크에 기록되는 데이터의 복구 기능을 강화한 것. 저널링은 데이터를 디스크에 기록하기 전에 먼저 저널에 수정 사항을 기록. 쉽게 말해 로그 기록 같은 것이라고 생각하면 됨. 따라서 빠른 복구가 가능하다.
단점은 inode의 동적 할당이나 다양한 블록 크기와 같은 최신 파일 시스템 기능이 부족하고, 온라인 조각 모음 기능이 없음.
- ext4 : 1EB(엑사바이트) 이상의 볼륨과 16TB 이상의 파일을 지원, ext2 및 et3 호환을 유지
- XFS (eXtended File System) : 2001년 리눅스에 이식, 현재 대부분 리눅스 배포판에서 사용 64bit 파일 시스템으로 최대 16EB까지 지원.
** 리눅스에서 위에 적어논 것 외에 유닉스나 윈도 시스템 등 타 시스템과 호환되도록, CD-ROM, DVD 같은 외부 저장 장치를 사용하도록 다양한 파일 시스템을 지원한다.
리눅스 파일 시스템의 구조
리눅스의 모든 파일 시스템의 기본 개념
- 파일은 inode로 관리
- 디렉터리는 단순히 파일의 목록을 가지고 있는 파일일 뿐이다.
- 특수 파일을 통해 장치에 접근할 수 있다.
ext4 파일 시스템의 구조
- 효율적으로 디스크를 사용하기 위해 저장 장치를 논리적인 블록의 집합으로 구분한다. 일반적으로 블록은 4KB이고 실제 크기는 시스템의 설정에 따라 달라질 수 있다.
블록 그룹 유형
- 블록 그룹 0 : 파일 시스템의 첫 번째 블록 그룹으로 특별하게 그룹 0 패딩과 슈퍼블록, 그룹 디스크립터를 가지고 있다.
- 블록 그룹 a : 파일 시스템에서 첫 번째 블록 그룹이 아닌 블록 그룹으로 그룹 0 패딩이 없으나 슈퍼블록과 그룹 디스크립터의 복사본을 가지고 있다.
- 블록 그룹 b : 파일 시스템에서 첫 번째 블록 그룹이 아닌 블록 그룹으로 그룹 0 패딩, 슈퍼블록, 그룹 디스크립터가 없고 바로 데이터 블록 비트맵으로 시작한다.
파일 시스템 마운트
마운트
- 파일 시스템을 디렉토리 계층 구조의 특정 디렉토리와 연결하는 것
마운트 포인트
- 디렉토리 계층 구조에서 파일 시스템이 연결되는 디렉토리를 마운트 포인트
파일 시스템 마운트 설정 파일
- 리눅스에서 시스템이 부팅 될 때 자동으로 파일 시스템이 마운트 되게 하려면 /etc/fstab 파일에 설정
- /etcd/fstab 파일의 기능: 파일 시스템의 마운트 설정 정보 저장
여러 디스크를 하나처럼 사용하기
- LVM(Logical Volume Manager) : 파티션을 효율적으로 사용할 수 있도록 해주는 관리 도구로, 한 파티션의 용량이 부족할 때 다른 파티션으로 연장하여 사용할 수 있다.
LVM 기본 개념
- PV(physical Volume, 물리 볼륨) : /dev/sdb1, /dev/sdb2 같은 실제 하드디스크의 파티션을 의미.
- VG(Volume Group, 볼륨 그룹) : 여러 개의 PV를 그룹으로 묶은 것을 말한다. 예를 들어 /dev/sdb1, /dev/sdb2가 GRP1이라는 그룹을 만들 때 GRP1을 VG라고 한다.
- LV(Logical Volume, 논리 볼륨) : VG를 다시 적절한 크기의 파티션으로 나눌 때 각 파티션을 LV라고 한다.
- mkfs ( 최종적으로 파일 시스템을 할당하는 파트 = 마운트)
LVM 생성하기
1. ubuntu 같은 경우 lvm 패키지를 설치해 줘야하는 일이 있을 수 있다.
=> sudo apt install lvm2
2. 패키지 설치가 끝났으면 lvm 사용을 위해서 fdisk에서 type을 바꿔줘야한다.
=> sudo fdisk /dev/sdb
=> p(상태 확인), t(타입 바꾸기), l(타입 목록 확인하기)
=> 바꾸고 나서 w로 저장하고 나가서 PV, VG, LV 생성하기
3. PV, VG, LV 생성하기
=> PV : sudo pvcreate /dev/sdb1
/dev/sdb2
=> VG : sudo vgcreate grp1 /dev/sdb1 /dev/sdb2
리눅스에서 장치 파일에 접근을 하려면 장치 파일 이름을 사용해야 함. 파일 시스템 방식은 SCSI 방식이 대표적
'리눅스' 카테고리의 다른 글
리눅스 네트워크 (0) 2022.06.08 리눅스 우분투 패키지 (0) 2022.06.08 리눅스 SELinux (0) 2022.06.03 리눅스 보안 일반 (0) 2022.06.03 리눅스 셸 함수 (0) 2022.06.02