개인공부

리눅스 - 데몬이란? 본문

리눅스

리눅스 - 데몬이란?

풀스택개발 2018. 7. 20. 13:43

데몬이란?

- 실제 서비스를 제공하는 프로세스의 집합



데몬의 동작유형

- xinetd 모드와 Standalone 모드

xinetd (eXtended Internet Services Daemon / 슈퍼데몬 )

- 외부의 요청이 있을때만 반응하기때문에 반응속도가

  느리지만, 리소스 소모는 적다.

  

Standalone

- 슈퍼데몬에 의지하지 않고 요청이 있을때 신속히

  반응 할 수 있지만, 항상 커널에 상주 하고 있기

  때문에 리소스 소모가 크다.

  

데몬의 종류

- network 네트워크 관련된 정보를 설정을 활성화 하는 데몬 

- iptables 패킷 필터링 방화벽 데몬

- postfix   메일 전송 역할을 하는 메일서버 데몬



리눅스마스터 1,2 급 시험용 데몬

ALSA - 사운드 관련 데몬

CUPS - 프린터 관련 데몬

SANE - 스캐너,캠 관련 데몬



-----------------------------------------------------------------

파일 시스템


리눅스에서 지원하느 파일 시스템의 종류

 - EXT3, EXT4, SWAP, XFS, NFS, ISO9660 

 

EXT4 ( Extended File System ) 

 - 1EB의 최대 파일 시스템 사이즈와 16TB의 최대 파일 사이즈 지원

 - 서브 디렉토리 64000개 지원, 파일은 약 40억개 지원

 

Block Group

- 슈퍼 블록

- 그룹 디스크립터 테이블

- 블록 비트맵

- 아이노드 비트맵

- 아이노드 테이블

- 데이터 블록

 

inode 

소유자, 소유그룹 정보

파일 접근 권한 정보

타임 스탬프

파일의 종류, 크기, 하드링크 수

파일이 위치한 데이터 블록의 주소

Disk의 타입의 종류

1. IDE (Integrated Drive Electronics)

2. SATA  (Serial Advanced Technology Attachment)

3. SCSI  (Small Computer System Interface)

4. SAS   (Serial Attachment SCSI)

- 크기가 작고 안정적이며 성능이 우수하여 서버용으로

  자주 사용되는 디스크 타입이다.

  

파티션 (Partition)

- 하나의 물리적인 하드 디스크를 여러 개의 논리적인

  디스크로 나누는 것

  



리눅스 파티션

- 주(Praimary) 파티션과 확장(eXtended)파티션, 그리고 논리(Logic)

  파티션으로 구분된다.

- 디스크 하나당 주 파티션은 4개까지만 생성이 가능

  그 이상의 파티션이 필요할 경우에는 확장 파티션을 생성 한 후에

  다시 논리 파티션으로 나누어 최대 12개까지 생성 할 수 있다.

- 파티션 명칭

ex) /dev/sda /dev/sdb

1개의 디스크 1개의 파티션

/dev/sda1

1개의 디스크 3개의 파티션

/dev/sda1

/dev/sda2

/dev/sda3

2개의 디스크에 각 2개의 파티션

1번 디스크 sda (SCSI, SAS 타입 디스크)

/dev/sda1 /dev/sda2 hda (IDE타입,SATA타입 디스크)

2번 디스크

/dev/sdb1 /dev/sdb2


df (Disk Free) - 파일 시스템 및 파티션별 자세한 용량 정보 확인

-a 모든 파일 시스템 출력 

-h 용량을 읽기 쉽게 출력

-i inode 사용정보를 출력


du (Disk Usage) - 디렉토리나 파일의 용량을 확인

-h 용량을 읽기 쉽게 출력

-s 요약

#fdisk (파티션 생성 / 수정)

#fdisk [옵션] [장치명]

-l 디스크 파티션 정보 출력

파티션 생성 실습

1. 시스템 종료 후, 오늘 날짜로 스냅샷

2. 디스크 1GB 추가

3. fdisk 확인

#fdisk -l

4. 디스크 사용을 위한 설정 과정

파티션 생성 

(1) #fdisk [장치명]

#fdisk /dev/sdb

d   delete a partition

l   list known partition types

m   print this menu

n   add a new partition

p   print the partition table

q   quit without saving changes

t   change a partition's system id

w   write table to disk and exit


Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            1         130     1044193+  83  Linux


1GB - 총 4개의 파티션으로 설정

