mdadm를 이용한 Soft RAID 1 구성
아래 2개의 디스크를 미러링
/dev/sdb
/dev/sdc
기본적으로 2개의 디스크 모두 fdisk를 통해 파티셔닝을 진행하고
시스템 타입을 fd (Linux raid auto)로 잡아준다.
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x2a950de1.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):
Value out of range.
Partition number (1-4): 1
First cylinder (1-243201, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-243201, default 243201):
Using default value 243201
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): l
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
Command (m for help): p
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x2a950de1
Device Boot Start End Blocks Id System
/dev/sdb1 1 243201 1953512001 fd Linux raid autodetect
Partition 1 does not start on physical sector boundary.
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
위와 똑같이 /dev/sdc도 파티셔닝을 끝나면 현재 시스템에 레이드노드를 확인한다.
[root@localhost ~]# ls -al /dev/md*
ls: cannot access /dev/md*: 그런 파일이나 디렉터리가 없습니다
레이드 노드가 없기 때문에 새로이 생성해 주며, 있을 경우 삭제후 재생성해 준다.
[root@localhost ~]# mknod /dev/md1 b 3 10
mknod의 옵션은 mknod (장치명) (옵션) [major] [minor]
옵션은
b : 블록 디바이스 타입
c : 문자 디바이스 타입
u : c와 동일함
p : FIFO 타입
블록이나 디바이스 명은 파일의 주번호와 부번호를 지정해 줘야 하는데
0-256사이의 숫자로 지정이 가능하다. 주번호만 존재하면 장치 한계를 256개 이므로 부번호와 함께 사용한다.
이제 mdadm으로 레이드를 구성하자.
[root@localhost ~]# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
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
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
아래 명령어로 레이드 구성을 확인할 수 있다.
[root@localhost ~]# mdadm --detail /dev/md1
이제 파티션을 포멧후 파일시스템을 생성하고 마운트해서 사용하면 된다.
/etc/fstab에 기록하거나 마운트 후에 재부팅 하면 /dev/md1이 임의의 숫자로 변경이 될 경우가 있는데
이 경우는 /etc/mdadm.conf가 없어서 그러니
[root@localhost ~]# mdadm --detail --scan > /etc/mdadm.conf
위 명령어로 설정 파일을 생성해 주면 재부팅 해도 정상적으로 잡혀있다.
레이드가 정상적으로 잡혀있으면 아래 명령어로 디스크 상태를 볼수 있는데
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sdb1[1] sdc1[0]
1953380736 blocks super 1.2 [2/2] [UU]
만약 디스크 2개의 디스크중 하나가 이상이 생겨 제기능을 하지 못할경우
[_U] 혹은 [U_] 로 표시가 된다.