리눅스 LVM 미러 대 MD 미러


11

나는 몇 년 전에 LVM으로 거울을 만드는 것을 기억하며,이 "로그"를 기억하지 못한다. 또는 mdadm으로 미러를 만들고 LVM을 맨 위에 놓습니다. 그게 다야.

  1. 미러 일 경우 LVM 로그는 무엇입니까? 거기에 무엇이 저장되어 있습니까? 목적이 무엇입니까? "-미러 로그 코어"를 사용하는 것이 좋지 않습니까? 단점은 무엇입니까? 필요하지 않은 경우 로그를위한 다른 파티션을 갖고 싶지 않습니다.

  2. 두 기술 중 어느 것을 사용하는 것에 대한 권장 사항이 있습니까? mdadm으로 미러를 만들더라도 그 위에 LVM을 사용합니다. 그렇다면이 경우 전체 설정을 LVM으로 빌드하는 것이 좋습니다. 성능 저하가 더 많거나 적을까요?

디스크는 Xen domU "디스크"를 저장하기위한 것입니다.

복잡하지 않은 "질문"에 대해 죄송합니다.

아이디어, 제안 및 링크를 가장 환영합니다. 감사!


md는 lvm과 비교할 때 미러 작업에서 더 나은 성능을 보이는 것 같습니다.
Zoredache

1
LVM 미러링은 다른 목적으로 사용되었습니다. MD를 사용하는 방식을 "미러링"하는 데 사용할 수 있지만 실제로는 볼륨 복제에 사용됩니다.
Avery Payne

1
복제 목적이라면 왜 3 권이 필요한가요?
D B -_-

답변:


9

개인적으로 저는 항상 MD + LVM을 사용합니다. 속도가 더 빠르며 (MD는 RAID1에서 병렬 읽기를 수행 할 수 있음) 2 개의 디스크 만 필요하며 (재부팅 할 때마다 미러를 다시 작성하지 않으려는 경우) MD는 RAID 만 수행하도록 설계되었으며 매우 잘 수행됩니다. 또한 더 유연합니다.

또한 LVM에 의해 화상을 입었습니다. 어떤 경우에는 HP-UX의 LVM 스트라이핑 (Linux의 경우 LVM2에서는 발생하지 않아야 함)이었으며 확장에 정확히 동일한 수의 스트라이프가 있어야했기 때문에 LV를 확장 할 수 없었습니다. 합리적인 것처럼 보이지만 때로는 ...

또 다른 때는 미러링 (이번에는 Linux에서 LVM2)을 사용했지만 LVM이 미러링 된 LV의 스냅 샷을 만들지 않았거나 확장하지 않았는지 기억할 수 없었습니다. 결국, lvconvert를 앞뒤로 사용하는 것).


감사! MD 위에서 LVM을 사용할 것이라고 생각합니다. MD의 자동 감지에 문제가있는 것처럼 보입니다. ( raid.wiki.kernel.org/index.php/RAID_Boot ) 전체 시스템 (스왑, 부팅, /, var, 홈, usr)을 미러링하고 싶었습니다. 그래서 자동 감지 이외의 다른 것을 조사해야합니다.
d -_- b

예, 자동 감지는 원칙적으로 좋은 생각이지만 모든 종류의 두통을 유발합니다. iSCSI + multipath + MD + LVM으로 설정되어 있으며 자동 감지는 흥미롭지 만이 경우 쓸모가 없습니다.
Dan Andreatta

4

미러링 된 쌍이 갑자기 종료되면 모든 시스템에서 한 장치에는 쓰였지 만 다른 장치에는 쓰지 않은 블록이있을 수 있습니다. 눈에 띄게 IO 경로를 재정렬 할 때 A에는 쓰지 않았지만 B에는 쓰지 않았지만 아직 A에는 쓰지 않은 블록이 있습니다.

기계가 다시 시작되면 장치의 일관성을 유지해야합니다. 두 장치 만 사용하는 것만으로는 충분하지 않습니다. 어떤 블록이 일치하지 않는지 알 수 없으며 어떤 버전이 최신인지 알 수 없습니다.

따라서 미러 소프트웨어는이를 추적하기 위해 약간의 메타 데이터를 저장해야합니다. 이것을 "쓰기 의도 로그"라고합니다.

