LVM 및 재해 복구


13

나는 LVM 이 무엇인지, 그것이 무엇을 성취하는지 이해 하지만, 몇 가지 빠진 것 같습니다.

sda와 sdb라는 두 개의 물리적 드라이브가 있다고 가정 해 봅시다. 둘 다 100 Megs입니다. VolumeGroup1에 넣고 200meg LogicalVolume1을 만듭니다.

150 메가 파일을 만들면 어떻게됩니까? 실제로 100 메가는 sda에, 50은 sdb에 있습니까? 그렇다면 어떤 파일이 한 드라이브에 있고 다른 조각이 다른 드라이브에 있다는 것을 OS에 알리는 것은 무엇입니까?

드라이브 고장은 어떻습니까? RAID가 없다고 가정하면 sdb가 실패하면 sda의 모든 데이터가 손실됩니까? 어쨌든 어떤 물리 드라이브에 어떤 파일이 있는지 제어 할 수 있습니까?

일반적으로 LVM을 어떻게 관리합니까? 하나 또는 두 개의 큰 볼륨 그룹을 만든 다음 의미에 따라 파티션을 만드십니까? 다른 팁이 있습니까?


1
RAID, 대용량 미디어의 중복성을 피하고 단일 디스크 장애로 살 수있는 경우 다음과 같이 작동합니다. serverfault.com/a/543684/165065
DennisH

답변:


15

sda와 sdb라는 두 개의 물리적 드라이브가 있다고 가정 해 봅시다. 둘 다 100 Megs입니다. VolumeGroup1에 넣고 200meg LogicalVolume1을 만듭니다.
150 메가 파일을 만들면 어떻게됩니까? 실제로 100 메가는 sda에, 50은 sdb에 있습니까?

파일이 작성되기 전에 파일 시스템이 비어 있다고 가정합니다.

그렇다면 어떤 파일이 한 드라이브에 있고 다른 조각이 다른 드라이브에 있다는 것을 OS에 알리는 것은 무엇입니까?

LVM은 운영 체제에 단일 200MB 디스크가 있음을 알려줍니다. 커널의 LVM 부분 (사용자 공간 관리 도구와 커널 드라이버의 두 부분으로 나옴)은 운영 체제가 보는 것을 디스크의 물리적 위치 / 블록에 매핑합니다.

드라이브 고장은 어떻습니까? RAID가 없다고 가정하면 sdb가 실패하면 sda의 모든 데이터가 손실됩니까? 어쨌든 어떤 물리 드라이브에 어떤 파일이 있는지 제어 할 수 있습니까?

예, 데이터 손실을 고려하십시오.

더 작은 논리 볼륨을 작성하면 pvmove명령을 사용하여 디스크에서 디스크로 이동할 수 있습니다.

일반적으로 LVM을 어떻게 관리합니까? 하나 또는 두 개의 큰 볼륨 그룹을 만든 다음 의미에 따라 파티션을 만드십니까? 다른 팁이 있습니까?

큰 볼륨 그룹을 생성 한 다음 필요에 따라 논리 볼륨을 생성하는 경향이 있습니다. 볼륨 그룹에 모든 공간을 완전히 할당 할 필요는 없습니다. 필요할 때 할당하십시오. 논리 볼륨의 크기를 쉽게 증가시킬 수 있으며 거의 ​​모든 최신 파일 시스템도 쉽게 확장 할 수 있습니다.


첫 번째에 대해 확신합니까? 나는 LVM 보통 그래서 150 메가 파일을 가능성이있을 것이라는 점을 각 드라이브에 75 메가에 대해 가지고, 스트라이핑, 기본값 생각
freiheit

2
논리 볼륨을 작성할 때 --stripes <num>(short -i <num>) 를 지정하지 않으면 스트라이프가 작성되지 않습니다 .
pgs 2016 년

추신 : 여기 내 대답에는 각 LV가 사용하는 PV를 보여주는 스크립트가 포함되어 있습니다. serverfault.com/questions/28592/…
pgs

@freiheit, pgs가 옳습니다. 기본값은 볼륨을 스트라이프하지 않고 확장하는 것입니다.
에이버리 페인

관리와 관련하여 3 개의 HD에 하나의 lvm 그룹을 만들려고하지만 물리 볼륨으로 제한된 논리 볼륨 만 만든 다음 사용 가능한 공간 만 사용하여 스냅 샷을 만듭니다. 이것이 가정 사용자에게 가장 안전한 것이라고 생각하십니까?
물병 자리 힘

4

Linux에서 LVM과 Software Raid가 작동하게하는 기본은 커널의 장치 매퍼 부분입니다. 이것이 실제 장치의 블록 주소를 사용중인 가상 블록 장치로 추상화하는 것입니다.

