본문 바로가기
42seoul/circle-1

[ born2beroot ] 5. 리눅스 파일 시스템과 파티션

by saniii 2022. 2. 4.

[ 파티션 / Partition ]

파티션 : 하나의 물리적 디스크를 여러 개의 논리적인 디스크로 분할

 

+ 다중 파티션의 장점 

- 파티션마다 독립적인 파일 시스템이 운영되어 파일점검 시간이 줄어든다 >> 부팅시간 단축

- 특정 파티션의 파일 시스템이 손상되더라도 다른 파티션에 영향을 주지 않기 때문에 높은 안정성을 보장

- 필요한 파티션만 포맷할 수 있어 백업과 업그레이드가 편리하다. 

- 파티션 상태 정보를 확인할 수 있는 파일은 /proc/partitions

 

+ 파티션의 종류

주 파티션 (primary)  - 부팅이 가능한 기본 파티션
 - 하나의 하드디스크에 최대 4개의 주 파티션 분할 가능
 - 하드디스크를 4개 이상의 파티션으로 사용해야할 때 하나의 확장 파티션을 설정하여 확장 파티션 안에 여러 개의 논리 파티션을 분할하여 데이터를 저장
 - 파티션 번호는 1-4중에 할당
확장 파티션 (extended)  - 주 파티션 안에 생성
 - 하나의 물리적 디스크에 1개만 생성할 수 있다.
 - 파티션 번호는 1-4중에 할당
 - 데이터 저장 영역을 위한 것이 아니라 논리 파티션 생성을 위해 존재한다.
논리 파티션 (Logical)  - 확장 파티션 안에 생성되는 파티션
 - 논리 파티션은 12개 이상 생성하지 않는 것을 권고
 - 5번 이후의 파티션 번호가 할당됨
스왑 파티션 (Swap)  - 하드디스크의 일부를 메모리처럼 사용하는 영역
 - 주 파티션이나 논리 파티션에 생성
 - 프로그램 실행 시 부족한 메모리 용량을 하드디스크로 대신할 수 있다.
 - 리눅스 설치 시에 반드시 설치되어야 하는 영역
 - Swap 영역의 크기는 메모리의 2배를 설정하도록 권고 
# 하드디스크와 메모리의 차이점
+ 메모리 : CPU가 뭔가를 처리할 때 작업을 하는 공간 (임시 기억장치) (RAM)
+ 하드디스크 : 저장장치

예를 들어 파일을 작성하고 있을 때는 메모리 상에 적히고 있고, 저장버튼을 누르면 그 파일은 하드디스크에 저장이 되어 나중에 다시 꺼내어 볼 수 있다. 저장하지 않은 채로 작성 중에 컴퓨터 전원이 꺼지면 파일이 날라가지만 저장을 눌러 하드디스크에 저장된 후에는 전원을 껐다 킨 후에도 꺼내어 볼 수 있당.

 

+ [디스크의 장치 파일명 + 숫자]로 분할된 파티션을 나타낸다. 

- 리눅스에서 파티션을 만들고 마운트할 때 지정된 디바이스명을 사용한다.

>> 디스크 장치 파일명 

SCSI 디스크 첫 번째 SCSI 디스크 /dev/sda
첫 번째 SCSI 디스크 /dev/sdb

>> 숫자

 - 1~4번은 주 파티션이나 확장파티션에 할당

 - 5번부터 논리 파티션에 할당

# 마운트 (mount)
마운트 : 특정 디바이스를 특정 디렉터리처럼 사용하기 위해 장치와 디렉터리를 연결

마운트 형식 : mount [옵션][디바이스명][디렉터리명]
# SCSI 디스크 (Small Computer System Interface)
소형컴퓨터 시스템 용으로 설계된 저장 장치 인터페이스 모드
컴퓨터에서 여러 장치를 동적으로 나눌 수 있으며 시스템에서 필요한 여러 작업을 동시에 적절하게 할당할 수 있다. 
SCSI : 특정 유형의 하드 드라이브, 광학 드라이브, 스캐너 및 주변장치를 컴퓨터에 연결하는 데 사용되는 케이블 및 포트를 의미
# iSCSI (Internet Small Computer System Interface) : IP 기반의 스토리지 네트워크

 

[ 파일 시스템 ]

파일 시스템 : 운영체제가 파일을 시스템의 디스크 파티션상에 구성하는 방식

- 컴퓨터가 파일이나 자료를 쉽게 발견, 접근할 수 있도록 보관, 조직하기위해 일정한 규칙을 가지고 파일을 저장하도록 규칙 방식을 제시

- 하드디스크나 CD-rom같은 물리적 저장소 관리

