RAID 기술 상세 정보 및 성능 테스트
21941 단어 RAID
이미 1978년 미국 UC버클리는 RAID(edundant Array of Independen Disk) 가상 스토리지 시스템을 제안했다.RAID는 독립적인 이중화 디스크 어레이로서 여러 개의 독립된 디스크를 하나의 논리 디스크로 조합하여 저장 용량을 높이고 저장 성능을 향상시키거나 데이터 백업 기능을 제공하는 것을 사상한다.RAID 스토리지 시스템의 조합은 RAID 레벨에 따라 정의됩니다.
RAID는 소프트웨어 RAID와 하드웨어 RAID 두 종류로 나뉜다.Windows, Linux, UNIX와 같은 기존 운영 체제에는 소프트 RAID 기능이 통합되어 있습니다.소프트웨어 RAID는 하드웨어 RAID와 동일한 기능을 제공하지만 별도의 하드웨어 제어 장치가 없기 때문에 하드웨어 RAID보다 성능이 떨어지지만 소프트웨어 RAID는 단순하게 구현되므로 추가 하드웨어 장치가 필요하지 않습니다.하드웨어 RAID에는 일반적으로 RAID 카드가 필요하며 RAID 카드 자체에는 별도의 제어 부품과 메모리가 있기 때문에 시스템 자원을 차지하지 않고 효율적이고 성능이 우수합니다.물론 현재 시중에 많은 메인보드에 RAID 카드가 통합되어 있어 구체적인 사용 방식은 하드웨어 설명서를 참고할 수 있다.
RAID 。
1 RAID 레벨
RAID는 결합하는 방법에 따라 다양한 설계 솔루션이 있으며, 다음은 일반적인 RAID 레벨(RAID 레벨)에 대해 설명합니다.
4
RAID 0 , ,
, ,RAID0
: , ,
。
4
RAID 1 , , ,
RAID , ,
,
: RAID 1 。 , ,
120GB, RaID 1 120GB。
4
RAID 2 , (bit) ,
( ) 。
RAiD2, ,
DATA1 DATA2 , 。
RAID2 E ,
, 。
RAID 2 , , 。
RAID3(바이트 레벨의 검증된 스트라이프 저장소) RAID4(블록 레벨의 검증된 스트라이프 저장소)RAID5(블록 레벨이 분포된 검증된 스트라이프 저장소) RAID10(미러링 및 스트라이프 저장소)
3 raid 생성 및 관리 실례
1.
[root@localhost ~]# fdisk -l.. ...
Disk /dev/sdb: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065★512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/sdd: 2147 MB, 214 7483648 bytes255 heads, 63 sectors/ track, 261 cyl inders
Units = cyl inders of 16065★512 = 8225280 bytes
Disk /dev/sdd doesn't contain a valid partition table
상기 출력 정보를 통해 알 수 있듯이 본 기기는 sdb, sdc, sdd 세 개의 하드디스크가 구분되지 않았다. 만약에 리눅스에서 소프트 레이드를 실현하려면 각 하드디스크를 - 한 구역으로 나누어 레이드를 만들 수도 있고 하드디스크를 여러 구역으로 나누어 소프트 레이드를 실현할 수도 있다. 여기서 우리는 각 하드디스크를 두 구역으로 나눌 것이다.
3.1 하드 드라이브 파티션 만들기
[root@localhost ~]# fdisk /dev/sdb
sd1 sd2 ,
[root@localhost ~]# partprobe -a
3.2 RAID 생성(이 경우 RAIDO 및 RAID5 각각 생성)
Linux에서 디스크 배열을 만드는 데는 mdadm 명령을 사용할 수 있습니다. CentOS 7에서 현재 지원되는 RAID 레벨 RAIDO, RAID1, RAID4, RAIDS, RAID6, RAID10입니다.다음은 이 명령의 사용 방법을 살펴보자.
: mdadm
: Linux RAID 。
: mdadm [ ] <raid >
RAID (create)。-1 RAID (level)。
。
。
[root@localhost ~]# mdadm -C /dev/md0 -1 0 -n 3 /dev/sdb1 /dev/sdc1 , dev/sdd1
mdadm: array /dev/md0 started.
[ root@ localhost ~] # mdadm -C /dev/md1 -1 5 -n 3-x 1 \
> /dev/sdb2 /dev/sdc2 /dev/sdd2 /dev/sde2
> mdadm: array /dev/md1 started.
md0 RAID0 md1 RAID5 , 。
RAIDO RAID 5 。
[root@localhost ~]# mdadm --detail /dev/md0/dev/md0:
Version : 0. 90
Creation Time : Thu May 17 03:46:55 2012
Raid Level : raid0
Arrav size : 2963520 12.83 GiB 3.03 GB)
# md0
# #RAID
#RAID
Etecetec
Preferred Minor : O
Persistence : superblock is persistent IUpdate Time : Thu May 17 03:46:55 2012
State : cleanActive Devices : 3Working Devices : 3Failed Devices : CSpare Devices : 0
Chunk Size : 64K
UUID : 62e9bd3e: f4dcf02d: 31 9e2a62: 8099eb72 ix 1 UUIDEvents : 0.1Numbe r Major
0 8 01 82 8
/dev/md1 :
Number Major
0 81 8
/dev/ sdb1/dev/ sdc1/dev/ sdd1#*~ md1 íTï ÉA
Minor1834
RaidDevice State
0 active sync1 active sync
/dev/ sdb2/dev/ sdc2
3.3 포맷 및 마운트
[root@localhost ~]# mkfs. xfs /dev/md0[root@localhost ~]# mkdir /raid0
[ root@localhost ~]# mount /dev/md0 /raid0[root@localhost ~]# mkfs.xfs /dev/md1[root@localhost ~]# mkdir /raid5
[root@localhost ~]# mount /dev/md1 /raid5
디스크 매트릭스 장치를 켜기 자동 마운트 항목으로 설정하고, CeniOS 시스템은 디스크 매트릭스의 프로필/etc/mdadm를 읽을 수 있습니다.conf에서 RAID 디바이스를 시작합니다.다음 두 명령은 DEVICE 행이 모든 디스크 어레이의 장치 구성원 이름을 입력하는 데 도움을 주며, ARRAY 행은 디스크 어레이의 구체적인 기본 정보인 이름, 레벨, UUID 등을 기술합니다.
[root@localhost ~] #echo "DEVICE /dev/sdb1 /dev/sdb2 \
/dev/sdc1 /dev/sdc2 /dev/sdd1 /dev/sdd2 /dev/sde2" > /etc/mdadm . conf
[root@localhost ~]# mdadm -Evs > > / dev/ mdadm. conf
ARRAY /dev/md/0 level=raid0 metadata=1.2 num-devices=32591cc4d:a588f799:88123b79 name=centos7 . example. com:0
devices=/dev/ sddl, /dev/ sdcl, /dev/ sdb1
ARRAY /dev/md/1 level=raid5 metadata=1.2 num-devices= 3 6bc3a 612: 969239d8: 7a78a301 name=centos7. example. com: 1
spares=1 devices=/dev/sde2, /dev/sdd2, /dev/ sdc2, /dev/sdb2
[root@localhost ~]# echo "/dev/md0 /raid0 xfs defaults 0 0" >> /etc/fstab
[root@localhost ~]# echo "/dev/md1 /raid5 xfs defaults 0 0" >> /etc/fstab
UUID=4282a2c2:
UUID=d6cc7bdc:
3.4 RAID 성능 시뮬레이션
**************************
★* : ★★
**************************
[root@localhost ~]# time dd if=/dev/zero of=txt bs=1M count=1000
1000+0 records in1000+0 records out
1048576000 bytes (1.0 GB) copied, 21. 7965
real 0m23.262s
user 0m0.001s
sys 0m2.209s
seconds, 48.1 MB/s
, 1GB 23.262s.
** RAID 0: ★*★********
[root@localhost raid0]# time dd if=/dev/zero of=txt bs=1M count =1000
1000+0 records in1000+0 records out
1048576000 bytes (1.0 GB) copied, 3. 87193 seconds, 271 MB/s
real 0m4.308s
user 0m0.001s
sys 0ml.604s
, RAIDO 1GB 4.308s。
★★★★★*★★★****************
★★ RAID 5: ★*
★★★★★★★★**★**************
[root@localhost raid5]# time dd if=/dev/zero of=txt bs=1M count= 1000
1000+0 records in1000+0 records out
1048576000 bytes (1.0 GB) copied, 12. 5047 seconds, 83.9 MB/s
real 0m12.614s
use r 0m0.004s
sys 0m3.705s
, RAID 5 ,
RAIDO , , 1GB 12.614s。
5RAID 장애 시뮬레이션
[root@localhost raid5]# mdadm /dev/md1 -f /dev/sdb2
mdadm : set /dev/sdb2 faulty in /dev /md1
: -f ( failed) sdb2 。
RAID5 1GB , , Rald /dev/sde2 ( ), /dev/sdb2 。
[root@localhost ~]# mdadm --detail /dev/md1
Numbe r
Major
Minor
RaidDevice State