로컬 스토리지 구성

hahic·2023년 3월 4일
0

RHCSA

목록 보기
3/10
post-thumbnail

physical storage partitions 확인, 생성, 삭제, 수정

lsblk

: List information about block devices

fdisk

: Display or manipulate a disk partition table

cfdisk

: Display or manipulate a disk partition table

Swap 메모리 구성 및 관리

swap 메모리 확인

  • swapon - Enable devices and files for paging and swapping

    swapon --show

swap 메모리 생성

  • mkswap - Set up a Linux swap area

    mkswap <option> <device>

swap 메모리 비활성화

  • swapoff - Disable devices and files for paging and swapping

    swapoff <option> <spec>

swap size 증가시키는 방법

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 oflag=append conv=notrunc

$ sudo swapoff /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

dd - data duplication

: 데이터를 복사하거나 변환하는 명령어
주로, 디스크 이미지를 복사하거나 백업하는데 사용

dd if=<input-file> of=<output-file> bs=<block size> status=<progress | sync | etc>

LVM - Logical Volume Manager

: 물리적인 스토리지를 여러개의 논리적인 저장소로 분할
필요한 경우, 볼륨을 쉽게 확장하거나 축소 가능

LVM 설치하는 방법

$ sudo dnf install lvm2 -y

LVM 작업 순서

  1. system partition check
  • lsblk lvmdiskscan
  1. PV create
  • pvcreate
  • pvs - pv check
    ex) sudo pvcreate /dev/vdb /dev/vdc /dev/vdd /dev/vde
  1. VG create - Volume Group
  • vgcreate
  • vgremove, vgextend, vgreduce, vgdisplay, vgs - vg check
    ex) sudo vgcreate volume1 /dev/vdb /dev/vdc
    ex) sudo vgextend volume1 /dev/vdd
  1. LV create - Logical Volume
  • lvcreate
  • lvresize, lvs - lv check
    ex) sudo lvcreate --size 1.5G --name smalldata volume1
    ex) sudo lvresize --size 1G volume1/smalldata
    ex) sudo lvremove volume1/smalldata
  1. 파일시스템(FS) create
  • mkfs
    ex) sudo mkfs.xfs /dev/volume1/smalldata
  1. LV를 마운트할 디렉토리 생성
  • mkdir
  1. 마운트
    mount
  2. UUID를 활용한 마운트 자동 등록
    vi /etc/fstab

encrypted storage 생성 및 구성

encrypted storage 작업 순서

  1. encrypted storage create
  • cryptsetup
    ex) sudo crypsetup open --type plain /dev/vde secretdisk
    ex) sudo crypsetup close secretdisk
  1. 파일시스템(FS) create
    ex) sudo mkfs.xfs /dev/mapper/secretdisk
  2. 기타
  • luks encryption
    ex) sudo crypsetup luksFormat /dev/vde
    ex) sudo crypsetup open /dev/vde secretdisk

RAID Device 생성 및 관리

RAID Device = Redundant Array of Inexpensive Disks

: 여러 개의 물리적인 하드디스크를 하나의 논리적인 단위로 묶어서 사용하는 기술. 해당 기술을 통해, 여러 개의 하드디스크롤 하나의 대용량 저장소로 사용할 수 있으며, 데이터의 안전성과 성능 향상을 동시에 이룰 수 있음

/proc/mdstat

해당 파일에서 RAID array의 간략한 상태 확인 가능

RAID 종류

  • RAID 0
    : 데이터를 블록 단위로 분할하여 복수 디스크에 분산하고 배치하는 방법

  • RAID 1
    : 미러링 도입

미러링
RAID에서 사용되는 방식 중 하나로, 중복된 데이터를 두개 이상의 디스크를 저장하는 방식

  • 장점
    데이터 안정성이 높음
    읽기, 쓰기 성능 개선
  • 단점
    공간 효율성이 떨어짐
    최소 2개 이상의 디스크 필요
  • RAID 5
    : 패리티 이용

패리티
데이터를 저장할 때, 데이터에 대한 오류를 검사하거나 복구하기 위해 추가로 저장하는 정보

  • RAID 6
    : RAID 5의 확장된 버전 -> 이중 패리티 이용

  • RAID 10 (= RAID 1+0)
    : RAID 0, RAID 1, RAID 5을 조합한 버전

RAID 작업 순서

  1. disk superblock 제거
    ex) sudo mdadm --zero-superblock /dev/vdc /dev/vdd /dev/vde
  2. RAID 생성
    ex) sudo mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/vdc /dev/vdd /dev/vde
    ex) sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/vdd --spare-devices=1 /dev/vde
  3. 파일 시스템(FS) 생성
    ex) sudo mkfs.ext4
  4. 기타
  • RAID 제거
    ex) sudo mdadm --stop /dev/md0
  • 특정 RAID 디스크 추가
    ex) sudo mdadm --manage /dev/md0 --add /dev/vde
  • 특정 RAID 디스크 삭제
    ex) sudo mdadm --manage /dev/md0 --remove /dev/vde

고급 파일 시스템 권한 생성, 관리 및 진단

chmod

ex) sudo chmod u+x script.sh

chown

ex) sudo chown adm:ftp file

getfacl

ex) sudo getfacl file