- 파일 서버상의 자료로의 접근을 제공하는 방식과 가상의 형태로서 접근 수단만이 존재하는 방식도 차일 시스템의 범위에 포함한다. 

- 파티션에 파일 시스템이 없으면, 파일 시스템 생성을 거쳐야 사용이 가능하다.

- 리눅스는 고유의 파일 시스템뿐만 아니라 다양한 파일 시스템을 지원한다.

파일 시스템 유형 종류
리눅스 파일 시스템 ext, ext2, ext3, ext4
저널링 파일 시스템 JFS, XFS 
네트워크 파일 시스템 SMB, CIFS, NFS
클러스터링 파일 시스템 레드햇 GFS, cXFS, SGI, IBM, SanFS, ...
시스템 파일 시스템 ISO9660, UDF, ..
타 운영체제 지원 파일 시스템 FAT, VFAT, FAT32, ....

+ 리눅스 파일 시스템 구조

Super Block  - 해당 파일 시스템 관련 정보를 저장한다.
    > 블록의 크기
    > 총 블록의 개수와 블록 그룹의 개수
    > inode의 개수
Group Descriptors  - 각 Block Group을 관리하는 정보 저장
    > Block bitmap과 inode bitmap의 블록 번호
    > 첫 번째 inode Table Block의 블록 번호
    > 그룹 안에 있는 빈 블록의 개수, 그룹 안에 있는 inode 개수, 그룹 안에 있는 빈 디렉터리 개수
Block Bitmap  - 그룹 내에 있는 각 블록의 사용 상태를 표현한다.
inode   - 파일에 대한 제어 정보 및 데이터 블록 포인터를 저장한다. 
 - 파일 이름을 제외한 해당 파일의 모든 정보를 저장한다.
    > 파일 이름에 부여되는 고유번호, 파일 형태, 크기, 위치, 파일의 소유자등등
 - 모든 파일들과 디렉터리들은 각각 1개의 inode를 할당받는다.
 inode bitmap : 이 블록에 속한 각 비트는 그룹 내에 있는 각 inode의 사용 상태를 나타낸다.
 inode table : 각각의 inode에 대한 정보를 나타내는 inode descriptor로 구성된다. 
Data Blocks  - 파일의 실제 내용을 보관한다. 

 

ext (ext1)  - 리눅스 초기에 사용되던 파일 시스템이며 호환성이 없다.
 - 2GByte의 데이터와 파일명을 255자까지 지정할 수 있다.
 - 파일 접근에 대한 타임 스탬프, 아이노드 수정이 불가능하다.
ext2  - ext 파일 시스템의 다음 버전
 - 고용량 디스크 사용을 염두에 두고 설계된 파일 시스템
 - 호환과 업그레이드가 쉽도록 설계되었다.
ext3  - ext2의 확장판
 - 리눅스의 대표적인 저널링을 지원하도록 확장된 파일 시스템
 - ACL(Access Control List)을 통한 접근 제어 지원
ext4  - ext2, ext3와 호환 가능한 확장 버전
 - 파일에 디스크 할당 시 물리적으로 연속적인 블록을 할당한다. 
    > 파일 접근 속도 향상, 단편화를 줄이도록 설계된 파일 시스템
 - 64비트 기억 공간 제한을 없앴다.
 - 16 TeraByte의 파일을 지원한다. 
   > 파일 확장자는 필요 없으며 파일 특성을 나타내기 위해 확장자를 사용할 수 있다. 
   > . 으로 시작하는 파일은 숨겨진 파일로 인식
   > . 은 현재 디렉터리, .. 는 부모 디렉터리 

 

 

[ LVM (Logical Volume Manager) ]

- 여러개의 하드디스크를 합쳐서 사용하는 기술로 한 개의 파일 시스템을 사용

- 작은 용량의 하드디스크 여러개를 큰 용량의 하드디스크 한개처럼 사용

- 서버를 운영하면서 대용량의 별도 저장공간이 필요할 때 활용

- 다수의 디스크를 묶어서 사용함으로써 파티션의 크기를 줄이거나 늘릴 수 있음

 

여기 그림 그려 넣기 PV VG LV

 

Physical Volume (물리 볼륨)  여러개의 물리적 하드 디스크
 ex) /dev/sda1 ...
Volume Group (볼륨 그룹) 물리 볼륨을 합쳐서 하나의 물리적 그룹으로 만든 것
Logical Volume (논리 볼륨) 볼륨 그룹을 나눠서 다수의 논리의 그룹으로 나눈 것

 

[ RAID (복수 배열 독립 디스크 , Redundant Array Of Independent Disks) ]

