CentOS RAID 생성(Level 0+1,Level 1+0) / LVM(Linear 구성)에 대해서 정리한다.
※ RAID 생성 [ Level 0+1 ]
1. 디스크 추가
- /dev/sdb ( 1G )
- /dev/sdc ( 1G )
- /dev/sdd ( 1G )
- /dev/sde ( 1G )
2. Raid 파티션 생성 ( fd )
- /dev/sdb1
- /dev/sdc1
- /dev/sdd1
- /dev/sde1
3. Raid 생성 ( Tool - mdadm )
- /dev/md/stripe1 ( Level 0 )
- /dev/sdb1
- /dev/sdc1
- /dev/md/stripe2 ( Level 0 )
- /dev/sdd1
- /dev/sde1
- /dev/md/level01 ( Level 1 )
- /dev/md/stripe1
- /dev/md/stripe2
4. 파일시스템 생성 ( ext4 )
- /dev/md/level01
#>mkfs -t ext4 /dev/md/level01
5. 마운트
#>mount /dev/md/level01 /raid/level01
6. 장치 멈춤
- 마운트 해제
#>umount /dev/md/level01
- /dev/md/level01
#>mdadm --stop /dev/md/level01
- /dev/md/stripe1
#>mdadm --stop /dev/md/stripe1
- /dev/md/stripe2
#>mdadm --stop /dev/md/stripe2
* Level 0+1에서 장치를 멈출때는 장치를 생성할때와 반대 순서로 작업을 진행 해준다.
( Level 0+1에서 먼저 Level 0을 구성하기 위해 4장의 디스크로 /dev/md/stripe1과 /dev/md/stripe2 구성을 진행 하였다 )
( mdadm --detail을 이용해서 /dev/md/stripe2의 구성 정보를 확인 할 수 있다 )
( 2개의 stripe 구성 장치를 가지고 이번에는 mirror 구성을 해주게 되면 Level 0+1 구성이 된다 )
( Leve 0+1 구성 이후에는 정보를 저장하기 위해 ext4 파일 시스템을 생성 해줬다 )
( 파일 시스템 생성 이후에는 mount로 연결해서 해당 마운트 포인트의 내용은 방금 만든
/dev/md/level01로 저장이 되도록 한다 )
※ RAID 생성 [ Level 1+0 ]
1. 디스크 추가 ( 4장 )
2. 파티션 생성 ( fd )
3. Raid 생성 ( Tool - mdadm )
#>mdadm --create /dev/md/level10 -l 10 -n 4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
4. Raid 확인
#>mdadm --detail /dev/md/level10
5. 파일시스템 생성
#>mkfs -t ext4 /dev/md/level10
6. 마운트
#>mount /dev/md/level10
- 확인
#>df -h
* mdadm에서 Level 10 구성을 지원해주기 때문에 생성할때 -l 옵션에 10이라고만 적어줘도 된다.
※ LVM ( Logical Volume Manager )
- Raid보다 유연한 기능( 사용하는 중에 크기 조절 가능 ) 제공
( 하지만 안정성은 떨어진다 )
- LINUX에서 LVM을 사용하기 때문에 제공한다.
( 따로 설치할 필요가 없다 )
1. PV( Physical Volumn )
- LVM을 구성하는 물리적 단위
2. VG( Volumn Group )
- 여러개의 PV로 구성되는 논리적인 단위
3. LV( Logical Volumn )
- VG를 이용하여 사용하고자 하는 디스크 공간을 할당
( 파티션과 같은 개념 )
※ LVM 구성 [ Linear 구성 ]
1. 디스크 추가
- /dev/sdb ( 1G )
- /dev/sdc ( 1G )
2. LVM 파티션 생성 ( 시스템ID - 8e )
- /dev/sdb1
- /dev/sdc1
3. PV 생성
#>pvcreate <dev_name>
- 확인
#>pvs
( LVM을 구성하기 위해서는 해당 디스크 장치들을 물리적인 PV로 먼저 만들어줘야 한다 )
4. VG 생성
#>vgcreate <vg_name> <pv_name> ...
- 확인
#>vgs
( 생성한 PV들을 vgcreate를 이용해 하나의 그룹으로 묶어준다 )
5. LV 생성
#>lvcreate -L <size> -n <lv_name> <vg_name>
( size 단위 : bBsSkKmMgGtTpPeE )
#>lvcreate -l <size> -n <lv_name> <vg_name>
( size 단위 : % )
#>lvcreate -L 500M -n lv01 korea
#>lvcreate -L 750M -n lv02 korea
#>lvcreate -l 100%FREE -n lv03 korea
- 확인
#>lvs
#>pvs
( lvcreate -L 명령어를 사용해서 500M 크기의 LV를 할당했는데 여기서 <lv_name> 자리에는
디렉터리가 아닌 이름만 단독으로 써준다 )
( vgs와 pvs 명령어를 이용해서 확인해보면 사용 가능한 크기가 500M 줄어든걸 볼 수 있다 )
( 각 PV의 크기가 1G인데 이번에는 LV 크기를 750M로 주고 생성하니까 Linear 방식인데도 불구하고
남아있는 장치부터 순서대로 저장되는게 아닌 한번에 저장 가능한 공간에 먼저 저장 시키는걸 볼 수 있다 )
* 원래 순차적으로 저장하는 Linear 특성의 방식을 생각해본다면 /dev/sdb1에 먼저 저장 되는게 맞는데
이런 부분에서는 Raid에 Linear 방식과 약간의 차이를 보인다.
( 만약 LV 크기가 1.5G였다면 그냥 우리가 알고 있는 Linear 방식처럼 순차적으로 저장이 된다 )
( lvcreate -l을 이용하면 %로 LV를 생성 할 수 있는데 이 경우에는 남은 공간에 100%를 쓴다고 했기 때문에
양쪽 PV에 남은 공간을 다 가져오는걸 볼 수 있다 )
6. 파일시스템 생성
#>mkfs -t ext4 /dev/mapper/korea-lv01
7. 마운트
#>mkdir -p /lvm/linear1
#>mount /dev/mapper/korea-lv01
- 확인
#>df -h
8. 장치 제거
1) 마운트 해제
#>umount /dev/mapper/korea-lv01
2) LV 제거
#>lvremove <dev_name>
#>lvremove /dev/mapper/korea-lv01
#>lvremove /dev/mapper/korea-lv02
#>lvremove /dev/mapper/korea-lv03
3) VG 제거
#>vgremove <vg_name>
#>vgremove korea
4) PV 제거
#>pvremove <dev_name>
#>pvremove /dev/sdb1
#>pvremove /dev/sdc1
댓글