setfacl

  1. --modify
    ex) sudo setfacl --modify user:arron:rw file
  2. --remove
    ex) sudo setfacl --remove group:person:w file
  3. --recursive
    ex) sudo setfacl --recursive --modify user:arron:rwx dir/
    ex) sudo setfacl --recursive --remove user:arron:rwx dir/

chattr

: 파일 시스템에서 파일의 속성을 변경하는 명령어
파일과 디렉토리에 대한 확장 속성을 설정하거나 삭제할 수 있음

chattr <-RVf> <-v version> <-p project> <mode> <file>

<-RVf>

  • -R: 재귀적으로 디렉토리나 내용의 속성을 변경
  • -V: chattr 실행 결과 출력
  • -f: 에러 메세지 출력 제거

<mode>

  • + : 속성 추가
  • - : 속성 삭제
  • = : 속성 지정
  • i (immutable): 파일 수정 불가능
  • a (append only): 파일 내용 추가만 가능 (내용 수정이나 삭제 불가능)
  • c (compressed): 파일 압축
  • u (undeletable): 파일 삭제 불가능
  • S (synchronous updates): 파일 쓰기 작업 동기화

chattr 설정 확인하는 방법

lsattr <file>

사용자 및 그룹에 디스크 할당량 설정

quota

: 디스크 사용량를 모니터링하고 제한하는 기능

quota 설치 방법

$ sudo dnf install quota
$ sudo vi /etc/fstab
$ sudo systemctl reboot

quota 작업 순서

  1. 파일 시스템(fs) quota 활성화
    ex) echo "/dev/vdb1 /mybackups xfs default usrquota,groupquota 0 2"
  2. 파일 시스템 재부팅
    ex) mount -o remount /dev/vdb1
  3. qutoa 데이터베이스 생성
    ex) qutoacheck -cug /dev/vdb1
  4. qutoa 데이터베이스 파일 사용
    ex) qutoaon /dev/vdb1
    ex) qutoaon --user arron
    ex) qutoaon --group adm

명령어

  1. quotacheck
    : 파일 시스템에 대한 사용자 및 그룹의 디스크 사용량 계산 및 저장
    ex) sudo quotacheck --create-files --user --group /dev/vdb2 = sudo quotacheck -cug /dev/vdb2
  2. quotaon
    : 디스크 할당량 기능을 활성화하는데 사용하는 명령어
    ex) sudo qutoaon /dev/sda1 -> 활성화
    ex) sudo qutoaon -u /dev/sda1 -> 비활성화

fallocate

:파일에 대해 지정된 크기 만큼 공간을 할당하는 기능 제공
파일 생성 시, 디스크 공간을 즉시 할당할 수 있으며 주로 사용자 용량 제한하는데 사용함

fallocate <option> <file>

<option>

  • -l, --length: 할당할 용량 지정
  • -z, --zero-range: 할당된 공간을 0으로 초기화

디스크 압축

VDO - Virtual Data Optimizer

  • 블록 스토리지 압축 및 deduplication 기술
  • 블록 장치 위에 파일 시스템을 생성하는 방식으로 작동
  • 파일 시스템에 저장되는 모든 데이터 압축하고 중복 데이터 제거하여 저장 공간 최적화

VDO 설치 방법

$ sudo dnf install vdo -y
$ sudo systemctl enable --now vdo.service
$ sudo systemctl status vdo.service

VDO 설정 과정

  1. VDO 생성
    ex) sudo vdo create --name=vdo_storage --device=/dev/vdb --vdoLogicalSize=10G
  2. 파일 시스템 생성
    ex) sudo mkfs.xfs -K /dev/mapper/vdo_storage
  3. 디렉토리 생성
  4. 마운트
  5. 자동 마운트 설정 -> /etc/fstab

VDO 확인 방법

sudo vdostats --human-readable

Stratis

: 사용할 수 있는 새로운 파일 시스템 관리 도구

Stratis 설치 방법

$ sudo dnf install stratis-cli -y
$ sudo systemctl enable --now stratisd
$ sudo systemctl status stratisd

기능

  • 쉬운 설정
    파일 시스템을 만들기 위한 복잡한 단계를 거치지 않아도 됨
  • 동적 할당
    파일 시스템 크기를 동적으로 조절 가능
  • 스냅샷
    파일 시스템의 이전 상태를 복원하거나 일부 파일을 복구할 수 있음
  • 캐시
    디스크 캐시를 사용하여 입출력 성능 향상

명령어

  • pool 생성
    ex) sudo stratis pool create my-pool /dev/vdc
  • pool 블록 추가
    ex) sudo stratis pool add-data my-pool /dev/vdd
  • pool 확인
    ex) sudo stratis pool
  • 파일 시스템 블록 장치 확인
    ex) sudo stratis blockdev
  • 파일 시스템 생성
    ex) sudo stratis fs create my-pool myfs1
  • 파일 시스템 이름 변경
    ex) sudo stratis fs rename myfs1 myfs1-old
  • 파일 시스템 확인
    ex) sudo startis fs
  • 스냡샷 생성
    ex) sudo stratis fs snapshot my-pool myfs1 myfs1-snapshot
profile
👩‍💻 Junior Backend Developer

0개의 댓글