RAID를 쓰는 이유
서버를 운영함에 있어서 서버 관리자가 겪게 되는 제일 큰 고충은 하드디스크 장애로 인한 데이터 유실일 것이다.
하드디스크는 평생 가는 부품이 아니다. 소모품이기에 언제든 고장날 수 있고, 특히 input/output이 많은 서버에서는 하드디스크의 고장이 잦을 확률이 높다.
데이터는 절대적으로 손실이 되서는 안되는 중요한 자산이기에 백업이 절대적으로 필수적이다.
뿐만 아니라, 여분의 디스크가 생겨 서버에 용량을 증설하려고 할 때 데이터 손실 없이 클린하게 서버 용량을 증설해야 하는 경우가 생길 수 있다.
그래서 서버 관리자는 RAID 구성을 통해 하드디스크의 가용성을 높이고 서버 데이터의 안정성을 확보하기 위해 여러 노력을 해야한다.
RAID
RAID는 Redundant Array of Inexpensive Disks의 약자이다. 여러 개의 디스크를 배열하여 속도의 증대, 안정성의 증대, 효율성, 가용성의 증대를 높이는데 쓰이는 기술이다.
RAID의 장점
- 운용 가용성, 데이터의 안정성 증대
- 디스크 용량 증설 용이
- 디스크 I/O 성능 향상
📌 패리티(Parity)는 무엇인가?
1. 정수의 홀수 또는 짝수 특성
2. 정보 블록과 연결된 중복 정보, Parity는 오류 발생 시 데이터를 재구축하는데 사용되는 계산된 값이다.
RAID | 장치명 | level | raid-device |
---|---|---|---|
RAID 0 | /dev/md0 | 0 | 2 |
RAID 1 | /dev/md1 | 1 | 2 |
RAID 5 | /dev/md5 | 5 | 3 |
RAID 6 | /dev/md6 | 6 | 4 |
RAID 10(1+0) | /dev/md10 | 10 | 4 |
[장치명은 RAID명을 나타내기 위한 예시이므로 다른 이름을 사용해도 무방]
RAID 0
RAID 0에는 Concatenate 방식과 Stripe 방식 두 가지 방식이 존재한다.
Concatenate
- 두 개 이상의 디스크에 데이터를 순차적으로 쓰는 방법
- 장점
- 디스크 기본 공간 부족 시 데이터는 보존하며 여분의 디스크를 볼륨에 포함하여 용량 증설 가능
- 단점
- RAID 0의 특성 상 디스크 중 어떤 디스크 하나에 장애 발생 시 전체 데이터 복구가 매우 어렵고, parity(오류검출기능)를 지원하지 않는다.
- 용량
- 모든 디스크의 용량을 합친 용량 (200GB disk * 2ea = 400GB)
Stripe
- 흔히 RAID 0이라고 하면 Stripe 방식을 뜻함.
스트라이핑(stripe or striping) 이라고 불리는 RAID 0 방식은
두 개 이상의 디스크에 데이터를 랜덤하게 쓰는 방법이다.
- 장점
- 데이터를 사용할 때 I/O를 디스크 수 만큼 분할하여 쓰기 때문에 I/O 성능이 향상됨.
- I/O Controller나 I/O Board 등 I/O를 담당하는 장치가 별도로 장착된 경우 더 큰 I/O 성능 향상을 기대할 수 있음.
- 단점
- RAID 0의 특성 상 디스크 중 어떤 디스크 하나에 장애 발생 시 전체 데이터 복구가 매우 어렵고, parity(오류검출기능)를 지원하지 않는다.
- 용량
- 모든 디스크의 용량을 합친 용량 (200GB disk * 2ea = 400GB)
RAID 1
미러링 이라고 불리는 RAID 1은 두 개 이상의 하드디스크를 이용해 저장하는 데이터를 다른 한쪽에도 똑같이 복사해 저장하는 방법이다
- 장점
- 볼륨 내 디스크 중 하나의 디스크만 정상이더라도 데이터는 보존되어 운영이 가능하기 때문에 가용성이 높다.
- 복원이 비교적 매우 간단하다.
- 단점
- 용량이 절반(50%)으로 줄고, 쓰기 속도가 느려짐.
- 용량
- 모든 디스크의 절반(50%)의 용량 (200GB * 2ea = 200GB)
RAID 2
RAID 2는 데이터 저장용 디스크와 복구용 디스크를 나누어 저장한다. 이 때 데이터 저장시 RAID 0와 같은 스트라이핑 방식을 사용하며 데이터 복구에는 해밍 코드를 통해 데이터 복구를 수행함
하지만 RAID 4의 등장으로 RAID 2는 사용하지 않는다
RAID 3,4
RAID 3,4는 RAID 0,1의 문제점을 보완하기 위해 등장한 것으로 3,4로 구분되어 있지만 둘의 구성은 비슷하다.
데이터의 저장은 RAID 0와 같이 스트라이핑으로 수행하고 추가적으로 에러체크 및 복구를 위한 parity 정보를 별도의 디스크에 따로 저장한다
3,4의 차이점은 3의 경우 byte 단위로 데이터를 저장하고 4는 block 단위로 데이터를 저장한다는 차이를 가진다. block 단위로 데이터 저장 시 데이터의 크기가 작은 파일은 한 번의 작업으로 데이터를 읽을 수 있기 때문에 성능상의 장점이 있고 3은 동기화 과정을 거처야 하기 때문에 3보다는 4을 더 많이 사용한다
또한 RAID 3은 적어도 3개 이상의 하드디스크가 필요한 반면, RAID 4는 2개 이상의 하드디스크만 있으면 구성이 가능하다
RAID 5
RAID 5는 3,4의 단점을 보완한 방식으로 가장 많이 사용되는 방식 중 하나이다. parity 정보를 한 디스크에 몰아서 저장하는 것이 아닌 모든 디스크에 분산하여 저장한다. 따라서 3개 이상의 디스크를 필요로 하며 RAID 3, RAID 4에서 패리티를 저장하는 디스크와 정보를 저장하는 디스크 1개가 동시에 망가질경우 데이터 복구가 불가능하다는 단점을 5에서는 보완하였다
- 장점
- RAID 3,4에서 별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점 보완
- 패리티 정보를 stripe로 구성된 디스크 내에서 처리
- 1개의 하드가 고장나더라도 남은 하드들을 통해 데이터 복구
RAID 6
RAID 6는 5와 같은 개념으로 사용하지만 parity 정보를 하나 더 넣어 여러 하드에 문제가 생겨도 데이터 복구를 가능하게 하여 안정성에 더욱 신경 쓴 방법이다.
데이터가 스트라이핑으로 저장되기 때문에 0+1이나 1+0 보다 성능과 신뢰성이 좋지만 2차 parity 정보를 저장하면서
읽기 성능은 5와 비슷해졌고 데이터를 쓰는 경우 작업의 구현이 매우 복잡해지기 때문에 일반적으로 잘 사용이 되지는 않고있다.
RAID 0+1
RAID 0+1 은 0과 1을 동시에 구현한 방식이다. 먼저 스트라이핑한 디스크를 생성 후 스트라이핑 한 디스크들을 미러링 방식으로 묶어서 구현
RAID 0의 장점인 속도 증가와 RAID 1의 데이터 백업을 동시에 지원함
RAID 1+0
0+1과는 거꾸로 RAID 1을 사용해 미러링으로 구성. 그리고 미러링으로 구성된 디스크들을 스트라이핑을 통해 묶는 방식을 수행
0+1과 1+0은 같은 동작을 하는 것 처럼 보여 두 RAID 간 무슨 차이점이 있는지 의아함이 생길 수 있다.
물론 둘은 최종적으로 생성되는 디스크의 용량과 속도가 같지만 디스크의 안정성과 디스크의 복구 성능에서 차이가 발생한다.
안정성 측면
RAID 01은 디스크 0과 2가 동시에 망가질 경우 모든 디스크가 먹통이되지만 10은 0 과2가 동시에 망가져도 전체 디스크가 동작하는데 문제가 없다. 물론 10도 디스크 0과 1이 동시에 망가진다면 전체 디스크가 깨지지만 전체 디스크가 망가질 확률이 01보다 적으므로 안정성 측면에서 RAID 10이 좀더 좋다고 할 수 있다.
복구 측면
망가진 디스크의 복구과정 에서 01의 경우 디스크 0번이 망가진 경우 0번 디스크를 교체한후 재구성하게 되면 디스크 2, 3번으로 구성된 RAID 0 전체가 복사되지만 RAID 10의 경우 0번 디스크를 교체했다면 1번 디스크에서 복사를 하게되어 리소스의 비용이 훨씩 적게들어 시간이 단축된다.
RAID 구성하기
선처리 작업
우선 리눅스에서 RAID를 구성하기 위해 fdisk
명령어를 통해 파티션의 설정을 바꾸어 주어야 한다
$ fdisk -l /dev/sdb
...
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4194303 4192256 2G 83 Linux
한 개의 단일파티션을 생성했을 경우 'Linux' 라는 단순방식으로 파티션 타입이 설정되어 있다
해당 설정을 변경하기 전에,
fdisk /dev/sdb
에서 l을 눌러 확인하면 다양한 파일시스템 유형을 지원하는 것을 확인할 수 있다
그 중 fd(Linux Raid Auto) 방식을 사용하도록 파티션 타입을 'fd'로 변경해보자.
$ fdisk /dev/sdb
Command (m for help): l
00 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
01 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
02 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
03 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT-
04 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
05 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
06 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
07 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
08 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
09 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
0a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
0b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
0c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Linux extended
0e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
0f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto
1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep
1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT
Command (m for help): t
Selected partition 1
Hex code or alias (type L to list all): fd
Changed type of partition 'Linux' to 'Linux raid autodetect'.
Command (m for help): p
Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xbb1e8d68
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4194303 4192256 2G fd Linux raid autodetect
t 커맨드를 이용하여 파티션의 유형을 변경할 수 있고 raid 구성을 위해 필요한 linux raid auto가 hex 코드 fd를 지니고 있으므로 fd를 입력하면 유형을 변경할 수 있다
선처리 작업이 필요한 이유는 하드디스크 제일 앞부분에 raid로 구성된다는 metadata가 들어있어야 하기 때문에 정보공간 확보를 위해 파일시스템 유형을 미리 바꿔주어야 한다
mdadm 명령어 알아가기
RAID 구성을 실습해보기 이전에,
RAID 구성에 필요한 'mdadm' 명령어에 대해 잠시 알아가보자
해당 명령어는 raid를 구성할 수 있게 해주는 명령어이다.
선처리 작업에서 구성할 파티션에 raid로 구성할 것이라고 미리 알려주는 메타데이터를 입력하는 과정을 수행 했으므로,
이제 mdadm
명령어를 이용해 디스크들을 raid로 묶어주면 되는데
그 과정을 진행하기 이전에 먼저 mdadm
명령어에 대해 자세하게 알아보고 가자.
$ mdadm --create {장치명} --level={레이드 번호} --raid-devices={구성할 파티션 개수} {구성 파티션 리스트}
$ mdadm --create /dev/raid0 --level=0 --reiad-devices=2 /dev/sdb1 /dev/sdc1
생성
옵션 | 설명 |
---|---|
--create | RAID 생성 |
--level | RAID 레벨 설정 0,1,5,6 을 거의 사용함 |
--raid-devices | RAID로 묶을 HDD의 개수 |
확인
옵션 | 설명 |
---|---|
mdadm --detail --scan | RAID 정보 디테일하게 출력 |
mdadm -Ds | 모든 RAID |
mdadm -D RAID명 | 특정 RAID 정보 자세히 확인 |
추가
옵션 | 설명 |
---|---|
mdadm --add RAID명 디바이스1 디바이스2 ... | 장치를 추가하는 명령어로 복구시 망가진 디스크를 빼고 동일 raid에 새로운 하드 추가할 때 사용 |
정지/재구동
옵션 | 설명 |
---|---|
mdadm --stop raid 장치명 | 구성되어 있는 RAID 멈춤 |
mdadm --run raid 장치명 | 멈춰진 RAID 기동 |
RAID 1 구성
- 미러링 방식을 사용하는 raid 1 구성해보기
구성표
RAID | 파티션명 | 장치명 | RAID level | 묶을 raid 디바이스 수 |
---|---|---|---|---|
RAID 1 | /dev/sdb1,/dev/sdc1 | /dev/md1 | 1 | 2 |
raid로 묶고자 하는 디스크(sdb1,sdc1) 정보 확인하기
$ fdisk -l /dev/sd{b,c}
Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xbb1e8d68
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4194303 4192256 2G 83 Linux
Disk /dev/sdc: 1 GiB, 1073741824 bytes, 2097152 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfa32fda1
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 2097151 2095104 1023M fd Linux raid autodetect
raid 1으로 구성하기 위해 필요한 2개 디스크의 파티션 작업을 완료한 뒤 mdadm
명령어를 통해 2개의 하드를 raid 1 구성으로 묶어주도록 하자
$ mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
sdb1 , sdc1 파티션을 묶어 RAID level1 로 구성하고 생성되는 raid 장치의 이름은 /dev/md1 로 생성하겠다 라는 걸로 해석이 되겠다
mdadm을 통해 raid를 구성하면 2개의 디스크가 하나로 묶여 /dev/md1 이라는 새로운 하드디스크가 생성된 것이므로 이전에 하드디스크를 사용하기 위한 과정과 동일하게 수행하면 된다 (파일시스템 포맷)
/dev/md1 이 정상적으로 생성되었는지 확인해보자
$ mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Thu Jul 20 16:00:07 2023
Raid Level : raid1
Array Size : 1045504 (1021.00 MiB 1070.60 MB)
Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Jul 20 16:04:09 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : localhost.localdomain:1 (local to host localhost.localdomain)
UUID : c8d8aeb5:c2ea4dfc:6f0591c9:4ca38322
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
# /proc/mdstat 에서도 RAID가 적용되었는지 확인이 가능하다
$ cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb1[1] sdc1[0]
1046528 blocks super 1.2 [2/2] [UU]
raid는 파티션을 나눈 뒤 생성하므로 파티션 설정은 이미 생성되어 있는 것과 같고 이제 해당 디스크에 데이터를 저장할 수 있도록 mkfs
명령어를 통해 파일시스템을 포맷/생성 해주도록 하자
$ mkfs.ext4 /dev/md1
OR
$ mkfs -t ext4 /dev/md1
마지막으로 raid로 구성된 디스크에 접근할 수 있도록 마운트 포인트를 생성하도록 하자
$ mkdir /mnt/md1
/mnt/md1 raid 디스크를 /mnt/md1 에 마운트 해보자
$ mount /dev/md1 /mnt/md1
마운트가 정상적으로 되었는지 확인해보자
$ lsblk | grep 'md1'
└─md1 9:1 0 1021M 0 raid1 /mnt/md1
└─md1 9:1 0 1021M 0 raid1 /mnt/md1
RAID 1+0 구성
RAID 1과 0을 혼합하여 구성하는 RIAD 1+0도 단일 구성과 차이점이 거의 없다. 굳이 차이점을 쓰라고 한다면 mdadm을 통해 RAID로 묶는 과정이 추가되는 것 뿐이다.
구성표
RAID | 파티션명 | 장치명 | RAID level | 묶을 raid 디바이스 수 |
---|---|---|---|---|
RAID 0 | /dev/sdb1,/dev/sdc1 | /dev/md0 | 0 | 2 |
RAID 1 | /dev/sdd1,/dev/sde1 | /dev/md1 | 1 | 2 |
4개의 디스크를 raid 1으로 구성한다
HDD1 -- raid1 /dev/md0 --
HDD2 -- raid1 /dev/md0 --
-> 각 raid 1으로 구성된 2개의 raid 장치를 다시 raid 0으로 묶으면 RAID 1+0 구성이 완성된다.
HDD3 -- raid1 /dev/md1 --
HDD4 -- raid1 /dev/md1 --
우선 2개의 RAID1을 생성하도록 하자. 이때 해당 raid는 0으로 묶이는 일반 디스크와 같은 역할이므로 파일시스템을 생성하는 작업은 불필요하다
$ mdadm -C /dev/md0 -l 1 -n 2 /dev/sd{b,c}1
$ mdadm -C /dev/md1 -l 1 -n 2 /dev/sd{d,e}1
mdadm
명령을 통해 raid 1으로 생성된 2개의 장치(md1,md2)를 일반 디스크로 raid를 구성할 때와 같이 raid 0으로 설정하여 묶으면 생성한 /dev/md10은 raid 1+0으로 구성되게 된다.
$ mdadm -C /dev/md10 -l 0 -n 2 /dev/md{0..1}
이제 만든 /dev/md10의 파일시스템을 생성해주고 마운트하여 사용하면 끝이다.
하지만 /etc/fstab에 등록하고 재부팅을 해도 md10이 남아있지 않는다.
이 때 mdadm -A /dev/md10 /dev/md0 /dev/md1
로 (-A,Assemble) 재조립 시키면 다시 복구가 가능하다. 그리고 다시 마운트 시키면 기존에 존재하던 파일도 그대로 남아있는 걸 확인할 수 있을거다.
그렇다면 위와 같은 오류는 왜 발생한걸까? 이유는 기본 RAID 방식 0 ~ 6 까지는 재부팅 이후에도 RAID 구성이 유지되지만, RAID 0+1 / RAID 1+0 과 같이 혼합한 방식은 RAID가 풀리는 경우가 생긴다.
위와 같은 일을 없게 하려면 mdadm -Ds
의 정보를 /etc/mdadm.conf 라는 파일에 저장하면 조립된 결과를 기억하고 있어 레이드 구성이 사라지지 않는다.
$ mdadm -Ds > /etc/mdadm.conf
RAID 5 구성
구성표
RAID | 파티션명 | 장치명 | RAID level | 묶을 raid 디바이스 수 |
---|---|---|---|---|
RAID1 | /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 |
/dev/md1 | 5 | 4 |
raid로 묶고자하는 디스크(/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1) 정보 확인하기
$ fdisk -l /dev/sd{b,c,d,e}
raid 5으로 구성하기 전에 서버에 장착한 4개의 디스크의 파티션 작업을 완료한 뒤, mdadm
명령어를 통해 4개의 디스크를 RAID 5 구성으로 묶어주도록 하자.
$ mdadm --create /dev/md1 --level=5 --raid-devices=4 /dev/sd{b,c,d,e}1
sdb1, sdc1, sdd1, sde1 파티션을 묶어서 RAID 5로 구성하고 RAID 장치의 이름은 /dev/md1
로 생성함.
위처럼 mdadm
을 통해 RAID를 구성하면 4개의 디스크가 하나로 묶여 /dev/md1
이라는 새로운 디스크가 생성된 것이므로, 해당 디스크(/dev/md1) 또한 파일 시스템을 포맷한 후 마운트하여 사용하면 된다.
RAID 5(/dev/md1)가 정상적으로 생성되었는지 확인하자.
$ mdadm --detail /dev/md1
RAID는 파티션을 나눈 뒤에 생성하므로 파티션 설정은 이미 생성되어 있는 것과 동일하다.
이제 해당 디스크(/dev/md1)에 데이터를 저장할 수 있도록 mkfs
명령어를 통해 파일 시스템을 포맷/생성 해주도록 하자.
$ mkfs.ext4 /dev/md1
# OR
$ mkfs -t ext4 /dev/md1
마지막으로 RAID로 구성된 디스크에 접근이 가능하도록 마운트 포인트를 생성해주도록 하자.
$ mkdir /mnt/md1
이제 해당 마운트 포인트로 /dev/md1를 마운트 시키자.
$ mount /dev/md1 /mnt/md1
마운트가 정상적으로 되었는지 확인
$ df -h | grep 'md1'
/dev/md1 30G 24K 28G 1% /mnt/md1
$ lsblk | grep -A 9 'sdb'
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
└─md1 9:1 0 30G 0 raid5 /mnt/md1
sdc 8:32 0 10G 0 disk
└─sdc1 8:33 0 10G 0 part
└─md1 9:1 0 30G 0 raid5 /mnt/md1
sdd 8:48 0 10G 0 disk
└─sdd1 8:49 0 10G 0 part
└─md1 9:1 0 30G 0 raid5 /mnt/md1
sde 8:64 0 10G 0 disk
└─sde1 8:65 0 10G 0 part
/etc/fstab 등록
서버가 시작될 때마다 마운트되도록 설정하려면
/etc/fstab
파일을 수정하여 위에서 생성한 RAID 파티션을 자동으로 마운트하도록 지정해야 한다.
/etc/fstab
파일은 파일 시스템 테이블을 정의하는 파일로, 시스템 부팅 시에 자동으로 마운트할 파일 시스템을 지정하는데 사용된다.
여기서는 RAID 5 구성에서 생성했었던 /dev/md5 파티션을 /etc/fstab 파일에 추가해볼거다.
1. UUID 확인
각 파티션의 UUID(Universally Unique Identifier)를 확인
sudo blkid /dev/md5
/dev/md5: UUID="9bbfb9fe-94fa-483e-800a-e054ac25358d" BLOCK_SIZE="4096" TYPE="ext4"
2. fstab 파일 수정
/etc/fstab 파일을 편집기로 실행
vim /etc/fstab
3. 새로운 마운트 지점 추가
파일의 맨 아래에 새로운 파티션 추가
UUID=9bbfb9fe-94fa-483e-800a-e054ac25358d /my-datas ext4 defaults 0 2