데이터와 관련하여 LVM을 사용하는 경우 데이터 가용성 영향을 알고 있어야합니다. LVM이 실제로는 적절한 관행을 사용할 때 가용성에 미치는 영향이 최소화된다는 것은 위험하지 않습니다.

이 시나리오에서 귀하의 질문에 데이터의 가용성은 RAID0과 동일하며 드라이브가 고장 나면 데이터가 손실 될 수 있습니다.

실제로 나는 일종의 RAID에서 LVM을 실행하지 않고는 LVM을 사용하지 않을 것입니다. 하나의 VG에 약 20 개의 하드웨어 RAID5 볼륨이있는 30TB 파일 서버에서 LVM을 사용했습니다. 그러나 여유 ​​공간이 충분하면 pvmove를 사용하여 하나 이상의 PV에서 데이터를 마이그레이션하여 문제가 발생할 수 있습니다.

그러나 항상 테스트되는 백업 전략이 항상 있습니다.


3

일반적으로 LVM을 어떻게 관리합니까? 하나 또는 두 개의 큰 볼륨 그룹을 만든 다음 의미에 따라 파티션을 만드십니까?

나의 일반적인 전략은 (전체 세트로서) 다른 시스템으로 마이그레이션 될 수있는 물리 볼륨을 별도의 볼륨 그룹에 두는 것입니다.

외부 저장소가있는 경우 별도의 볼륨 그룹에 저장하는 것이 좋습니다. 물리적으로이 컴퓨터에서 연결을 끊고 다른 컴퓨터에 연결하는 것은 쉽습니다. 따라서 데이터를 그대로 유지하면서 LVM에서 논리적으로 쉽게 내보내거나 가져올 수 있습니다.

이미 내부 디스크에 vg00이 있고 시스템의 다른 내부 디스크를 구입 한 경우 스스로에게 질문하십시오. 새 디스크의 데이터가 vg00에 바인딩되어 있고 아무런 의미가 없습니다. 다른 시스템으로의 데이터? 이 경우 vg00의 일부 여야합니다. 그렇지 않으면 자체적으로 쉽게 내보내거나 가져올 수 있으므로 vg01을 만듭니다.


0

이와 같은 그룹에 물리적 볼륨으로 두 개의 드라이브가있는 경우 JBOD (Just a Bunch Of Disks) 어레이가 있습니다. 드라이브 중 하나에 오류가 발생하면 드라이브가 RAID0 배열로 배열 된 것보다 더 잘 보호되지 않습니다.

볼륨 그룹에 여러 개의 논리 볼륨을 분할하면 볼륨 그룹에 하나의 논리 볼륨이있는 경우 (LVM이 아닌 볼륨의 파일 시스템에 의해 제어되므로) 두 개의 드라이브에서 수행 할 작업을 직접 제어 할 수 없습니다. 주어진 논리 볼륨이 지정된 드라이브에 있도록 작성을 수동으로 주문할 수 있습니다.

VG의 각 PV에는 LV 레이아웃의 사본이 있고 RAID0과 같이 데이터가 제거되지 않으므로 드라이브 중 하나에 장애가 발생하더라도 데이터 손실이 우려되는 경우 무언가를 복구 할 가능성이 더 높습니다 이 방법으로 LVM 또는 RAID0을 통해 두 개의 드라이브를 사용하는 것은 고려하지 않습니다.


0

150 메가 파일을 만들면 어떻게됩니까? 실제로 100 메가는 sda에, 50은 sdb에 있습니까? 그렇다면 어떤 파일이 한 드라이브에 있고 다른 조각이 다른 드라이브에 있다는 것을 OS에 알리는 것은 무엇입니까?

LVM (Logical Volume Manager)은 물리 볼륨을 볼륨 그룹으로 수집합니다. 모든 물리적 볼륨 (드라이브 자체)에는 물리적 범위라는 작은 조각이 있습니다. 이 익스텐트에는 디스크에 uniq 식별자가 있습니다. 실제로 그들은 순차적으로 번호가 매겨집니다. 논리적 볼륨을 생성 할 때 물리적 볼륨과 쌍을 이루는 논리적 범위에서 생성됩니다. 논리 익스텐트의 논리 볼륨에 uniq ID가 있습니다. HP-UX에서는 어떤 논리적 범위가 어떤 물리적 범위와 쌍을 이루 었는지 확인할 수 있습니다. SLES11에서는 확인 방법을 알 수 없었습니다. lvdisplay --maps좋은 것이지만 나에게는 좋지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.