linux class(new) 1 페이지

본문 바로가기
사이트 내 전체검색


회원로그인

linux class(new)

RAID

페이지 정보

작성자 admin 작성일16-02-09 17:22 조회1,842회 댓글0건

본문

RAID level 종류 및 설정

1. raid 0 volume (stripe volume)

raid0.jpg


최소디스크 : 2개 이상 필요
장점
- read / write 속도 빠르다.
- 디스크 가용률 100%
단점
- redundancy 안됨. 디스크 하나가 손상되면 나머지 디스크 데이터 전부 사용 불가
ex) 디스크 3개를 raid0 레벨로 구성하기

/# fdisk /dev/sdc
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): p

Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x96017627

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130):
Using default value 130

Command (m for help): p

Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x96017627

Device Boot Start End Blocks Id System
/dev/sdc1 1 130 1044193+ 83 Linux

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): p

Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x96017627

Device Boot Start End Blocks Id System
/dev/sdc1 1 130 1044193+ fd Linux raid autodetect

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
/#
나머지 디스크도 같은 방법으로 작업 후 아래와 같은 방법으로 확인.
/# cd /dev
/dev# fdisk -l sdc sdd sde | grep -i raid
sdc1 1 130 1044193+ fd Linux raid autodetect
sdd1 1 130 1044193+ fd Linux raid autodetect
sde1 1 130 1044193+ fd Linux raid autodetect
/dev#

파티션 설정이 완료된 후에는 아래처럼 raid 설정.

/dev# mdadm --create /dev/md0 --level=stripe --raid-devices=3 \
> /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
/dev#
raid 설정 후 아래와 같은 방법으로 확인.
/dev# fdisk -l /dev/md0

Disk /dev/md0: 3207 MB, 3207069696 bytes
2 heads, 4 sectors/track, 782976 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1572864 bytes
Disk identifier: 0x0a363130

/dev#

/dev# mdadm --detail --scan -v
ARRAY /dev/md0 level=raid0 num-devices=3 metadata=1.2 name=vega:0 UUID=0887d919:ed4a6901:b51b145c:26149931
devices=/dev/sdc1,/dev/sdd1,/dev/sde1
/dev# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sde1[2] sdd1[1] sdc1[0]
3131904 blocks super 1.2 512k chunks
unused devices:
/dev#

설정이 끝났으면 아래처럼 파일시스템 생성후 마운트 해서 사용하면 된다.
/dev# mkfs.ext4 /dev/md0 1> /dev/null
mke2fs 1.41.12 (17-May-2010)
/dev# mkdir /raid0
/dev# mount /dev/md0 /raid0
/dev# df -h /raid0
Filesystem Size Used Avail Use% Mounted on
/dev/md0 3.0G 69M 2.8G 3% /raid0
/dev#
centos 버전 6.x 인경우 리부팅하면 raid volume 장치이름이 md127, md126 .. 이런형태로
자동으로 변경된다. 장치이름이 변경되지 않도록 하려면 mdadm.conf 설정파일에 아래처럼
raid 설정정보를 저장하면 된다.
/dev# mdadm --detail --brief --scan > /etc/mdadm.conf

* raid 구성 제거

/# umount /dev/md0
/# mdadm --stop /dev/md0
/# cd /dev
/dev# mdadm --zero-superblock sdc1 sdd1 sde1
/dev# mdadm --examine sdc1 sdd1 sde1
mdadm: No md superblock detected on sdc1
mdadm: No md superblock detected on sdd1
mdadm: No md superblock detected on sde1


2. raid 1 volume (mirror volume)

raid1.jpg



최소디스크 : 2개이상 필요
장점 : redundancy
단점 : 디스크 가용률 50%
*. read 속도는 빠르다.
*. write 속도는 보통


/dev# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdf1 /dev/sdg1
mdadm: /dev/sdf1 appears to contain an ext2fs file system
size=1044192K mtime=Fri Feb 5 21:14:18 2016
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
mdadm: /dev/sdg1 appears to contain a reiserfs file system
size = 1044160K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
/dev# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sdg1[1] sdf1[0]
1043648 blocks super 1.2 [2/2] [UU]

md0 : active raid0 sde1[2] sdd1[1] sdc1[0]
3131904 blocks super 1.2 512k chunks

unused devices:
/dev#

/dev# mkfs.ext4 /dev/md1 1> /dev/null
mke2fs 1.41.12 (17-May-2010)
/dev# mkdir /raid1
/dev# mount /dev/md1 /raid1
/dev# df -h /raid1
Filesystem Size Used Avail Use% Mounted on
/dev/md1 1004M 18M 935M 2% /raid1
/dev#
mdadm --detail --brief --scan > /etc/mdadm.conf

