[구름 k8s] TIL 1-3-1

Peppie·2022년 8월 16일

0. 프로세스 관리

정해진 시간에 정해진 동작 반복 실행

crontab

정해진 시간에 반복적으로 명령 실행

crond (daemon process)에 의해 crontab 파일 내용을 참조하여 자동으로 정해진 작업 수행

crontab 파일 위치 : /var/spool/cron

crontab [옵션] <파일명>

  • crontab 파일 편집 명령
  • crontab 파일 초기 내용은 주석(comment, #으로 시작)으로만 구성
  • -e : crontab 파일 편집
  • -l : crontab 내용 출력
  • -r : crontab 파일 삭제

crontab 파일 내용

30 * * * * /usr/bin/ls -FR / > ~worker/cron.out

' * '는 설정하지 않는다는 뜻!

  • 30 : 분 (0~59)
  • 첫번째 * : 시 (0~23)
  • 두번째 * : 일 (1~31)
  • 세번째 * : 월 (1~12)
  • 네번째 * : 요일 (0~6)
  • /usr/bin/ls -FR > ~worker/cron.out : 작업 내용

crontab -e

crontab 파일에 정해진 시간에 작업할 내용을 등록, 정해진 시간에 등록된 작업 내용 자동 실행

1. Linux 파일 시스템

File System

  • 파일과 디렉토리의 집합을 구조적으로 관리하는 체계
  • 어떤 구조로 구성하여 파일이나 디렉토리를 관리하느냐에 따라 다양한 형식의 파일 시스템 존재
  • 파일과 디렉토리 관리
  • 보조기억장치(HDD, SSD)에 구성하는 형식
  • Linux는 보조기억장치 외에도 IO 장치 사용시 해당 장치에 적합한 파일 시스템 적용

Linux 파일 시스템

Linux 파일 구조

  • inode block : 파일 정보 -> inode 번호, 권한, 소유자, 파일유형 등
  • data block : 데이터 저장, 기본 크기 (4KB) -> ext4

Linux 파일 종류

일반 파일

일반 데이터 저장 파일; inode block + data block (데이터 저장)

디렉토리 파일

디렉토리 정보 저장 파일

  • 디렉토리 계층 구조

    • Linux 전체 파일과 디렉토리를 어떤 구조로 정리하고 관리할지 정의한 것
    • 실제 파일이 저장된 파일시스템은 디렉토리 계층 구조에 연결되어야 사용자가 접근 가능
  • 디렉토리 계층 구조상의 내용을 저장한 파일

  • inode block + data block

  • 디렉토리 파일 하나의 data block 내용 : 파일 inode 번호 / 파일명

특수 파일

디바이스 파일

  • Linux는 모든 장치에 연결할 때 해당 장치 연결을 위한 디바이스 파일 필요
  • Linux에서 외부장치에 연결해서 사용하기 위해서는 항상 디바이스 파일 필요
  • 디바이스 연결 목적 -> 데이터 저장 기능 X
  • /dev 디렉토리에 저장됨

디바이스 파일 종류

  • character 디바이스 파일
    • 입출력을 character 단위로 수행하는 디바이스 연결
  • block 디바이스 파일
    • 입출력을 block 단위로 수행하는 디바이스 연결
  • 파일 크기 X, 디바이스 여러개 식별을 위한 번호 부여
    • major 번호 : 장치식별번호
    • minor 번호 : 해당 장치가 여러개인 경우의 식별번호

프로세스 간 데이터 공유 (통신)

  • 파이프 파일 : 프로세스 간 데이터 공유를 위한 파일
  • 소켓 파일 : 프로세스 간 데이터 공유를 이용하여 socket 사용시 쓰는 파일

저널링

  • 데이터를 디스크에 기록하기 전 먼저 저널에 수정사항 기록 => 복구 정보
  • 디스크에 데이터를 기록하기 전 문제 발생시 저널의 기록을 보고 빠르게 복구 가능

ext4 (EXTended file system)

  • Linux 기본 (표준) 파일 시스템
  • ext2와 ext3 호환 유지
  • 1 EB (Hexa Byte, 1 EB = 1024 * 1024 TB) 이상의 볼륨과 16 TB 이상 파일 지원
  • 서브 디렉토리 수 64000개까지 지원
  • 온라인 조각 모음 지원

XFS (eXtended File System)

  • 64 bit 파일 시스템
  • 최대 16 EB까지 지원
  • CentOS 7에서는 기본 파일 시스템으로 사용, ext4도 병행 사용

Linux 지원 파일 시스템

  • msdos : MS-DOS 파티션 사용을 위한 파일 시스템
  • iso9660 : CD-ROM, DVD 표준 파일 시스템, 읽기 전용
  • nfs (network file system) : 원격서버 디스크 연결시 사용
    • NAS : Network를 이용하여 HDD/SSD 공유, FTP (파일 공유 프로토콜)
  • ufs (unix file system) : 유닉스 표준 파일 시스템
  • vfat : 윈도우 95/98/NT 지원
    • FAT : Windows의 NTFS 이전 파일 시스템, 요즘은 FAT을 개선한 FAT32 사용
  • hpfs : HPFS 지원
  • ntfs : 윈도우 NTFS 지원
  • sysv : 유닉스 시스템 V 지원
  • hfs : 맥 OS hfs 파일 시스템 지원

Linux 가상 파일 시스템 (Virtual File System)

  • 메모리에 생성/관리되는 파일 시스템
  • 특수 용도 => 임시 사용인 경우 활용
  • 필요시에만 사용하고 없어지는 파일 세스템
  • swap : swap 영역을 관리하기 위한 파일 시스템
  • tempfs (Temporary File System) : 메모리에 임시 파일 저장 목적 ; /tmp 디렉토리
  • proc : proc 파일 시스템 ; /proc 디렉토리 ; Linux 커널 상태정보를 파일로 저장하여 관리
  • ramfs : 랩 디스크 지원
  • rootfs (Root File System) : / (root) 디렉토리 파일 시스템 ; 시스템 초기화 및 관리 목적

Linux 설치시 최소 필수 파일 시스템

  • rootfs : / (root) 디렉토리 구성
  • swap : swap 용도

/proc/filesystems

현재 시스템이 지원하는 파일 시스템

  • nodev : 해당 파일 시스템이 블록 장치와 연결되어 있지 않은 가상 파일 시스템
  • /proc/<숫자> : 개별 프로세스에 대한 정보 저장 디렉토리
  • /proc/<문자> : Linux 커널에서 관리하는 일반적인 정보 저장 디렉토리/파일

2. 디스크 관리

Linux 파일 시스템 마운트

마운트 (mount)

리눅스 시스템에서 외부 장치 연결을 위해서는 마운트 작업을 통해 연결 작업 수행 후 사용 가능

  • mount : 파일 시스템을 디렉토리 계층 구조의 특정 디렉토리와 연결
  • mount point : 디렉토리 계층 구조에서 파일 시스템이 연결되는 디렉토리

/etc/fstab

Linux 시스템 부팅시 연결할 외부장치 연결정보 저장 파일

  • 장치명 : UUID
  • 마운트 포인트 : /
  • 파일 시스템 종류 : ext4
  • 옵션 : error=remount-ro
  • 덤프 관련 설정 : 0
  • 파일 점검 옵션 : 1

UUID

  • Universally Unique IDentifier 범용 고유 식별자
  • 로컬 시스템과 他 시스템을 유일하게 구분하기 위한 128 bit 숫자
  • 시스템 / 시간 정보를 조합하여 랜덤으로 생성
  • UUID로 지정된 장치는 /dev/disk/by-uuid 디렉토리에서 확인 가능

마운트 포인트 : 장치가 연결된 디렉터리

옵션 : 파일 시스템 속성

덤프 관련 설정

  • 0 : 덤프 불가
  • 1 : 덤프 가능

파일 점검 옵션

  • 0 : 부팅시 fsck 안함
  • 1 : 루트 파일 시스템
  • 2 : 루트 파일 시스템 이외

새로운 디스크 (HDD/SSD) 연결 절차

관리자 권한으로 수행

  • [새로운 디스크 파티션 생성 => fdisk 명령] -> 필요시 사용
  • [생성된 파티션에 파일 시스템 생성 (디스크 포맷) => mkfs 명령] -> 필요시 사용
  • 마운트 => mount 명령 -> 장치 연결시 사용

mount 명령

파일 시스템 마운트 ; mount [옵션] <디바이스 파일> <마운트 포인트>

  • mount : 현재 마운트된 장치 출력

    • 장치명
    • 마운트 포인트
    • 파일 시스템 종류
    • 마운트 옵션
  • -t <파일 시스템> : 마운트할 장치의 파일 시스템

    • mount -t iso9660 /dev/cdrom <마운트 포인트> : CD-ROM 연결
    • mount -t vfat /dev/sdc1 <마운트 포인트> : Windows용 USB 메모리
    • mount /dev/sdc1 <마운트 포인트> : Linux용 USB 메모리
    • mount -f <nfs 서버주소>:/<nfs 서버측 디렉토리> <마운트 포인트> : NFS 디스크
  • 일반적으로 /mnt 디렉토리에 마운트 포인트 설정
  • 관리자 권한으로 실행

umount 명령

마운트 해제 ; umount <마운트 포인트>
관리자 권한으로 실행

lsblk 명령

리눅스 디바이스 정보 확인 ; lsblk : 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 : 첫번째 디스크 두번째 파티션

fdisk 명령

디스크 파티션 생성 ; fdisk [옵션] <장치명>

  • -l : 파티션 테이블 출력
  • 파티션 종류
  • fdisk 명령 실행하면 fdisk 명령 프롬프트가 표시되고 원하는 기능의 명령 문자 입력
    • m : 도움말
    • n : 새로운 파티션 생성

      파티션 번호
      First Sector
      Last Sector

    • p : 파티션 테이블 출력
    • w : 파티션 저장
  • 관리자 권한으로 실행

mkfs 명령

파일 시스템 생성 ; mkfs [옵션] <장치명 (장치 파일)>

  • -t <파일 시스템> : 생성할 파일 시스템
    • sudo mkfs -t ext4 <장치명 (장치파일)>
    • sudo mkfs.ext4 <장치명 (장치파일)>
  • 관리자 권한으로 실행

df 명령

디스크 사용량 확인, mount 정보 확인 가능 ; df [옵션]

  • -a : 모든 파일 시스템 사용량 확인
  • -h : 디스크 사용량 출력
  • -T : 파일 시스템 종류 출력

du 명령

사용자/디렉토리별 사용량 확인 ; du [<디렉토리>]

  • -h : 디스크 사용량 출력

chown 명령

change owner, 파일 또는 디렉토리의 소유자 및 그룹 변경;
chown user[:group] <파일 또는 디렉토리>

3. TIF

오늘 정말 역대급으로 어려웠다. 초반에 crontab까지는 그래도 따라갈만 했는데, 마운트로 넘어가면서부터는 완전히 길을 잃어버렸다. 거기다 마운트 실습도 삐끗하다가 그만 우분투 자체가 아예 망가져버려 처음부터 다시 설치해야했던 다사다난한 하루였다.
천만다행히도 이 블로그 포스트 덕에 두번째 시도에선 겨우겨우 마운트에 성공했지만, 앞으로의 실습은 함부로 따라하지 않는게 좋을 것만 같은 기분이다.

0개의 댓글