λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • Dev Blog
CS/운영체제

[운영체제] RAID

by μœ μ§„μ˜ 2023. 6. 7.
μ‰½κ²Œ λ°°μš°λŠ” 운영체제 κ΅μž¬μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€.

 

RAID (Redundant Array of Independent Disks)

데이터λ₯Ό μ €μž₯μž₯μΉ˜μ— 보관할 λ•ŒλŠ” 백업을 ν•΄μ•Όλ§Œ ν•˜λŠ”λ°, μ€‘μš”ν•œ 데이터λ₯Ό μˆ˜μ‹œλ‘œ 백업을 ν•΄μ•Ό ν•  λ•Œ μˆ˜λ™μœΌλ‘œ ν•˜λ©΄ 맀우 번거둭기 λ•Œλ¬Έμ— λ°±μ—… μ „μš© μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‚¬μš©ν•˜κΈ°λ„ ν•œλ‹€. RAIDλŠ” 볡수 λ°°μ—΄ 독립 λ””μŠ€ν¬λ‘œ λ²ˆμ—­λ˜λŠ”λ° μžλ™μœΌλ‘œ λ°±μ—…ν•˜κ³  μž₯μ• κ°€ λ°œμƒν•˜λ©΄ 이λ₯Ό λ³΅κ΅¬ν•˜λŠ” μ‹œμŠ€ν…œμ΄λ‹€.
 
RAID의 μ›λ¦¬λŠ” ν•˜λ‚˜μ˜ 원본 λ””μŠ€ν¬μ™€ 같은 크기의 λ°±μ—… λ””μŠ€ν¬μ— 같은 λ‚΄μš©μ„ λ™μ‹œμ— μ €μž₯ν•˜κ³ , ν•œ λ””μŠ€ν¬κ°€ κ³ μž₯ 났을 λ•Œ λ‹€λ₯Έ λ””μŠ€ν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό λ³΅κ΅¬ν•˜λŠ” κ²ƒμœΌλ‘œ 미러링이라고 ν•œλ‹€. λ˜ν•œ, RAIDμ—λŠ” μ—¬λŸ¬ λ””μŠ€ν¬μ— 데이터λ₯Ό μͺΌκ°œμ–΄ μ €μž₯ν•˜μ—¬ λ°μ΄ν„°μ˜ μž…μΆœλ ₯ 속도λ₯Ό λ†’μ΄λŠ” 방식도 μžˆλŠ”λ° μ΄λŸ¬ν•œ 방식을 μŠ€νŠΈλΌμ΄ν•‘μ΄λΌκ³  ν•œλ‹€.
 

RAID 0 (μŠ€νŠΈλΌμ΄ν•‘)

λ³‘λ ¬λ‘œ μ—°κ²°λœ μ—¬λŸ¬ 개의 λ””μŠ€ν¬μ— 데이터λ₯Ό λ‚˜λˆ μ„œ μž…μΆœλ ₯ν•  수 μžˆλ„λ‘ κ΅¬μ„±λœλ‹€. 4개의 데이터λ₯Ό μ €μž₯ν•˜λŠ” 경우, 일반 λ°©μ‹μ—μ„œλŠ” 1개의 λ””μŠ€ν¬μ— μˆœμ„œλŒ€λ‘œ λ„€ 번 μ €μž₯ν•˜μ§€λ§Œ RAID 0μ—μ„œλŠ” μ•„λž˜ κ·Έλ¦Όκ³Ό 같이 4개의 데이터λ₯Ό 4개의 λ””μŠ€ν¬μ— λ‚˜λˆ„μ–΄μ„œ μ €μž₯ν•œλ‹€.
 

 
λ‹Ήμ—°νžˆ 1개의 λ””μŠ€ν¬λ‘œ κ΅¬μ„±λœ 일반 μ‹œμŠ€ν…œλ³΄λ‹€ μ΄λ‘ μ μœΌλ‘œλŠ” μž…μΆœλ ₯ 속도가 λ””μŠ€ν¬ 개수배만큼 λΉ λ₯΄κ² μ§€λ§Œ, μž₯μ•  λ°œμƒ μ‹œ λ³΅κ΅¬ν•˜λŠ” κΈ°λŠ₯이 μ—†κΈ° λ•Œλ¬Έμ— μž₯μ• κ°€ λ°œμƒν•˜λ©΄ 데이터λ₯Ό μžƒλŠ”λ‹€.
 

