새싹 11일차(리눅스)

고유진·2024년 5월 28일

새싹

목록 보기
9/9

1. Lvm

- 논리볼륨 장점(특징)

  1. 사용하는 저장장치의 크기를 유연하게 사용 가능(확장성)
  2. 디스크 교체 작업에서 수월할 수 있음
  3. 실제 장치 하나의 크기보다 더 크게 사용 사능(여러 장치 연결)
  4. RALD / 스냅샷 기능들을 지원
  • PV : 물리적인 실제 장치를 의미(파티션/디스크)
  • VG : 물리 볼륨(PV)들의 집합
  • LV : 실제 사용할 논리적인 단위 (VG 범위 안에서 생성)
  • PE(LE) : 물리(논리) 볼륨의 최소 단위(기본 값=4MB)

2. 논리볼륨 관리

1. 논리볼륨 생성 과정

[root@rocky9 ~]# fdisk /dev/sdd   
[root@rocky9 ~]# pvcreate /dev/sdd10   
[root@rocky9 ~]# vgcreate test-vg /dev/sdd10      
[root@rocky9 ~]# lvcreate -n test-lv -L 1G test-vg    
[root@rocky9 ~]# mkfs -t xfs /dev/test-vg/test-lv      
[root@rocky9 ~]# mount /dev/test-vg/test-lv /mnt/lvm    

2. 논리볼륨 삭제

[root@rocky9 ~]# umount /mnt/lvm         
[root@rocky9 ~]# lvremove /dev/test-vg/test-lv      
[root@rocky9 ~]# vgremove test-vg                   
[root@rocky9 ~]# pvremove /dev/sdd10              
[root@rocky9 ~]# fdisk /dev/sdd                   

3. 논리볼륨 확장 (+볼륨그룹 확장)

[root@rocky9 ~]# pvcreate /dev/sdd11             
[root@rocky9 ~]# vgextend test-vg /dev/sdd11       
[root@rocky9 ~]# lvextend -L +100M /dev/test-vg/test-lv -r 

4. 볼륨그륨 축소

[root@rocky9 ~]# pvcreate /dev/sde1   
[root@rocky9 ~]# vgextend test-vg /dev/sde1      
[root@rocky9 ~]# pvmove /dev/sdd10              
[root@rocky9 ~]# vgreduce test-vg /dev/sdd10    
[root@rocky9 ~]# pvremove /dev/sdd10            
[root@rocky9 ~]# fdisk /dev/sdd     

3. 논리볼륨 실습

가상머신 초기화 후 실습합니다.
/dev/sdb , /dev/sdc , /dev/sdd 장치 3가지를 사용합니다.

  1. sdb 장치에서 10G 크기의 파티션을 하나 만들고 /mnt/partition 디렉토리에 영구마운트 하세요. (파일시스템은 xfs 로 합니다.)
 fdisk /dev/sdb
 vim /etc/fstab
 mount -a
 mount | grep sdb*
  1. sdb 장치에서 8G 크기의 파티션을 생성하고 swap공간으로 활성화 (영구)
vim /etc/fstab
mkswap /dev/sdb2
swapon -a
swapon -s
  1. sdb , sdc 두개의 장치는 전체크기를 하나의 파티션으로 생성하고 각 파티션들을 exam-vg 라는 이름의 볼륨으로 생성
fdisk /dev/sdb
fdisk /dev/sdc
vgcreate exam-vg /dev/sdb3 /dev/sdc1
  1. exam-lv 라는 논리볼륨을 /mnt/lvm 디렉토리에 영구마운트 ( 파일시스템은 xfs , 논리볼륨 크기는 20G )
lvcreate -n exam-lv -L 20G exam-vg
lvmdiskscan
vim /etc/fstab
mkfs -t xfs /dev/exam-vg/exam-lv
mount -a
lsblk
  1. “Test LVM” 라는 문자열이 저장된 파일 ( test.txt )
