mdadm – soft raid
F.3. mdadm 명령을 사용하여 RAID 기반, 멀티패스 스토리지를 설정하는 방법
raidtools 패키지 세트를 구성하는 다른 도구와 마찬가지로, mdadm 명령을 이용하여 여러 개의 장치를 관리하는데 필요한 모든 기능을 수행 가능합니다. 다음 부분에서는 mdadm 사용법에 대하여 설명해보겠습니다:
RAID 장치 생성
멀티패스 장치 생성
F.3.1. mdadm를 사용하여 RAID 장치 생성하기
RAID 장치를 생성하기 위해서는 /etc/mdadm.conf 파일에서 적절한 DEVICE 값과 ARRAY 값을 정의하셔야 합니다:
DEVICE /dev/sd[abcd]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1
이 예시에서 DEVICE 줄은 파일 이름 글로빙(globbing: 상세한 정보는 glob(7) 맨페이지를 참조)을 사용하여 다음과 같은 SCSI 장치들을 정의하고 있습니다:
/dev/sda1
/dev/sdb1
/dev/sdc1
/dev/sdd1
ARRAY 라인은 DEVICE 줄에 의해 정의된 SCSI 장치를 구성하는 RAID 장치 (/dev/md0)를 정의합니다.
RAID 장치를 생성하거나 사용하기 전에는 /proc/mdstat 파일은 아직 아무런 RAID 장치도 활성화되지 않았음을 보여줍니다:
Personalities :
read_ahead not set
Event: 0
unused devices: <none>
다음으로 앞서 설정과 mdadm 명령을 사용하여 RAID 0 어래이를 생성하십시오:
mdadm -C /dev/md0 –level=raid0 –raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 \\
/dev/sdd1
Continue creating array? yes
mdadm: array /dev/md0 started.
생성을 마치면 언제든 RAID 장치의 상태 정보를 알아볼 수 있습니다.다음 예시는 mdadm –detail /dev/md0 명령의 출력 결과를 보여줍니다:
/dev/md0:
Version : 00.90.00
Creation Time : Mon Mar 1 13:49:10 2004
Raid Level : raid0
Array Size : 15621632 (14.90 GiB 15.100 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Mon Mar 1 13:49:10 2004
State : dirty, no-errors
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 64K
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
3 8 49 3 active sync /dev/sdd1
UUID : 25c0f2a1:e882dfc0:c0fe135e:6940d932
Events : 0.1
F.3.2. mdadm를 사용하여 멀티패스 장치 생성하기
mdadm 명령을 사용하여 RAID 어래이를 생성하는 것 뿐만 아니라 개별 SCSI LUN (디스크 드라이브)에 한개 이상 입/출력 경로를 제공하는 하드웨어 기능을 이용 가능합니다. 멀티패스 스토리지를 사용하는 목적은 하드웨어에 고장이 나거나 개별 경로가 포화 상태가 되었을때에도 계속적으로 데이터를 주고 받을 수 있도록 하기 위해서입니다. 이 설정에는 공동 SCSI LUN (디스크 드라이브)를 액세스하는 여러 경로가 (각 경로는 개별 가상 컨트롤러처럼 작동) 지정되었기 때문에, 리눅스 커널은 각 공유 장치를 개별 경로를 통해 검색합니다. 즉, /dev/sda 파일로 알려진 SCSI LUN (디스크 드라이브)은 설정 내용에 따라서 /dev/sdb, /dev/sdc 등의 경로를 통하여 액세스 가능합니다.
입/출력 경로에 문제가 생길 경우 계속적으로 액세스 가능한 장치를 제공하기 위하여 mdadm는 ––level 옵션에 추가 변수를 제공합니다. 이 변수 — multipath — 는 입/출력 경로에 문제가 발생할 경우 리눅스 커널의 md 계층이 입/출력 요청을 한 경로에서 다른 경로로 방향 전환하여 전송하도록 지시합니다.
멀티패스 장치를 생성하시려면 /etc/mdadm.conf 파일에서 하드웨어 설정을 나타낼 수 있도록 DEVICE 값과 ARRAY 값을 정의하십시오.
알림
앞서 /etc/mdadm.conf 파일에 지정된 각 장치는 서로 다른 디스크 드라이브를 나타내었던 RAID 예시와는 달리 이 파일에서 각 장치는 동일한 디스크 드라이브를 지칭합니다.
멀티패스 장치를 생성하는데 사용되는 명령은 RAID 장치 생성에 사용한 명령과 유사합니다; 차이가 있다면 RAID 레벨 변수를 multipath 변수로 바꿔주시면 됩니다:
mdadm -C /dev/md0 –level=multipath –raid-devices=4 /dev/sda1 /dev/sdb1
/dev/sdc1 /dev/sdd1
Continue creating array? yes
mdadm: array /dev/md0 started.
이 mdadm 명령을 한줄로 쓰기에는 너무 길어서 두 줄로 나누어 적었습니다.
이 예시에서 한개의 SCSI LUN으로 구성된 하드웨어는 4개의 SCSI 장치로 나타내며, 각 장치는 다른 경로를 통하여 동일한 스토리지에 액세스합니다.멀티패스 장치 /dev/md0가 생성되면, /dev/md0를 참조하는 모든 입/출력 작업이 (현재 사용 가능한 경로 여부에 따라서) /dev/sda1, /dev/sdb1, /dev/sdc1, 또는 /dev/sdd1으로 보내집니다.
/dev/md0 파일 설정 내용이 멀티패스 장치인지 여부는 mdadm –detail /dev/md0 명령을 사용하여 보다 주의깊게 살펴볼 수 있습니다:
/dev/md0:
Version : 00.90.00
Creation Time : Tue Mar 2 10:56:37 2004
Raid Level : multipath
Array Size : 3905408 (3.72 GiB 3.100 GB)
Raid Devices : 1
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Mar 2 10:56:37 2004
State : dirty, no-errors
Active Devices : 1
Working Devices : 4
Failed Devices : 0
Spare Devices : 3
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 17 1 spare /dev/sdb1
2 8 33 2 spare /dev/sdc1
3 8 1 3 spare /dev/sda1
UUID : 4b564608:fa01c716:550bd8ff:735d92dc
Events : 0.1
mdadm은 또한 장치 (RAID 어래이의 구성원 또는 멀티 패스 설정의 한 경로)를 운영 체제 설정에서 제거하는 기능을 제공합니다. 다음 예시는 /dev/sda1에 문제가 있는 것으로 플래그되어, 이 장치를 제거한 후 다시 설정에 추가하는 작업입니다. 멀티패스 설정시 이러한 작업을 수행한다고 해도 현재 진행되고 있는 입/출력 작업에는 아무런 영향을 미치지 않습니다:
# mdadm /dev/md0 -f /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
# mdadm /dev/md0 -r /dev/sda1
mdadm: hot removed /dev/sda1
# mdadm /dev/md0 -a /dev/sda1
mdadm: hot added /dev/sda1
#
2 Responses
2oration
3release