구름 쿠버네티스

구름 쿠버네티스 전문가 과정 6기 - 11일차

jwlish 2023. 7. 14. 15:33
반응형

리뷰 (Review)

더보기

프로세스 (Process)

  • 실행 중인 프로그램
  • 프로세스 식별 번호 (Process ID) 를 통해 관리
  • Kernel에서 PID를 이용하여 프로세스를 관리
  • PID는 Kernel에 의해 관리되므로 임의로 부여할 수 없음
  • 프로세스 관리는 계층적으로 관리 (Tree 구조)
  • 모든 프로세스는 부모 프로세스 식별 번호가 있고, 이는 PPID (Parents PID)로 표시
  • 부모 프로세스의 역할
    • 자식 프로세스 생성
    • 자식 프로세스 종료에 따른 처리 - Kernel에 종료 알림
  • 프로세스 상태에 따른 종류
    • 정상 프로세스
    • 고아 프로세스
    • 좀비 프로세스
  • 프로세스 실행 형태에 따른 종류
    • foreground 프로세스
    • background 프로세스
    • daemon 프로세스
  • ps - 현재 동작중인 프로세스 확인 명령
    • ps [옵션]
ps 명령어와 각 옵션
  • grep - 파일 내용 또는 결과 내용에 대하여 패턴으로 검색
    • grep [옵션] <검색 패턴> <파일>
grep 이용하여 검색
  • pstree - 프로세스 계층 형식으로 출력
    • pstree [옵션]

시그널 (signal)

  • 프로세스 간 통신 방법의 한 형태
  • kill - 시그널 발생 명령
    • kill [옵션, 시그널 번호] <PID>

top

  • 전체 프로세스 실시간 실행 상태 모니터링

foreground / background 프로세스

  • foreground 프로세스 생성 및 전환
    • shell에서 명령 실행
    • fg <%작업번호> - background 프로세스를 foreground 프로세스로 전환
  • background 프로세스 생성 및 전환
    • shell에서 명령 실행 시 명령 마지막에 & 추가해서 background로 실행
    • ctrl + z 키 입력을 통해 background로 전환
    • bg <%작업번호> - background로 전환
  • jobs - 현재 shell의 background 작업 목록 출력

Linux 개요

 

프로세스 관리

crontab

  • 정해진 시간에 정해진 동작 반복 실행
  • crontab [옵션] <파일명>
    • crontab 파일 편집 명령
    • -e : crontab 파일 편집
    • -l : crontab 파일 내용 출력
    • -r : crontab 파일 삭제
  • crond (daemon Process)에 의해 crontab 파일 내용을 참조하여 자동으로 정해진 작업 수행
  • 실습 예시) 30 * * * * /usr/bin/ls -F / > ~jwlish/cron.out
    • 매시간 30분마다 자동으로 /usr/bin/ls -F / > ~jwlish/cron.out 명령 실행
    • 30 : 분 (0 ~ 59)
    • * : 시 (0 ~ 23)
    • * : 일 (1 ~ 31)
    • * : 월 (1 ~ 12)
    • * : 요일 (0 ~ 6)
    • /usr/bin/ls -F / > ~jwlish/cron.out : 작업 내용
    • * 는 설정하지 않는다는 의미
  • crontrab -e 명령으로 crontab 파일에 정해진 시간에 작업할 내용을 등록
  • crontab 파일 위치 - /var/spool/cron

crontab 초기 화면, 30 * * * *은 실습용으로 추가


Linux 파일 시스템

 

