본문 바로가기
Study

[리눅스마스터 1급] 리눅스 시스템의 이해 오답 [1]

by wwns 2025. 1. 30.
반응형

RAID-5는 데이터 스트라이핑(striping)과 패리티(parity) 정보를 결합하여 구현하는 RAID 방식입니다. 3개 이상의 디스크로 구성되며, 한 개의 디스크에 장애가 발생해도 데이터 복구가 가능

  • 데이터 스트라이핑 (Striping)
    • 데이터를 블록 단위로 나누어 여러 디스크에 분산 저장합니다.
    • 병렬 읽기 성능이 향상됩니다.
  • 패리티 (Parity) 사용
    • RAID-5는 이중화 방식이 아니라 패리티를 활용한 오류 복구 기법을 사용합니다.
    • 각 디스크에 일부 공간을 할당하여 패리티 정보를 저장하며, 특정 디스크가 손상되었을 경우 남은 데이터와 패리티를 활용해 복구합니다.
    • 패리티 블록은 고정된 디스크에 저장되지 않고, 분산 저장
  디스크 1  |  디스크 2  |  디스크 3  |  디스크 4  
-------------------------------------------------  
  데이터 A  |  데이터 B  |  패리티 P1  |  데이터 C  
  데이터 D  |  패리티 P2 |  데이터 E  |  데이터 F  
  패리티 P3 |  데이터 G  |  데이터 H  |  데이터 I
  
/*
각 줄마다 패리티가 분산 저장됨.
디스크 3이 장애가 발생하면, 디스크 1, 2, 4의 데이터 및 패리티를 이용해 복구 가능.
*/

 

  • 장점
    효율적인 저장 공간 활용
    • 디스크 하나만 패리티 정보 저장에 사용되므로, RAID-1 (미러링)보다 저장 효율이 높음
    • 예를 들어, 4개의 디스크가 있다면, 3개의 디스크만큼의 데이터 저장 공간을 사용할 수 있음.
    읽기 성능 향상
    • 여러 디스크에 데이터를 나누어 저장하기 때문에 병렬 읽기가 가능하여 읽기 성능이 증가함.
  • 단점
    쓰기 성능 저하
    • 데이터를 쓰기 전에 패리티를 계산해야 하므로 RAID-0보다 쓰기 속도가 느림.
    • 특히 작은 데이터 블록을 자주 변경할 경우 패리티 갱신이 많아지면서 성능 저하가 발생함.
    디스크 장애 복구 시간 증가
    • 장애가 발생하면 패리티 정보를 활용하여 데이터 재구성이 필요하기 때문에, 복구 시간이 오래 걸릴 수 있음.
    한 개 이상의 디스크 장애 시 데이터 손실
    • RAID-5는 한 개의 디스크가 고장 났을 때만 복구 가능.
    • 두 개 이상의 디스크가 동시에 고장 나면 데이터 복구 불가능

 

쓰기 성능이 중요한 경우에는 RAID-10 또는 RAID-6을 고려하는 것이 좋음


 

RAID-6: RAID-5의 확장판으로, 이중 패리티를 사용하여 디스크 최대 2개 고장까지 복구 가능

이중 패리티 (Double Parity) 사용

  • RAID-5는 한 개의 패리티 블록만 사용하지만, RAID-6은 두 개의 패리티 블록을 저장하여 최대 2개의 디스크가 동시에 고장 나더라도 복구 가능
  • 패리티는 분산 저장됨.

높은 데이터 보호 수준

  • RAID-5보다 안정성이 뛰어나지만, 쓰기 성능은 다소 낮음.

저장 공간 효율성

  • RAID-6의 저장 용량 = 총 디스크 수 - 2 (패리티 블록이 2개이므로)
  • 예를 들어, 6개의 디스크가 있다면, 4개의 디스크만큼 데이터를 저장할 수 있음.
  디스크 1  |  디스크 2  |  디스크 3  |  디스크 4  |  디스크 5  
--------------------------------------------------------------  
  데이터 A  |  데이터 B  |  데이터 C  |  패리티 P1  |  패리티 P2  
  데이터 D  |  데이터 E  |  패리티 P3 |  패리티 P4  |  데이터 F  
  데이터 G  |  패리티 P5 |  패리티 P6 |  데이터 H  |  데이터 I  