RAID 1 (미러링)

ν•˜λ‚˜μ˜ 데이터λ₯Ό 2개의 λ””μŠ€ν¬μ— λ‚˜λˆ„μ–΄ μ €μž₯ν•˜μ—¬ μž₯μ•  μ‹œ λ°±μ—… λ””μŠ€ν¬λ‘œ ν™œμš©ν•œλ‹€.
 

 
RAID 1의 단점은 λ‹Ήμ—°νžˆ μ €μž₯ν•˜λŠ” 데이터와 같은 크기의 λ””μŠ€ν¬κ°€ ν•˜λ‚˜ 더 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— λΉ„μš©μ΄ μ¦κ°€ν•œλ‹€λŠ” 점이닀. λ˜ν•œ 같은 λ‚΄μš©μ„ 두 번 μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— 속도가 느렀질 수 μžˆλ‹€.
 

RAID 2

였λ₯˜λ₯Ό κ²€μΆœν•˜λŠ” κΈ°λŠ₯이 μ—†λŠ” λ””μŠ€ν¬μ— λŒ€ν•΄ 였λ₯˜ ꡐ정 μ½”λ“œ(ECC)λ₯Ό λ”°λ‘œ κ΄€λ¦¬ν•΄μ„œ 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ ECC μ½”λ“œλ₯Ό μ΄μš©ν•˜μ—¬ λ³΅κ΅¬ν•œλ‹€.
 

 
RAID 2λŠ” n개의 λ””μŠ€ν¬μ— λŒ€ν•΄ 였λ₯˜ ꡐ정 μ½”λ“œλ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ n-1개의 μΆ”κ°€ λ””μŠ€ν¬λ₯Ό ν•„μš”λ‘œ ν•˜λ―€λ‘œ RAID 1λ³΄λ‹€λŠ” μ €μž₯ 곡간이 적게 λ“ λ‹€.
 
ν•˜λ“œλ””μŠ€ν¬μ˜ 데이터 μ €μž₯ λ‹¨μœ„λŠ” 블둝인 κ²ƒκ³ΌλŠ” λ‹€λ₯΄κ²Œ RAID 2μ—μ„œλŠ” 데이터가 λΉ„νŠΈ λ‹¨μœ„λ‘œ μ €μž₯λœλ‹€. 즉 λΉ„νŠΈλ₯Ό λΆ„λ¦¬ν•˜μ—¬ μ—¬λŸ¬ 개의 λ””μŠ€ν¬μ— λ‚˜λˆ„μ–΄ μ €μž₯ν•˜λŠ”λ° μ΄λ ‡κ²Œ λΉ„νŠΈ λ‹¨μœ„λ‘œ μ €μž₯ν•˜λŠ” μ΄μœ λŠ” 각 λΉ„νŠΈμ˜ ECC μ½”λ“œλ₯Ό κ΅¬μ„±ν•˜μ—¬ λ‚˜μ€‘μ— λΉ„νŠΈ λ‹¨μœ„λ‘œ λ³΅κ΅¬ν•˜κΈ° μœ„ν•΄μ„œλ‹€. λ”°λΌμ„œ,  ECC μ½”λ“œλ₯Ό κ³„μ‚°ν•˜λŠ” 데 λ§Žμ€ μ‹œκ°„μ„ μ†ŒλΉ„ν•˜κΈ° λ•Œλ¬Έμ— 잘 μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€.
 

RAID 3