*. 제거

/dev# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
/dev# mdadm --zero-superblock sdf1 sdg1
/dev# mdadm --examine sdf1 sdg1
mdadm: No md superblock detected on sdf1.
mdadm: No md superblock detected on sdg1.


----------------------------------------------------------------------------------
3. raid 5 volume
raid5.jpg



최소디스크 : 3개이상 필요
장점: 디스크 1개가 fail(고장) 발생하더라도 데이터 복구가능
단점: 디스크를 가용할 수 있는 용량은 전체 디스크 갯수 - 1
* 성능이 그리 중요하지 않고 쓰기 작업이 많지 않은 다중 사용자시스템에 적합하다.


/dev# cd /dev
/dev# fdisk -l sdc sdd sde | grep -i raid
sdc1 1 130 1044193+ fd Linux raid autodetect
sdd1 1 130 1044193+ fd Linux raid autodetect
sde1 1 130 1044193+ fd Linux raid autodetect
/dev# mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

설정완료 후 아래처럼 확인

/dev# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sde1[3] sdd1[1] sdc1[0]
2086912 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices:
/dev# mdadm --detail --scan -v
ARRAY /dev/md5 level=raid5 num-devices=3 metadata=1.2 name=vega:5 UUID=c82d6565:1a69fd21:57b6b3de:d6a94fac
devices=/dev/sdc1,/dev/sdd1,/dev/sde1


*. 리부팅했을 경우에 장치명이 변경되지 않도록 mdadm.conf 에 설정정보 저장

/dev# mdadm --detail --brief --scan > /etc/mdadm.conf
/dev# cat /etc/mdadm.conf
ARRAY /dev/md5 level=raid5 num-devices=3 metadata=1.2 name=vega:5 UUID=c82d6565:1a69fd21:57b6b3de:d6a94fac
devices=/dev/sdc1,/dev/sdd1,/dev/sde1


*. filesystem 생성후 마운트 해서 디스크 fail 시 복구 테스트

/dev# mkfs.ext4 /dev/md5 1> /dev/null
mke2fs 1.41.12 (17-May-2010)

/dev# mkdir /home3
/dev# mount /dev/md5 /home3
/dev# df -h /home3
Filesystem Size Used Avail Use% Mounted on
/dev/md5 2.0G 35M 1.9G 2% /home3
/dev# cp -rp /home/* /home3
/dev# ls /home3
aquota.group lee nuser1 u1 u4 user100 user200 xuser1 zuser10
aquota.user testfile u3 user1 user2 user300 zuser1 zuser100 zu
/dev# ls -lh /home3/testfile
-rw-r--r--. 1 root root 10M 2014-04-09 04:27 /home3/testfile
/dev# dd if=/dev/zero of=/home3/testfile bs=1024k count=500^C
/dev#

구성이 완료된후에
mdadm --detail --brief --scan > /etc/mdadm.conf 로 저장.
[root@centos1 ~]#

/dev# mdadm --manage /dev/md5 --fail /dev/sdd1
mdadm: set /dev/sdd1 faulty in /dev/md5
/dev# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sde1[3] sdd1[1](F) sdc1[0]
2086912 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]

unused devices:
/dev# ls /home3
aquota.group lost+found nuser1 u3 user100 user300 zuser10 zuser30
aquota.user lovejy testfile u4 user2 xuser1 zuser100
lee u1 user1 user200 zuser1 zuser20


* 복구

/dev# fdisk -l /dev/sdf

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x76391e70

Device Boot Start End Blocks Id System
/dev/sdf1 1 130 1044193+ fd Linux raid autodetect
/dev# mdadm --manage /dev/md5 --add /dev/sdf1
mdadm: added /dev/sdf1

/root# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdf1[4] sde1[3] sdd1[1](F) sdc1[0]
2086912 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
[===>.................] recovery = 18.7% (195660/1043456) finish=0.1min speed=97830K/sec

unused devices:
/root#


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

4. raid 0 + 1 (striped mirror volume)
raid01.jpg

최소디스크 : 4개 이상 필요
장점 : stripe 와 mirror 동시에 적용
단점 : 비용이 많이 발생
*. centos에서는 이 레벨을 지원하지 않으므로 0+1 을 구성하려면
stripe 볼륨을 먼저 구성하고 그것을 다시 mirror 볼륨으로 구성해야 한다.
먼저 아래 장치가 다른 raid volume 에서 사용중이면 제거한 다음
파티션 설정을 아래와 같이 설정한다.