- 여러 개의 물리적 디스크를 하나의 논리적 디스크로 인식하여 작동하게 하는 기술

- 여러 개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하는 기술

- 데이터를 저장하는 방법이 다양하게 존재하고 레벨이라고 부른다.

- 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 등 다양한 목적을 만족시킨다. 

 

>> RAID의 종류

하드웨어 RAID  - 하드웨어 제조 시에 여러 개의 하드디스크를 장비로 만들어 그 자체를 공급
 - 안정된 시스템일 수록 고가
소프트웨어 RAID  - 고가의 하드웨어 RAID의 대안
 - 운영체제에서 지원하는 방식
 - 저렴한 비용으로 안전한 데이터 저장이 가능

 

>> 레벨(데이터 저장 방법)의 종류

+ RAID 0

 

- 스트라이핑 저장 방식 : 연속된 데이터를 여러 디스크에 나눠 저장

- 최소 2개의 하드디스크가 필요하다.

- 입출력 작업이 모든 디스크에 동시에 진행된다.

   > 저장과 읽기 속도가 가장 빠르다.

   > 하나의 디스크라도 고장나면 전체 시스템의 사용이 불가하다. 

- 고장 대비 능력이 없어 주요 데이터 저장은 부적합하다. 

 

+ RAID 1

 

- 미러링 방식 : 하나의 디스크에 데이터를 저장하면 다른 디스크에 동일한 내용이 백업되어 저장

- 데이터 저장 시 두배의 용량이 필요하다.

- 결합허용을 제공하지만 공간 효울성은 떨어진다. 

- 주요한 데이터를 저장하기에 적절하다.

 

+ RAID 2

 

- 스트라이핑 저장 방식

- 기록용 디스크와 데이터 복구용 디스크를 별도로 제공한다.

   > 오류 제어 기능이 없는 디스크를 위해 해밍코드 사용

- 디스트의 사용 효율성이 낮음

- 모든 SCSI 디스크에 ECC(에러 검출 기능)를 탑재하고 있기 때문에 실제로는 사용되지 않는다.

 

# 해밍코드

2020.10.21 - [about COMPUTER/네트워크] - #11. 디데통(3) / CRC + 오류 수정 프로세스 + 해밍코드

근데 왜 해밍코드 내용을 안적어놨지......수정필요

 

+ RAID 3

 

- 스트라이핑 저장 방식

- 오류 검출을 위해 패리티 방식을 이용한다.

- 패리티 정보를 저장하기 위해 전용 디스크를 사용하기 때문에 최소 3개 이상의 하드디스크가 필요하다.

- 데이터 복구는 패리티 저장 디스크에 기록된 정보의 XOR을 계산하여 수행한다.

- 대형 레코드가 사용되는 단일 사용자 시스템에 적합하다.

# 패리티 방식


 

+ RAID 4

 

- RAID 3와 유사한 방식으로 2개 이상의 데이터 디스크와 전용 패리티 디스크를 사용한다.

- RAID 3은 Byte단위로 데이터를 저장하는 반면 RAID 4는 Block(섹터) 단위로 저장한다.

 

+ RAID 5

 

- 스트라이핑 저장 방식

- 디스크마다 패리티 정보를 갖고 있어 패리티 디스크의 병목현상을 줄이는 것이 가능해 실무에서 많이 사용한다. 

- 디스크 섹터 단위로 저장한다.

- 쓰기 작업이 많지 않은 다중 시용자 시스템에 적합하다.

# 병목 현상
가용자원에 부하가 많이 걸려 전체 시스템 효울의 저하를 초래하는 현상

 

+ RAID 6

 

- RAID 5를 확장

- 제 2패리티를 두는 듀얼패리티를 사용하여 더 나은 무정지성을 갖게 한다.

- 최소 4개의 드라이브가 필요하다.

# 듀얼 패리티

# 무정지성

 

+ RAID 0+1

 

- RAID 0의 스트라이핑 방식과 RAID 1의 미러링 방식을 조합

- 디스크를 2개씩 RAID1으로 구성하고 이 쌍끼리 RAID 0으로 구성한다.

  > 스트라이핑 후에 미러링을 진행한다.

- 속도가 빠르다.

- 데이터 복구 시간이 오래 걸린다.

 

+ RAID 1+0

 

- RAID 0의 스트라이핑 방식과 RAID 1의 미러링 방식을 조합

- 디스크를 2개씩 RAID 0으로 구성하고 이 쌍끼리 RAID 1으로 구성한다.

  > 미러링 후에 스트라이핑을 진행한다.

- 손실된 데이터만 빠르게 복원할 수 있어 RAID 0+1보다 운영하기에 유리하다. 

댓글