echo "Test LVM" > test.txt
  1. sdd 장치 전체크기를 파티션 생성 후 exam-vg 에 추가 (확장)
fdisk /dev/sdd
vgextend exam-vg /dev/sdd1
pvs
  1. sdb 장치의 데이터를 옮겨주세요.
pvmove /dev/sdb3
  1. sdb 장치를 제거 (볼륨그룹에서도 빼고, 물리볼륨/파티션 까지 삭제)
fdisk /dev/sdb
vgremove exam-vg
  1. exam-lv 라는 논리뷸륨의 크기를 30G 로 확장
lvextend -L 30G /dev/exam-vg/exam-lv -r
  1. 모든 것을 제거
fdisk /dev/sdc
fdisk /dev/sdd

4. 논리관리

1. 개념

  • 로그란 시스템의 이벤트를 기록하는 것
  • 리눅스 시스템에서는 systemd-journald 와 rsyslogd 데몬들이 로그를 처리
  • 확인 시 journal 메시지는 journalctl 명령어로 확인
  • syslog 메시지는 파일을 직접 열어서 확인
  • rsyslog는 메시지 저장 시 /etc/rsyslog.conf 파일에 의해 분류 및 저장

2. syslog 실습

  1. rsyslogd 데몬이 처리하는 파일들을 하나하나 열어보세요.
    (/etc/rsyslog.conf 파일 참고)
cat /etc/rsyslog.conf
  1. 각 파일별로 이벤트 발생 시간이 최근인 10개의 메시지들을 확인하세요.
    (각 메시지는 /root/xxx-recent 라는 이름으로 저장해보세요.
    -> ex. /var/log/messages 의 최근 메시지들은 /root/messages-recent 로 저장)
[root@rocky9 ~]# tail -10 /var/log/messages > /root/messages-recent
[root@rocky9 ~]# tail -10 /var/log/secure > /root/secure-recent
[root@rocky9 ~]# tail -10 /var/log/cron > /root/cron-recent
[root@rocky9 ~]# tail -10 /var/log/spooler > /root/spooler-recent
[root@rocky9 ~]# tail -10 /var/log/maillog > /root/maillog-recent
  1. vagrant 사용자로 sudo -i 명령어를 사용해 root 사용자로 변경해보고 그 메시지를 찾아보세요.
cat /var/log/secure
  1. crontab 으로 작업을 예약하고 실행내역을 로그로 확인해보세요.
    (작업은 1분단위로 현재시간을 /tmp/time 이라는 파일에 저장하도록 하세요.)
[root@rocky9 ~]# mkdir /tmp/time
[root@rocky9 ~]# crontab -e
* * * * *  date >> /tmp/time
  1. 앞으로 local1 이라는 종류 중 emergency 등급의 메시지는 /var/log/mylog 라는 파일에 저장하도록 설정해보세요.
vi /etc/rsyslog.conf
local1.emerg         /var/log/mylog
  1. (분류가 잘 되는지 logger 명령어로 테스트 해봅시다.)
service rsyslog restart
touch /var/log/mylog
logger -p local1.emerg "this is mylog"
cat /var/log/mylog

3. journal 실습

  1. journalctl 명령어로 전체 저널메시지를 확인해보세요.
journalctl
  1. 최근의 15개의 메시지를 확인해보고 /root/journal-recent 파일에 저장해보세요.
journalctl -n 15
  1. 현재 시스템 시간을 확인해보고 해당 날짜 하루 전 아침
    6시 이후 발생한 메시지만 확인해보세요.
journalctl --since '2024-05-27 06:00:00' 
  1. 해당 날짜 하루 전 아침 6시 이후부터 아침 8시 이전까지 발생한 메시지만 확인해보세요.
journalctl --since '2024-05-27 06:00:00' --until '2024-05-27 08:00:00'
  1. vagrant 사용자에 의해 발생한 메시지만 확인해보세요.
cat /etc/passwd
journalctl _UID=1000

0개의 댓글