Linux 12

다원·2023년 1월 17일
0
post-thumbnail

RAID

두 개 이상의 디스크를 묶어서 데이터를 저장한 뒤 하나의 디스크가 고장나더라도 저장된 데이터를 그대로 존속되게 하는 기법
나중에 디스크를 교체하더라도 미러된 시스템이 되고, 입/출력 성능이 향상됨
두 개의 디스크는 컨트롤러(ARM)이 연결되어 있고, 두 디스크가 동시에 고장나거나, 컨트롤러가 고장 날 경우 디스크를 사용할 수 없음
백업과 다르며, 일정한 수준에서 지속으로 제공하는 것으로 완전히 하드웨어 오류에 대한 데이터 보호책

TYPE과 LEVEL

하드웨어 RAID: 프로프리에터리(Proprietary:벤더 종속적)한 단점이 있음
RAID에 참여하고 있는 하드디스크는 주로 같은 브랜드에 같은 용량을 가진 디스크
Linear: 서로 다른 용량의 하드디스크를 모아서 만드는 RAID도 있음

/etc/mdadm.conf

부팅 시 모든 가용가능한 RAID를 찾아 어레이 구성

Level

0: 데이터 복원x, 컨트롤러가 두 개여서 읽기/쓰기 속도 빠름
1: 데이터 복원, 두 개의 디스크가 필요한 조직용 => mirroring
두 개의 디스크에 동시에 데이터가 저장되어있음
5: 데이터 복원, 세 개 이상의 디스크가 필요한 대형 조직 => Stripe with parity (줄별로 데이터가 들어감)

  • odd parity:홀수 패리티 비트로 기본 패리티 방식,8bit 중 1의갯수를 보고 패리티 비트가 0or 1로 지정, 만일 오류로 인해서 변경되면 패리티 비트가 맞지 않기 때문에 재전송 요청하게 됨(TCP에서 판단)
  • evem parity : 짝수 패리티
    10:0과1을 합친 구성
    패리티 비트를 on 해두면 데이터 8bit + 패리티 비트 1bit

RAID1

파티션 할 때 t 옵션을 사용하여, 파일 포맷 설정을 해주어야됨
mdadm --create /dev/md1 --verbose --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
(md1:가상레이드 장치 설정: 디바이스 아래에서 하나의 하드디스크처럼 포맷 후 데이터 저장으로 사용)
2개를 연결하였는데 1기가로 나온 이유는 두 곳에 동시에 저장되기 때문
fstab 파일에서 RAID에 대한 정보 입력, UUID Mount Point,file type 등 기입, 자동 마운트
하드디스크의 uuid 가 blkid 와 uuidgen으로 처리할 경우 다른 값이 나옴
마운트 포인트 장소에 RAID1에 파일을 기입하고 하나의 디스크 삭제
후 확인 할 경우 md1이 살아있음 -> 하나의 디스크가 없어져도 미러링 되어 있기 때문
복원 시키기 위해 하드 추가 후 Power on > 새로 생성된 디스크 파티션+포맷한 후 가상 하드디스크(mdadm --add) 에 연결하면 됨

RAID5

하드디스크가 3개가 필요
실제 데이터 저장공간은 2기가, 1기가는 패리티 비트를 저장하는 용으로 사용됨
RAID1가 동일한 방법
3개의 디스크 중 하나의 디스크를 삭제하더라도 남은 디스크에 저장됨

RAID10

RAID0은 ARM이 두개가 존재, RAID1은 데이터 미러링을 통한 복원
추가할 디스크의 양은 4개

RAID3&RAID6

HDD 4개로 구성하는데 Parity 디스크 2곳에 쓰이므로 1G 4개로 RAID 6을 구성했다면 실제 데이터는 2G가 됨
두 개의 HDD가 망가져도 데이터 복원

LVM

즉석에서 파티션 사이즈를 늘리거나 메인 HDD의 공간이 작을 때 HDD를 추가해서 얼마든지 확장
파티션된 디스크들의 물리적 여분 공간을 모두 모으거나, 새로운 디스크를 추가해서 하나의 논리 공간으로 확장
각각 다른 디스크의 남은 공간들을 묶어서 하나의 디스크 처럼 공간을 만들 수 있음
기존 디스크에서 새로운 디스크를 추가하여 LVM 묶으면 별도의 파티션과 같은 작업 없이 하나의 공간으로 만들 수 있음

물리적으로 다른 디스크 연결

pvcreate /dev/sdb1 && pvcreate /dev/sdc1
물리적으로 1기가와 2기가를 논리적으로 3기가로 만들고
논리적인 3기가를 2.5기가와 0.5기가로 나누고 각각 마운트시킴
vgcreate vg-home /dev/sdb1: 기본디스크로 vg-home 생성, 현재 vg-home=2G

