1. 논리 볼륨 관리
논리 볼륨의 장점
: 디스크 크기보다 큰 볼륨 생성 가능
: 볼륨 내 데이터를 그대로 두고 볼륨 확장 가능
: RAID 생성 가능
: 스냅샷 기능 사용 가능
2. 논리 볼륨 구성
물리 볼륨 (Physical Volume) |
↓ |
볼륨 그룹 (Volume Group) |
↓ |
논리 볼륨 (Logical Volume) |
관련 명령어 정리! (논리 볼륨 생성 순서대로)
lvmdiskscan | 논리 볼륨을 구성하기 위한 파티션 정보 확인 |
pvcreate partition1 partition2 ... | 물리 볼륨(PV) 생성 // 앞 두 자리를 잘 보면 반복됨 |
pvremove physical-volume1 physical-volume2 ... | 물리 볼륨 삭제 |
vgcreate volume-group-name physical-volume1 physical-volume2 physical-volume3 ... | 볼륨 그룹 (VG) 생성 // 순서 중요! -s 옵션 사용하여 볼륨그룹의 PE(physical extent, 1~256MB)를 지정할 수 있다. |
vgremove volume-group-name | 볼륨 그룹 삭제 |
lvcreate volume-group-name syntax) lvcreate -L 100 -n testlv_1 vg_test |
논리 볼륨(LV) 생성 -l 생성할 논리 볼륨의 크기 지정 (PE 개수로) -L 생성할 논리 볼륨의 크기 지정 (사이즈 지정) -n 논리 볼륨의 이름 지정 |
lvremove logical-volume-path | 논리 볼륨 삭제 |
# 논리 볼륨 생성 시 RAID 형태 지정 가능
RAID-0 | 스트라이프 볼륨 | 몇 개의 물리 볼륨을 하나처럼 쓰기! syntax) lvcreate -i 3 -n strip_lv vg_test 3개의 물리 볼륨을 하나처럼 쓰겠다 |
RAID-1 | 미러 볼륨 | 물리볼륨 전체 데이터를 복사해두고 쓰기 장)하드웨어 이상이 발생했을 대 데이터 손실 없이 정상적으로 사용 가능 단) 비용 많이 들고, 성능 향상도 없고,, -m [복사 할 볼륨 갯수] |
RAID-5 | 스트라이프 + 미러볼륨 | 스트라이프 방식을 기반으로 패리티를 생성. 최소 3개 이상의 물리 볼륨 필요 |
RAID-6 | '' | RAID-5와 거의 동일하지만, RAID-6 볼륨은 두 개의 패리티를 생성하여 물리 볼륨이 두 개 가지 손상되어도 대응 가능. 최소 4개 이상의 물리 볼륨 필요 |
RAID-10 | 중첩 RAID | 미러 볼륨으로 구성된 걸, 다시 스트라이프로 쓰기 // 혹은 스트라이프로 구성된 걸 미러 볼륨 // 등 중첩해서 사용 |
씬 프로비저닝 | 논리 볼륨을 생성할 때, 실제 디스크에 할당되는 크기가 아닌 가상의 크기를 사용하는 방식. 볼륨 그룹에서 지정한 사이즈 전체를 바로 할당받지 않고, 실제로 사용할 크기 만큼만 사이즈를 할당받아 사용하다가, 특정 임계치에 도달하면 다시 볼륨의 사이즈를 증가시킴. 예를 들어, 구글이 사용자마다 15GB의 구글 드라이브를 제공한다. 이 때 처음부터 15GB를 할당하는 것이 아니라, 일부만 할당해 둔다. 이후 사용자의 사용량이 할당된 사이즈에 도달하게 되면, 이 대 최대 사용 사이즈를 15GB로 늘려줄 수 있다. 볼륨 그룹에서 lvcreate -T -L 100M vg_test/thinpool 로 씬 풀을 생성해준다. 이후 lvcreate -T -V 10T thin_lv vg_test/thinpool 실제 100M 크기의 볼륨이지만, 1T 사이즈를 생성해줄 수 있다. |
3. 논리 볼륨 요소 관리
pv (물리 볼륨) |
+ | display // 확인 extend // 확장 reduce // 축소 move // 이동 |
ex) pvdisplay, vgextend 이런 식으로 !
4. systemd
PID 1번을 사용하며 부팅될 때 최초로 실행되는 프로세스. system deamon이 실행되면 다른 프로세스들이 순차적으로 실행되며 시스템 부팅이 완료된다.
systemd에서는 시스템을 관리할 때 systemd 유닛을 사용한다.
유닛의 유형은 service / target / automount / mount / device / path / scope / slice / snapshot / socket / swap / timer 등이 있다.
위치는 /etc/systemd/system , /run/systemd/system, /usr/lib/systemd/system 이 세 곳에 저장된다.
#systemd 관련 명령어 정리 ( systemctl 사용)
systemctl 은 system control 같쥬? systemd 유닛을 관리하는 명령이다.
man systemctl 로 관련 옵션들을 볼 수 있다. 아래에는 유용해 보이는 걸 정리해뒀다.
systemctl start 서비스명 | 서비스 시작 |
systemctl stop 서비스명 | 서비스 중지 |
systemctl status 서비스명 | 서비스 상태 확인 |
systemctl restart 서비스명 | 재시작 |
systemctl enable 서비스명 | 활성화 |
systemctl disable 서비스명 | 비활성화 |
systemctl list-units | 유닛의 실행(active) 확인 -t 옵션: --type 지정 -a 옵션: not-found 혹은 inactive 상태의 유닛도 출력 |
systemctl list-unit-files | 유닛의 활성화(enabled) 상태 확인 |
systemctl list-dependensies 유닛명 | 특정 유닛의 의존성 확인 |
5. 로그 관리
systemd시스템에서 로그는 rsyslogd 와 systemd-journald 두 데몬에 의해 관리된다. 시스템에서 이벤트가 발생하면 모두 systemd-journald로 전달된다. 이는 /run/log/journal 디렉토리에 journal 데이터 파일로 저장된다.
/var/log 디렉토리에는 syslog가 수집된다. 이는 텍스트 파일로 저장됨.
journalctl 사용 ★
systemd-journald 는 시스템 부팅이 시작할 때 부터 발생하는 모든 이벤트를 수집해서 바이너리 형태의 저널 데이터로 저장한다. 따라서 cat 이나 tail 로는 볼 수 없고 journalctl 명령을 사용
journalctl -r | 최근에 발생한 저널 데이터 출력 |
journalctl -p err | 에러 로그 확인하기 |
journalctl -f | 실시간 확인 |
journalctl --since '2020-07-14 14:00:00' --until '2020-07-14 15:00:00' |
특정 날짜 확인 |
journalctl -o verbose | 자세히 보기 |
journald 의 로그는 전원이 꺼지면 사라짐. 이를 저장하기 위해서는 아래와 같이 설정해 줄 수 있음
로그 저장하기
[root@localhost ~]# mkdir /var/log/journal
[root@localhost ~]# ls -ld /var/log/journal/
drwxr-xr-x. 3 root root 46 Jul 14 16:21 /var/log/journal/
[root@localhost ~]# chown root:systemd-journal /var/log/journal/
[root@localhost ~]# chmod g+s /var/log/journal/
[root@localhost ~]# ls -ld /var/log/journal/
drwxr-sr-x. 3 root systemd-journal 46 Jul 14 16:21 /var/log/journal/
// 저널을 재시작한다. 그러면 /run/log/journal 이 사라짐.
// 그리고 /var/log/journal 에 저장됨
[root@localhost ~]# systemctl restart systemd-journald
[root@localhost ~]# ls -l /run/log/journal
ls: cannot access /run/log/journal: No such file or directory
init 부팅은 순차적이라서 오래걸림
systemd 부팅은 더 빠름
systemctl poweroff
systemctl reboot
'[혁신성장 청년인재] 인공지능을 활용한 보안전문가 양성과정' 카테고리의 다른 글
Day9: 리눅스 관리자 | OpenSSH | NTP서버 | 방화벽 관리 (0) | 2020.07.19 |
---|---|
Day8: 리눅스 관리자 | 부트 프로세스| RPM | YUM | 네트워크 관리 (0) | 2020.07.16 |
Day6: 리눅스 관리자 | 디스크 관리 | 파일시스템 및 스왑 메모리 (0) | 2020.07.13 |
Day5: 리눅스 관리 (사용자 및 그룹관리 | 고급 권한 관리 | 작업 스케줄링) (0) | 2020.07.13 |
Day4: 리눅스 기초 정리 + 특강 + 상담 (0) | 2020.07.09 |