/*
P1, P2와 같은 패리티 블록이 두 개씩 분산 저장됨.
디스크 2개가 동시에 고장 나도 복구 가능.
*/

✅ 장점

  • 최대 2개의 디스크 장애까지 복구 가능 → RAID-5보다 높은 안정성
  • 읽기 성능이 RAID-5와 유사
  • 스토리지 효율성이 RAID-1보다 높음

❌ 단점

  • 쓰기 성능 저하: 패리티를 두 개씩 계산해야 하므로 RAID-5보다 쓰기 속도가 느림
  • 최소 4개 이상의 디스크 필요

RAID-10 (RAID 1+0 / RAID 0+1): 미러링과 스트라이핑을 결합한 방식으로, 고속 읽기/쓰기 성능과 높은 안정성 제공

미러링(RAID-1)과 스트라이핑(RAID-0) 결합

  • RAID-10은 RAID-1(미러링)으로 데이터 보호 + RAID-0(스트라이핑)으로 속도 향상
  • 최소 4개의 디스크 필요

빠른 읽기/쓰기 속도

  • RAID-1은 미러링으로 인해 쓰기 속도가 느리지만, RAID-10은 여러 디스크에 데이터를 분산하여 속도를 향상시킴.
  • 따라서 RAID-5, RAID-6보다 빠른 쓰기 성능을 가짐.

높은 안정성

  • 미러링을 사용하므로 한 개의 디스크가 고장 나도 데이터 손실 없음.
  • 하지만, RAID-6처럼 2개 이상 고장 시 반드시 복구 가능한 것은 아님.
  디스크 1  |  디스크 2  |  디스크 3  |  디스크 4  
-------------------------------------------------  
  데이터 A  |  데이터 A  |  데이터 B  |  데이터 B  
  데이터 C  |  데이터 C  |  데이터 D  |  데이터 D  
/*
RAID-1처럼 같은 데이터를 두 개의 디스크에 저장(미러링)
RAID-0처럼 스트라이핑을 통해 성능 향상
*/

 

✅ 장점

  • RAID-6보다 빠른 읽기/쓰기 속도 제공
  • 디스크 1개 고장 시 복구 속도가 빠름 (미러링된 디스크에서 바로 복구 가능)
  • RAID-5, RAID-6보다 복잡한 패리티 연산이 없어 성능이 우수

❌ 단점

  • 디스크 공간 효율이 낮음 (총 디스크의 절반만 사용 가능)
  • 최소 4개 이상의 디스크가 필요
  • RAID-6보다 장애 복구 능력이 낮음 (디스크 2개가 같은 미러링 쌍에서 동시에 고장 나면 복구 불가능)


 

  • RAID-5읽기 성능이 중요하고, 저장 공간을 효율적으로 사용해야 할 때
  • RAID-6RAID-5보다 높은 안정성이 필요할 때 (2개 디스크 장애 허용)
  • RAID-1+0 / 0+1고성능 읽기/쓰기와 빠른 복구가 필요할 때

GRUB

grub2-mkconfig -o <출력 파일 경로>

 

 

  • grub2-mkconfig: GRUB2의 설정 파일을 자동으로 생성하는 명령어
  • -o <출력 파일>: 생성된 GRUB2 설정 내용을 지정한 파일에 출력

🔹 grub2-mkconfig -o 실행 후 내부 동작

  1. /etc/default/grub 설정 파일을 참조
  2. /boot/grub2 또는 /boot/efi/EFI/{distro}/grub.cfg에 새로운 설정 파일을 생성
  3. /etc/grub.d/ 디렉터리에 있는 스크립트들을 실행하여 GRUB 메뉴 구성

언제 사용?

커널을 업데이트한 경우
GRUB 설정 변경 후 적용할 때 (/etc/default/grub 수정 후)
RAID, LVM 또는 디스크 구성이 변경된 경우
멀티부팅 환경에서 OS 인식을 다시 해야 할 때


리눅스와 유닉스에서 GUI 환경을 제공하는 X Window System의 구현체

