블로그 이미지
Rootrator
1개를 알면 모르는 10개가 튀어나온다..!

calendar

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 31

Notice

2014. 5. 21. 15:36 Linux

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_] 로 표시가 된다.

반응형
posted by Rootrator