● LVM

OS
 ↓
LVM    // OS적으로 구현하기 때문에 돈이 많이 안듬.
 ↓
Disks


● RAID

OS
 ↓
RAID    // LVM과 동일한 기술인데 대체적으로 안정성에서 H/W적으로 구현하므로 돈이 많이 듬.
 ↓
Disks


● LVM과 RAID0의 차이
100G 하드 3개가 있을 때 이것을 LVM이나 RAID0으로 묶었다고 가정해보자.
LVM은 하드 3개가 묶여있지만 순서대로 데이터를 채워나간다.
RAID0은 Stripping으로써 하드 3개를 동시에 채워나간다.



LVM은 디스크의 타입이 IDE든 SCSI든 상관없지만, RAID는 SCSI이어야 함.
RAID는 S/W RAID와 H/W RAID가 있는데, 안정성 면에서 H/W RAID를 많이 선호한다.
H/W RAID를 지원하려면 RAID Card(또는 SCSI Card)가 있어야 함.

RAID는 구현 형태에 따라 번호가 나뉘는데 그 중 0, 1, 5번이 가장 많이 쓰임.
일반적으로 서버는 RAID를 지원하기 때문에 가격이 비싼 것임. 정보는 돈과 비교할 수 없기 때문에 회사에서는 돈을 들여서라도 안정적으로 구현하려 하는 경향.



● RAID0
RAID를 안쓴다는 것임. 일명 Stripping.

● RAID1
RAID를 쓴다는 것임. 일명 Mirroring.
100G 하드 2개가 있을 때 두 디스크의 내용이 똑같다. 단점은 돈이 많이 듬.

● RAID5
RAID5는 최소한 디스크가 3개 이상이어야 한다.
100G 하드 5개가 있을 때 디스크 4개만 쓰고 나머지 하나는 Spare용임. 4개 중 한 개의 디스크가 고장나면 Spare가 교체됨. 단, 2개의 디스크가 고장나면 복구 못한다는 단점.

● RAID6
RAID5와 같으나 Spare가 2개임.

● RAID5+1
RAID5를 통째로 Mirroring 한 것.




● LVM이란?
여러 개의 하드디스크를 합쳐서 한 개의 파일시스템으로 사용하는 것
LVM은 여러 개의 디스크를 하나처럼 사용하게 해 줄뿐 아니라, 합쳐진 것을 다시 여러 개로 나눌 수도 있다. 예로 2TB짜리 2개를 합쳐서 논리적으로 1개로 만든 후에 1TB와 3TB로 나눠서 파일시스템을 사용할 수도 있다.

● 특징
 - 작은 용량의 하드디스크 여러 개를 큰 용량의 하드디스크 한 개처럼 사용함
 - 서버를 운영하면서 대용량의 별도 저장 공간이 필요할 때 활용함

● 용어
 - Physical Volume(물리 볼륨) : /dev/sda1, /dev/sdb1, /dev/sdc1
 - Volume Group(볼륨 그룹) : Physical Volume을 합쳐서 1개의 물리적 그룹으로 만드는 것
 - Logical Volume(논리 볼륨) : Volume Group을 나눠서 논리적 그룹으로 나눔(1개 이상)
 - Physical Extent : PV가 갖는 일정한 블록
 - Logical Extent : LV가 갖는 일정한 블록




[실습] 100M 하드디스크 2개, 200M 하드디스크 1개 총 3개의 디스크를 LVM을 적용하여 400M 용량의 1개의 디스크처럼 사용하도록 해보라.

1. 실습에 필요한 하드디스크를 추가하고 난 후, 시스템을 부팅한다.


2. 시스템이 새로운 디스크를 인식하는지 fdisk -l 명령으로 확인해본다.


3. 차례대로 /dev/sdc 장치부터 파티셔닝을 시작한다. 중간에 t는 파일시스템 유형을 선택하는 것으로써 다음의 Hex code에 디폴트는 83(Linux)이지만 우리는 LVM을 구현할 것이므로 8e(Linux LVM)을 입력한다.


4. 잘 되었는지 확인하기 위해 p를 입력해 본다. System열에 Linux LVM이라고 쓰여있는 것을 확인할 수 있다. 파티셔닝 작업을 저장하기 위해 w를 입력한다. 나머지 장치인 /dev/sdd와 /dev/sde도 같은 작업을 반복한다.


5. 파티션 작업이 잘 되었는지 확인해 본다.


6. pvcreate 명령으로 각 장치 파티션의 물리볼륨을 생성한다.


7. 위에서 만든 3개의 물리볼륨을 하나의 볼륨그룹으로 묶는다. 명령은 vgcreate이며, 볼륨그룹 이름은 myVG로 준다고 가정한다.


8. vgdisplay 명령으로 볼륨그룹이 제대로 생성되었는지 확인해본다. 생성된 볼륨그룹의 용량이 400M인 것을 확인할 수 있다.


9. 이제부터는 /dev/myVG를 하나의 하드디스크(/dev/sdb)처럼 생각하고 작업하면 된다. 일반적인 하드디스크의 파티션 생성 명령은 fdisk이나, 볼륨그룹의 파티션을 생성할 때는 lvcreate이다.
myVG 아래에 myLG1이라는 논리볼륨을 생성하되 크기는 400M로 한다고 가정한다.


10. 파티션 생성 후 mkfs 명령어로 파일시스템 포맷을 했듯이, 위에서 생성한 논리볼륨(/dev/myVG/myLG1)도 똑같이 하나의 하드디스크 파티션과 동일하게 작업하면 된다.
논리볼륨을 ext3 파일시스템으로 포맷한다고 가정한다.


11. 마운트시킬 디렉토리를 하나 만들고, 거기에 포맷까지 완료한 논리볼륨을 마운트시킨다. 그런 후 df -h 명령어로 확인해 본다.


12. 재부팅시 자동으로 마운트 되도록 /etc/fstab 파일을 열어 수정한다.

'운영체제 > 리눅스' 카테고리의 다른 글

[리눅스] 메일 서버  (0) 2010.07.11
[리눅스] 네임 서버  (0) 2010.07.07
[리눅스] 디스크 추가하기  (0) 2010.07.06
[리눅스] 응급복구 (루트 암호 없애기)  (0) 2010.07.02
[리눅스] 프로세스와 데몬  (0) 2010.07.02
Posted by 겨울섬
,