였λ₯˜ ꡐ정 μ½”λ“œκ°€ μ•„λ‹Œ 였λ₯˜ κ²€μΆœ μ½”λ“œ(EDC)인 νŒ¨λ¦¬ν‹° λΉ„νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό λ³΅κ΅¬ν•œλ‹€. 였λ₯˜ κ²€μΆœ μ½”λ“œλŠ” 이름 κ·ΈλŒ€λ‘œ 였λ₯˜λ₯Ό κ²€μΆœν•˜λŠ” μ½”λ“œμΌ 뿐 λ³΅κ΅¬ν•˜μ§€λŠ” λͺ»ν•˜λŠ”데, RAID의 경우 νŒ¨λ¦¬ν‹° λΉ„νŠΈλ‘œ 였λ₯˜λ₯Ό 볡ꡬ할 수 μžˆλ‹€.
 

 
μœ„ 그림처럼 4개의 λ””μŠ€ν¬κ°€ 있고 λ³„λ„μ˜ λ””μŠ€ν¬ 1κ°œμ— 짝수 νŒ¨λ¦¬ν‹° λΉ„νŠΈλ₯Ό λ³΄κ΄€ν•˜κ³  3번째 λ””μŠ€ν¬μ— μž₯μ• κ°€ μƒκ²¨μ„œ 볡ꡬ해야 ν•œλ‹€κ³  κ°€μ •ν•΄ 보자. 짝수 νŒ¨λ¦¬ν‹° λΉ„νŠΈλž€ 0κ³Ό 1둜 이루어진 λΉ„νŠΈ μ‹œν€€μŠ€μ—μ„œ 1의 총개수λ₯Ό 짝수둜 λ§Œλ“œλŠ” λΉ„νŠΈλ₯Ό μ˜λ―Έν•œλ‹€. 예λ₯Ό λ“€μ–΄, 1101μ΄λΌλŠ” λΉ„νŠΈ μ‹œν€€μŠ€μ—μ„œ 1의 개수λ₯Ό 짝수둜 λ§Œλ“œλŠ” 짝수 νŒ¨λ¦¬ν‹° λΉ„νŠΈλŠ” 0이 μ•„λ‹Œ 1이닀. λ”°λΌμ„œ, 짝수 νŒ¨λ¦¬ν‹° λΉ„νŠΈκΉŒμ§€ ν¬ν•¨ν•œ λΉ„νŠΈ μ‹œν€€μŠ€λŠ” 11011인데, λ§Œμ•½ 3번째 λΉ„νŠΈ, 즉 3번째 λ””μŠ€ν¬μ— μž₯μ• κ°€ 생겨 값을 μ•Œμ§€ λͺ»ν•˜κ²Œ λ˜μ–΄λ„ 1의 κ°œμˆ˜κ°€ μ§μˆ˜λΌλŠ” 것을 μ•Œκ³  μžˆμœΌλ‹ˆ 3번째 λ””μŠ€ν¬μ˜ 데이터λ₯Ό 0으둜 κ°„λ‹¨ν•˜κ²Œ 볡ꡬ할 수 μžˆλ‹€.
 
