리눅스 마스터 2급 학습


목차

1. section 01 개요
2. section 02 파티션


소개

안녕하세요 현재 데이터센터 재직중인 dev-ops를 꿈꾸는 1년차 연구원 입니다.
실무를 위한 기초를 다지기위해 리눅스 마스터 2급 자격증을 목표로 공부합니다.

※ 이 글은 개인적으로 공부한걸 바탕으로 작성된 글입니다.
잘못된 내용이나 보충해야할 내용이 있다면 댓글 혹은 mail로 피드백 해주시면 감사하겠습니다.※


section 01 개요

  • 특징

① 오픈 소스 운영체제
-소스코드 및 모든 관련 자료가 공개되어 있다.
② 멀티유저(다중 사용자), 멀티태스킹(다중 작업)을 지원
-멀티유저 기능은 여러 사용자가 동시에 동일한 시스템에 접근 가능
-멀티태스킹은 여러 개의 태스크를 동시에 실행하고, 교대로 컴퓨터의 자원을 사용할 수 있는 기능
③ 다중 스레드를 지원하는 네트워크 운영체제
-하나의 프로세스 내에서 여러 개의 네트워크 작업을 동시에 처리할 수 있기에 강력한 네트워크 지원이 가능
-네트워크 서버로 사용이 가능하고, 인터넷과 이더넷에 안정적으로 연결이 가능
-웹 브라우저, 메일, 뉴스, 웹 서버 등의 모든 인터넷 서비스 가능
④ 여러 종류의 파일 시스템을 지원하는 운영체제
-리눅스의 기본 파일 시스템인 ext2, ext3, ext4, DOS의 FAT16, Window의 FAT32, NTFS, 네트워크 파일 시스템 SMB, CIFS, NFS 등도 지원

  • 리눅스 장단점
장점단점
- 유닉스와 완벽하게 호환- 공개 운영체제이기에 문제 발생 시 기술 지원을 받는데 한계가 있다.
- PC용 운영체제보다 안정적- 한글 지원 미흡 (현재는 어느정도 개선되었다고 생각된다.)
- 하드웨어 기능을 효과적으로 사용- 보안상의 취약점이 쉽게 노출될 가능성이 있다.
- 오픈소스 운영체제

-장점

장점내용
유닉스와 완벽하게 호환- 리눅스는 POSIX(Portable Operating System Interface) 규격을 따르고 있다.
- POSIX는 유닉스 운영체제에 기반을 두고 있는 표준 운영체제 인터페이스이다.
- POSIX 표준화를 기반하기에 유닉스 소스코드를 전혀 사용하지 않고 개발되었다.
- POSIX 규격을 따르기 때문에 유닉스용 프로그램은 별도의 수정 없이 리눅스에서 동작할 수 있다.
PC용 운영체제보다 안정적네트워크 기반하의 멀티유저, 멀티태스킹이 가능하여 많은 작업자가 동시에 사용해도 안정적인 운영이 가능하다.
일반 PC는 업무가 끝나면 전원을 끄지만 리눅스는 네트워크 사용을 전제로 설계되었기에 특별한 사항을 제외하고 항상 켜 놓아도 안정적으로 운영된다.
하드웨어 기능을 효과적으로 사용다른 운영체제보다 적은 양의 메모리를 사용
SWAP 방식을 통해 램(RAM)이 부족한 경우 Swap영역을 늘려 메모리의 효율성을 높일 수 있다.
오픈소스 운영체제우수한 소프트웨어 개발이 가능하고 여러 배포판 개발 업체들이 있기에 넓은 선택권이 주어진다.
다양한 배포판들이 존재하여 운영체제뿐만 아니라 여러 유틸리티 프로그램과 응용 프로그램들을 사용자 편의에 맞춰 무료로 사용할 수 있다.

-단점

단점내용
공개 운영체제이기에 문제 발생 시 기술 지원을 받는데 한계가 있다.RHEL과 SUSE와 같은 몇몇 엔터프라이즈용 리눅스는 기술 지원이 유료로 제공되고 있으나 대부분 예상치 못한 오류 발생 시 개발자들의 기술 지원을 직접적으로 받는 것이 불가능하다.
한글 지원 미흡배포판마다 별도의 한글 지원 패키지를 설치한 후 사용해야 한다는 불편함이 있다.
보안상의 취약점이 쉽게 노출될 가능성이 있다.공개 운영체제이기에 보안에 취약할 것이라는 선입관이 있으나, 기술 개발로 비교적 높은 보안성을 지원한다.
  • 디렉터리 종류와 특징

