CS Chapter_14 - 저장장치와 파일시스템

장선웅·2022년 8월 29일
0

RAID (Redundant Array Of Inexpensive Disk / Redundant Array Of Independent Disk)

디스크 드라이브가 소형화되고, 저렴해짐이 따라 현재 컴퓨터 시스템에 저렴하게 다수의 디스크를 부착할 수 있다. 시스템이 많은 수의 디스크를 가지고 있고, 그 시스템이 병렬적으로 운영된다면 데이터 읽기,쓰기 비율을 향상시킬 수 있게 되는데 이에 띠리사 많은 중복정보가 여러 디스크에 저장되기 때문에, 데이터 저장의 신뢰성을 높일 수 있다. 즉 하나의 디스크 오류로 데이터가 분실되지 않게 할 수 있다는 뜻이 된다. RAID라고 불리는 다양한 디스크 구성 기술은 일반적으로 성능과 신뢰성 문제를 해결하는데 중점을 두고 있다.

  • 1. 중복을 통한 신뢰성 향상

신뢰성 측면에서, 데이터의 복사본이 1개만 있다면 각 디스크 오류는 엄청난 양의 데이터 손실을 발생시킬 수 있다.
신뢰성 문제를 해결하는 것은 "중복 허용"이다. 부가의 정보를 저장하는데 이 정보는 정상적인 경우에는 필요없지만, 디스크 고장이 발생했을 경우 분실된 정보를 재구축하기 위해 필요하다.

  • 2. 병렬성을 통한 성능 향상

디스크 미러링을 사용하면 시스템에서 요청이 발생할 경우 두 디스크 중 하나에서 처리할 수 있기 때문에 요청의 처리율은 2배가 될 것이다. 각 작업의 전송 비율은 하나의 디스크 시스템과 같지만 단위 시간당 요청의 수는 2배가 된다.


RAID 레벨

  1. RAID0 : 블록 레벨로 스트라이핑하는 디스크 구성. 미러링이나 패리티 비트 같은 어떤 중복 정보도 가지고 있지 않음.
  1. RAID1 : 디스크 미러링을 사용. 복사본을 만드는 것.
  1. RAID2 : 메모리 스타일 오류 정정 코드 구조. 패리티 비트를 이용해 error detection / error correction 가능.
  1. RAID3 : 성능을 향상시키는 스트라이핑, 하드웨어 수준의 패리티 계산과 NVRAM 캐시를 사용.
  1. RAID4 : 비트 레벨 스트라이핑 대신 블록 레벨 스트라이핑을 사용
  1. RAID5 : 패리티 블록이 모든 디스크에 분산되어 시스템의 로드 균형을 보다 고르게 분산한다는 점, 디스크의 주어진 블록에 대해 디스크 중 하나는 해당 블록에 대한 패리티 정보를 보유하고 다른 N-1 디스크는 데이터를 보유한다. 동일한 디스크는 동일한 블록에 대한 데이터와 패리티를 모두 보유할 수 없다. (디스크 충돌이 발생하면 둘 다 손실되기 때문이다.)
  1. RAID6 : 단일 패리티 비트가 아닌 데이터의 각 비트 위치에 대해여러 비트의 오류 복구 코드 이용. 최대 2개의 동시 디스크 오류가 발생하더라도 데이터를 복구할 수 있다. 단일 디스크 오류만 허용할 수 있는 단순 미러링의 경우 100%와 달리 스토리지 요구 사항이 50%만 증가한다.
  1. RAID01 : 디스크가 먼저 스트라이프된 다음 스트라이프된 디스크가 다른 세트로 미러링된다. 이 수준은 일반적으로 RAID 수준 5보다 더 나은 성능을 제공한다.
  1. RAID10 : 디스크를 쌍으로 미러링한 다음 미러링된 쌍을 스트라이프한다. 저장 용량, 성능 등은 모두 동일하지만 아래 그림과 같이 여러 디스크 오류가 발생하는 경우 이 접근 방식에 장점이 있다.

파일 시스템

파일 : 운영체제에 의해서 물리장치들로 맵핑되며, 이들 저장장치들은 일반적으로 비휘발적 성질을 갖기 때문에 전원이 끊어지거나 시스템이 재부팅되어도 저장된 내용들은 영구히 존속된다.

파일의 속성 : 사용자의 편의를 위해 파일에 이름을 부여하고 그 이름으로 파일을 참조한다. 파일은 다양한 속성을 가진다.

이름,식별자,타입,위치,시간,날짜,사용자 식별,크기,보호(읽기,쓰기,실행 등을 할 수 있는지에 대한 권한) 등

파일 시스템의 기능

  • 사용자가 이용하기 편리하도록 인터페이스(UI) 제공
  • 사용자가 파일을 생성, 수정, 제거(CRUD) 기능 제공
  • 타인과 파일을 공유할 수 있는 기능 제공
  • 사용자가 임의대로 파일을 구성할 수 있는 기능 제공
  • 파일 간에 정보 전송을 할 수 있는 기능 제공
  • 파일의 백업과 복구, 암호화와 복호화 기능 제공
  • 디렉토리를 생성하고 제공

파일 시스템의 종류

  1. FAT : 어느 영역에 파일이 속해 있는지, 공간에 여유가 있는지, 또 어디에 각 파일이 디스크에 저장되어 있는지에 대한 정보
  2. NTFS: FAT의 단점을 보완하기 위해 개발된 파일 시스템, 윈도우에 최적화 되어있는 파일시스템
  3. EXT : 리눅스용 파일 시스템, 리눅스 배포판에서 주로 쓰이는 파일시스템
  4. HFS : 계층적 파일 시스템, 맥OS를 구동하는 컴퓨터 시스템에 서 쓰이는 파일 시스템
  5. APFS : 애플파일 시스템, 애플 관련 OS들에서 범용으로 사용하는 파일 시스템
profile
개발을 꿈꾸는 초짜

0개의 댓글