-
[리눅스] LVM stripe, mirror서버/리눅스 2017. 4. 13. 21:48
2) LVM stripe구성
Stripe구성은 raid의 stripe구성과는 다르다.
Raid의 stripe구성은 전체 디스크를 똑같은 용량으로 나누어서 저장해 [ 빠른 속도 ] 라는 이점이 있었지만
LVM의 stripe구성은 stripesize를 지정 후 디스크마다 분산저장을 해 낮은 용량일 경우 이점이 사라진다.
ex) stripesize : 68kb일 경우 A디스크에 68kb를 저장 그 다음 B디스크에 68kb저장.. 다시 A디스크에 ..모든 파일에 대한용량을
저장할때까지 반복한다.
#실습
준비된 시스템
-LVM 파티션 /dev/sdc1 /dev/sdd1
-PV : /dev/sdc1 /dev/sdd1
-VG : stripe ( /dev/sdc1 /dev/sdd1 )
리눅스 소스 & 설명
* LV 생성
#>lvcreate -i <dev_num> -L <size> -n <lv_name> <vg_name> ....
또는 -l
option -i 가 추가되었다. ( 없으면 linear로 생성 )
VG에서 stripe로 구성할 device의 갯수를 작성후 맨 뒤에 장치들에 대한 포함될 아규먼트들을 작성한다.
#>lvcreate -i 2 -L 1.5G -n lv01 stripe /dev/sdc1 /dev/sdd1
>>이때 자동으로 stripesize가 정해졌다.
*결과
: Logical Volume Name : Volume Group이 다른경우 이름이 같아도 상관없다.
파일시스템과 마운트까지 해준다.
#>mkfs -t ext4 /dev/mapper/stripe-lv01
#>mkdir -p /lvm/stripe
#>mount /dev/mapper/stripe-lv01 /lvm/stripe
3) LVM mirror구성
miroor 구성 같은경우 raid와 마찬가지로 lv로 만들어진 그룹갯수가 n일경우 1개의 원본장치와 n-1개의 사본장치로 구성된다.
즉 lv생성시 3개의 장치를 사용한다고 하면 2개의 사본장치가 생기고
2개의 장치를 사용한다고 하면 1개의 사본장치가 생긴다.
#실습
준비된 시스템
디스크 2장에 대한 파티션 ( hexC : 8e )
/dev/sdb (1G) >> /dev/sdb1
/dev/sdc (1G) >> /dev/sdc1
/dev/sdd (1G) >> /dev/sdd1 : 나중에 복구시 쓸 디스크
디스크에 대한 PV
VG ( 위 두장의 디스크에 대한 볼륨그룹 ) : miroor ( 2G )
리눅스 소스 & 설명
LV 생성
#>lvcreate -l|-L <size> -m <copy_num> -n <lv_name> <vg_name> <pv_name> ...
옵션 -m 의 아규먼트에 생성될 미러구성의 사본장치 갯수를 적어준다.
>> mirror구성에서는 size는 하나의 장치에대한 size다. : 미러 구성되는 갯수만큼 곱해줘야 한다.
ex) 3개의 미러구성 = 1개의 원본장치 3개의 미러구성 = size * 4 만큼의 용량을 할당받는다.
#>lvcreate -L -m 1 -n lv01 miroor /dev/sdb1 /dev/sdc1
#결과
>> lvcreate 명령어를 통하여 만들어준 lv01은 500m의 사이즈를 가지고 있지만 사실 복사본에대한 할당까지 받은 것이여서
miroor그룹은 1G가 줄어있다.
>> 여기서 보면 mirror 구성은 Cpy%Sync : 동기화가 100%되고 있다는 것을 보여준다.
파일시스템과 마운트까지 해준다.
#>mkfs -t ext4 /dev/mapper/miroor-lv01
#>mkdir -p /lvm/miroor
#>mount /dev/mapper/miroor-lv01 /lvm/miroor
#강제고장
#>cp /etc/services /lvm/miroor
#>dd if=/dev/zero of=/dev/sdb1 count=10
#>reboot
#>lvscan
#>lvchange --activate a /dev/mapper/miroor-lv01
#>mount /dev/mapper/miroor-lv01 /lvm/miroor/
#파일이 살아있는 것을 확인했다.
0) dd명령어는 디바이스에 강제로 데이터를 작성하는 방법이다.
1) lvscan명령어는 lv를 더 자세하게 보는 명령어이다.
2) lvchange명령어는 비활성화된 장치를 활성화 시킬 수 있다.
3) 비활성화시 mount가 안되므로 활성화 시킨후 mount시켜준다.
4) 강제로 활성화 시킨 lv로 인해 pv와 vg에서는 에러메세지와 고장난 디스크에 대한 용량까지 표시하고 있다.
#복구
*장치제거
#>vgreduce --removemissing --force <vg_name>
#>vgreduce --removemissing --force miroor
>> 장치제거를 완료하면 고장난 장치는 표시하지 않고 에러메세지 또한 사라진다.
다시 정상작동 되는 lv는 mirror구성장치인 사본장치들이 없으므로 linear장치로 동작하게 된다.
이렇게되면 장치를 추가 (확장) 해서 다시 미러 구성으로 동작시켜준다.
*확장
#>vgextend miroor /dev/sdd1
#>lvconvert -m 0 /dev/miroor/lv01
#>lvconvert -m 1 /dev/miroor/lv01 /dev/sdd1
>> 확장을 해도 아직 linear상태로 동작하는 LV를 mirror구성으로 동작시켜주기위해 lvconvert 명령어를 사용한다.
/dev/mapper/ ~ 링크파일을 사용하는게 아니라 /dev/miroor/ ~ 이 형식으로 작성해줘야 한다.
>> path가 아닌 인자값으로 넘겨주는 것이다 /dev/볼륨그룹/로지컬그룹으로 생각하기에 형식에 맞는 링크파일을 넘겨준다.
또한 아직 자신이 mirror구성인줄 아는 LV에 대해 linear라는 것을 재설정한다.
#file 명령어로 확인
file명령어 같은 경우 링크파일을 확인하면 원본이름을 반환한다.
지금 우리가 만든 lv들은 전부 symbolic link file이다.
따라서 #> file 명령어로 확인하는 경우 원본을 출력해준다.
'서버 > 리눅스' 카테고리의 다른 글
[리눅스] SAMBA / wins-lux 공유 폴더 연결 / 에러발생 (0) 2017.04.14 [리눅스] 기본적인 서버 구성 (0) 2017.04.14 [리눅스] LVM ( 가상화기법 ) (0) 2017.04.12 [리눅스] RAID 2 (0) 2017.04.11 [리눅스] RAID ( 명령어 : mdadm ) (0) 2017.04.10