λΉ„νŠΈ λ‹¨μœ„λ‘œ 데이터λ₯Ό λ‚˜λˆ„μ–΄ μ €μž₯ν•˜λŠ” RAID 2와 달리 RAID 3은 μ„Ήν„° λ‹¨μœ„λ‘œ 데이터λ₯Ό λ‚˜λˆ„μ–΄ μ €μž₯ν•œλ‹€. 일반적으둜 λ””μŠ€ν¬λŠ” μ„Ήν„° λ‹¨μœ„λ‘œ 읽기 λ•Œλ¬Έμ— μ–΄λ–€ 섹터에 였λ₯˜κ°€ μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό μ•Œ 수 μžˆλ‹€. λΉ„νŠΈ λ‹¨μœ„κ°€ μ•„λ‹Œ μ„Ήν„° λ‹¨μœ„μ΄λ―€λ‘œ λ‹Ήμ—°νžˆ ν•˜λ‚˜μ˜ λ””μŠ€ν¬μ—λŠ” μ—¬λŸ¬ 개의 λΉ„νŠΈλ‘œ 이루어진 λΉ„νŠΈ μ‹œν€€μŠ€κ°€ μ‘΄μž¬ν•  것이닀. λ”°λΌμ„œ, μœ„μ—μ„œ μ„€λͺ…ν•œ 단일 νŒ¨λ¦¬ν‹° λΉ„νŠΈ 방식이 μ•„λ‹Œ N개의 νŒ¨λ¦¬ν‹° λΉ„νŠΈλ₯Ό μ΄μš©ν•œ N-way νŒ¨λ¦¬ν‹° λΉ„νŠΈ 방식을 μ‚¬μš©ν•˜λŠ”λ°, μ΄λŸ¬ν•œ N개의 νŒ¨λ¦¬ν‹° λΉ„νŠΈλ₯Ό λ³„λ„μ˜ λ””μŠ€ν¬μ— λ³΄κ΄€ν•œλ‹€.
 
RAID 2처럼 μΆ”κ°€λ˜λŠ” λ””μŠ€ν¬μ˜ 양은 μ μ§€λ§Œ νŒ¨λ¦¬ν‹° λΉ„νŠΈλ₯Ό κ΅¬μ„±ν•˜λŠ” 데 ν•„μš”ν•œ κ³„μ‚°λŸ‰μ΄ λ§Žλ‹€λŠ” 단점이 μ‘΄μž¬ν•œλ‹€.
 

RAID 4

RAID 3와 같은 λ°©μ‹μ΄μ§€λ§Œ 데이터가 μ„Ήν„° λ‹¨μœ„κ°€ μ•„λ‹Œ 블둝 λ‹¨μœ„λ‘œ λ˜μ–΄ μžˆλ‹€.
 

 
RAID 3κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ νŒ¨λ¦¬ν‹° λΉ„νŠΈλ₯Ό μΆ”κ°€ν•˜κΈ° μœ„ν•œ κ³„μ‚°λŸ‰μ΄ λ§Žμ§€λ§Œ μΆ”κ°€λ˜λŠ” λ””μŠ€ν¬μ˜ 양은 적닀.
 

RAID 5

RAID 4λŠ” λͺ¨λ“  νŒ¨λ¦¬ν‹° λΉ„νŠΈκ°€ ν•˜λ‚˜μ˜ λ””μŠ€ν¬μ— μ €μž₯되기 λ•Œλ¬Έμ— μž…μΆœλ ₯이 일어날 λ•Œλ§ˆλ‹€ νŒ¨λ¦¬ν‹° λΉ„νŠΈ λ””μŠ€ν¬μ— 데이터가 μ €μž₯λ˜μ–΄ 병λͺ© ν˜„μƒμ΄ λ°œμƒν•  수 있고, 볡수의 λ””μŠ€ν¬κ°€ λ™μ‹œμ— μž₯μ• κ°€ λ°œμƒν•  κ²½μš°μ™€ νŒ¨λ¦¬ν‹° λΉ„νŠΈ λ””μŠ€ν¬μ— μž₯μ• κ°€ λ°œμƒν•˜λŠ” κ²½μš°μ—λŠ” 볡ꡬ가 μ•ˆ λœλ‹€λŠ” 단점이 μžˆλ‹€.
 
RAID 5λŠ” RAID 4와 같은 방법을 μ‚¬μš©ν•˜μ§€λ§Œ μ•„λž˜ κ·Έλ¦Όκ³Ό 같이 νŒ¨λ¦¬ν‹° λΉ„νŠΈλ₯Ό μ—¬λŸ¬ λ””μŠ€ν¬μ— λΆ„μ‚°ν•˜μ—¬ κ΅¬μ„±ν•˜λŠ” λ°©μ‹μœΌλ‘œ 병λͺ© ν˜„μƒμ„ ν•΄κ²°ν•œ 기법이닀.
 

 
볡수의 λ””μŠ€ν¬κ°€ λ™μ‹œμ— μž₯μ• κ°€ λ°œμƒν•˜λŠ” 경우λ₯Ό μ œμ™Έν•œ RAID 4의 단점을 λͺ¨λ‘ κ·Ήλ³΅ν–ˆλ‹€.
 