주파티션   200MB /dev/sdb1

주파티션   200MB /dev/sdb2

확장파티션 

논리파티션 200MB /dev/sdb5

논리파티션 나머지전부 /dev/sdb6

/dev/sdb1               1          26      208813+  83  Linux

/dev/sdb2              27          52      208845   83  Linux

/dev/sdb3              53         130      626535    5  Extended

/dev/sdb5              53          78      208813+  83  Linux

/dev/sdb6              79         130      417658+  83  Linux





mkfs (make filesystem)

#mkfs [옵션] [장치명]

-t 파일 시스템의 타입을 지정

#mkfs -t ext4 /dev/sdb1

#mkfs -t ext4 /dev/sdb2

#mkfs -t ext4 /dev/sdb5

#mkfs -t ext4 /dev/sdb6

마운트 - 특정 디렉토리에 파일시스템을 탑재하는것

       - 리눅스는 파일 단위로 모든 장치를 관리하기때문

     에 새롭게 만든 파일 시스템을 사용하기 위하여

추가한 디스크 장치를 임의의 디렉토리에 마운트하여

사용해야한다.

 

마운트 포인트

- 파일시스템을 디렉토리 연결시켜야하는데, 이때 연결되는

  디렉토리르 의미함

  

mount [장치명] [마운트포인트]

# mount /dev/sdb1 /DISK_1

# mount /dev/sdb2 /DISK_2

# mount /dev/sdb5 /DISK_3

# mount /dev/sdb6 /DISK_4



#vi /etc/fstab 

(1) 파일시스템 장치명

- 장치명

- UUID (범용 고유 식별자 / Universal Unique IDentifier)

#blkid

UUID=5d678039-b1a7-49df-8540-455cae233370 /DISK_1 ext4 defaults 0 0

UUID=1edbe3c3-a09e-418b-af85-1e9985f12574 /DISK_2 ext4 defaults 0 0

UUID=86a06f88-03fe-4c39-8675-f117f7d110c7 /DISK_3 ext4 defaults 0 0

UUID=180c5f29-89a2-4dd3-a44d-89d604b4bfbd /DISK_4 ext4 defaults 0 0

장치명

/dev/sda

/dev/sdb

/dev/sdc 

(2) 마운트 포인트

(3) 파일시스템 타입

(4) 마운트 옵션

- defaults (rw, suid, dev, exec, auto, nouser, async)

(5) 덤프 생성 유무

- 덤프(백업) 생성         1

- 덤프 파일 생성하지 않음 0