vgextend vg-home /dev/sdc1: vg-home에 1G가 추가하여 vg-home=3G

vgdisplay로 논리적으로 합쳐진 vg-home에 대한 정보 확인

vg-home 아래에 논리적으로 나누어
lg-home=2.5

lg-back=0.5생성

두 개의 디스크 파일 포맷

lg-home과 back 이 링크로 연결됨을 알 수 있음

두 개의 볼륨 디스크를 각각 마운트

lg-home /homme: 2.5기가, lg-back /bak: 0.5기가 이하로 생성됨을 알 수 있음

논리적 확정

umount 후 디바이스 추가하여 실습
파티션 후 dev/sdd1을 포맷

lg-back

강제적으로 디스크를 검토 0.0% non-contiguous: 연속이 안된 부분이 없음

lg-back의 사이즈 확인

ZFS File system

ZFS 파일 시스템은 파일 시스템 관리를 근본적으로 변화와 혁신시킨 새로운 파일 시스템, 확장성이 뛰어나고 아키텍처에 영향을 받지 않으며,
EFI LABEL를 사용하게 됨
HDD 저장 풀 가능, Copy-on write기능 Snapshot 기능 등

RAID-Z

RAID5와 유사하며, 16EB까지 설정 가능
Copy-on-Write: 일반 파일 시스템에서는 데이터가 겹쳐쓰이면 이전 데이터는 삭제되는데 ZFS에서 새로운 데이터를 다른 블록에 써서 일단 쓰기가 끝나면 파일 시스템의 메타 데이터가 업데이트되어 새로운 데이터를 가르키게 되어서 시스템 크래시에 기존 데이터가 자동으로 보존(리눅스의 journaling 기능)

mirror

하드디스크(1G) 두 개 설치 후 실행 > zfsutils-linux 설치
zfspool을 mirror 방식으로 생성
별도로 파티션하지 않음에도 파티션이 되고 zps가 생성됨

1G가 두 개를 추가했는데 mirror 방식이므로 zfspool이 1G 미만
zpool로 zfs를 상세하게 확인 할 수 있고

zfspool안에 데이터 디렉터리 안에 별도의 디렉터리를 생성할 수 있음

zfspool에서 각 디렉터리가 사용가능 한 값도 확인 할 수 있음
USER 추가후 zfspool 안에 있는 특정 디렉터리의 소유권과 권한을 변경

용량 추가 시 하드디스크를 만든 후 동일한 방법으로 파티션

용량을 확인해보면 mirror로 3번이 들어갔기에 3G가 만들어짐

mirror를 삭제 할 경우

raidz

raidz를 사용하는 zfspool 생성

/dev/sdc 대신 /dev/sdh를 넣을 경우

특정 디바이스를 on/off 시킬 수 있음

특정 디렉터리의 qouta 수정할 수 있음

qouta: disk qouta로 디스크 할당량 or 디스크 한도의 의미를 가짐
reservation 수정 가능

예약으로 데이터 집합에 사용할 수 있도록 보장되고, zpool에 디스크 공간을 예약
zpool scrub zfspool 방식으로 무결성을 검사 할 수 있음
snapshot

파일 압축과 풀기

windows 시스템과 파일과 포맷이 다름
압축하거나 압축된 파일을 풀 때 사용되는 도구 tar, rpm, yum 등

tar

tar.xz 파일명 > 파일명.tar
unxz 파일명.tar.xz
tar cvfJ 파일명.tar > 파일명.tar.xz
tar 옵션 생성될파일명 대상_파일/디렉터리 형식
파일/디렉터리를 묶을때는 c
진행 상항을 화면에 출력하는 v
파일을 지정하는 f
파일/디렉터리는 압축을 할경우 z(.gz 생성), j(.bz 생성)
묶음과 압축을 풀 경우 .tar를 풀 경우 x(.gz)/z(.bz)
압축이 풀리는 디렉터리/파일 위치를 지정할 경우 -C

tar 실행 중 알림 메시지


압축할 파일의 경로에서 tar은 '/'를 제거했다는 메시지로
기본값에서 tar은 상대 경로를 사용하므로 절대 경로를 뜻하는 '/'앞에 뭍이면 메세지 출력 후 '/'제거

파일 압축 시 (확장자 유의)

gzip

gzip /etc/passwd
gzip -d /etc/passwd.gz

bzip2

bzip2 /etc/passwd -> passwd.bz2
bzip2 -d /etc/passwd.bz2

compress

compress /etc/passwd => passwd.Z
compress -d (uncompress) /etc/passwd.Z

profile
공부일지,

0개의 댓글