파일 시스템 (File System)

  • 파일과 디렉토리 집합을 구조적으로 관리하는 체계
  • 어떤 구조를 구성하여 파일이나 디렉토리를 관리하느냐에 따라 다양한 형식의 파일 시스템이 존재
  • 보조 기억 장치(HDD, SSD, ...)에 구성하는 형식
  • Linux는 보조 기억 장치 외에도 I/O Device를 사용할 때 해당 장치에 적합한 파일 시스템 적용
  • Linux 파일 구조
    • inode block - 파일 정보 (inode 번호, 유형, 권한, 소유자, ...)
    • data block - 실제 데이터 저장, 기본 크기 4kb
  • Linux 파일 종류
    • 일반 파일 - 일반 데이터 저장 파일
      • inode block + data block
      • 일반 파일 하나의 data block 내용
        • inode 번호 - 파일 식별자
        • 파일 유형
        • 파일 권한
        • 파일 소유자
        • 파일 소유자 그룹
        • 파일 생성 / 수정 날짜 시간
        • 파일 크기
    • 디렉토리 파일 - 디렉토리 정보 저장 파일
      • 디렉토리 계층 구조
        • Linux 전체 파일과 디렉토리를 어떤 구조로 정리하고 관리할 것인가를 정의한 것
        • 실제 파일이 저장되어있는 파일 시스템은 디렉토리 계층 구조에 연결되어야 사용자가 접근 가능
      • 디렉토리 파일은 계층 구조상의 내용을 저장한 파일
      • inode block + data block 일반 파일과 구조는 같지만 data block의 내용이 상이
      • 디렉토리 파일 하나의 data block 내용
        • inode 번호
        • 파일명
    • 특수 파일
      • 디바이스 파일
        • 디바이스 연결 목적의 파일, 데이터 저장 기능은 없다.
        • Linux는 모든 디바이스에 연결하고 사용하기 위해서는 해당 디바이스 연결을 위한 파일이 필요하다.
        • /dev 디렉토리에 저장되어 있다.
        • 디바이스 파일 종류
          • character 디바이스 파일 - 입출력을 character 단위로 수행하는 디바이스 연결
          • block 디바이스 파일 - 입출력을 block 단위로 수행하는 디바이스 연결
        • 디바이스 파일은 파일 크기가 없고, 디바이스 여러 개를 식별하기 위한 번호 부여
          • major 번호 - 장치 식별 번호
          • minor 번호 - 해당 장치가 여러 개인 경우 식별 번호
      • 파이프 파일 - 프로세스 간 데이터 공유를 위한 파일
      • 소켓 파일 - 프로세스 간 데이터 공유를 이용하여 socket을 이용할 때 사용하는 파일
  • 저널링
    • 데이터를 디스크에 기록하기 전에 먼저 저널에 수정 사항을 기록 - 복구 정보
    • 디스크에 데이터를 기록하기 전에 문제가 생긴 경우 저널의 기록을 보고 빠르게 복구 가능
  • ext4
    • Extended File System 약자
    • Linux 기본 (표준) 파일 시스템
    • ext2와 ext3 호환 유지
    • 1EB (Exa byte, 1EB = 1,024 * 1,024TB) 이상의 볼륨과 16TB 이상 파일 지원
    • 서브 디렉토리 수가 64,000까지 지원
    • 온라인 조각 모음 지원
    • https://ko.wikipedia.org/wiki/Ext4
 

ext4 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. ext4개발사Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh 등정식 명칭4차 확장 파일 시스템Fourth extended file system도입안정

ko.wikipedia.org

 

  • XFS
    • eXetended File System 약자
    • 64bit 파일 시스템
    • 최대 16EB까지 지원
    • CentOS7에서는 기본 파일 시스템으로 사용, ext4도 병행 사용
  • Linux 지원 파일 시스템
    • msods - MS-DOS 파티션 사용을 위한 파일 시스템
    • iso9660 - CD-ROM / DVD 표준 파일 시스템, 읽기 전용
    • nfs - netwrok file system, 원격 서버 디스크 연결 시 사용하는 파일 시스템
      • NAS - Network 이용하여 HDD / SSD 공유
    • ufs - unix file system, 유닉스 표준 파일 시스템
    • vfat - Windosw 95, 98, NT 지원 파일 시스템
      • Windows에서 NTFS 이전에 사용하던 파일 시스템 - FAT
      • 요즘은 FAT을 개선한 FAT32 사용
    • hpfs - HPFS 지원 파일 시스템
    • ntfs - Windows NTFS 지원 파일 시스템
    • sysv - 유닉스 시스템 V 지원 파일 시스템
    • hfs - 맥 OS HFS 지원 파일 시스템
  • Linux 가상 파일 시스템 (Virtual File System)
    • 메모리에 생성되어 관리되는 파일 시스템
    • 특수 용도로 사용, 임시 사용인 경우 활용
    • 필요시에만 사용하고 없어지는 파일 시스템
    • swap - swap 영역을 관리하기 위한 파일 시스템
    • tempfs
      • Temporary File System
      • 메모리에 임시 파일 저장 목적으로 사용
      • /tmp 디렉토리의 파일 시스템
    • procs
      • proc 파일 시스템
      • /proc 디렉토리의 파일 시스템
      • Linux Kernel 상태 정보를 파일로 저장하여 관리
    • ramfs - 램 디스크 지원 파일 시스템
    • rootfs
      • Root File System
      • / (root) 디렉토리 파일 시스템
      • 시스템 초기화 및 관리 목적