md는 일반적으로 장치 자체의 예약 된 공간 에 저장하지만 별도의 장치에 저장하도록 선택할 수도 있습니다. (이것이 md 미러가 기본 장치보다 약간 작은 이유입니다.

LVM 미러는 외부에 쓰기 확장 로그 만 저장할 수 있습니다. 실제 디스크가 정확히 두 개인 일반적인 경우에는 다소 성가신 일입니다. 나는 여전히 동일한 물리적 장치의 다른 파티션에 저장하도록 선택할 수 있다고 생각하지만 여전히 불편합니다.

LVM 미러 로그의 목적은 한 장치에 쓰여졌지만 아직 다른 장치에는 쓰지 않은 블록을 추적하는 것입니다.


2

이들은 두 가지 다른 개념입니다.

  • LVM은 볼륨 관리를위한 이름 그대로입니다. 여러 볼륨을 하나로 결합하는 메커니즘으로 생각하십시오 (예 : raid0과 비슷하다고 말할 수 있음). 크기 조정, 실시간 크기 조정, 스냅 샷 생성.
  • MD는 RAID 관리를위한 것입니다. 하나의 메타 장치에 여러 장치를 추가하고 raid1, 5, 10 등을 사용하여이 메타 장치의 가용성을 높입니다.

LVM은 메타 장치이거나 RAID 컨트롤러가 제공하는 장치 또는 일반 디스크와 같은 저장 장치에서 작동합니다.

MD는 디스크에서 작동합니다 (예 : RAID 컨트롤러에서 제공하는 디스크를 사용할 수도 있지만 요점은 무엇입니까? ..

LVM은 스토리지의 가용성을 높이기위한 것이 아닙니다. 마찬가지로 MD는 볼륨 관리를위한 것이 아닙니다.

도움이 되었기를 바랍니다 :)


1
나는 그들이 무엇인지 이해합니다. 그러나 lvcreate에 대한 매뉴얼 페이지를 읽으면 미러를 만들 수 있다고 표시됩니다. 나는 이것이 약간의 장난감이라고 생각한다?
d -_- b

1
임호 네. 나는 적어도 현재로서는 그것을 잘 사용하지 못한다. (장치가 아닌) 볼륨 수준의 미러 일뿐만 아니라 생성 방식이 약간 "흥미 롭습니다". 예를 들어 2 방향 미러가 필요한 경우 (원본 + 복사에서와 같이) 각 볼륨 당 3 개의 볼륨이 필요합니다. 미러 측면 + 로그 볼륨. 그러나 다시-imho. :)
rytis

1

LVM은 다른 UNIX 시스템 유형에서 나왔습니다. 10 년 전에 작업했을 때 Linux의 MD 계층이없는 HPUX에서 사용했지만 지금은 확실하지 않습니다. 이러한 상황에서 LVM 미러링은 하드웨어 RAID를 사용할 수없는 상황에서 유용하게됩니다.


방금 LVM 미러에 하나 이상의 볼륨이 필요하다는 것이 이상하다는 것을 알았습니다. 어떤 거울입니까?
d -_- b

1
@toor 세 번째 볼륨은 기본적으로 급정지 후 재 동기화해야 할 사항을 추적하기 위해 미러에 대한 미리 쓰기 로그 를 저장하는 데 사용됩니다 . MD에서는 일반적으로 두 디스크의 예약 된 부분에 저장됩니다.
poolie

1

-mirrorlog가 미러링되고 -alwherewhere 옵션이 있고 디스크가 두 개인 경우 각 디스크에 하나씩 두 개의 4M 미러 로그가 나타납니다. 가장 일반적인 상황 인 것처럼 보이는 정책을 재정의해야한다는 사실에 짜증이납니다.

Linux의 LVM은 HP-UX 또는 AIX의 항목과 관련이 없으며 동일한 사용자 공간 명령 만 있습니다. Linux의 LVM은 내부적으로 DM 시스템을 사용하므로 MD와 동일한 코드를 모두 사용합니다. 이 시점에서 MD보다 LVM의 이점이 없습니다. 빠르고 원하는 파티션 (예 : 게스트 VM의 스왑 파티션)에 신경 쓰지 않는 파티션의 경우 LVM은 미러를 원하는지 또는 스트리핑이 더 나은지 여부를 선택할 수있는 옵션을 제공합니다.

또한 MD보다 디스크를 LVM에 추가하는 것이 더 쉽습니다.

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