Logical Volume Manager
Linux 저장 공간을 효율적이고 유연하게 관리하기 위한 Kernel 기능
LVM vs. 기존 방식
LVM 장점
LVM 구성
PV - Physical Volume, 물리적 volume
실제 디스크 장치를 분할한 파티션된 상태
PV는 일정한 크기의 PE( Physical extent )들로 구성
PE - Physical extent, 물리적 확장
PV를 구성하는 일정한 크기 블록
보통 1 PE는 4 MB에 해당
PE와 LE는 1 : 1 대응
VG - Volume Group, 볼륨 그룹
PV들이 모여서 생성되는 단위
사용자는 VG를 원하는 크기로 쪼개서 LV로 만들어 사용
LV - Logical Volume, 논리적 볼륨
사용자가 최종적으로 사용하는 단위
VG에서 필요한 크기로 할당받아 LV 생성
최종적으로 mount하는 대상은 LV
LVM 생성 과정
LVM 적용을 위한 패키지 설치 필요
LVM 패키지 - lvm2
전원 on
BIOS( Basic Input/Output System ) 실행
부트 로더 실행
커널 초기화
systemd 서비스 실행
로그인 shell 실행( CLI 모드 booting ) 및 프롬프트 표시
Linux 최상위 프로세스 - 1번 프로세스
Ubuntu 14.04 버전까지는 initd 프로세스가 1번 프로세스로 사용되었으나 이 후 systemd로 1번 프로세스 변경
배포판에 따라 systemd 프로세스을 1번 프로세스로 변경된 시점에 차이가 존재
initd 에 대한 systemd 차이점
systemd 유닛
systemd 관련 명령
systemctl 명령 - Daemon 프로세스( 서비스 ) 관리 명령
initd 프로세스 사용시에는 service 명령 사용
[ sudo ] systemctl [ 옵션 ][명령] [<유닛명>]
관리자 권한으로 실행
systemctl - 전체 유닛 출력
systemctl -a - 전체 유닛 출력
systemctl -t service - service 유닛 전체 출력
systemctl status cron.service - cron service 유닛 상태 출력 - 유닛 상태 확인
service <서비스명> status
service cron status - cron service 상태 확인, initd 기반 service 확인 명령
sudo systemctl stop cron.service - cron.service 유닛 정지
sudo systemctl start cron.service - cron.service 유닛 시작
sudo systemctl restart cron.service - cron.service 유닛 재시작
런레벨( run-level )
booting 방법에 대한 기본 설정
- sudo systemctl set-default multi-user.target
-> 기본 booting 방식을 CLI 로 설정
- sudo systemctl set-default graphical.target
-> 기본 booting 방식을 GUI 로 설정
target 변경
sudo systemctl isolate multi-user( runlevel3 )
sudo systemctl isolate graphical( runlevel5 )
background에서 동작하면서 특정 서비스 제공하는 프로세스( 사용자와 상호작용을 수행하지 않는다. )
Linux 환경에서 특정 서비스 제공을 담당하는 프로세스를 데몬( daemon )이라 한다.
데몬 동작 방식
독자형( standalone ) 데몬
시스템 background에서 서비스별로 동작
초기 동작 속도가 빠르다
자주 사용하는 서비스가 아니라면 자원 낭비 요인이 있다.
슈퍼 데몬
평소에는 슈퍼 데몬만 동작하다가 서비스 요청이 들어오면 슈퍼 데몬이 해당 서비스 제공 데몬을 실행
처음 서비스 응대시에 독자형 데몬에 비해 응답 속도가 느릴 수 있으나 자원의 효율적인 사용에 장점
네트워크 사용하는 서비스가 슈퍼 데몬 형식
inetd - UNIX 슈퍼 데몬명
xinetd - ubuntu 슈퍼 데몬명( 보안 기능 포함 )
pstree 명령 - 프로세스 계층 구조 확인
Linux 주요 데몬
sshd - 원격 접속 서비스 제공
httpd - 웹 서비스 제공
ftpd - FTP 서비스 제공
nfs - 네트워크 파일 시스템
crond - 주기적으로 예약된 명령 실행 서비스
lpd - 프린트 서비스
ntpd - 시간 동기화 서비스
Linux 환경에서 Application( program ) 설치 방법
Application source를 download 또는 복사 하여 직접 compile 과정을 통해 설치
Application package 파일을 download 또는 복사하여 직접 package를 이용한 설치
- Application package 파일에는 해당 Application 설치를 위해 필요한 의존성 파일을 포함해서 제공
- Debian 계열 package 파일
.deb 파일
패키지 관리 명령 - dpkg 명령으로 설치, 제거, 업그레이드 관리 수행
- Redhat 계열 package 파일
.rpm 파일
패키지 관리 명령 - rpm 명령으로 설치, 제거, 업그레이드 관리 수행
각 배포판에서 운영하는 repository( 원격 저장소 )를 통하여 원하는 Application package를 download 설치 - 인터넷 연결 필요, 일반적으로 사용하는 방법
Debian 계열
apt 명령
Redhat 계열
yum 명령
dpkg 명령
Debian 계열 패키지 관리 명령
.deb 패키지 파일 설치, 삭제, 업그레이드, 정보 제공
apt 명령
apt-cache 명령
APT 캐시( 패키지 데이터베이스 ) 에서 정보 검색
apt-get 명령
패키지 관리 명령
온라인 repository로 부터 패키지 download 및 설치, 삭제, upgrade등의 관리 수행
Linux booting 후나 패키지 설치전에 항상 sudo apt-get update 명령을 통해 새로운 패키지 정보 확보후 필요한 패키지 설치
ssh 데몬 설치
sudo apt-get update
sudo apt-get install openssh-server
또는 sudo apt-get install -y openssh-server
systemctl status sshd.service -> 서비스 실행유무 확인