proc 명령

 

  • Linux 설치 시 필수 파일 시스템 (최소)
    • rootfs - / (root) 디렉토리 구성
    • swap - swap 용도
  • /proc/filesystems - 현재 시스템이 지원하는 파일 시스템
    • nodev - 해당 파일 시스템이 블록 장치와 연결되어 있지 않은 가상 파일 시스템을 의미
    • /proc/<숫자> - 개별 Process에 대한 정보 저장 디렉토리
    • /proc/<문자> - Linux Kernel에서 관리하는 일반적인 정보를 저장하는 디렉토리 / 파일

Linux 디스크 관리

 

Linux 파일 시스템 마운트

  • Linux System에서 외부 장치를 연결하기 위해서는 마운트 작업을 통해 연결 작업 수행 후 사용할 수 있다.
    • 마운트(mount) - 파일 시스템을 디렉토리 계층 구조의 특정 디렉토리와 연결
    • 마운트 포인트(mount point) - 디렉토리 계층 구조에서 파일 시스템이 연결되는 디렉토리
  • /etc/fstab - Linux System Booting 시 연결할 외부 장치 연결 정보 저장 파일
    • 장치명 : UUID
    • 마운트 포인트 : / (root)
    • 파일 시스템 종류 : ext4
    • 옵션 : error=remount-ro 0
    • 덤프 관련 설정 : 0
    • 파일 점검 옵션 : 1
    • UUID
      • Universally Unique IDentifier, 범용 고유 식별자
      • 로컬 시스템과 다른 시스템을 유일하게 구분하기 위한 128bit 숫자
      • 시스템의 정보와 시간 정보를 조합하여 랜덤으로 생성
      • UUID로 지정된 장치는 /dev/disk/by-uuid 디렉토리에서 확인 가능
    • 마운트 포인트 - 장치가 연결된 디렉토리
    • 옵션 - 파일 시스템 속성
    • 덤프 관련 설정
      • 0 - 덤프 불가
      • 1 - 덤프 가능
    • 파일 점검 옵션
        0 - 부팅 시 fsck 안 함
      • 1 - 루트 파일 시스템
      • 2 - 루트 파일 시스템 이외

/etc/fstab
/dev/disk/by-uuid

 

[ 기본정리 ] 마운트

파일 시스템이 디렉토리 계층 구조와 연결되지 않으면 사용자가 해당 파일 시스템에 접근할 수 없다. 이렇게 파일 시스템을 디렉토리 계층 구조의 특정 디렉토리와 연결하는 것을 마운트라고

rrhh234cm.tistory.com


새로운 디스크 (HDD or SSD) 연결 절차 → 관리자 권한으로 수행

  • 새로운 디스크 파티션 생성 → fdisk
  • 생성된 파티션에 파일 시스템 생성 → mkfs
  • 마운트 → mount, 장치 연결 시 사용
  • lsblk - Linux 디바이스 정보 확인
    • Linux 디스크 장치 이름
      • IDE 컨트롤러 연결된 디스크 : /dev/hd로 시작
      • SCSI나 SATA 컨트롤러 연결된 디스크 : /dev/sd로 시작
      • 최근에는 IDE/SCSI/SATA 구분 없이 /dev/sd로 시작
      • 컨트롤러에 연결된 디스크 순서에 따라 알파벳 추가
        • /dev/sda - 첫 번째 디스크
        • /dev/sdb - 두 번째 디스크
        • /dev/sdc - 세 번째 디스크
        • ...
      • 하나의 디스크에 파티션 구분에 따라 숫자 표기
        • /dev/sda - 첫 번째 디스크 전체
        • /dev/sda1 - 첫 번째 디스크의 첫 번째 파티션
        • /dev/sda2 - 첫 번째 디스크의 두 번째 파티션
        • /dev/sdb - 두 번째 디스크 전체
        • ...

