RAID가 좀처럼 기억되지 않았기 때문에 가볍게 실천까지 해 보았다.

6049 단어 EC2아파치ebsRAID

RAID란?



컴퓨터의 5대 기능 중의 기억의 일부를 담당하는,
외부 기억 장치의 「디스크」입니다만,
주 기억 장치에 해당하는 메모리와 비교하면 액세스 속도가 매우 느립니다.

따라서 디스크에 더 빨리 액세스하는 것,
또 이중화하고 대장애성을 높이는 것을 목적으로 한 기술을 말합니다.

몇 가지 수준이 있지만,
RAID0는 ​​디스크 액세스를 고속화하기 위한 기술(스트라이핑)이며,
나머지 1~6은 대장애성을 높이기 위한 미러링을 중심으로 한 기술입니다.


레벨
개요


0
데이터를 블록 단위로 복수의 디스크에 분산하여 기록(스트라이핑)한다. 하나가 고장 나면 전체 고장이므로 신뢰성이 떨어집니다.

1
동일한 데이터를 여러 디스크에 씁니다(미러링). 신뢰성은 높아지지만, 대수를 늘려도 1대분의 용량이 되기 때문에, 효율은 나빠진다.

3
데이터는 바이트 단위로 스트라이핑되고, 하나는 에러 정정을 위한 패리티 정보 기록용으로 고정된다. 패리티 정보에서 데이터를 복구할 수 있음

5
RAID3로부터 패리티 정보에 관해서도 블록 단위로 분산하여 기록한다



AWS에서 RAID 설정



AWS 외부 스토리지



EC2에 있어서의 외부 스토리지로서 EBS라고 하는 것이 있습니다.
EC2에 대해 부착, 분리가 유연하게 가능합니다.
이번에는 이 EBS를 EC2에 연결한 후 RAID 구성을 만들겠습니다.
EC2는 즉시 삭제할 테스트 용으로 작성되었으므로,
보안 그룹 등을 포함해 모두 디폴트로 작성.

기본적으로 작성한 EC2에서는 하나만 EBS가 첨부됩니다.
$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /


우선 볼륨 생성 및 연결



EBS는 볼륨으로 표기됩니다.
따라서 볼륨 생성에서 수행합니다.
EC2의 왼쪽 탭에서 볼륨을 선택합니다.

거기에서 볼륨 만들기를 선택.


그러면 다음과 같은 화면이 됩니다.
또한, 스토리지 사이즈와 이용 기간에 대한 과금이므로,
1GB 등으로 둡시다.



작성을 완료합니다.


그러면 왼쪽의 볼륨 탭 없이 볼륨이 하나 증가하고 있는 것을 알 수 있습니다.
아직 연결되지 않은 볼륨은 사용 가능합니다.



이번에는 미러링과 스트라이핑을하고 싶기 때문에,
합계 4개 작성해 옵니다.
생성이 끝나면 연결합니다.


RAID 설정



이후에는 인스턴스 내에서 작업을 진행합니다.
모든 것을 연결하면,
인스턴스의 스토리지가 증가하고 있음을 알 수 있습니다.
늘어난 4개의 스토리지를 2대씩 미러링해, 2그룹을 작성.
각 그룹을 대상으로 스트라이핑합니다.

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0   1G  0 disk 
xvdg    202:96   0   1G  0 disk 
xvdh    202:112  0   1G  0 disk 
xvdi    202:128  0   1G  0 disk 

먼저 4개 중 2개를 RAID1로 미러링합니다.
다음 명령 중 level의 옵션 부분은 RAID 레벨의 지정입니다.

$ sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/xvdg /dev/xvdi
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/md0 started.


다른 세트도 마찬가지로 미러링

$ sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/xvdh /dev/xvdf
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.

md0과 md1이라는 그룹을 만들 수 있었습니다.

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
xvda    202:0    0    8G  0 disk  
└─xvda1 202:1    0    8G  0 part  /
xvdf    202:80   0    1G  0 disk  
└─md1     9:1    0 1023M  0 raid1 
xvdg    202:96   0    1G  0 disk  
└─md0     9:0    0 1023M  0 raid1 
xvdh    202:112  0    1G  0 disk  
└─md1     9:1    0 1023M  0 raid1 
xvdi    202:128  0    1G  0 disk  
└─md0     9:0    0 1023M  0 raid1 

마지막으로 스트레이핑을 합니다.

$ sudo mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/md1 /dev/md0
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.

md2를 만들 수있었습니다.

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
xvda    202:0    0    8G  0 disk  
└─xvda1 202:1    0    8G  0 part  /
xvdf    202:80   0    1G  0 disk  
└─md1     9:1    0 1023M  0 raid1 
  └─md2   9:2    0    2G  0 raid0 
xvdg    202:96   0    1G  0 disk  
└─md0     9:0    0 1023M  0 raid1 
  └─md2   9:2    0    2G  0 raid0 
xvdh    202:112  0    1G  0 disk  
└─md1     9:1    0 1023M  0 raid1 
  └─md2   9:2    0    2G  0 raid0 
xvdi    202:128  0    1G  0 disk  
└─md0     9:0    0 1023M  0 raid1 
  └─md2   9:2    0    2G  0 raid0

액세스 속도 등도 여가가 있으면 보고 싶습니다.

참고



【AWS】EBS로 RAID1+0을 해 본 메모~후편:EBS의 어태치로부터 RAID 구축~

좋은 웹페이지 즐겨찾기