http://www.tcpdump.com/kb/os/linux/lvm-mirroring/intro.html
LVM에서 논리 볼륨을 미러링할 때 "로그 볼륨"이 필요하다는 점을 지적하면... 어, 미러 로그가 정확히 무엇인가요? LV를 미러링할 때 항상 권장됩니까?
답변1
LVM은 미러와 동기화되는 영역을 추적하는 작은 로그를 유지 관리합니다. 기본적으로 이 로그는 재부팅 후에도 지속되도록 디스크에 저장됩니다. --corelog 매개변수를 사용하여 이 로그를 메모리에 보관하도록 지정할 수 있습니다. 이렇게 하면 추가 로그 장치가 필요하지 않지만 재부팅할 때마다 전체 미러를 다시 동기화해야 합니다.
글쎄, 파일 시스템이나 내결함성에 대한 배경 지식이 없다면 이것이 왜 명확하지 않은지 이해할 수 있지만 최소한 최소한의 조사를 수행하고 위의 설명을 찾아야 합니다.
문제는 시스템이 디스크 중 하나에 일부 새 데이터를 기록하고 다른 디스크에는 기록하지 않을 때 시스템 충돌이나 정전이 발생하는 경우 어떻게 되는지입니다. 로그는 미러의 각 구성 요소 중 어느 영역이 디스크 중 하나에 아직 기록되지 않았는지 추적합니다. 특정 시점에 로그가 비어 있지 않으면 디스크가 동기화되지 않은 것입니다. 로그가 메모리에 보관되면 시스템이 부팅될 때 두 디스크의 모든 블록을 읽고 차이점을 확인해야 합니다. 로그가 디스크에 저장되면 시스템은 로그를 읽고 로그에 언급된 블록만 확인하면 됩니다.
답변2
이는 미러의 상태, 즉 어떤 블록이 아직 동기화되지 않았는지 보존합니다. 이것이 제가 RAID1용 LVM을 좋아하지 않는 이유이기도 합니다. 미러링을 위해서는 3개의 볼륨이 필요합니다. mdadm을 사용하여 장치(또는 외부 장치)에 (선택적) 비트맵을 배치하여 이 문제를 해결할 수 있습니다. 소형 장치의 경우 완전히 동기화해도 문제가 되지 않습니다. 이는 대형 장치에서는 어려운 일이므로 거기에 ("내부") 비트맵을 배치하는 것이 좋습니다.