RAID 개념 및 종류
1. RAID (Redundant Array Of Inexpensive Disk 또는 Redundant Array Of Independent Disk)
디스크 드라이브가 소형화 되고, 저렴해지면서 현재 컴퓨터 시스템에 저렴하게 다수의 디스크를 부착할 수 있다.
시스템이 많은 수의 디스크를 가지고 있고, 그 시스템이 병렬적으로 운영된다면 데이터 읽기, 쓰기 비율을 향상시킬 수 있다. 더욱이 중복정보가 여러 디스크에 저장되기 때문에 데이터 저장의 신뢰성을 높일 수 있다. 그러므로 하나의 디스크 오류로 데이터가 분실되지 않는다. RAID 라고 불리는 다양한 디스크 구성 기술은 일반적으로 성능과 신뢰성 쟁점을 해결하는데 역점을 두고 있다.
(1) 중복을 통한 신뢰성 향상
신뢰성 측면에서, 데이터의 복사본이 1개만 있다면 각 디스크 오류는 엄청난 양의 데이터 손실을 발생시킬 수 있다.
신뢰성 문제를 해결하는 방안은 "중복을 허용하는 것"이다. 부가의 정보를 저장하는데 이 정보는 정상적인 경우에는 필요없지만, 디스크 고장이 발생했을 경우 분실된 정보를 재구축하기 위해 필요하다.
(2) 병렬성을 통한 성능 향성
디스크 미러링을 사용하면 시스템에서 읽기요청의 경우 두 디스크 중 하나에서 처리할 수 있기 때문에 읽기 요청의 처리율은 2배가 될 것이다. 각 읽기 작업의 전송비율은 하나의 디스크 시스템과 같지만 단위 시간당 읽기 요청의 수는 2배가 된다.
- 비트 수준 스트라이핑 : 각 바이트의 비트가 여러 디스크에 스트라이핑 된다. 예를 들어 8개의 디스크가 포함된 경우 각 8비트 바이트는 별도의 디스크에 있는 8개의 헤드에 의해 병렬로 읽힌다. 단일 디스크 읽기는 일반적으로 512바이트를 읽는 데 필요한 시간 동안 8 * 512바이트 = 4K 가치의 데이터에 액세스한다. 유사하게 4개의 디스크가 관련된 경우 읽기 또는 쓰기 작업당 2K 가치의 디스크 액세스를 위해 각 바이트의 2비트를 각 디스크에 저장할 수 있다.
- 블록 수준 스트라이핑 : 블록 단위로 여러 디스크에 파일 시스템을 분산하므로 블록 N이 디스크 0에 있으면 블록 N + 1이 디스크 1에 있는 방식이0다. 이는 물리적 블록 클러스터 에서 파일 시스템에 액세스할 때 특히 유용하다.
2. RAID 레벨
(1) RAID0 : 블록 레벨로 스트라이핑하는 디스크 구성. 미러링이나 패리티 비트 같은 어떤 중복 정보도 가지고 있지 않음.
(2) RAID1 : 디스크 미러링을 사용. 복사본을 만드는 것.
(3) RAID2 : 메모리 스타일 오류 정정 코드 구조. 패리티 비트를 이용해 error detection 및 error correction 가능.
(4) RAID3 : 성능을 향상시키는 스트라이핑, 하드웨어 수준의 패리티 계산과 NVRAM 캐시를 사용.
(5) RAID4 : 비트 레벨 스트라이핑 대신 블록 레벨 스트라이핑을 사용
(6) RAID5 : 패리티 블록이 모든 디스크에 분산되어 시스템의 로드 균형을 보다 고르게 분산한다는 점, 디스크의 주어진 블록에 대해 디스크 중 하나는 해당 블록에 대한 패리티 정보를 보유하고 다른 N-1 디스크는 데이터를 보유한다. 동일한 디스크는 동일한 블록에 대한 데이터와 패리티를 모두 보유할 수 없다. 디스크 충돌이 발생하면 둘 다 손실되기 때문.
(7) RAID6 : 단일 패리티 비트가 아닌 데이터의 각 비트 위치에 대해여러 비트의 오류 복구 코드 이용. 최대 2개의 동시 디스크 오류가 발생하더라도 데이터를 복구할 수 있다. 단일 디스크 오류만 허용할 수 있는 단순 미러링의 경우 100%와 달리 스토리지 요구 사항이 50%만 증가한다.
(8) RAID01 : 디스크가 먼저 스트라이프된 다음 스트라이프된 디스크가 다른 세트로 미러링된다. 이 수준은 일반적으로 RAID 수준 5보다 더 나은 성능을 제공한다.
(9) RAID10 : 디스크를 쌍으로 미러링한 다음 미러링된 쌍을 스트라이프한다. 저장 용량, 성능 등은 모두 동일하지만 아래 그림과 같이 여러 디스크 오류가 발생하는 경우 이 접근 방식에 이점이 있다.
파일시스템의 기능(목적) 및 종류
파일
운영체제에 의해서 물리장치들로 맵핑되며, 이들 저장장치들은 일반적으로 비휘발적 성질을 갖기 때문에 전원이 끊어지거나 시스템이 재부팅되어도 저장된 내용들은 영구히 존속된다.
파일 속성
사용자의 편의를 위해 파일에 이름을 부여하고 그 이름으로 파일을 참조한다. 파일은 다양한 속성을 가진다.
이름, 식별자, 타입, 위치, 크기, 보호(읽기, 쓰기, 실행 등을 할 수 있는지 권한), 시간, 날짜, 사용자 식별 등
파일시스템
- 사용자가 이용하기 편리하도록 인터페이스(UI) 제공
- 사용자가 파일을 생성, 수정, 제거(CRUD) 기능 제공
- 타인과 파일을 공유할 수 있는 기능 제공
- 사용자가 임의대로 파일을 구성할 수 있는 기능 제공
- 파일 간에 정보 전송을 할 수 있는 기능 제공
- 파일의 백업과 복구, 암호화와 복호화 기능 제공
- 디렉토리를 생성하고 제공
파일 시스템 종류
FAT : 어느 영역에 파일이 속해 있는지, 공간에 여유가 있는지, 또 어디에 각 파일이 디스크에 저장되어 있는지에 대한 정보
NTFS: FAT의 단점을 보완하기 위해 개발된 파일 시스템, 윈도우에 최적화 되어있는 파일시스템
EXT : 리눅스용 파일 시스템, 리눅스 배포판에서 주로 쓰이는 파일시스템
HFS : 계층적 파일 시스템, 맥OS를 구동하는 컴퓨터 시스템에 서 쓰이는 파일 시스템
APFS : 애플파일 시스템, 애플 관련 OS들에서 범용으로 사용하는 파일 시스템
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 13. 가상 메모리 관리 (0) | 2022.08.20 |
---|---|
[운영체제 12] 가상메모리 (0) | 2022.08.18 |
[운영체제] 11. 메모리 할당 (0) | 2022.08.17 |
[운영체제] 10. 프로세스 간 통신 (0) | 2022.08.15 |
[운영체제] 9. CPU 스케줄링 (0) | 2022.08.13 |