/dev# fdisk -l /dev/sdc /dev/sdd /dev/sde /dev/sdf | grep -i raid
/dev/sdc1 1 130 1044193+ fd Linux raid autodetect
/dev/sdd1 1 130 1044193+ fd Linux raid autodetect
/dev/sde1 1 130 1044193+ fd Linux raid autodetect
/dev/sdf1 1 130 1044193+ fd Linux raid autodetect

파티션 설정이 다 완료 되었으면 아래 처럼 구성한다.

/dev# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
/dev# mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/sde1 /dev/sdf1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
/dev# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/md0 /dev/md1
mdadm: /dev/md0 appears to contain an ext2fs file system
size=3131904K mtime=Tue Feb 9 14:44:02 2016
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/md2 started.
/dev# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1]
md2 : active raid1 md1[1] md0[0]
2086848 blocks super 1.2 [2/2] [UU]

md0 : active raid0 sdd1[1] sdc1[0]
2087936 blocks super 1.2 512k chunks

md1 : active raid0 sdf1[1] sde1[0]
2087936 blocks super 1.2 512k chunks

unused devices:


새로 부팅하더라도 raid volume 장치명이 바뀌지 않도록 레이드설정 정보를 /etc/mdadm.conf 에 저장

/dev# mdadm --detail --brief --scan > /etc/mdadm.conf


raid 설정이 완료 되었으면 아래처럼 md2 에 filesystem 을 생성하고 마운트해서 사용하면 된다.

/dev# mkfs.ext4 /dev/md2 > /dev/null
mke2fs 1.41.12 (17-May-2010)
/dev#/dev# mkdir /raid01
/dev# mount /dev/md2 /raid01
/dev# df -h /raid01
Filesystem Size Used Avail Use% Mounted on
/dev/md2 2.0G 35M 1.9G 2% /raid01
/dev#




---------------------------------------------------------------------------------------------
5. raid 1+0 volume (mirrored stripe volume)
raid10.jpg
최소 디스크 : 4개이상 필요
장점 : stripe 와 mirror 동시에 적용.
단점 : 비용이 많이 발생
*. raid 0+1 과 비슷하지만 raid 0+1 에 비해서 좀 더 효율적이다.
기존의 raid 를 제거하고 raid 0+1 로 구성하는 경우에는
기존 raid 구성은 아래와 같은 방법으로 제거하면 된다.

/dev# mdadm --stop /dev/md2
mdadm: stopped /dev/md2
/dev# mdadm --stop /dev/md0 /dev/md1
mdadm: stopped /dev/md0
mdadm: stopped /dev/md1
/dev# mdadm --zero-superblock sdc1 sdd1 sde1 sdf1


완전히 제거 되었으면 아래처럼 구성

/dev# mdadm --create /dev/md10 --level=10 --raid-devices=4 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
/dev#


raid 설정 정보 확인

/dev# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10]
md10 : active raid10 sdf1[3] sde1[2] sdd1[1] sdc1[0]
2086912 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

unused devices:
/dev#


새로 부팅하더라도 raid volume 장치명이 바뀌지 않도록 레이드설정 정보를 /etc/mdadm.conf 에 저장

/dev# mdadm --detail --brief --scan > /etc/mdadm.conf



그 다음 아래처럼 파일시스템을 생성하고

/dev# mkfs.ext4 /dev/md10
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
130560 inodes, 521728 blocks
26086 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
8160 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 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
/dev#


적당한 디렉토리에 마운트 해서 사용하면 된다.
--------------------------------------------------------------------------------------------
* raid 옵션
cat /proc/mdstat --> 상태확인
mdadm --detail /dev/md0
--remove : raid disk 제거 ex) mdadm --manage /dev/md0 --remove /dev/sdc1
--add : raid disk 추가 ex) mdadm --manage /dev/md0 --add /dev/sdc1
--fail : raid disk 강제 fail ex) mdadm --manage /dev/md0 --fail /dev/sdc1
-S(--stop) : raid 정지 ex) mdadm --stop /dev/md0
-r(--remove) : raid 제거 ex) mdadm -r /dev/md0

댓글목록

등록된 댓글이 없습니다.


접속자집계

오늘
119
어제
75
최대
611
전체
448,169
개인정보취급방침 서비스이용약관 twoseven.kr All rights reserved.
상단으로