주:
- 이 사용지침서는 Oracle 제공 무료 실습 환경에서 제공됩니다.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마치면 사용자의 클라우드 환경과 관련된 값으로 대체합니다.
Oracle Linux에서 소프트웨어 RAID 어레이 구축
소개
Redundant Array of Independent Disks 또는 RAID 장치는 둘 이상의 실제 블록 장치에서 만든 가상 장치입니다. 이 기능을 사용하면 여러 장치(일반적으로 디스크 드라이브 또는 디스크의 분할 영역)를 단일 장치로 결합하여 단일 파일 시스템을 보관할 수 있습니다. 일부 RAID 레벨에는 중복성이 포함되므로 파일 시스템이 어느 정도 장치 실패를 견딜 수 있습니다.
Oracle Linux 커널은 다중 장치(MD) 드라이버를 사용하여 Linux 소프트웨어 RAID를 지원하며 디스크 드라이브를 RAID 장치로 구성하고 서로 다른 RAID 레벨을 구현할 수 있도록 합니다.
이러한 여러 RAID 레벨에 대한 자세한 내용은 Oracle 설명서를 참조하십시오.
이 자습서는 MD 유틸리티(mdadm
)와 함께 스페어가 있는 RAID1 장치를 만든 다음 디스크 오류를 해결합니다.
목표
- 스페어가 있는 RAID1 장치 만들기
- 실패한 RAID1 장치 복구
필요 조건
다음 구성을 사용하는 모든 Oracle Linux 8 시스템:
- sudo 권한이 있는 비루트 사용자
- Linux 소프트웨어 RAID와 함께 사용할 추가 블록 볼륨
랩 환경 설정
주: 무료 실습 환경을 사용하는 경우 Oracle Linux Lab Basics에서 연결 및 기타 사용 지침을 참조하십시오.
-
아직 연결되지 않은 경우 터미널을 열고 위에서 언급한 각 instance에 ssh를 통해 연결합니다.
ssh oracle@<ip_address_of_instance>
-
블록 볼륨이 존재하는지 확인합니다.
sudo lsblk
무료 랩 환경의 출력에는 기존 파일 시스템의
/dev/sda
및 사용 가능한 디스크/dev/sdb
,/dev/sdc
및/dev/sdd
가 표시되어야 합니다.
MD 유틸리티 설치
-
시스템에서 아직 사용할 수 없는 경우 MD 유틸리티를 설치합니다.
mdadm
가 설치되어 있는지 확인합니다.sudo dnf list --installed mdadm
설치되지 않은 경우
mdadm
를 설치합니다.sudo dnf -y install mdadm
주: 무료 실습 환경에는 MD 유틸리티가 이미 설치되어 있습니다.
RAID 장치를 만듭니다.
RAID1는 어레이의 각 드라이브에 동일한 데이터를 작성하여 데이터 중복성 및 복원성을 제공합니다. 한 드라이브에 장애가 발생하면 미러에서 I/O 요청을 충족시킬 수 있습니다. 이중화는 어레이의 모든 디스크에 동일한 정보를 기록하므로 비용이 많이 드는 솔루션입니다.
RAID1의 기능:
- 중복을 포함합니다.
- 예비 디스크가 0개 이상인 디스크를 두 개 이상 사용합니다.
- 각 디스크에 기록된 데이터의 정확한 미러를 유지 관리합니다.
- 디스크 장치의 크기는 같아야 합니다.
- 한 디스크 장치가 다른 디스크 장치보다 크면 RAID 장치가 가장 작은 디스크의 크기가 됩니다.
- 모든 데이터가 그대로 유지되는 동안 최대 n-1개의 디스크 장치를 제거하거나 실패할 수 있습니다.
- 시스템에 장애가 발생하고 예비 디스크를 사용할 수 있는 경우 RAID1 미러의 복구가 자동으로 발생하며 장애가 감지되면 즉시 수행됩니다.
- 미러 세트의 여러 디스크에 동일한 데이터를 쓰기 때문에 단일 디스크에 비해 쓰기 성능이 저하됩니다.
-
RAID 장치를 만드는 데 사용할 수 있는 옵션을 나열합니다.
mdadm --help
를 사용하면--create
옵션을 사용하여 사용되지 않은 장치에서 새 배열을 만들 수 있습니다.sudo mdadm --create --help
-
스페어 디스크가 하나인 RAID1 장치를 만듭니다.
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd
--create:
: 새 배열을 생성합니다.--level
: RAID 레벨--raid-devices
: 배열의 활성 장치 수입니다.--spare-devices
: 초기 배열의 예비(추가) 장치 수
이 명령에서 장치(어레이)의 이름은
/dev/md0
이고/dev/sdb
및/dev/sdc
를 사용하여 RAID1 장치를 만듭니다./dev/sdd
장치는 활성 장치의 장애로부터 복구하기 위해 자동으로 예비 장치로 사용됩니다.y
를 입력하고ENTER
를 눌러Continue creating array?
프롬프트를 적용합니다.출력 예:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: size set to 52395008K Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
파일 시스템 만들기
-
RAID 장치에 ext4 파일 시스템을 만들고 마운트합니다.
sudo mkfs.ext4 -F /dev/md0 sudo mkdir /u01 sudo mount /dev/md0 /u01
-
파일 시스템 디스크 사용량을 보고합니다.
df -h
출력 예:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ df -h Filesystem Size Used Avail Use% Mounted on ... /dev/md0 49G 53M 47G 1% /u01
-
/etc/fstab에 항목을 추가하고 재부트 시 마운트 지점이 지속되도록 합니다.
echo "/dev/md0 /data01 ext4 defaults 0 0" | sudo tee -a /etc/fstab > /dev/null
RAID 장치 확인
-
어레이에 대한 세부정보를 가져옵니다.
sudo mdadm --detail /dev/md0
출력 예:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Jun 4 20:08:32 2022 Raid Level : raid1 Array Size : 52395008 (49.97 GiB 53.65 GB) Used Dev Size : 52395008 (49.97 GiB 53.65 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Sat Jun 4 20:28:58 2022 State : clean, resyncing Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Consistency Policy : resync Resync Status : 59% complete Name : ol-mdadm-2022-06-04-180415:0 (local to host ol-mdadm-2022-06-04-180415) UUID : f6c35144:66a24ae9:5b96e616:f7252a9f Events : 9 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 2 8 48 - spare /dev/sdd
출력에서
State
는 배열이 정리되고 재동기화 중임을 보여줍니다. resysc는 항상 배열을 처음 만든 후 또는 복구 후에 발생합니다. 재동기화가 59% 완료되었음을 출력했습니다. -
커널에서 실시간 정보를 확인합니다.
sudo cat /proc/mdstat
출력 예:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdd[2](S) sdc[1] sdb[0] 52395008 blocks super 1.2 [2/2] [UU] [==================>..] resync = 92.2% (48341824/52395008) finish=2.7min speed=24677K/sec unused devices: <none>
RAID 구성 파일 생성
-
(선택 사항) RAID 구성을
/etc/mdadm.conf
에 추가합니다.구성 파일은 RAID 장치인 장치와 특정 장치가 속한 배열을 식별합니다. 이 구성 파일에 따라
mdadm
는 부트 시 배열을 어셈블할 수 있습니다.sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf
출력 예:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf ARRAY /dev/md/0 metadata=1.2 UUID=f6c35144:66a24ae9:5b96e616:f7252a9f name=ol-mdadm-2022-06-04-180415:0 spares=1
RAID 장치 관리
이 옵션은 장치 추가, 제거 또는 결함 발생과 같은 배열 내의 구성 요소 장치를 관리하는 데 사용됩니다.
-
RAID 장치 관리에 사용할 수 있는 옵션을 나열합니다.
sudo mdadm --manage --help
--add
: 후속 장치를 홀더합니다.--remove
: 후속 비활성 장치를 제거합니다.--fail
: 후속 장치를 결함으로 표시합니다.
-
캐시된 쓰기를 영구 저장소에 동기화합니다.
모든 디스크 캐시가 디스크에 기록되도록 하려면 디스크 관리를 실행하기 전에 이 작업을 수행해야 합니다.
sudo sync
-
디스크를 실패로 표시합니다.
sudo mdadm --manage /dev/md0 --fail /dev/sdb
-
배열 세부정보를 가져옵니다.
sudo mdadm --detail /dev/md0
출력 예:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Jun 4 20:08:32 2022 Raid Level : raid1 Array Size : 52395008 (49.97 GiB 53.65 GB) Used Dev Size : 52395008 (49.97 GiB 53.65 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Sat Jun 4 21:34:19 2022 State : clean, degraded, recovering Active Devices : 1 Working Devices : 2 Failed Devices : 1 Spare Devices : 1 Consistency Policy : resync Rebuild Status : 1% complete Name : ol-mdadm-2022-06-04-180415:0 (local to host ol-mdadm-2022-06-04-180415) UUID : f6c35144:66a24ae9:5b96e616:f7252a9f Events : 19 Number Major Minor RaidDevice State 2 8 48 0 spare rebuilding /dev/sdd 1 8 32 1 active sync /dev/sdc 0 8 16 - faulty /dev/sdb
어레이는 degraded 및 recovering으로 표시됩니다. 또한
/dev/sdb
에 결함이 있는 동안 예비 장치/dev/sdd
가 자동으로 어레이를 재구성하고 있음을 출력합니다. -
실패한 디스크를 제거합니다.
sudo mdadm --manage /dev/md0 --remove /dev/sdb
-
실패한 디스크를 교체하십시오.
서버의 실패한 물리적 디스크를 새 디스크로 교체합니다.
주: 무료 실습 환경을 사용할 때는 이 단계에서 수행할 작업이 없습니다. 연습에서는 기존
dev/sdb
장치의 용도를 바꿉니다. -
이전 linux_raid_member 서명을 제거합니다.
서명, 메타데이터는 RAID 어레이에서 사용될 때 디스크에 기록되며 해당 서명을 제거할 때까지 디스크를 다른 시스템으로 이동하거나 용도를 조정할 수 없습니다.
sudo wipefs -a -f /dev/sdb
경고:
wipefs
명령은 소멸적이며 대상 디스크(/dev/sdb
)의 전체 분할 영역 테이블과 서명을 제거합니다. -
어레이에 새 스페어를 추가합니다.
sudo mdadm --manage /dev/md0 --add /dev/sdb
-
예비 디스크가 있는지 확인합니다.
sudo mdadm --detail /dev/md0
출력 하단에는 State가 spare로 설정된
/dev/sdb
장치가 목록에 나타나야 합니다.
자세한 내용:
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 보다 무료 학습 컨텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.
제품 설명서는 Oracle Help Center를 참조하십시오.
Build a Software RAID Array on Oracle Linux
F58426-01
June 2022
Copyright © 2022, Oracle and/or its affiliates.