일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- grafana
- OS
- helm
- aws s3
- Network
- ip
- CSV
- AWS
- tcp
- Vision
- java
- log
- zookeeper
- jvm
- airflow
- Spring
- kubeadm
- PostgreSQL
- MAC address
- Kafka
- docker
- CVAT
- Python
- Operating System
- Packet
- JavaScript
- kubernetes
- EC2
- Trino
- kubectl
- Today
- Total
JUST WRITE
RAID Disk 구성 - Spare Disk 본문
RAID Disk 구성
현재 Private Cloud 환경에서 Kubernete Cluster를 구성하는 프로젝트를 진행하고 있다.
제공받은 Server(AWS EC2와 같은)의 구성이 너무 좋아서 오히려 관리가 힘들 거 같았다.
자세한 Spec은 밝힐 수 없지만 Server별 Disk의 갯수가 12TB 용량 Disk가 40개였다.
40개를 각각 관리하기가 너무 힘들기 때문에 22개를 각각 11개씩 2 Set로 RAID로 구성하기로 하였다.
해당 담당자에게 11개씩 RAID5로 구성되도록 요청하였다.
RAID5 vs RAID6
RAID는 Redundant Array of Inexpensive(Independent) Disk의 약자이다.
RAID는 Disk 여러 개(Array of Disk)를 하나의 Disk처럼 사용할 수 있도록 하는 것이다.
Server를 분산 구성하는 이유가 높은 성능 Server 하나보다 낮은 성능 Server 여러 개가 비용이 저렴하다.
큰 용량 Disk 하나보다 작은 용량 Disk 여러 개도 비용이 저렴할 것이다.
이렇게 여러개의 낮은 용량의 Disk를 하나로 사용할 수 있도록 해주는 것이 RAID 구성이다.
이번 사례에서는 비용적인 측면보다는 관리를 수월하기 위해서 RAID로 구성하였다.
RAID 구성 방식은 아래와 같이 여러가지 방식이 있다.
- Linear RAID
- RAID 0, RAID1
- RAID 5, RAID 6
- RAID 1+0, RAID +1
이번 포스팅에서는 사례에서 진행한 RAID 5를 소개하려 한다.
RAID 5
RAID 5는 가장 최우선으로 고려되는 RAID 구성이다.
최소 3개의 Disk와 최대 16개의 Disk로 구성된다.
RAID Striping을 통해서 데이터를 빠르게 Read 할 수 있다.
RAID Striping은 연속된 데이터를 1개의 Disk가 아닌 여러개의 Disk에 나눠서 저장하는 것을 말한다.
이렇게 나눠서 저장하면 Read할 때 Parellel 하게 Read 할 수 있다.
Parity를 통해서 Disk 장애가 날 시 복구가 가능하다.
Parity는 예비 데이터 공간으로 장애가 날 시 다른 Disk에서 데이터를 가져와 복구한다.
대신 2개 이상의 Disk가 장애가 나면 대처할 수 없다.
Spare Disk 발견
Private Cloud 인프라 담당자에게 RAID 5 구성이 완료되었다고 전달받고 확인을 해보았다.
$ cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid10]
md2 : active raid5 sdc10 sdm111(S) sdl19 sdk18 sdj17 sdi16 sdh15 sdg14 sdf13 sde12 sdd11
117187512320 blocks super 1.2 level 5, 512k chunk, algorithm 2 [11/10] [UUUUUUUUUU_]
bitmap: 0/88 pages [0KB], 65536KB chunk
...
...
...
md3 : active raid5 sdv18 sdp12 sdt16 sdu17 sdw19 sdn10 sdx111 sdo11 sdr14 sds15 sdq13
117187512320 blocks super 1.2 level 5, 512k chunk, algorithm 2 [11/11] [UUUUUUUUUUU]
bitmap: 0/88 pages [0KB], 65536KB chunk
RAID 구성 2 Set 중 1 Set Disk가 문제가 있음을 확인하였다.
해당 RAID를 디테일하게 살펴보았다.
$ mdadm --detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Wed Jan 18 17:23:51 2023
Raid Level : raid5
Array Size : 117187512320 (109.14 TiB 120.00 TB)
Used Dev Size : 11718751232 (10.91 TiB 12.00 TB)
Raid Devices : 11
Total Devices : 11
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jan 30 19:12:41 2023
State : clean, degraded
Active Devices : 10
Working Devices : 11
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Name : ******01:2 (local to host spc-k8sw01)
UUID : ******:******:******:******
Events : ****
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
2 8 65 2 active sync /dev/sde1
3 8 81 3 active sync /dev/sdf1
4 8 97 4 active sync /dev/sdg1
5 8 113 5 active sync /dev/sdh1
6 8 129 6 active sync /dev/sdi1
7 8 145 7 active sync /dev/sdj1
8 8 161 8 active sync /dev/sdk1
9 8 177 9 active sync /dev/sdl1
- 0 0 10 removed
11 8 193 - spare /dev/sdm1
살펴보니 1개의 Disk가 Spare Device로 표시되었다.
Spare Device가 무엇인지 살펴보았다.
Spare Disk
spare의 사전적 의미는 '여분' 이라는 의미이다.
그래서 RAID 구성에서 Spare Disk는 남는 RAID에서 장애가 날 시 Data를 받아서 장애난 Disk를 대처하게 된다.
RAID 5 구성에서 Spare Disk를 둘 수도 있고 안 둘 수도 있다.
장단점이 있는 데 RAID 5는 Disk 2개 이상 장애를 대처 못하지만 Disk 용량을 확보할 수 있다.
RAID 5 + Spare Disk 구성은 Spare Disk로 장애 대처가 가능하지만 Spare Disk만큼의 용량을 버려야 한다.
Disk 교체
RAID 구성 2개 Set 중에 하나는 Spare Disk가 있고 나머지는 없어서 담당자에게 문의하였다.
담당자의 답변은,,, 해당 Disk에 문제가 있었다는 것이었다.
이래서 직접 확인을 해야되는 것 같다.
결국 해당 Disk는 Hot Swap으로 교체되었다.
이번 Disk 구성으로 RAID에 대해 좀 더 자세하게 알 수 있었다.
[참고사이트]
'OS > Linux' 카테고리의 다른 글
NTP 설정 (0) | 2023.02.19 |
---|---|
DNS 체크 (0) | 2023.01.31 |
SFTP 전용 유저 생성 (0) | 2023.01.19 |
120TB Disk EXT4로 포맷 (0) | 2023.01.18 |