티스토리 뷰
※ Linux 시스템에서 mdadm을 이용한 Soft RAID 구성
최초작성 - 2006.08.01. / 1차개정 - 2013.11.11. / 2차개정 - 2016.02.11
RAID 의 레벨은 대표적으로 0, 1, 5, 6, 1+0, 0+1 등 다양한 레벨이 존재하며 본 게시물에서는 보편적이면서 많이 사용되는 RAID Level 1 (미러링 모드) 에 대해서 알아보고자 합니다.
RAID 레벨에 대한 보다 자세한 정의는 구글등 검색엔진을 활용하시기 바랍니다.
다음 과정은 시스템을 초기 설치시 RAID 1 레벨을 구성하는것이 아닌 이미 설치된 시스템에 디스크 두개를 추가하여 구성하는 방식입니다.
또한 일반적으로 많이 알려진 raidtools를 이용한 raid 구성이 아닌 mdadm을 이용한 구성입니다.
RAID 구성에 사용되는 mdadm은 Linux kernel 기반에서 작동하는 raid software로서 아래와 같은 패키지가 설치되어있어야 구현 가능합니다.
[root@TEST01 ~]#
mdadm-2.6.9-3.el5.x86_64 : mdadm controls Linux md devices (software RAID arrays)
[root@TEST01 ~]# rpm -ql mdadm |
▶ fdisk 명령으로 레이드를 구성할 디스크 디바이스 확인 및 /dev/sdb와 sdc를 파티셔닝 작업
[root@TEST01 ~]# fdisk -l Disk /dev/sda: 21.4 GB, 21474836480 bytes Device Boot Start End Blocks Id System Disk /dev/sdb: 2147 MB, 2147483648 bytes Device Boot Start End Blocks Id System Disk /dev/sdc: 2147 MB, 2147483648 bytes Disk /dev/sdc doesn't contain a valid partition table Command (m for help): n Partition number (1-4): 1 Command (m for help): t Command (m for help): l 0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot Command (m for help): p Disk /dev/sdb: 2147 MB, 2147483648 bytes Device Boot Start End Blocks Id System Command (m for help): w Calling ioctl() to re-read partition table. Syncing disks. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Command (m for help): t Command (m for help): p Disk /dev/sdc: 2147 MB, 2147483648 bytes Device Boot Start End Blocks Id System Command (m for help): w Calling ioctl() to re-read partition table. |
▶ 시스템에 현재 구성된 레이드 노드를 확인
[root@TEST01 ~]# |
▶ 시스템에 현재 /dev/md0 라는 레이드 노드가 이미 구성되어 있기 때문에 rm 명령으로 해당 디바이스명을 삭제하거나 혹은 다음과 같이 추가
[root@TEST01 ~]# mknod /dev/md1 b 9 1 |
※ 명령해설 : mknod는 장치 Device 파일등의 특수 파일을 만드는 명령으로서 아래와 같이 mknod / 장치형식 / Major Number / Minor Number 형식으로 생성하며, 초기값으로 만들어지는 파일의 권한은 Umask 0666 값으로 생성된다.
p: FIFO |
※ Linux에 예약 및 생성된 Device Major / Minor Number 확인 : Linux System은 각 장치들의 고유식별을 위해 Major Number와 Minor Number를 사용하며, 해당 내역은 아래와 같이 확인 가능하다.
1) 각 장치 유형별 예약된 Major Number 확인
[root@centos7 ~]# cat /proc/devices
Block devices: |
2) OS 이하 기 생성된 장치별 Major / Minor Number 확인
[root@centos7 ~]# |
▶ mdadm 명령으로 레이드 레벨을 구성하고 해당 디바이스를 구성
[root@TEST01 ~]# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 |
▶ mdadm 명령으로 해당 디바이스가 잘 구성되었는지 스캔
[root@TEST01 ~]# mdadm --detail --scan |
▶ RAID 1 레벨로 구성된 레이드 노드 디바이스를 ext3로 포멧
[root@TEST01 ~]# Writing inode tables: done This filesystem will be automatically checked every 32 mounts or |
▶ 레이드가 구성된 /dev/md1 디바이스를 raid_disk 라는 디렉토리로 mount
[root@TEST01 ~]# |
▶ 추가된 노드 디바이스와 마운트 정보를 fstab 에 기록
[root@TEST01 ~]# [root@TEST01 ~]# vi /etc/fstab # This file is edited by fstab-sync - see 'man fstab-sync' for details /dev/md1 /raid_disk ext3 defaults 1 2 LABEL=/opt /opt ext3 defaults 1 2 [root@TEST01 ~]# [root@TEST01 ~]# |
▶ 디스크를 하나 제거후 status 메시지 확인후 다시 디스크를 추가하는 작업
[root@TEST01 ~]# mdadm --detail --scan [root@TEST01 ~]# |
▶ 추가된 새 디스크를 새로 파티셔닝 작업
[root@TEST01 ~]# fdisk /dev/sdc Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Command (m for help): t Command (m for help): l 0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot Command (m for help): p Disk /dev/sdc: 2147 MB, 2147483648 bytes Device Boot Start End Blocks Id System Command (m for help): w Calling ioctl() to re-read partition table. Syncing disks. |
▶ mdadm 명령으로 새로 추가된 디스크를 노드에 재 삽입
[root@TEST01 ~]# [root@TEST01 ~]# mdadm /dev/md1 --add /dev/sdc1 |
▶ 데이터가 제대로 기록되는지 확인
[root@TEST01 ~]#
|
※ SoftRaid1 Device 벤치마킹 테스트 내역
'System Story > CentOS 5,6' 카테고리의 다른 글
iSCSI Target에 Login시 Source IQN 확인 (0) | 2013.11.19 |
---|---|
multipathd 에 의해 할당된 device 들에 대한 mapping 조회 (0) | 2013.11.11 |
yum RPMforge for CentOS 5 (0) | 2013.11.10 |
Yum 에서 lib나 util이 포함된 패키지 찾기 (0) | 2013.11.10 |
WEB 서버 성능 향상을 TCP Session Time out 값 조정 (2) | 2013.11.10 |