[구름 k8s] TIL 1-3-1

Peppie·2022년 8월 16일
0

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개의 댓글