2023. 3. 15. 17:51ㆍAWS 기반 데이터분석 처리 고급 SW 클라우드 개발자 양성과정
강사님 이메일
impelin@gmail.com
미니 프로젝트
https://www.data.go.kr/tcs/dss/selectDataSetList.do (데이터 다운로드)
주제
1) 인천광역시 남동구_일별 코로나19 확진자수 현황
https://www.data.go.kr/data/15084724/fileData.do
2) 불법주정차 단속 현황
https://www.data.go.kr/data/15081622/fileData.do
###발표 무조건 필요, PPT 작성 필요, 발표자 따로 PPT 작성 따로 질의응답 따로
###강사님이 제일 추천하는 협업툴 = Notion
-----------------------------
vgdisplay -v ### -v = verbose 자세히 설명해달라
lv create -l 765 vg -n lvm1 ### -l = 절대적으로 값이 줄수도 있고 클수도 있도
df -T | grep vol ### 확인하기
/dev/vg/lmv1 vol (mount 폴더) ext4 (파일) defaults (옵션) 0 (dump 옵션=0은 하지말라)
e2fsck -f /dev/vg/lvm2 (-f 강제적으로, resize 하기 전에 e2fsck -f 먼저 해야함)
resize2fs /dev/vg/lvm2
-------------------------------------------------------------------------------------------
lvreduce -l -255 /dev/vg/lvm2 (255 줄이겠다, 절대적인 수치는 -L, -l 상대적 수정)
lvm 장점: 남는 공간을 통해 meta 정보를 만들 수 있음, resize가 자유로운 유연함이 있음.
lvm 단점: 미러링이 안됨
RAID: 항상 같은 사이즈의 용량이 필요함, 대부분의 하나 RAID가 없음, 최소 4개의 volume이 defaults
항상 umount -> rm-rf 해야함
fdisk /dev/sdb
d(삭제)
w(저장)
파티션 정보 확인 및 삭제
-D = detail
raid1 = mirror volume
spare가 들어있으면 장점이 있음: 계속해서 항상 대기할 수 있음
# df -T | grep md
# rm -rf /md*
# vi /etc/fstab 14번 라인 삭제
# cat /proc/mdstat
# mdadm -S md127 (stop)
# mdadm -S md126 (stop)
# cat /proc/mdstat
###raid1
# mdadm -C -v /dev/md0 -l 1 -n 2 --spare-disk=1 /dev/sdb /dev/sdc /dev/sdd
# (y)
# cat /proc/mdstat
# mdadm -D /dev/md0
# mkfs.ext4 /dev/md0
(y)
#mkdir /md
#mount /dev/md0 /md
# df -T | grep md (mount하고 꼭 확인)
# dd if=/dev/zero of=/md/data1 bs=1M count=800
# mdadm -D /dev/md0
# mdadm /dev/md0 --fail /dev/sdc ###(sdc를 fail을 해버림)
# cat /proc/mdstat ###(recovery가 안됨)
# mdadm /dev/md0 --remove /dev/sdc
# cat /proc/mdstat ###(spare가 사라짐)
# mdadm /dev/md0 --fail /dev/sdd
# cat /proc/mdstat ###(mirror볼륨이여서 U깨져도 괜찮음)
# ls /md/
# mdadm /dev/md0 --remove /dev/sdd
# cat /proc/mdstat
# mdadm /dev/md0 --add /dev/sde ; cat /proc/mdstat (sde를 추가시킴)
# cat /proc/mdstat ##sde가 (2번째 Raid에서 작동함) Recovery작동함
# mdadm /dev/md0 --add /dev/sdc ##sdc가 spare로 작동함, 순서가 바뀜 sdc추
# cat /proc/mdstat
# mdadm /dev/md0 --remove /dev/sdc (spare니깐 삭제가 됨)
# mdadm /dev/md0 --remove /dev/sde (작동중이라 삭제가 안됨)
# mdadm /dev/md0 --fail /dev/sde (일부러 오류를 냄)
# mdadm /dev/md0 --remove /dev/sde (오류내고 지우면 hot removed 됨)
# cat /proc/mdstat
# mdadm /dev/md0 --add /dev/sdd
# cat /proc/mdstat
# mdadm -D /dev/md0
# umount /md (stop전 umount)
# mdadm -S /dev/md0 (Stop)
### raid 5
# mdadm -C -v /dev/md0 -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd (-l 5 (level5) , -n 3최소 3개)
# (y)
# cat /proc/mdstat
# mdadm -D /dev/md0 (-D = detail)
# mkfs.ext4 /dev/md0
# (y)
# mount /dev/md0 /md
# df -T | grep md (확인)
# dd if=/dev/zero of=/md/data1 bs=1M count=1500
# cat /proc/mdstat
# mdadm /dev/md0 --fail /dev/sdd
#cat /proc/mdstat
#mdadm /dev/md0 --remove /dev/sdd
# cat /proc/mdstat
# mdadm /dev/md0 --add /dev/sde
# cat /proc/mdstat
# cat /proc/mdstat
# umount /md
# mdadm -S md0
### md(meta, physical 볼륨이 아님, 내가 맘대로 지어도 댐) mdadm=물리적인게 아님, md device
### 하드웨어를 소프트웨어적으로 구현하는 것? (Raid)
### raid 1+0 (제일 좋은 Raid) (md0 과 md1은 미러볼륨이니깐 합쳐서 스트라이프 볼륨으로 만듬)
#mdadm -C -v /dev/md0 -l 1 -n 2 /dev/sdb /dev/sdc
# (y)
# mdadm -C -v /dev/md1 -l 1 -n 2 /dev/sdd /dev/sde
# (y)
# cat /proc/mdstat
# mdadm -C -v /dev/md2 -l 0 -n 2 /dev/md0 /dev/md1
# (y)
# cat /proc/mdstat
# mkfs.ext4 /dev/md2 (마지막 것만 만들면 됨)
# mount /dev/md2 /md
# df -T | grep md ###4개의 하드를 추가 2.0G, 미러볼륨이 합쳐짐, b가 c미러링(1GB) d가 e미러링(1GB)
# mount | grep md
# dd if=/dev/zero of=/md/data1 bs=1M count=1500 ###빠름 (동시에 2개를 한꺼번에 실행함, 안정적임 백업+디스크 손상 X)
# mdadm -D /dev/md2
# ll /dev/disk/by-uuid
# blkid | grep md
/dev/md125: UUID=68c5a05d-5b70-46ba-8ba0-18c4b29cfa57
# vi /etc/fstab
13 UUID=e927f91a-7d4c-4855-a346-c49c4e117c0b /md ext4 defaults 0 2
(내 UUID, vi /etc/fstab 맨 마지막 줄에 입력, 주석풀)
# shutdown -r now
# df -T | grep md (보여야 하는데 안보임, 아마 주석을 안풀어서 그런 것 같음)
# cat /proc/mdstat
# umount /md ###항상 맨 마지막에 umount하기를
# rm -rf /md
# cat /proc/mdstat
###평가
#vi /etc/fstab
13 #UUID= /work ext4 defaults 0 2
# mdadm -S md125 (stopped md125)
# mdadm -S md126 (stopped md126)
# mdadm -S md127 (stopped md127)
# cat /proc/mdstat
# shutdown -h now
work안에 allnew와 lost and found만 있으면 됨
###파일 시스템 추가 방법: Legacy
1. 디스크 접속
2. fdisk -l
3. fdisk /dev/sdX -> 파티션 생성
4. mkfs.ext4 /dev/sdX1 -> 파일 시스템 생성
5. mkdir /temp -> 마운트 포인트 생성
6. mount /dev/sdX1 /temp -> 마운트
7. vi /etc/fstab 에 추가
### 파일 시스템 추가 방법: LVM (가장 추천, 유연하게 사용가능)
1. 디스크접속
2. fdisk -l
3. fdisk /dev/sdX -> 파티션 생성, 타입 변경 (t -> 8e)
4. pvcreate /dev/sdX -> PV 생성
5. vgcreate vg /dev/sdX -> VG 생성
6. vgchange -a y vg -> VG활성화
7. vgdisplay vg -> Free PE 확인
8. lvcreate -l 255 vg -n lvm -> LV생성 (1gb)
9. mkfs.ext4 /dev/vg/lvm -> 파일 시스템 생성
10. mkdir /temp -> 마운트 포인트 생성
11. mount /dev/vg/lvm /temp -> 마운트
12. vi /etc/fstab 에 추가
/dev/vg/lvm /temp ext4 defaults 1 1
##파일시스템 추가 방법: RAID(mdadm)
1. 디스크 접속
2. fdisk -l
3. mdadm -C -v /dev/md0 -l 1 -n 2 /dev/sdb /dev/sdc ### -l 1 은 미러볼륨
4. cat /proc/mdstat
5. mkdir /temp -> 마운트 포인트 생성
6. mount /dev/md0 /temp -> 마운트
7. ls -l /dev/disk/by-uuid => UUID값 확인
8. vi/et
레이드는 조건이 같은 용량의 같은 디스크가 , 용량이 같은데 파티션을 왜 나눔?
파티션을 나누는 이유: 용량이 다르니깐
rwsr-xr-x (u + s > user에게 setuid줌)
(g + S -> group에게 gid를 줌)
런레벨이 0 - 1 - 2 - 3 - 4 - 5 -6 순서로 켜지고 / 6 - 5 - 4 - 3 - 2 - 1 순서로 꺼짐
### inetd vs stand-alone
구동속도 : 느리다 vs 빠르다
서버 부하: 적다 vs 많다
xinetd vs vsftpd, httpd, sendmail......
systemd
1) 소켓 기으로 동작하여 ~와 호환성을 유지한다.
2) 쉘과 독립적으로 부팅 가능
3) 마운트 제어가 가능
4) fsck 제어가 가능
5) 시스템 상태에 대한 스냅숏을 유지한다
6) SeLinux와 통합이 가능하다
-------
[root@ubuntu ~]# systemctl start cron
[root@ubuntu ~]# systemctl status cron
Active: active (running)
[root@ubuntu ~]# systemctl is-active cron
active
***who -r === runlevel (런레벨 확인)
###shutdown(종료 프로세스)
RAM => Disk
Superblock, Kernel -> Disk로 옮겨져야함
#sync
#shutdown
#거의 모든 동작기능들이 /bin/systemctl 에 있음
[root@ubuntu ~]# which halt
/usr/sbin/halt
[root@ubuntu ~]# ls -l /usr/sbin/halt
lrwxrwxrwx 1 root root 14 3월 2 21:58 /usr/sbin/halt -> /bin/systemctl*
[root@ubuntu ~]# which reboot
/usr/sbin/reboot
[root@ubuntu ~]# ls -l /usr/sbin/reboot
lrwxrwxrwx 1 root root 14 3월 2 21:58 /usr/sbin/reboot -> /bin/systemctl*
[root@ubuntu ~]# cd /var/log
[root@ubuntu /var/log]# ls
[root@ubuntu /var/log]# file wtmp
wtmp: data
[root@ubuntu /var/log]# last