lvextend와 같은 루프백 장치에서 지원되는 LVM 작업을 수행하려면 후속 동기화 호출이 필요합니까?

lvextend와 같은 루프백 장치에서 지원되는 LVM 작업을 수행하려면 후속 동기화 호출이 필요합니까?
  • test.dd운영 체제 이미지 파일 과 LVM 관리 파티션이 있습니다 .
  • 운영 체제 이미지 파일 크기를 확장한 다음 파티션 크기를 전체로 확장합니다.
  • 루프백 장치를 생성한 test.dd다음 LVM에서 관리하는 파티션 장치를 얻습니다./dev/loop0p1
  • 예를 들어 LVM VG(볼륨 그룹)를 활성화하고 그 안에 LV(논리 볼륨)를 얻습니다./dev/dm-1
  • PV(물리적 볼륨) 크기 늘리기pvresize /dev/loop0p1
  • LV(논리 볼륨) 크기 늘리기lvextend -l +100%FREE /dev/dm-1

test.dd내 질문은 (실제로는 단 하나: 다른 곳에 안전하게 복사하는 방법입니다 ):

  1. test.dd안전하게 복사 할 수 있나요 ? (디스크의 내용이 물리적으로 플러시되었는지 여부는 신경 쓰지 않고 test.dd디스크나 파일 버퍼에서 다른 곳으로 복사하기를 원합니다.)
  2. 아니면 sync복사하기 전에 전화해야 합니까?
  3. 아니면 복사하기 전에 루프백 장치를 분리해야 합니까?
  4. 무슨 일이 있어도 루프백 장치를 분리할 수 없으면 어떻게 되나요?

sync편집: 때로는 매우 느리고 논스톱이 되기 때문에 명령 호출을 꺼려합니다 (예: kill -9는 작동하지 않습니다).

편집: 제가 이 질문을 하는 이유는 다른 상황에서 루프백 장치 및 지원 파일과 관련된 데이터 불일치 문제가 발생했기 때문입니다.

편집: 이제 스크립트를 사용하여 vgchange --activate n --select vg_uuid=$LVM_VG_UUID볼륨 그룹을 비활성화한 다음 losetup --detach /dev/loop0복사 udevadm settle를 시작합니다 test.dd. 이 모든 문제를 겪지 않고 test.dd를 복사할 수 있는지 궁금합니다.

편집: 명령을 잘못된 순서로 입력해서 죄송합니다. 실제로는 vgchange --activate n --select vg_uuid=$LVM_VG_UUID-> udevadm settle-> losetup --detach /dev/loop0-> cp test.dd... 입니다 .

답변1

나는 정말로 모른다. 저 할 수 있어요희망필요하지는 않지만 LVM에 대해 잘 모르겠습니다.

LVM VG 전체와 루프 장치를 사용하는 다른 모든 것을 비활성화하면 안전할 수 있기를 바랍니다.

Linux 관리에서는 결말이 중복되는 것이 일반적인 표준인 것 같습니다 sync.

umount캐시 새로고침, fdisk전화 fsync걸기 등

게다가 리눅스에는블록 장치의 마지막 사용자가 장치를 닫을 때 암시적 동기화. 따라서 모든 것을 비활성화했다면 실제로 실행을 피하는 것은 아닙니다 sync /dev/loop0:-).

그러나 나는 과도한 노출을 피하는 것 sync, 즉 모든 장비를 헹구는 것에는 확실히 동의합니다.

모든 기능을 비활성화하려면 루핑 장치도 쉽게 비활성화할 수 있습니다. 이렇게 하면 루프 장치를 열어 둔 채로 아무것도 놓친 것이 없고 아직 기록되지 않은 데이터가 있는지 확인하는 데 도움이 됩니다.

이것이 여러분을 행복하게 만들면 커널은 이 LVM 메타데이터를 쓰거나 읽지 않습니다. 모든 것이 사용자 공간에 있습니다. 그리고 쓰기 저장 캐시를 유지하는 LVM 데몬이 없습니다. LV 메타데이터캐시를 읽으십시오.

관련 정보