웹사이트 검색

LFCS #6: Linux에서 파티션을 RAID 장치로 조립하는 방법


Linux 재단LFCS(Linux Foundation Certified Sysadmin) 인증을 출시했습니다. 이는 전 세계의 시스템 관리자가 수행 기반 시험을 통해 자신의 능력을 입증할 수 있는 좋은 기회입니다. Linux 시스템에서 전반적인 운영 지원 수행: 시스템 지원, 1차 진단 및 모니터링, 필요한 경우 다른 지원 팀으로의 문제 에스컬레이션.

시리즈 제목은 LFCS(Linux 재단 인증 시스템 관리자) 1부부터 33까지 준비이며 다음 주제:

Part 1

Linux에서 'Sed' 명령을 사용하여 파일을 조작하는 방법

Part 2

Linux에서 Vi/Vim을 설치하고 사용하는 방법

Part 3

Linux에서 파일 및 디렉토리를 압축하고 파일을 찾는 방법

Part 4

Linux에서 저장 장치를 분할하는 방법

Part 5

Linux에서 (Samba 및 NFS) 파일 시스템을 마운트하는 방법

Part 6

파티션을 RAID 장치로 조립하고 시스템 백업을 생성하는 방법

Part 7

시스템 시작 프로세스 및 서비스 관리(SysVinit, Systemd 및 Upstart

Part 8

사용자 및 그룹, 파일 권한, Sudo 액세스를 관리하는 방법

Part 9

Yum, RPM, Apt, Dpkg, Aptitude 및 Zypper를 사용한 Linux 패키지 관리

Part 10

기본 쉘 스크립팅 및 파일 시스템 문제 해결 학습

Part 11

vgcreate, lvcreate 및 lvextend 명령을 사용하여 LVM을 관리하고 생성하는 방법

Part 12

설치된 도움말 문서 및 도구를 사용하여 Linux를 탐색하는 방법

Part 13

GRUB(Grand Unified Bootloader) 구성 및 문제 해결 방법

Part 14

Linux 프로세스 리소스 사용량을 모니터링하고 사용자별 프로세스 제한 설정

Part 15

Linux 시스템에서 커널 런타임 매개변수를 설정하거나 수정하는 방법

Part 16

Linux에서 SELinux 또는 AppArmor를 사용하여 필수 액세스 제어 구현

Part 17

사용자 및 그룹에 대한 ACL(액세스 제어 목록) 및 디스크 할당량을 설정하는 방법

Part 18

네트워크 서비스 설치 및 부팅 시 자동 시작 구성

Part 19

익명 로그인을 허용하도록 FTP 서버를 설정하는 최종 가이드

Part 20

기본 재귀 캐싱 DNS 서버 설정 및 도메인 영역 구성

Part 21

MariaDB 데이터베이스 서버를 설치, 보안 및 성능 조정하는 방법

Part 22

파일 시스템 공유를 위해 NFS 서버를 설치 및 구성하는 방법

Part 23

SSL 인증서를 사용하여 이름 기반 가상 호스팅으로 Apache를 설정하는 방법

Part 24

Linux에서 서비스에 대한 원격 액세스를 활성화하기 위해 Iptables 방화벽을 설정하는 방법

Part 25

Linux를 라우터로 전환하여 트래픽을 정적으로 및 동적으로 처리하는 방법

Part 26

Cryptsetup 도구를 사용하여 암호화된 파일 시스템을 설정하고 스왑하는 방법

Part 27

시스템 사용량, 중단을 모니터링하고 Linux 서버 문제를 해결하는 방법

Part 28

패키지 설치 또는 업데이트를 위해 네트워크 저장소를 설정하는 방법

Part 29

네트워크 성능, 보안 및 문제 해결을 감사하는 방법

Part 30

가상 머신 및 컨테이너를 설치하고 관리하는 방법

Part 31

효율적으로 프로젝트를 관리하기 위해 Git의 기본 사항을 알아보세요.

Part 32

Linux에서 IPv4 및 IPv6 주소 구성을 위한 초보자 가이드

Part 33

Ubuntu에서 네트워크 결합 및 브리징 생성을 위한 초보자 가이드

이 게시물은 33개 튜토리얼 시리즈의 6부입니다. 이 부분에서는 파티션을 RAID 장치로 조립하고 시스템 백업을 생성 및 관리하는 방법을 설명합니다. LFCS 인증 시험에 필요합니다.

Linux의 RAID 이해

독립 디스크 중복 배열(RAID)이라고 알려진 기술은 여러 하드 디스크를 단일 논리 장치로 결합하여 데이터 중복성을 제공하거나 성능을 향상시키는 스토리지 솔루션입니다. 디스크에 대한 읽기/쓰기 작업 중입니다.

그러나 실제 내결함성과 디스크 I/O 성능은 하드 디스크가 디스크 배열을 형성하도록 설정되는 방식에 따라 달라집니다. 사용 가능한 장치와 내결함성/성능 요구 사항에 따라 다양한 RAID 수준이 정의됩니다.

각 RAID 레벨에 대한 자세한 설명은 다음 RAID 시리즈 문서를 참조하세요.

Linux에 mdadm 설치

소프트웨어 RAID를 생성, 조립, 관리 및 모니터링하기 위해 선택한 도구는 mdadm(다중 디스크 관리의 약자)이라고 합니다.

sudo apt install mdadm         [On Debian, Ubuntu and Mint]
sudo yum install mdadm         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo zypper install mdadm      [On OpenSUSE]    

파티션을 RAID 장치로 조립

기존 파티션을 RAID 장치로 조립하는 프로세스는 다음 단계로 구성됩니다.

1. mdadm을 사용하여 새 어레이 생성

파티션 중 하나가 이전에 포맷되었거나 이전에 다른 RAID 어레이의 일부였던 경우 새 어레이 생성을 확인하라는 메시지가 표시됩니다.

해당 데이터에 들어 있을 수 있는 중요한 데이터의 손실을 방지하기 위해 필요한 예방 조치를 취했다고 가정하면 안전하게 y를 입력하고 Enter를 누를 수 있습니다.

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1

2. 어레이 생성 상태 확인

어레이 생성 상태를 확인하려면 RAID 유형에 관계없이 다음 명령을 사용합니다. 이는 RAID0을 생성할 때(위에 표시된 대로) 또는 이미지에 표시된 대로 RAID5를 설정하는 중일 때와 마찬가지로 유효합니다. 아래에.

cat /proc/mdstat
or 
mdadm --detail /dev/md0	[More detailed summary]

3. RAID 장치 포맷

이 시리즈의 4부에 설명된 대로 필요/요구 사항에 따라 파일 시스템으로 장치를 포맷하세요.

4. RAID 어레이 서비스 모니터링

모니터링 서비스에 어레이를 "감시"하도록 지시합니다. mdadm --detail --scan의 출력을 /etc/mdadm/mdadm.conf(Debian 및 파생 제품) 또는 /etc/mdadm.conf<에 추가합니다. (CentOS/openSUSE)와 같습니다.

mdadm --detail --scan

mdadm --assemble --scan 	[Assemble the array]

시스템 부팅 시 서비스가 시작되도록 하려면 루트로 다음 명령을 실행합니다.

systemctl start mdmonitor
systemctl enable mdmonitor

5. RAID 디스크 장애 확인

중복성을 지원하는 RAID 수준에서는 필요할 때 오류가 발생한 드라이브를 교체합니다. 디스크 어레이의 장치에 오류가 발생하면 어레이를 처음 생성할 때 예비 장치를 추가한 경우에만 재구축이 자동으로 시작됩니다.

그렇지 않으면 추가 물리적 드라이브를 시스템에 수동으로 연결하고 실행해야 합니다.

mdadm /dev/md0 --add /dev/sdX1

여기서 /dev/md0은 문제가 발생한 어레이이고 /dev/sdX1은 새 장치입니다.

6. 작업 어레이 분해

장치를 사용하여 새 배열을 생성해야 하는 경우 이 작업을 수행해야 할 수도 있습니다(선택 단계).

mdadm --stop /dev/md0 		#  Stop the array
mdadm --remove /dev/md0 		# Remove the RAID device
mdadm --zero-superblock /dev/sdX1 	# Overwrite the existing md superblock with zeroes

7. 메일 알림 생성

경고를 보낼 유효한 이메일 주소 또는 시스템 계정을 구성할 수 있습니다(mdadm.conf에 이 줄이 있는지 확인). – (선택적 단계)

MAILADDR root

이 경우 RAID 모니터링 데몬이 수집하는 모든 경고는 로컬 루트 계정의 사서함으로 전송됩니다. 이러한 경고 중 하나는 다음과 같습니다.

참고: 이 이벤트는 장치가 결함이 있는 것으로 표시되고 예비 장치가 자동으로 내장된 5단계의 예와 관련이 있습니다. mdadm의 배열. 따라서 우리는 정상적인 예비 장치가 "부족"하여 경고를 받았습니다.

Linux의 RAID 수준 이해

일반적인 RAID 수준에 대한 간략한 개요는 다음과 같습니다.

RAID 0

전체 배열 크기는 가장 작은 파티션 크기의 n배입니다. 여기서 n은 배열의 독립 디스크 수입니다(드라이브가 2개 이상 필요함). /dev/sdb1/dev/sdc1 파티션을 사용하여 RAID 0 어레이를 어셈블하려면 다음 명령을 실행하세요.

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1

일반적인 용도: 내결함성보다 성능이 더 중요한 실시간 애플리케이션을 지원하는 설정입니다.

RAID 1(미러링이라고도 함)

전체 배열 크기는 가장 작은 파티션의 크기와 같습니다(최소 두 개의 드라이브가 필요합니다). /dev/sdb1/dev/sdc1 파티션을 사용하여 RAID 1 배열을 어셈블하려면 다음 명령을 실행하세요.

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

일반적인 용도: 운영 체제 또는 /home과 같은 중요한 하위 디렉토리를 설치합니다.

RAID 5(패리티가 있는 드라이브라고도 함)

전체 배열 크기는 가장 작은 파티션 크기의 (n – 1)배입니다. (n-1)의 "lost" 공간은 패리티(중복성) 계산에 사용됩니다(최소 3개의 드라이브가 필요함).

문제가 발생할 경우 결함이 있는 부품을 교체하기 위해 예비 장치(이 경우 /dev/sde1)를 지정할 수 있습니다. /dev/sdb1, /dev/sdc1, /dev/sdd1 파티션을 사용하여 RAID 5 어레이를 어셈블하려면 다음 명령을 실행하세요. /dev/sde1을 예비용으로 사용합니다.

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1

일반적인 용도: 웹 및 파일 서버.

RAID 6(이중 패리티가 있는 드라이브라고도 함)

총 배열 크기는 (n*s)-2*s입니다. 여기서 n은 배열의 독립 디스크 수이고 s입니다. 가장 작은 디스크의 크기입니다. 문제가 발생할 경우 결함이 있는 부품을 교체하기 위해 예비 장치(이 경우 /dev/sdf1)를 지정할 수 있습니다.

/dev/sdb1, /dev/sdc1, /dev/sdd1 파티션을 사용하여 RAID 6 어레이를 어셈블하려면 다음 명령을 실행하세요. , /dev/sde1/dev/sdf1을 예비용으로 사용합니다.

mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1

일반적인 용도: 대용량 및 고가용성을 요구하는 파일 및 백업 서버입니다.

RAID 1+0(일명 스트라이프 오브 미러)

RAID 1+0은 두 가지의 조합이므로 전체 배열 크기는 RAID 0RAID 1의 공식을 기반으로 계산됩니다. 먼저 각 미러의 크기를 계산한 다음 스트라이프의 크기를 계산합니다.

문제가 발생할 경우 결함이 있는 부품을 교체하기 위해 예비 장치(이 경우 /dev/sdf1)를 지정할 수 있습니다. /dev/sdb1, /dev/sdc1, /dev 파티션을 사용하여 RAID 1+0 배열을 어셈블하려면 다음 명령을 실행하세요. /sdd1, /dev/sde1/dev/sdf1을 예비용으로 사용합니다.

mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1

일반적인 용도: 빠른 I/O 작업이 필요한 데이터베이스 및 애플리케이션 서버.

Linux에서 시스템 백업 생성 및 관리

모든 현상금이 포함된 RAID백업을 대체하는 것이 아닙니다! 필요한 경우 칠판에 1000번 쓰되 이를 반드시 유지하십시오. 아이디어를 항상 염두에 두십시오.

시작하기 전에 시스템 백업을 위한 일률적인 솔루션은 없다는 점에 유의해야 합니다. 그러나 백업 전략을 계획할 때 고려해야 할 몇 가지 사항은 다음과 같습니다.

  • 시스템을 어떤 용도로 사용하시나요? (데스크톱 또는 서버? 후자의 경우에 가장 중요한 서비스는 무엇입니까? 어떤 구성을 잃어버리면 정말 고통스러울까요?)
  • 시스템 백업을 얼마나 자주 수행해야 합니까?
  • 백업하려는 데이터(예: 파일/디렉터리/데이터베이스 덤프)는 무엇입니까? 대용량 파일(예: 오디오 또는 비디오 파일)을 정말로 백업해야 하는지 여부도 고려해 볼 수 있습니다.
  • 해당 백업은 어디에(물리적 장소 및 미디어를 의미) 저장됩니까?

1. dd 명령을 사용하여 드라이브 백업

dd 명령을 사용하여 전체 드라이브를 백업하십시오. 언제든지 정확한 이미지를 생성하여 전체 하드 디스크 또는 파티션을 백업할 수 있습니다. 이는 장치가 오프라인일 때 가장 잘 작동합니다. 즉, 장치가 마운트되지 않았고 I/O 작업을 위해 장치에 액세스하는 프로세스가 없음을 의미합니다.

이 백업 접근 방식의 단점은 실제 데이터가 차지하는 비율이 작은 경우에도 이미지가 디스크 또는 파티션과 동일한 크기를 갖는다는 것입니다.

예를 들어, 10%만 채워진 20GB의 파티션을 이미지화하려는 경우 이미지 파일은 여전히 20GB입니다. 크기. 즉, 실제 데이터뿐만 아니라 전체 파티션 자체가 백업됩니다. 장치의 정확한 백업이 필요한 경우 이 방법을 사용하는 것이 좋습니다.

파티션 이미지 생성

dd if=/dev/sda of=/system_images/sda.img
OR
--------------------- Alternatively, you can compress the image file --------------------- 
dd if=/dev/sda | gzip -c > /system_images/sda.img.gz 

파티션 이미지 복원

dd if=/system_images/sda.img of=/dev/sda
OR 
gzip -dc /system_images/sda.img.gz | dd of=/dev/sda 

2. tar 명령을 사용하여 파일 백업

tar 명령을 사용하여 특정 파일 / 디렉터리를 백업하세요. 이 시리즈의 3부에서 이미 다뤘습니다. 특정 파일 및 디렉터리(구성 파일, 사용자 홈 디렉터리 등)의 복사본을 보관해야 하는 경우 이 방법을 사용하는 것이 좋습니다.

2. rsync 명령을 사용하여 파일 백업 및 동기화

다용도 원격(및 로컬) 파일 복사 도구인 rsync 명령을 사용하여 파일을 동기화합니다. 네트워크 드라이브에서 파일을 백업하고 동기화해야 하는 경우 rsync가 적합합니다.

두 개의 로컬 디렉터리를 동기화하든, 로컬 파일 시스템에 마운트된 로컬 < --- > 원격 디렉터리를 동기화하든 기본 구문은 동일합니다.

두 개의 로컬 디렉터리 동기화

rsync -av source_directory destination directory

여기서 -a는 하위 디렉터리(존재하는 경우)로 재귀하여 기호 링크, 타임스탬프, 권한, 원래 소유자/그룹 및 -v 자세한 내용을 보존합니다.

또한 유선을 통한 데이터 전송의 보안을 강화하려면 rsync 대신 ssh를 사용할 수 있습니다.

SSH를 통해 로컬 → 원격 디렉터리 동기화

rsync -avzhe ssh backups root@remote_host:/remote_directory/

이 예에서는 로컬 호스트의 백업 디렉터리를 원격 호스트의 /root/remote_directory 내용과 동기화합니다.

-h 옵션은 사람이 읽을 수 있는 형식으로 파일 크기를 표시하고 -e 플래그는 SSH 연결을 나타내는 데 사용됩니다.

SSH를 통해 원격 → 로컬 디렉터리 동기화

이 경우 이전 예에서 소스 및 대상 디렉토리를 전환하십시오.

rsync -avzhe ssh root@remote_host:/remote_directory/ backups 

이는 rsync 사용에 대한 3가지 예(가장 자주 발생하는 경우)일 뿐입니다. rsync 명령의 더 많은 예와 사용법은 다음 문서에서 확인할 수 있습니다.

요약

시스템 관리자는 시스템이 가능한 한 잘 작동하는지 확인해야 합니다. 잘 준비되어 있고 RAID 및 정기적인 시스템 백업과 같은 스토리지 기술로 데이터 무결성이 잘 지원된다면 안전할 것입니다.

LFCS eBook을 지금 구매하실 수 있습니다. 지금 사본을 주문하고 인증된 Linux 시스템 관리자가 되기 위한 여정을 시작하십시오!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

마지막으로, 다음 링크를 사용하여 시험 바우처를 구입하여 소액의 커미션을 받아 이 책을 계속 업데이트하는 데 도움이 되는 것을 고려해 보십시오.

이 문서를 개선할 수 있는 방법에 대한 질문, 의견 또는 추가 아이디어가 있는 경우 아래에서 자유롭게 이야기해 주세요. 또한 소셜 네트워크 프로필을 통해 이 시리즈를 공유하는 것도 고려해 보세요.