① 디렉터리란 파일 저장소를 의미하며, 리눅스 디렉터리는 최상위 디렉터리(/)를 기준으로 하위 디렉터리들이 존재하는 계층적 트리 구조로 구성되어 있다.

디렉터리 구조

linux directory

②디렉터리 간에는 부모와 자식의 관계를 가지므로 상위 디렉터리와 하위 디렉터리는 부모디렉터리와 자식 디렉터리로 구분한다.

③디렉터리별 저장 내용

디렉터리저장 내용
/- 파일 시스템이 있는 최상위 디렉터리
모든 디렉터리의 출발점인 동시에 다른 시스템과의 연결점이 되는 디렉터리
/boot- 부트 디렉터리로 부팅 시 커널 이미지와 부팅 정보 파일 저장
/proc- 시스템 정보 디렉터리이며 커널 기능을 제어하는 역할
현재 실행되는 프로세스와 실제로 사용되는 장치, 하드웨어 정보 저장
/lib- 공유 라이브러리 디렉터리
커널 모듈 파일들과 프로그램 실행을 지원해 주는 라이브러리 저장
/bin-기본적인 명령어가 저장된 디렉터리
root사용자와 일반 사용자가 함께 사용할 수 있는 명령어 디렉터리
/dev- 시스템 디바이스 파일들을 저장하는 디렉터리
하드디스크 장치 파일, CD-ROM 장치파일 같은 파일 저장
/etc- 시스템 환경 설정 파일 저장 디렉터리
/root- 시스템 관리자용 홈 디렉터리
/sbin- 관리자용 시스템 표준 명령 및 시스템 관리와 관련된 실행 명령어 저장
/usr- 사용자 디렉터리로 사용자 데이터나 애플리케이션 저장
/home- 사용자 계정 디렉터리로 계정들의 홈 디렉터리가 위치
일반 사용자들이 로그인 시 처음으로 위치하게 되는 디렉터리
/var- 가변 자료 저장 디렉터리로 로그 파일이나 메일 데이터 저장
/tmp-각종 프로그램이나 프로세스 작업을 할 때 임시로 생성되는 파일 저장
모든 사용자에 대해서 읽기와 쓰기가 허용
스티키 비트(sticky bit) 설정으로 파일의 소유자만이 자신의 소유 파일 삭제 가능
/mnt- 파일 시스템을 일시적으로 마운트할 때 사용
/lost+found- 결함이 있는 파일에 대한 정보가 저장되는 디렉터리
  • /proc
    ① 가상 파일 시스템이다.
    ② 시스템에서 운영되고 있는 다양한 프로세스들에 관한 내용과 프로그램에 대한 정보를 포함
    ③ 디렉터리에서 볼 수 있는 것은 실제 드라이브가 아니라 메모리 상에 저장되어 있다.
    ④ 사용자가 /proc나 하위 파일에 접근할 때마다 커널에서 파일 내용을 동적으로 만든다.
    ⑤ 각 프로세스는 고유의 식별자를 가지고 있고, 식별자를 가진 디렉터리 밑에 정보를 저장한다.

  • /lib
    ① 동적 공유 라이브러리를 저장
    ②공유 라이브러리에는 많은 프로그램에서 공통으로 사용하는 함수들이있어 디스크의 공간을 절약할 수 있고, 프로그램마다 동일한 코딩을 할 필요가 없다.
    ③ 라이브러리 공유 방법에는 정적 라이브러리와 동적 라이브러리 두 가지 방법이 있다.
    -정적 라이브러리 : 컴파일 과정에서 공유 라이브러리의 루틴을 사용하지 않고 프로그램내에 라이브러리 루틴의 복사본을 갖도록 컴파일
    -동적 라이브러리 : 실행 파일 내부에 라이브러리를 넣어두지 않고 프로그램을 실행할 때 가져와 사용하므로 메모리의 효율성 ⬆️

  • /dev
    ① 하드디스크, 프린터, 입출력 장치 등과 같은 장치들을 파일화하여 관리한다. 따라서 특정장치를 실행하기 위해서는 해당 장치 파일을 실행해야 한다.
    ② 장치 파일(device file) 또는 특수 파일(special file)은 장치 드라이버이다.
    ③ 블록 장치 파일(block device)은 하드디스크, CD/DVD, 플로피 디스크와 같은 저장 장치들이며, 문자 장치파일(character device)은 키보드, 마우스, 테이프, 모니터, 프린터 등의 같은 입출력장치들이다.
    ④ 리눅스의 표준 입력장치는 키보드이며, 표준 출력장치는 모니터이다.

  • /etc
    ① 시스템 환경설정 파일과 부팅 관련 스크립트 파일들이 저장된 디렉터리
    ② 사용자 정보 및 암호 정보 파일, 보안 파일 등을 저장