lsblk


  • fdisk - 디스크 파티션 생성
    • fdisk [옵션] <장치명>
      • -l : 파티션 테이블 출력
      • 파티션 종류
        • primary 파티션 - 개수 제한이 있다.
        • extended 파티션 - 원하는 수만큼 확장 가능
      • sudo fdisk /dev/sdb 실행 후
        • 새로운 파티션 생성 시 n (add a new partition)
          • 파티션 번호
          • First Sector
          • Last Sector
        • 파티션 테이블 선택 p (primary 파티션), e (extended 파티션)
        • 파티션 저장 w

fdisk 이용 하드디스크 추가


  • mkfs - 파일 시스템 생성
    • mkfs [옵션] <장치명(장치 파일)>
      • -t <파일 시스템> : 생성할 파일 시스템
        • sudo mkfs -t ext4 <장치명(장치 파일)>
        • sudo mkfs.ext4 <장치명(장치 파일)>

mkfs 파일 시스템 생성


  • mount - 파일 시스템 마운트
    • mount [옵션] <장치(Device) 파일> <마운트 포인트>
      • 현재 마운트 된 장치 출력
        • 장치명
        • 마운트 포인트
        • 파일 시스템 종류
        • 마운트 옵션
      • -t <파일 시스템> : 마운트 할 장치의 파일 시스템
        • mount -t iso9660 /dev/cdrom <마운트 포인트> : CD-ROM 연결
        • mount -t vfat /dev/sdc1 <마운트 포인트> : Windows용 USB 메모리
        • mount /dev/sdc1 <마운트 포인트> : Linux용 USB 메모리
        • mount -t <NFS 서버 주소>:/<NFS 서버 측 디렉토리> <마운트 포인트> : NFS 디스크
      • 일반적으로 /mnt 디렉토리에 마운트 포인트 설정

HDD 마운트


  • umount - 마운트 해제
    • umount <마운트 포인트>
  • df - 디스크 사용량 확인, mount 정보 확인 가능
    • df [옵션]
      • -a : 모든 파일 시스템 사용량 확인
      • -h : 디스크 사용량 출력
      • -T : 파일 시스템 종류 출력
  • du - 사용자나 디렉토리 별 사용량 확인
    • du [<디렉토리>]
  • chown - 파일이나 디렉토리의 소유자 및 그룹 변경
    • chown user[:group] <파일 또는 디렉토리>

chown 소유권 변경


TIF

오늘 배운 부분은 VirtualBox에 Ubuntu 하나를 더 설치해서 몇 번 더 해보면 될 것 같다.

학교 다닐 때는 학교 컴퓨터를, 회사 다닐 때는 회사 컴퓨터를 관리하면서

컴퓨터 포맷을 몇 번 해봤고 파티션을 몇 번이나 나눠봤는가...

Windows로 하는 건 이제 눈 감고도 하는데 Linux도 그만큼 하면 눈 감고도 하지 않겠나 하는 생각이 든다.

강사님께서도 말씀하셨듯 자주 쓰이지는 않을 것 같다.

그래도 알아둬야 하는 부분이니 몇 번 반복 실습하고 잘 정리해두어야 할 것 같다.

 

주말 동안 구글 스터디잼 쿠버네티스 중급 수료했다.

정확히는 수료'만' 했다. 영어로 블라블ㄹ@)*#&! 하기도 했고, 내가 따라가기는 어려운 강의지 않았나 생각한다.

그래도 내가 정리할 수 있는 부분 정리하고, 9월 중순에 심화 과정이 있던데 그것도 참여해봐야겠다.

해본 것과 안 해본 것은 차이가 분명히 있으니까.

 

 

2022. 08. 13 에 작성된 글입니다.

반응형