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-6 → RAID-5보다 높은 안정성이 필요할 때 (2개 디스크 장애 허용)
- RAID-1+0 / 0+1 → 고성능 읽기/쓰기와 빠른 복구가 필요할 때
GRUB
grub2-mkconfig -o <출력 파일 경로>
- grub2-mkconfig: GRUB2의 설정 파일을 자동으로 생성하는 명령어
- -o <출력 파일>: 생성된 GRUB2 설정 내용을 지정한 파일에 출력
🔹 grub2-mkconfig -o 실행 후 내부 동작
- /etc/default/grub 설정 파일을 참조
- /boot/grub2 또는 /boot/efi/EFI/{distro}/grub.cfg에 새로운 설정 파일을 생성
- /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
- Qt는 C++ 기반의 크로스 플랫폼 GUI 툴킷으로, Xlib를 대체하여 고급 GUI 애플리케이션을 개발할 수 있게 해줍니다.
4. FLTK (Fast Light Toolkit)
- FLTK는 C++로 작성된 가벼운 GUI 툴킷으로, Xlib를 대체할 수 있는 선택지입니다.
'Study' 카테고리의 다른 글
[리눅스마스터 1급] 네트워크의 이해 (0) | 2025.02.02 |
---|---|
[리눅스마스터 1급] 리눅스 시스템의 이해 오답 [2] (0) | 2025.02.01 |
[Linux] 모던 리눅스 교과서 8장 - 관측가능성 (1) | 2024.12.23 |
[Linux] 모던 리눅스 교과서 6장 - 애플리케이션, 패키지관리,컨테이너 (1) | 2024.12.15 |
[Linux] 모던 리눅스 교과서 5장 - 파일시스템 (0) | 2024.12.01 |