리눅스 책 정리(5)

eunyeong·2023년 2월 20일
0

Linux_book

목록 보기
5/8

5단원 파일시스템 및 스왑 메모리

[학습 목표]

  • 리눅스 시스템의 다양한 파일 시스템 종류와 특징에 대해 살펴보고 파일 시스템 종류에 따라 생성하는 방법에 대해 알아보기
  • 파일시스템이 생성된 파티션에 디렉토리 형태로 접근할 수 있도록 연결하는 작업인 마운트(mount)에 대해 알아보고 특정 파일에 마운트 정보를 입력하는 방법에 대해 알아보기
  • 가상 메모리 기법인 스왑 메모리를 활용하여 시스템 성능을 향상 시키는 방법에 대해 알아보기

5.1 리눅스 파일 시스템 소개

#파일 시스템

  • 구조화된 일련의 정보를 구성하는 파일과 디렉토리의 집합
  • 파일의 목록과 파일이 실제 저장된 위치, 파일에 대한 정보를 관리

5.1.1 리눅스 파일 시스템 소개

1) 디스크 기반 파일 시스템

  • 하드디스크, CD-ROM, DVD 등을 기반으로 함
  • MINIX, EXT, XFS, FAT, ISO9660, UDFS 등

2) 분산 파일 시스템

  • 네트워크를 통해 파일 시스템의 자원에 접근 지원
  • NFS, SMB 등

3) Pseudo 파일 시스템

  • 메모리 기반의 파일 시스템으로 시스템 성능을 높이고 커널 정보에 접근 지원
  • 대부분 시스템에 의하여 자동 생성/해제, 임의 해제 시 문제 발생
  • swapfs, tmpfs, fdfs, procfs, devfs 등

5.1.2 주요 파일 시스템 구조

1) ext4 파일시스템

  • 파일시스템 전체에 대한 주요 정보는 슈퍼 블록에 저장됨
  • ex4 파일시스템 내에 여러 개의 블록 그룹이 존재
  • 슈퍼 블록의 백업이 일부 블록 그룹에 저장됨
  • inode를 사용하여 파일의 메타정보와 데이터를 분리하여 저장함

2) xfs 파일시스템

  • inode를 사용, 내부 구조는 ext4 파일 시스템과 다름
  • 볼륨을 8개의(또는 그 이상의) 할당 그룹으로 분할 cf. ext4 블록 그룹
  • 파일 탐색을 위해 B+트리를 사용

5.2 파일 시스템 관리

5.2.1 파일시스템 생성

  • mkfs -t [filesystem-type] partition
  • blkid 명령: 시스템에 생성된 파일 시스템의 종류 확인 - UUID 값 확인
  • lsblk 명령: 디스크 및 파티션의 구조를 트리 형태로 표현 + ‘-f’

5.2.2 파일 시스템 마운트

: 파일시스템에 접근할 수 있는 경로를 생성하는 과정을 마운트라고 함

1) mount 명령을 사용하여 파일시스템 마운트

  • mount [option] {partition | UUID} mount-point
  • option: 시스템 유형을 지정하는 ‘-t’, 세부 옵션을 지정하는 ‘-o’
  • default 옵션: rw, suid, dev, exec, auto, nouser, async

2) 파일시스템 테이블에 등록하여 마운트

  • /etc/fstab 을 vi로 수정하여 정확하게 입력하였을 경우 시스템을 재부팅하면 정상적으로 마운트 되는 것을 확인할 수 있음
  • 즉시 마운트를 할 경우에는 mount -a 옵션 사용 가능

3) 마운트 해제

  • umount [optino] {partition | mount-point | UUID}
  • 파일시스템의 마운트를 모두 해제할 경우 umount -a를 사용하나 주의 필요

5.3 스왑 메모리

5.3.1 가상 메모리 소개

  • 가상 메모리 : 물리 메모리(RAM) + 스왑(=스왑 파티션+스왑 파일)
  • 스왑(SWAP)이란 디스크 장치에 생성되는 영역을 의미
  • Paged-in: 스왑 영역 데이터를 물리 메모리 영역으로 이동하는 작업
  • Paged-out: 물리 메모리 프로세스의 우선순위가 낮을 경우 물리 메모리를 스왑 영역으로 이동하는 작업
  • Paging = Paged-in + Paged-out
  • 스왑 파티션 방식은 파티션 전체를 스왑 영역으로 사용하는 방식
  • 스왑 파일 방식은 기존 파일시스템에서 사용할 수 있는 저장 공간을 스왑 영역으로 사용하는 방식

5.3.2 스왑 영역 구성

1) 스왑 영역 확인

  • swapon 명령: 스왑 영역의 활성화와 스왑 영역 확인에 사용 + ‘-s’
  • free 명령: 전체 물리메모리의 사이즈 및 사용량, 스왑 영역의 사용량 등을 출력 + ‘-h‘

2) 스왑 파티션 생성

  • fdisk 명령의 프롬프트에서 ‘t’ 명령 사용 → Hex code에서 82번 Linux swap 파티션 사용 → ‘w’ 명령으로 저장 → 쉘에서 partprobe 명령을 사용하여 변경된 테이블을 운영체제에 알림
  • mkswap 명령 + directory 을 이용하여 파티션에 스왑 영역을 생성
  • 최종적으로 file -s 를 통해 스왑영역에 대한 정보와 UUID값 확인

3) 스왑 파일 생성

  • 여유 공간이 존재하는지 df -h 옵션으로 확인
  • dd if=/dev/zero of=/swapdir/swapfile bs=512 count=1048576

[복사할 파일][생성될 파일] [블록 크기][복사할 횟수] 지정

  • 최종적으로 file -s 를 통해 스왑영역의 생성 확인

4) 스왑 영역 활성화

  • swapon [option] {partition | file-name}
  • UUID swap swap defaults 0 0
  • swapon ‘-p’ 옵션은 스왑영역의 우선순위를 지정
  • swapon ‘-s’ 옵션은 스왑 파티션 및 스왑 파일 별로 정보를 출력

5) 스왑 영역 활성화 해제

  • swapoff [option] {partition | file-name | UUID}
profile
아무것도 모르는 초보

0개의 댓글