본문 바로가기

IT 관련정보/리눅스

리눅스 기본 이론(13) - RAID 구축하기

RAID 구축하기


*설치된 하드디스크 정보 확인하기


#fdisk -l


Disk /dev/hda: 1073 MB, 1073741824 bytes

16 heads, 63 sectors/track, 2080 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes


Disk /dev/hda doesn't contain a valid partition table




*하드디스크


1. IDE 패러럴(병렬),      4개장착가능 h

2. S-ATA 시리얼   6개장착가능  s

3. SCSI 서버전용, 시리얼  15개장착가능  s




*파티션작업


#fdisk 장치명


예)

#fdisk /dev/hda


> m


Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   l   list known partition types

   m   print this menu

   n   add a new partition

   o   create a new empty DOS partition table

   p   print the partition table

   q   quit without saving changes

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit

   x   extra functionality (experts only)



d   파티션삭제

n   파티션생성

w   작업저장후 종료

q   작업저장하지 않고 종료

p   파티션정보확인

t   파티션 타입 지정

l   파티션 타입 목록확인




Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4) 병렬방식



*파티션종류


1) 주파티션 부팅가능한 파티션으로, 운영체제가 설치된다.

                부팅파일이 손상되면 부팅할 수 없다.

                반드시 첫번째 파티션은 주파티션으로 할당해야 한다.

2) 확장파티션 논리드라이브를 설정하기 위하여 사용공간을

                선언해주는 파티션으로 실제 파티션으로 사용할 수 없다.

                확장파티션도 주파티션으로 취급한다.

3) 논리드라이브 부팅불가능한 파티션으로 주로 DATA를 저장한다.

                어떠한 운영체제를 만나든지 사용할 수 있다.

               


p

Partition number (1-4): Primary Master    PM

                        Primary Slave     PS

                        Secondary Master  SM

                        Secondary Slave   SS


*리눅스는 파티션을 용량이 아닌 실린더수로 지정한다.

Partition number (1-4): 1

First cylinder (1-2080, default 1): enter

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-2080, default 2080): 

Using default value 2080


*생성된 파티션확인

Command (m for help): p


Disk /dev/hda: 1073 MB, 1073741824 bytes

16 heads, 63 sectors/track, 2080 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes


   Device Boot      Start         End      Blocks   Id  System

/dev/hda1               1        2080     1048288+  83  Linux


* 레이드용 하드디스크 파티션 설정하기


fdisk  장치명


n

p

1

enter

enter

t

fd

w


*레이드 패키지 설치

yum install ?y mdadm



실습] 레이드 0(스트라이핑)  구축하기: 하드디스크를 하나로 합치기


*레이드 선언

mdadm  --create  /dev/md0  --level=0  --raid-devices=2  /dev/sdb1  /dev/sdc1


mdadm: array /dev/md0 started.


* 작업확인 1

cat  /proc/mdstat


Personalities : [raid0] 

md0 : active raid0 hdb1[1] hda1[0]

      2,096,384 blocks 64k chunks

      

unused devices: <none>


* 작업확인 2

mdadm  --detail  /dev/md0


/dev/md0:

        Version : 0.90

  Creation Time : Tue Feb  2 15:21:04 2016

     Raid Level : raid0

     Array Size : 2096384 (2047.59 MiB 2146.70 MB)

   Raid Devices : 2

  Total Devices : 2

Preferred Minor : 0

    Persistence : Superblock is persistent


    Update Time : Tue Feb  2 15:21:04 2016

          State : clean

 Active Devices : 2

Working Devices : 2

 Failed Devices : 0

  Spare Devices : 0


     Chunk Size : 64K


           UUID : 5bc31ecb:9fcac7d1:a285e8fd:a2036d55

         Events : 0.1


    Number   Major   Minor   RaidDevice State

       0       3        1        0      active sync   /dev/hda1

       1       3       65        1      active sync   /dev/hdb1



*재부팅해야 되지만 리눅스 재부팅없이 바로 포멧할 수 있다.


* 파일시스템생성(포멧)

mkfs.ext3  /dev/md0


mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

262144 inodes, 524096 blocks

26204 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=536870912

16 block groups

32768 blocks per group, 32768 fragments per group

16384 inodes per group

Superblock backups stored on blocks: 

        32768, 98304, 163840, 229376, 294912


Writing inode tables: done                            

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 37 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.



*마운트 (리눅스 밖에 있는 하드웨어를 리눅스안으로 연결하는것)


(1)마운트포인트 생성(리눅스 안에 있는 것)


mkdir /raid0


cd /raid0


touch 1 2 3 4 5


mkdir dri1 dir2 dir3 dir4 dir5


ls 


1 2 3 4 5 dri1 dir2 dir3 dir4 dir5


cd ..   부모 디렉토리로 이동





* 마운트작업


mount -t ext3 /dev/md0  /raid0


*마운트확인


(1) mount

/dev/md0 on /raid0 type ext3 (rw)



(2)df -h



*마운트해제작업


#umount /dev/md0

umount: /raid0: device is busy(이미 사용중입니다.)

umount: /raid0: device is busy


에러: 장치가 사용중이므로 마운트 해제를 할 수 없다.

해결: 장치 사용을 중지하거나 마운트포인트에서 다른곳으로 이동한다.


cd ..

# umount /dev/md0


------------------------------------------------------------------------



레이드 1번 미러링 구축하기



사전작업: 레이드 0번은 해제해주어야 한다.



(1) mdadm --stop /dev/md0



(2) mdadm  --create  /dev/md1  --level=1  --raid-devices=2  /dev/sdb1  /dev/sdc1



(3) mkfs.ext3 /dev/md1



(4) 마운트



(5) /dev/hdb1 하드디스크가 고장이 났다고 가정하고 /dev/hdd1 하드디스크랑 교체작업.



(6) 마운트 해제



(7) 레이드 해제



(8) 각각의 하드디스크를 마운트하여 자료 확인



---------------------------------------------------------------------------------


레이드 5번 구축하기



사전작업: 레이드 1번은 해제해야 한다.



(1) mdadm --stop /dev/md1



(2) mdadm  --create  /dev/md5  --level=5  --raid-devices=3  /dev/hda1  

                                                            /dev/hdb1

                                                            /dev/hdd1


(3) mkfs.ext3 /dev/md5



(4) 마운트



(5) 마운트 해제



(6) 고장발생 (기본하드가 3개 이상)


장애선언

# mdadm /dev/md5 -f /dev/hdd1


# mdadm --detail /dev/md5



장애가 발생한 하드 제거

# mdamd /dev/md5 -r /dev/hdd1


# mdadm --detail /dev/md5



새로운 하드 추가

# mdadm /dev/md5 -a /dev/hde1


# mdadm --detail /dev/md5