(6) 파일시스템 검사 유무 (#fsck - 파일시스템 검사)

0 - 무결성 검사 하지 않음

1 - 우선순위 1위를 뜻하며, 대부분 / 파티션에 설정 

2 - 우선순위 2위를 뜻하며, 1순위 검사 후 검사

/DISK_1 ext4 defaults 0 0

/DISK_2 ext4 defaults 0 0

/DISK_3 ext4 defaults 0 0

/DISK_4 ext4 defaults 0 0  




디스크추가 -> 파티션 생성 -> 파일 시스템 생성 

    -> 마운트 추가 -> 마운트 -> UUID확인 -> fstab 등록


1. 스냅샷으로 초기화

2. 3GB 디스크 1개 추가

3. 3개의 파티션 으로 생성 (#fdisk)

   주파티션 1G

   주파티션 1G

   주파티션 나머지 전부

   

4. 파일 시스템 생성 ext4 (#mkfs)

5. 마운트 포인트 /TEST_1 (#mkdir)

/TEST_2

/TEST_3

6. 마운트 확인 (#mount) 

7. 부팅 시 자동으로 마운트 하도록 fstab 등록, 단 UUID 이용 (#blkid)

8. 리부팅 후 마운트 확인    (#df -h, #mount)



========================================================================


RAID (Redundant Array Of Inexpensive/Independent Disk)

RAID 구성 방식

Hardware

- RAID 컨트롤러 내부의 하드웨어 및 펌웨어에 의해 구현

- 독자적인 메모리와 프로세서를 가지고 있다.

- 안정적이나 대부분 고가

Software

- 운영체제에서 지원하는 방식

- 저렴한 비용으로 H/W RAID와 동일하게 구현이 가능

- 속도나 신뢰성은 H/W RAID보다 떨어진다.


Linear RAID

- 여러개의 디스크를 하나의 디스크처럼 사용하도록 만든다.

- 첫 번째 디스크 완전히 채워지면 순차적으로 다음 디스크에 저장을한다.

    - 하나의 디스크에서 입/출력 작업이 실행된다.

- 성능면에서 별다른 장점이 없음

- 하나의 디스크가 장애가 발생하면, 전체 볼륨을 사용할 수 없게 된다.

- 모든 디스크의 총량과 RAID볼륨의 용량이 같다.

- 2개의 이상의 디스크를 필요로 한다.

작업 준비

스냅샷 초기화

1. 디스크 추가

0.25GB HDD * 9EA

2. 디스크 추가 확인

#fdisk -l // /dev/sda를 제외한 /dev/sdb ~/dev/sdj 까지

                       9개 디스크 추가 확인 

3. 파티션 생성

Linear Raid 사용 디스크 (/dev/sdb, /dev/sdc)

#fdisk /dev/sdb

새로운 파티션 n

주파티션 p

파티션번호 1

파티션 크기 처음부터 마지막까지 전부 사용

파티션 타입 변경 't'

파티션 타입 설정 'fd'

4. 파티션 생성 확인

#fdisk -l /dev/sdb

  Id  System

  fd  Linux raid autodetect

#fdisk -l /dev/sdc

  Id  System

      fd  Linux raid autodetect

5. RAID 구성




#mdadm 

(1) RAID 생성

#mdadm --create [장치명] --level [레이드레벨] --raid-devices=[디스크 수] [장치명] [장치명]

(2) RAID 확인

#mdadm --detail --scan mdadm --detail [장치명]


(3) RAID 적용

#mdadm --detail --scan > /etc/mdadm.conf

#mdadm --create /dev/md9 --level=linear --raid-devices=2 /dev/sdb1 /dev/sdc1

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md9 started

6. 파일 시스템 생성

#mkfs -t ext4 /dev/md9

7. 마운트 포인트 생성

#mkdir /RAID-LINEAR

8. 마운트

#mount /dev/md9 /RAID-LINEAR

9. UUID 확인

#blkid /dev/md9

10. fstab 등록

UUID=b744ef8f-2382-4c88-af5f-c48e94739d5b /RAID-LINEAR ext4 defaults 0 0

11. RAID 확인

#mdadm --detail /dev/md9

    #df -h

12. RAID 적용

#mdadm --detail --scan > /etc/mdadm.conf





RAID 0 

- 스트파이핑(striping) RAID라고도 불린다.

- 데이터를 여러 개의 디스크에 나누어서 쓰고 읽어 들임으로서

  데이터를 중복해서 기록하지 않기때문에 가장 높은 입/출력 성능을 제공한다. (가장 큰 장점!)

- RAID 0의 용량은 모든 DISK 총 용량과 같다.

- 최소 2개의 DISK를 필요로 한다.

- 데이터 보호 기능이 없다. (Fault Tolerant 기능 제공 X)

문제 

ex) 1TB 디스크 1개 LINEAR -> 데이터를 저장할 수 있는 공간은 ? 11TB

   10TB 디스크 1개 RAID 0 -> 데이터를 저장할 수 있는 공간은 ? 2TB

1. 파티션 생성

#fdisk /dev/sdd - 주파티션 1개 타입 FD

#fdisk /dev/sde - 주파티션 1개 타입 FD

2. 파티션 생성 확인

#fdisk -l /dev/sdd Linux raid autodetect

#fdisk -l /dev/sde Linux raid autodetect


3. RAID 구성

#mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdd1 /dev/sde1

4. 파일 시스템 생성

#mkfs -t ext4 /dev/md0

5. 마운트 포인트 생성

#mkdir /RAID-0

6. 마운트

#mount /dev/md0 /RAID-0

7. UUID 확인

#blkid /dev/md0

8. fstab 등록

UUID=bf0ce7e4-4beb-42fb-8c41-954bc5b2579d /RAID-0 ext4 defaults 0 0

9. RAID 확인

#mdadm --detail /dev/md0

#df -h

10. RAID 적용

#mdadm --detail --scan > /etc/mdadm.conf

'리눅스' 카테고리의 다른 글

리눅스 - 쿼터명령어  (0) 2018.07.21
리눅스 - 파일 시스템의 종류  (0) 2018.07.21
리눅스 - setGID  (0) 2018.07.20
리눅스 - 사용자 계정관리4  (0) 2018.07.19
리눅스 - 사용자 계정관리3  (0) 2018.07.16
Comments