디렉터리설명
/etc/group- 그룹 정보가 담겨있는 파일
/etc/passwd- 자원을 사용할 수 있는 사용자 목록 저장
/etc/shadow-/etc/passwd의 두 번째 필드 패스워드 부분을 암호화 관리
패스워드 만기일, 계정 만기일 등을 설정
  • /usr
    ① 일반 사용자들이 사용하는 디렉터리
    ② 공유 가능한 프로그램들이 설치되며 네트워크를 이용해 여러 개의 시스템을 연결할 경우 /usr 디렉터리를 공유해서 설치된 프로그램을 활용할 수 있다.
    ③ /usr은 읽기 전용으로 마운트되야 한다. 가변 자료들은 /var 디렉터리로 심볼릭 링크로 사용

  • /var
    ① 시스템에서 사용되는 가변 파일들을 저장
    ② 가변 파일들로 로그파일, 스풀링(spooling), 캐싱(caching) 등이 있다.

  • /lost+found
    ① 파일 시스템의 이상 유무를 진단하고 복구하는 fsck에 의해 사용되는 디렉토리
    ② 손상 파일이나 디렉터리를 /lost+found 디렉터리로 연결하고 오류를 수정하게 되며 평상시에는 null 파일 링크에 의해서 비어있는 상태로 존재
    ③ 리눅스 파일 시스템 ex2에 의한 fsck.ext2 프로그램도 이 디렉터리를 사용


section 02 파티션

  • 파티션(Partition)의 특징과 종류

① 파티션이란, 하나의 물리적 디스크를 여러 개의 논리적인 디스크로 분할하는 것
② 다중 파티션의 장점
-파티션마다 독립적인 파일 시스템이 운영되기 때문에 파일점검 시간이 줄어들어 부팅 시간을 단축시킬 수 있다.
-특정 파티션의 파일 시스템이 손상되더라도 다른 파티션에 영향을 주지 않기 때문에 높은 안정성을 보장한다.
-필요한 파티션만 포맷할 수 있기에 백업과 업그레이드가 편리
③ 파티션은 주 파티션(Primary Partition), 확장 파티션(Extended Partition), 논리 파티션(Logical Partition), 스왑 파티션(Swap Partition)으로 구분

종류설명
주 파티션- 부팅이 가능한 기본 파티션
하나의 하드디스크에 최대 4개 분할 가능
확장 파티션- 주 파티션 내에 생성, 하나의 물리적 디스크에 1개만 생성
파티션 번호는 1~4번이 할당
데이터 저장 영역을 위한 것이 아니라 논리 파티션을 생성
논리 파티션- 확장 파티션 안에 생성되는 파티션
12개 이상 생성하지 않는 것을 권고하며, 5번 이후의 번호가 붙여짐
스왑 파티션- 하드디스크의 일부를 메모리처럼 사용하는 영역
주 파티션 또는 논리 파티션에 생성
프로그램 실행 시 부족한 메모리 용량을 하드디스크로 대신
리눅스 설치 시에는 반드시 설치되어야 하는 영역
스왑(Swap) 영역의 크기는 메모리의 2배를 설정하도록 권고
  • 디스크와 장치명

① 분할된 파티션은 디스크의 장치 파일명 뒤에 숫자를 붙인다.

