1. fstab - 부팅시 자동으로 마운트 할 대상을 정의하는 시스템 기본 설정파일
리눅스가 부팅과정 중 4단계 Init 프로세스 단계 (/etc/inittab 파일에 정의된 순서에 따라서 시스템 초기화) 에서 /etc/fstab 파일에 정의된 모든 파일시스템을 마운트 함.
■ 설정 방법
=> /dev/md127 (raid1 한 장치)을 , /raid0 (디렉토리)에, ext4(파일 시스템 종류) default(옵션 기본),
1 ( 백업 가능하게 설정), 2 (우선순위 2 – 루트부분 검사 후 검사진행)
[파일시스템장치명] [마운트포인트] [파일시스템종류] [옵션] [dump관련설정] [파일점검옵션]
■ 첫번째 항목에 파일시스템 장치명 입력
=> /dev/sdb1 , /dev/sdb2 등과 같이 입력
■ 두번째 항목에 마운트 시켜줄 디렉토리 경로 지정
=> /, /home, /backup 등과 같이 지정
■ 세번째 항목에 파일시스템 종류 입력
=> ext, ext2. ext3. ext4. iso9660, nfs 등
■ 네번째 항목에 마운트 옵션 입력
=> default (기본값)
=> auto (부팅시 자동마운트)
=> exec ( 실행파일이 실행되는 것을 허용) 등
■ 다섯째 항목에 백업 가능/불가능
=> 0 - 백업 불가능하게 설정
=> 1 - 백업 가능하게 설정
■ 여섯째 항목에 fsck에 의한 무결성 검사 우선순위 옵션 설정 입력
=> 0 - 무결성 검사 x
=> 1 - 우선순위 1위(대부분 루트부분 설정)
=> 2 - 우선순위 2위(루트부분 검사 후 검사진행)
=> raid를 구성한 md0(device) 이름이 md127로 바뀌는 현상으로 uuid로 등록
※ uuid : 네트워크 상에서 서로 모르는 개체들을 식별하고 구별하기 위한 고유한 이름
■ 파일시스템 속성(옵션)
default - rw, nouser, auto, exec, suid 속성을 모두 가지는 속성으로 가장 일반적으로 사용
auto - 부팅시 자동으로 마운트 됨 (↔ noauto)
noexec - 실행파일이 실행되는 것을 허용하지 않음 (↔ exec)
nosuid – SetUID 와 SetGID의 사용을 허용하지 않음 (↔ suid)
ro – 읽기 전용으로 사용
rw – 읽고 쓰기 사용
user – 일반 계정 사용자들도 마운트를 할 수 있음 (↔ nouser)
discard – 더 이상 유효하지 않은 Data가 존재하는 sector가 있음을 알려, SSD의 수명을 연장
※ SetUID - 사용자가 실행 파일 소유자로 실행 파일을 실행하고 디렉토리의 동작을 변경 가능
※ SetGID - 사용자가 그룹 권한으로 실행 파일을 실행하고 디렉토리의 동작을 변경 가능
■ fstab 잘 못 작성 했을 때
부팅 중 마운트를 시도하다 실패 했다는 메세지가 뜨면서 중간에 멈춤
root 패스워드를 입력 하면 repair filesystem 쉘로 로그인 됨
vi /etc/fstab => 파일 내용 수정 안됨
mount -o remount,rw / => 읽기 전용을 읽기 쓰기 로 바꿈
이후 vi /etc/fstab 실행후 내용 수정 및 저장 후 재부팅
■ 원격에서 확인하는 법
umount -a 로 마운트 해제 후 ( -a 옵션은 /etc/fstab에 명시된 파일 시스템)
mount -a 로 다시 마운트 시킬 때 오류가 발생하면 오류 발생 부분 수정 후 저장
2. Fastboot – 커널 자체에서 보다 빠른 부팅을 하기 위한 프로세스
설정 방법
vi /boot/grub/grub.conf 나 vi /boot/grub/menu.lst 파일 실행
=> 커널 라인 끝에 fastboot 삽입
fastboot를 사용하는 이유
서버 장애가 발생하여 리부팅이 진행 되었을 때
디스크 size가 큰 경우 부팅과정에서 fsck가 오랜시간 소요되어 사용하는 옵션
3. 파일 시스템 종류
■ ext – 초기 리눅스에서 사용되었던 파일 시스템 (현재 사용x)
ext2 – 현재도 사용되고 있으며 긴 파일명을 지원하는 것이 특징
ext3 – 저널링 파일시스템으로서 ext2에 비해 파일시스템 복구기능과 보안부분을 크게 향상
ext4 - 16TB 까지만 지원하던 ext3 타입보다 훨씬 더 큰 용량지원, 삭제파일복구 기능 이 있음
swap – 스왑 파일 시스템으로 스왑 공간으로 사용
XFS – 큰파일에 강하고 저널링 지원, 온라인 조각모음과 명령어 한줄로 백업과 복구가 가능
※저널링 이란? - 주 파일 시스템에 변경사항을 반영하기 전에, 저널안에 생성되는 변경사항을
추적하는 파일 시스템
■ fdisk - 리눅스의 디스크 파티션을 생성, 수정, 삭제 할 수 있는 유틸리티
디스크 또는 파티션 최대 크기 : 약 2.2TB
fdisk -l => 파티션 확인
fdisk /dev/xvda => 실행
Partition number(1-4): 1 => patition 번호 선택(최대 4개 까지 생성가능)
Firsy cylinder (1-17849, default 1): 1 =>시작 실린더 번호 입력 (기본 1)
Last cylinder or +size or +sizeM or +sizeK (1-17849, default 17849):17849 =>마지막 실린더 번호 입력 (기본 17849) , +1G ( 용량 설정)
Command (m for help): w => 설정 저장
=> xvda를 xvda6(1G) 와 xvda7(1G) 으로 파티션 나눔
mkfs.ext4 /dev/xvda6 => mkfs 명령어 이용하여 파일시스템 ext4 형식으로 생성
■ parted
2TB 이상의 고용량 디스크의 파티션 구성
설정과 동시에 디스크에 기록됨
파티션을 생성, 삭제, 축소, 확장이 가능
■ mount : 특정 디렉토리에 파일시스템을 탑재 하는것
주요 옵션
-a : /etc/fstab에 명시된 모든 파일 시스템을 마운트 할때 쓰이는 옵션
-t fs_type : 파일 시스템의 유형을 지정하는 옵션, 지정하지 않으면 /etc/fstab 파일 참조
test : 아무런 옵션 없이 mount 명령어만 실행했을 경우( 마운트된 정보 확인)
-o : 마운트할 때 추가적인 설정을 적용할 때 사용하는 옵션
-o 주요 항목
ro : 읽기 전용 마운트
rw : 일기 쓰기 모드 마운트(기본값)
remount : 해당 파티션을 다시 마운트 (파티션 정보를 바꾸었을 때 사용)
loop : loop 디바이스로 마운트 ( CD-ROM 이미지 파일인 iso를 마운트해서 사용할 때 사용)
noatime : 시스템의 작업을 줄여 성능 향상 가져옴 (파일이 변경되기 전까지 Access time 변경되지 않음
umouint : 마운트 해제
옵션
-n : /etc/mtab 파일을 갱신하지 않고 마운트 해제
-v : 자세한 정보를 출력
-t : 파일시스템 의 종류
-at : /etc/mtab파일에 명시된 모든 파일시스템 중 유저가 입력한 파일시스템만 마운트 해제
-a : /etc/mtab파일에 명시된 모든 파일시스템의 마운트 해제
■ mount 설정
=> /parted 폴더 만듦
=> /dev/sdb1을 /parted 라는 디렉토리에 마운트함
※ mount [device] [directory]
■ swap 을 4G 에서 6G 로 수동으로 변경
swap - 리눅스에서 물리적 메모리(RAM)의 용량이 가득 차게될 경우 사용되는 여유 공간
swap 만들기
mkdir /swap =>swap 파일 저장할 디렉토리 생성
dd if=/dev/zero of=/swap/swapfile bs=1024 count=2097152
=> swapfile 파일 생성 (2G)
mkswap /swapfile => swap 파일로 포멧
swapon swapfile = > swapfile 즉시 활성화
swapon -s => 확인
vi /etc/rc.d/rc.local => 리부팅시에도 적용되게 설정 하는 파일
=> swapon /swapfile 추가
3. 각각의 RAID 레벨의 이해
■ RAID 0
Concatenate 방식 (두 개 이상의 디스크에 데이터를 순차적으로 쓰는 방법)
장점 : 디스크 기본 공간이 부족할 때 데이터는 보존하며 여분의 디스크를 볼륨에 포함하여 용량 증설 가능
단점 : RAID 0 의 특성상 디스크 중 하나의 디스크라도 장애가 발생하면 복구가 어렵고, 패리티(오류검출기능)를 지원하지 않음
Stripe 방식 (두 개 이상의 디스크에 데이터를 랜덤하게 쓰는 방법)
장점 : 데이터를 사용할 때 디스크 수 만큼 분할하여 쓰기 때문에 속도 향상
단점 : Stripe를 구성할 시 기존 데이트는 모두 삭제
■ RAID 1(Mirror) => 자주 쓰는 방식
Mirror 볼륨 내의 패리티를 사용하지 않고 디스크에 같은 데이터를 중복 기록하여 데이터를 보존, 적어도 동알한 용량의 디스크 두 개 필요
장점 : 볼륨 내 디스크 중 하나의 디스크만 정상이어도 데이터 보존(안정성 높음)
단점 : 용량이 절반으로 줄고, 쓰기 속도가 느려짐
■ RAID 2
에러 체크와 수정을 할 수 있도록 Hamming code를 사용, 하드 디스크에서 ECC를 지원 안함(별도의 드라이브에 저장)
ECC를 위한 드라이브가 손상될 경우 문제 발생, RAID 4가 나오면서 거의 사용
■ RAID 3, RAID 4
RAID 0, RAID 1의 문제점을 보완하기 위한 방식
기본적으로 RAID 0과 같은 striping 구성(성능 보안, 디스크 용량 온전히 사용)
RAID 3 : 데이터를 바이트 단위로 나누어 디스크에 동등하게 분산 기록, 동기화 필수
RAID 4 : 데이터를 블록 단위로 나눠 기록 (RAID 3보다 많이 사용)
■ RAID 5
별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점을 보완하는 방식
장점 : 1개의 하드가 고장 나더라도 남은 하드들을 통해 데이터 복구 가능
■ RAID 6
다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 복구할 수 있게 설계됨
RAID 5보다 데이터의 안정성을 고려
■ RAID 1+0 , RAID 0+1
RAID 1+0 : 각각 미러링 한 볼륨을 스트라이빙 한 것.
RAID 0+1 : 스트라이핑한 볼륨 두개를 서로 미러링한 것.
공통점 : 가용량이 같고, 속도가 같다.
차이점 : 볼륨이 깨지고, 볼륨을 재구성하는 방법이 다르다
1. soft RAID 구성 및 마운트
RAID 구성 ( mdadm --create [볼륨명] --level [레이드레벨] --raid-devices=[디스크 갯수][장치명]....[장치명]
mdadm --create /dev/md0 --level=1 --raid-device=2 /dev/xvda6 /dev/xvda7 => raid1 생성
mdadm --detail /dev/md127 => 상세정보 확인
mkdir /raid0 => raid0 디렉토리 생성
2. 문제 생긴 디스크와 soft RAID 구성한 disk 교체
예) mdadm 명령에 --fail 옵션을 주어 장애를 발생 시킴
=>마찬가지로 /dev/xvda6 상태가 불안정 함
=>dev/xvda6 를 제거 함
=> 교체할 디스크(/dev/xvda6) 추가
cat /proc/mdstat => RAID 정보 확인
※ 주의할 점 : 디스크 교체 시 남아 있는 디스크의 파티션 정보와 새로 추가할 디스크의 파티션 정보가 같아야함
4. syslog
- 로깅 메세지 프로그램의 표준
- 다양한 프로그램들이 생성하는 메세지를 저장, 그리고 이용해서 다양한 분석이 가능하도록 로그 메세지 제공
- 프로그램 뿐만 아니라 device와 같은 장비들도 syslog를 사용 할 수 있도록 제공
- 관리자들은 device 장비에서 로그 메세지들을 통해 문제사항이나 성능 등을 확인할 수 있음
- 컴퓨터 시스템의 관리, 보안 알림, 일반적인 정보, 분석, 디버깅 메시지 제공
- 중앙 저장소에 다양한 타입의 시슴템들의 로그데이터의 저장소로 사용되기도 함
■ syslog 실행단계
시스템 부팅 → /etc/syslog.conf파일 읽음 → /etc/syslog.pid에 기록 → syslog.conf에 정의된 대로 기록 → cron에 의해 반복 수행
syslogd demon
시스템에서 발생하는 오류 메시지를 구별하고, 각각의 오류 메시지에 따라서 처리 방법을 결정하는 역할을 담당
/etc/rc2.d/S74syslog 스크립트에 의해 /etc/syslog.conf 파일을 참조하여 실행
로그 수준(level)
emergenecy(0) : 시스템이 전면 중단되는 패닉 상태, 전체 공지가 필요한 상황
alert(1) : 즉각적인 조치가 필요한 상황(시스템 데이터베이스 오류)
critical(2) : 하드웨어 등의 심각한 오류가 발생한 상황
error(3) : 일반적인 에러/오류가 발생한 상황
warning(4) : 경고 메시지
notice(5) : 에러/오류는 아니지만 관리자의 조치가 필요한 상황
informaiton(6) : 의미 있는 정보 관련 메시지
debug(7) : 디버깅용 메시지
■ logrotate
로그파일을 관리해주는 소프트웨어
로그 순환은 시스템 관리에 사용되는 자동화 된 프로세스로, 로그 파일이 너무 오래되거나 너무 커지면 로그 파일이 압축, 이동, 이름 바꾸기 또는 삭제됨
5. 파일체크시스템(fsck) – 리눅스의 파일 시스템의 무결성을 검사하기 위한 도구
옵션
-a : 명령 수행에 대한 확인 질문 없이 무조건 수행
-r : 명령 수행에 대한 확인 질문을 함
-A : /etc/fstab에 정의되어 있는 모든 파일 시스템을 체크
-P : -A 옵션을 사용할 때, 루트 파일시스템을 다른 파일시스템과 병렬로 함께 체크
-R : -A 옵션을 사용할 때, 루트 파일시스템은 체크하지 않고 건너 뜀
-N : 실행을 하지 않고 단지 어떤 것이 실행 되어지는지 보여줌
-T : 검사를 시작할 때 제목을 보여주지 않음
-s : fsck동작을 시리얼화 함
-V : 실행되는 각 파일시스템용 명령을 포함해 자세한 출력을 수행
-t fstype : 점검할 파일시스템의 유형을 지정함
-f : 파일시스템이 이상이 없더라도 강제적으로 파일 시스템을 점검할 때 사용
특정 프로세스가 해당 파티션을 사용중일 때에는 umount 가 되지 않는다. 그때의 확인 방법은 ?
예) /export/home 디렉토리에 이상 이 있음
fuser -cu /export/home => /export/home 를 누가 사용하고 있는지 확인
fuser -ck /export/home => kill signal을 보내 /export/home 에 있는
모든 프로세서 종료
umount /export/home=> umount 설정
6. xinetd 란 ? (슈퍼데몬관리)
- 오픈 소스 슈퍼 서버 데몬으로 시스템에서 돌아가며 인터넷 기반 연결을 관리
- inetd 보다 더 강력한 보안을 제공
- 네트워크서비스에 대한 접근제어, login 에 대한 접근제어 역할을 함
설정 확인 (vi /etc/xinetd.conf)
instances : 동시에 서비스할 수 있는 서버의 최대 개수 지정
log_type : 어떠한 형태로 로그 기록을 저장할 것인가를 지정
syslog : 지정된 facility에서 syslog로 로그기록이 전달
file : 지정된 크기를 가진 파일명에 로그 기록이 저장
log_on _success : 서버가 시작될 때와 끝날 때 기록될 것을 지정
log_on_failure : 서버가 리소스 부족으로 시작될 수 없거나 설정 파일내의 규칙에 의한 접근이 거부되었을 때 기록될 값들을 지정하는 속성
cps : 초당 요구수, 초당요구수 이상 발생시 제한시간
only_from : 특정서비스를 이용 가능한 원격호스트를 설정
per_source : 똑같은 ip 주소로 로컬서비스에 접속할 수 있는 최대 접속수를 지정해준다.
no)access : 서버 서비스를 이용하지 못하도록 서버에 접근하지 못하게 할 원격 호스트의 주소를 지정해준다.