🔹 1. XFree86란?

초기 X Window System의 대표적인 구현체

특징

  • 1992년에 시작된 오픈소스 X Window System 구현체
  • X11 프로토콜 기반으로 GUI 환경 제공
  • 1990~2003년까지 대부분의 리눅스 배포판에서 기본으로 사용됨
  • XFree86 4.4 버전부터 라이선스 변경 문제 발생
    • 기존에는 MIT 라이선스였지만, 이후 GPL과 충돌하는 라이선스로 변경
    • 이로 인해 많은 배포판이 대체 솔루션을 찾기 시작함

🔹 2. X.Org Server란?

XFree86에서 갈라져 나온 오픈소스 X Server, 현재 표준

특징

  • 2004년에 XFree86의 라이선스 변경 문제로 인해 포크(fork)되어 등장
  • 오픈소스 철학을 유지하기 위해 MIT 라이선스 유지
  • 새로운 기능과 최적화가 지속적으로 이루어짐
  • 현재 대부분의 리눅스 배포판(Ubuntu, RHEL, Fedora 등)에서 기본 사용

MIT 라이선스 (Massachusetts Institute of Technology License)

특징

  • 가장 자유로운 오픈소스 라이선스 중 하나
  • 소프트웨어를 상업적으로 사용, 수정, 배포할 수 있음
  • 배포할 때 원래의 라이선스 문구를 유지해야 하지만, 수정한 코드를 공개할 필요 없음
  • MIT 라이선스를 적용한 코드는 오픈소스 프로젝트나 사유 소프트웨어에서도 사용 가능

GPL 라이선스 (GNU General Public License)

특징

  • 강한 카피레프트(Copyleft) 성격을 가짐
  • 소프트웨어를 사용, 수정, 배포할 수 있지만, 수정한 소스 코드도 반드시 공개해야 함
  • GPL 라이선스를 적용한 코드를 포함하면, 전체 프로그램이 GPL 라이선스를 따라야 함 (즉, 상용 소프트웨어에서 사용하기 어려움)
  • 기업에서 상용 소프트웨어에 포함할 경우 소스 코드 공개 의무가 발생할 수 있어 주의해야 함

 

 

X 윈도 시스템 (X Window System)

X 윈도 시스템

X 윈도 시스템은 GUI(그래픽 사용자 인터페이스) 환경을 제공하는 네트워크 프로토콜이자 소프트웨어 플랫폼입니다. 주로 리눅스와 유닉스 계열 운영 체제에서 사용되며, 화면 표시 및 입력 장치(키보드, 마우스 등) 관리 기능을 제공합니다.

 

구성 요소

  • X 서버: 사용자 인터페이스와 상호작용하고, 클라이언트 애플리케이션의 출력 결과를 화면에 표시합니다.
  • X 클라이언트: 사용자가 실행하는 프로그램으로, X 서버와 통신하며 GUI를 표시합니다.
  • X 프로토콜: X 서버와 클라이언트 간의 통신을 위한 프로토콜로, 네트워크를 통해서도 동작합니다.

Xlib: X 윈도 시스템과 클라이언트 애플리케이션 간의 통신을 위한 C 라이브러리로, 화면에 그래픽을 그리거나 이벤트를 처리하는 기능을 제공합니다.

 

Xlib에서 발전한 버전

1. XCB (X C Binding)

  • Xlib의 후속 라이브러리로, X 윈도 시스템과의 상호작용을 더 빠르고 효율적으로 할 수 있도록 설계됨.

2. GTK (GIMP Toolkit)

  • GTK는 **그래픽 사용자 인터페이스(GUI)**를 개발하기 위한 오픈소스 툴킷으로, Xlib를 직접 사용하지 않고 고수준의 GUI 라이브러리를 제공합니다.

3. Qt

  • QtC++ 기반의 크로스 플랫폼 GUI 툴킷으로, Xlib를 대체하여 고급 GUI 애플리케이션을 개발할 수 있게 해줍니다.

4. FLTK (Fast Light Toolkit)

  • FLTKC++로 작성된 가벼운 GUI 툴킷으로, Xlib를 대체할 수 있는 선택지입니다.
반응형