디바이스 명내용
/dev/ⓐⓐ 하드디스크 유형 지정
-sd : SCSI(Small Computer System Interface) 또는 USB 방식 디스크
-hd : IDE 또는 ATA(AT attachment) 방식 디스크
/dev/ⓐ/ ⓑⓑ 한 케이블에 묶인 하드디스크의 우선순위를 정함
마스터(master) 또는 슬레이브(slave)로 설정
-첫 번째 하드디스크 : a
-두 번째 하드디스크 : b
ex) /dev/hd a = 첫 번째 하드디스크, /dev/hd b = 두 번째 하드디스크
/dev/ⓐ ⓑ ⓒⓒ 파티션 번호
-1번에서 4번: primary 또는 extended
-5번부터 : logical 파티션
ex) /dev/hd a 4 = 첫 번째 하드디스크 파티션 4번 (주 파티션 또는 확장 파티션), /dev/hd a 5 = 첫 번째 하드디스크 파티션 5번 (논리 파티션)

② 리눅스에서 파티션을 만들고 마운트할 때 지정된 디바이스명을 사용

디바이스 종류디바이스 명
플로피 디스크/dev/fd
SCSI 디스크/dev/sda
/dev/sdb
CD-ROMSCSI CD-ROM = /dev/scd0 또는 /dev/sr0
IDE 디스크Primary Master = /dev/hda
Primary Slave = /dev/hdb
Secondary Master = /dev/hdc
secondary Slave = /dev/hdc
XT 디스크/dev/xda
/dev/xdb
  • 파일 시스템

① 파일 시스템은 운영체제가 파일을 시스템의 디스크 파티션상에 구성하는 방식
② 일정한 규칙을 가지고 파일을 저장하도록 규칙 방식을 제시
③ 파티션에 파일 시스템이 업승면, 파일 시스템 생성을 거쳐야 사용이 가능
④ 리눅스는 고유의 파일 시스템뿐만 아니라 다양한 파일 시스템을 지원

파일 시스템종류
리눅스 전용ext, ext2, ext3, ext4
저널링JFS, XFS, ReiserFS
네트워크SMB, CIFS, NFS
클러스터링레드햇 GFS, SGI cXFS, IBM GPFS, IBM SanFS, EMC highroad, Compaq CFS, Veritas CFS, 오라클 OCFS2
시스템ISO9660, UDF
타 운영체제 지원FAT, VFAT, FAT32, NTFS, HPFS, SysV
  • LVM(Logical Volume Manager)

① 여러 개의 하드디스크를 합쳐 사용하는 기술로 한 개의 파일 시스템을 사용
② 작은 용량의 하드디스크 여러 개를 큰 용량의 하드디스크 한 개처럼 사용
③ 서버를 운영하면서 대용량의 별도 저장 공간이 필요할 때 활용
④ 다수의 디스크를 묶어서 사용함으로써 파티션의 크기를 줄이거나 늘릴 수 있다.

LVM 논리 볼륨 구성요소

구분설명
물리 볼륨(Physical volume)여러 개의 물리적 하드 디스크 ex) /dev/sda1, /dev/sdb1
볼륨 그룹(Volume group)물리 볼륨을 합쳐서 하나의 물리적 그룹으로 만드는 것
논리 볼륨(Logical volume)볼륨 그룹을 나눠서 다수의 논리 그룹으로 나눔
  • RAID

① RAID는 복수 배열 독립 디스크(Redundant Aray of Independent Disks)
② 여러 개의 물리적 디스크를 하나의 논리적 디스크로 인식하여 작동하게 하는 기술
③ 여러 개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하는 기술
④ RAID 종류는 하드웨어 RAID와 소프트웨어 RAID로 나뉜다.

구분설명
하드웨어 RAID- H/W 제조업체에서 여러 개의 하드디스크를 장비로 만들어 그 자체를 공급
- 안정된 시스템일 수록 고가
소프트웨어 RAID- 고가의 하드웨어 RAID의 대안
- 운영체제에서 지원하는 방식
- 저렴한 비용으로 안전한 데이터 저장이 가능

⑤ 데이터를 저장하는 다양한 방법이 존재하고 이 방법들을 라벨이라 한다.
⑥ 레벨에 따라 저장 장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 등 다양한 목적을 만족시킨다.

