RAID 정의 및 개념
-
RAID 정의
- RAID(Redundant Array of Inexpensive Disks)는 여러 개의 디스크를 하나의 디스크처럼 사용함
- 비용 절감 + 신뢰성 향상 + 성능 향상의 효과를 냄
-
하드웨어 RAID
- 하드웨어 제조업체에서 여러 개의 하드디스크를 가지고 장비를 만들어서 그 자체를 공급
- 좀더 안정적이지만, 상당한 고가임
-
소프트웨어 RAID
- 고가의 하드웨어 RAID 대안
- 운영체제에서 지원하는 방식
- 저렴한 비용으로 좀더 안전한 데이터의 저장 가능
-
Linear RAID 개요
- 최소 2개의 하드디스크가 필요
- 2개 이상의 하드디스크를 1개의 볼륨으로 사용
- 앞 디스크부터 차례로 저장
- 100%의 공간효율성
-
RAID 0 개요
- 최소 2개의 하드디스크가 필요
- 모든 디스크에 동시에 저장됨
- 100%의 공간효율성 (=비용 저렴)
- 신뢰성 낮음
- 빠른 성능을 요구하되, 혹시 전부 잃어버려도 큰 문제가 되지 않는 자료가 적당함
-
RAID 1 개요
미러링
이라 부름
- 데이터 저장에 두 배의 용량이 필요
- 결함 허용을 제공 = 신뢰성 높음
- 두 배의 저장 공간 = 비용이 두 배 = 공간효율이 나쁨
- 저장속도는 변함 없음
중요한 데이터
를 저장하기에 적합함
-
RAID 5 개요
- RAID1의 데이터 안전성 + RAID0처럼 공간 효율성
- 최소한 3개 이상의 하드디스크
- 오류가 발생할 때는
패리티
를 이용해서 데이터를 복구
-
RAID 5 특징
- 어느 정도의 결함 허용을 해 주면서 저장 공간의 효율도 좋음
- 디스크의 개수 -1의 공간을 사용
- 디스크 2개가 고장 나면 복구 못함
-
RAID6
- RAID6 방식은 RAID5 방식이 개선된 것
- 공간 효율은 RAID5보다 약간 떨어지지만, 2개의 디스크가 동시에 고장이 나도 데이터에는 이상이 없도록 하는 방식
- RAID6의 경우에는 최소 4개의 디스크 필요
- 공간 효율은 RAID5보다 약간 떨어지는 반면에 데이터에 대한 신뢰도는 좀더 높아지는 효과
- 성능은 RAID5에 비해 약간 떨어진다.
LVM 개념
-
LVM 주요 기능
- 여러 개의 하드디스크를 합쳐서 한 개의 파일시스템으로 사용하는 것으로 필요에 따라서 나눌 수 있다.
- 예로 2TB 용량의 하드디스크 2개를 합친 후에 다시 1TB와 3TB로 나눠서 사용할 수 있다.
-
용어
- Physical Volume(물리 볼륨) : /dev/sda1, /dev/sdb1 등의 파티션
- Volume Group(볼륨 그룹) : 물리 볼륨을 합쳐서 1개의 물리 그룹으로 만드는 것
- Logical Volume(논리 볼륨) : 볼륨 그룹을 1개 이상으로 나눠서 논리 그룹으로 나눈 것
쿼터(Quota) 개념
-
파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것
-
파일시스템을 /
로 지정하는 것보다는, 별도의 파일시스템을 지정해서 해당 부분을 쓰도록 하는 것이 좋음
-
/
파일시스템을 많은 사용자가 동시에 사용하게 되면, 페도라 서버를 운영하기 위해서 디스크를 읽고 쓰는 작업과 일반 사용자가 디스크를 읽고 쓰는 작업이 동시에 발생하므로 전반적으로 시스템의 성능이 저하됨
CentOS의 bash 셀
- 기본 셸은 bash(Bourne Again Shell)
- bash 셸의 특징
- Alias 기능(명령어 단축 기능)
- History 기능(위/아래 화살표키)
- 연산 기능
- Job Control 기능
- 자동 이름 완성 기자 기능(탭키)
- 프롬포트 제어 기능
- 명령 편집 기능
- 셸의 명령문 처리 방법
ex) rm -rf /mydir
환경 변수
echo $환경변수이름
으로 확인 가능
export 환경변수 = 값
으로 환경 변수의 값을 변경
셸 스크립트 프로그래밍
- C언어와 유사하게 프로그래밍이 가능
- 변수, 반복문, 제어문 등의 사용이 가능
- 별도로 컴파일하지 않고 텍스트 파일 형태로 바로 실행
- vi나 gedit으로 작성이 가능
- 리눅스의 많은 부분이 셸 스크립트로 작성되어 있음
실행 방법
sh <스크립트 파일>
로 실행
chmod + x <스크립트 파일>
명령으로 실행 가능 속성으로 변경한 후에, "./<스크립트파일> 명령으로 실행
변수의 기본
- 변수를 사용하기 전에 미리 선언하지 않으며, 변수에 처음 값이 할당되면서 자동으로 변수가 생성
- 모든 변수는
문자열(String)
로 취급
- 변수 이름은 대소문자를 구분
- 변수를 대입할 때
=
좌우에는 공백이 없어야 함
변수의 입력과 출력
$
문자가 들어간 글자를 출력하려면 ''로 묶어주거나 앞에 ₩
를 붙임.
- ""로 변수를 묶어줘도 된다.
숫자 계산
- 변수에 대입된 값은 모두 문자열로 취급
- 변수에 들어 있는 값을 숫자로 해서
+, -, *, /
등의 연산을 하려면 expr을 사용
- 수식에 괄호 또는 곱하기는 그 앞에 꼭 역슬래쉬를 붙임
텔넷 서버 개요
- 오랫동안 전통적으로 사용되어 온 원격 접속 방법
- 보안에 취약
- 리눅스 서버에 텔넷 서버를 설치하고 나면, 원격지에서 접속할 PC에는 텔넷 클라이언트 프로그램이 필요
- 원격지의 PC에서 접속하게 되면 서버 앞에 앉아서 직접 텍스트 모드로 작업하는 것과 완전히 동일한 효과
텔넷 서버 구축
- 원격지에서 서버 접속할 경우 필요
- 텔넷 서버 설치 과정 요약
텔넷 서버 설치 -> 텔넷 서비스 시작 -> 텔넷 전용 사용자 생성 -> 방화벽 설정 -> 텔넷 서비스 상시 가동 -> 클라이언트에서 접속
yum install telnet-server -> ststemctl start telnet.socket -> adduser 사용자이름 passwd 비밀번호 -> firewall-config -> systemctl enable telnet.socket -> telnet 서버 IP
OpenSSH 서버
- 텔넷과 용도는 동일하지만, 보안이 강화
- 텔넷과 거의 동일하지만 데이터를 전송할 때 암호화 한다는 점이 다름
네임 서버 개요
- 네임 서버 = DNS(Domain Name System)서버
- 도메인 이름을 IP 주소로 변환시켜 주는 역할
캐싱 전용 네임 서버
- PC에서 URL로 IP주소를 얻고자 할 때, 해당하는 URL IP주소를 알려주는 네임 서버를 말함
마스터 네임 서버
- 도메인에 속해 있는 컴퓨터들의 이름을 관리하고, 외부에 해당 컴퓨터의 IP주소를 알려주는 역할
라운드 로빈 방식의 네임 서버
- 여러 대의 웹 서버를 운영해서, 웹 클라이언트가 서비스를 요청할 경우에 교대로 서비스를 실시하도록 하는 방식
메일 서버 개념
E-MAil
송수신에서 사용되는 프로토콜
- SMTP(Simple Mail Transfer Protocol) : 클라이언트가 메일을 보내거나, 메일 서버끼리 메일을 주고 받을 때
- POP(Post Office Protocol) : 메일 서버에 도착되어 있는 메일을 클라이언트로 가져올 때