RAID 6

RAID 5κ°€ ν•΄κ²°ν•˜μ§€ λͺ»ν•œ 볡수의 λ””μŠ€ν¬κ°€ λ™μ‹œμ— μž₯μ• κ°€ λ°œμƒν•˜λŠ” 경우λ₯Ό νŒ¨λ¦¬ν‹° λΉ„νŠΈ λ””μŠ€ν¬λ₯Ό 2개둜 κ΅¬μ„±ν•˜λŠ” λ°©μ‹μœΌλ‘œ ν•΄κ²°ν•˜μ˜€λ‹€. ν•˜μ§€λ§Œ, μ΅œλŒ€ 2개의 λ””μŠ€ν¬ μž₯μ• λ§Œ 볡ꡬ할 수 μžˆμ–΄ 3개 이상은 ν•΄κ²°ν•˜μ§€ λͺ»ν•œλ‹€.
 

 
λ˜ν•œ, RAID 5보닀 κ³„μ‚°λŸ‰μ΄ 많고 μΆ”κ°€λ˜λŠ” λ””μŠ€ν¬λ„ 더 λ§Žλ‹€λŠ” 단점이 μ‘΄μž¬ν•œλ‹€.
 

RAID 10

λΉ λ₯Έ μž…μΆœλ ₯이 μž₯점인 RAID 0κ³Ό 볡ꡬ κΈ°λŠ₯이 μžˆλŠ” RAID 1을 κ²°ν•©ν•œ λ°©μ‹μœΌλ‘œ RAID 1 + 0을 μ˜λ―Έν•œλ‹€. RAID 10κ³Ό μœ μ‚¬ν•œ ν˜•νƒœλ‘œ RAID 0 + 1이 μžˆμœΌλ‚˜ 볡ꡬ의 νš¨μœ¨μ„± 문제둜 RAID 10이 많이 μ‚¬μš©λœλ‹€.
 

 
μ‰½κ²Œ λ§ν•˜μžλ©΄, RAID 0+1의 경우 μŠ€νŠΈλΌμ΄ν•‘μ„ ν•˜λ˜ 외뢀에 λ―ΈλŸ¬λ§μ„ μ μš©ν•œ 방식이고 RAID 10은 μŠ€νŠΈλΌμ΄ν•‘μ„ ν•˜λ˜ 내뢀에 λ―ΈλŸ¬λ§μ„ μ μš©ν•œ 방식이닀.
 
RAID 0+1의 경우 μž₯μ• κ°€ λ°œμƒν–ˆμ„ λ•Œ 이λ₯Ό λ³΅κ΅¬ν•˜λ €λ©΄ λͺ¨λ“  λ””μŠ€ν¬λ₯Ό 쀑단해야 ν•˜μ§€λ§Œ RAID 10은 내뢀에 미러링이 μ μš©λ˜μ–΄ μžˆμ–΄ μž₯μ• κ°€ λ°œμƒν•œ λ””μŠ€ν¬λ§Œ μ€‘λ‹¨ν•˜μ—¬ 볡ꡬ할 수 μžˆλ‹€.
 

RAID 50κ³Ό RAID 60

RAID 10κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ RAID 5+0, RAID 6+0을 μ˜λ―Έν•˜λ―€λ‘œ, 각각 RAID 5, RAID 6으둜 묢은 두 μŒμ„ λ‹€μ‹œ RAID 0으둜 λ¬Άμ–΄ μ‚¬μš©ν•œλ‹€.
 

λŒ“κΈ€