RAID0

① 스트라이핑 저장 방식 : 연속된 데이터를 여러 디스크에 나눠 저장
② 최소 2개의 하드디스크가 필요
③ 입출력 작업이 모든 디스크에 동시에 진행되고 저장과 읽기 속도가 가장 빠르지만 하나의 디스크라도 고장나면 전체 시스템을 사용 불가
④ 고장 대비 능력이 없으므로 주요 데이터 저장에는 부적합

RAID1

① 미러링 방식 : 하나의 디스크에 데이터를 저장하면 다른 디스크에 동일한 내용이 백업되어 저장
② 데이터 저장 시 두 배의 용량이 필요
③ 결함허용을 제공하지만 공간 효율성은 떨어짐
④ 주요한 데이터를 저장하기에 적절함

RAID2

① 스트라이핑 저장 방식
② 기록용 디스크와 데이터 복구용 디스크를 별도로 제공 : 오류 제어 기능이 없는 디스크를 위해 해밍 코드 사용
③ 디스크의 사용 효율성이 낮음
④ 모든 SCSI 디스크에 ECC(에러 검출 기능)를 탑재하고 있기 때문에 실제 사용되지 않음

RAID3

① 스트라이핑 저장 방식
② 오류 검출을 위해 패리티 방식을 이용
③ 패리티 정보를 저장하기 위해 전용 디스크를 사용하기에 최소 3개 이상의 하드 디스크가 필요
④ 모든 SCSI 디스크에 ECC(에러 검출 기능)를 탑재하고 있기 때문에 실제 사용되지 않음

RAID4

① RAID 3와 유사한 방식 : 2개 이상의 데이터 디스크와 전용 패리티 디스크 사용
② RAID 3은 Byte단위로 데이터를 저장하는 반면 RAID 4는 Block(섹터) 단위로 저장

RAID5

① 스트라이핑 저장 방식
② 디스크마다 패리티 정보를 갖고 있어 패리티 디스크의 병목현상을 줄이는 것이 가능해 실무에서 많이 사용
③ 디스크 섹터 단위로 저장
④ 쓰기 작업이 많지 않은 다중 사용자 시스템에 적합

RAID6

① 기본적으로 RAID 5를 확장한 것
② 제2parity를 두는 dual parity를 사용함으로써 더 나은 무정지성을 갖게 함
③ 최소 4개의 드라이브가 필요

RAID0, RAID1 비교

구분RAID 0RAID 1
성능뛰어남변화없음
안정성 (결합허용)결합 허용 X결합 허용 O
안정성 보장 X안정성 보장
공강효율성좋음낮음

RAID5, RAID6 비교

구분RAID 5RAID 6
ParitySingleDual
보호드라이브 1개 불량드라이브 2개 불량
필요조건N+1 : 최소 3개의 드라이브 필요N+2 : 최소 4개의 드라이브 필요
  • Nested RAID (중첩 RAID)
    각 레벨의 장점을 합친 RAID 구성으로는 대표적으로 RAID 0+1과 RAID 1+0이 있다.

RAID 0+1

① RAID 0(스트라이핑방식)과 RAID 1(미러링 방식)을 조합
② 디스크 2개씩 RAID 0으로 구성 후 RAID 0으로 구성된 하드디스크들을 RAID 1로 구성
③ 미러링 전 스트라이핑을 진행
④ 속도는 빠르나 데이터 복구 시간이 오래 걸림

RAID 1+0

① RAID 0+1의 반대 구성
② 디스크 2개씩 RAID 1로 구성 후 RAID 1로 구성된 하드디스크들을 RAID 0으로 구성
③ 미러링 후 스트라이핑을 진행하여 손실된 데이터만 빠른 복원이 가능하므로 RAID 0+1보다 운영상 유리

대표적인 중첩 RAID의 2가지 유형을 알아보았습니다. 그 외에도 (RAID 0+3), (RAID 5+0), (RAID 6+0) 등이 있습니다.
→ 더알아보기 : https://en.wikipedia.org/wiki/Nested_RAID_levels


참고 문헌

  • 리눅스 마스터 2급 2022 수험서
    권소라 저. 영진닷컴, 2022.

출처


profile
Dreaming Dev-ops Engineer

0개의 댓글