KVM의 공유 스토리지가 동기화되지 않음

KVM의 공유 스토리지가 동기화되지 않음

Debian 10 호스트에 KVM을 설정했습니다.

2개의 가상 머신이 실행 중입니다.

가상 머신 #1에는 내부에 OMV가 있습니다.
가상 머신 #2에는 일반 데비안이 있습니다.

각 가상 머신은 자체 qcow2 이미지 파일에 설치됩니다.
이 두 시스템은 RAW 저장소 파일인 하나의 추가 저장소를 공유합니다. 두 시스템 모두 이 저장소가 "공유 가능"으로 표시되어 있습니다.

내가 발견한 현재 문제는 파일 테이블이 즉시 업데이트되지 않는다는 것입니다. 즉, 한 VM에서 이 스토리지로 작업을 수행하면 다른 VM이 재부팅될 때까지 다른 VM에 변경 사항이 표시되지 않습니다(대개 다시 마운트하면 동일하게 수행됨).

두 VM 모두에서 변경이 이루어지면 나중에 OMV에서 ​​일부 SMB 관련 오류가 발생하기 시작합니다.

OMV를 재부팅해도 파일 테이블이 업데이트되지 않았지만 데비안 시스템을 재부팅하면 모든 데이터가 손실되었습니다.

OMV는 Samba 공유를 호스팅합니다.

공유 저장소에 대한 경험이 있고 저장소를 다시 마운트하지 않고 최소한 수동으로 파일 테이블을 새로 고치는 방법을 아는 사람이 있습니까?

답변1

tl;dr:일반 Debian VM(가상 머신 #2)을 갖습니다.Samba 공유 마운트OpenMediaVault VM(가상 머신 #1)에서 호스팅됩니다. 원시 스토리지 파일은 가상 머신 #1에만 연결하세요.


설명

설정한 내용은 하나의 플래시 드라이브를 두 대의 컴퓨터에 동시에 연결하는 것과 유사합니다. 나는 이전에 이에 대해 다음과 같이 썼습니다.

하드 드라이브의 파일 시스템을 두 컴퓨터의 어딘가에 마운트하면 각 컴퓨터는 다른 컴퓨터도 파일 시스템을 사용하고 있다는 사실을 전혀 알 수 없습니다. 이는 다음으로 이어질 수 있습니다.심각한 데이터 손상각 컴퓨터가 다른 컴퓨터의 발가락을 뛰어넘고 있기 때문입니다.

에서:iSCSI 초기자가 변경 사항을 전파하도록 하려면 어떻게 해야 합니까?

이 문제를 해결하려면 여러 클라이언트가 동일한 스토리지에 액세스할 수 있다는 것을 인식하는 스토리지 디스크(서버의)와 이에 액세스하는 여러 머신(클라이언트) 사이에 계층이 필요합니다.

이를 설정하는 두 가지 일반적인 방법은 다음과 같습니다.NFS그리고CIFS(삼바)는네트워크 파일 시스템.

이미 Samba 서버가 설정되어 있는 것을 확인했습니다. 스토리지를 공유하기 위해 다르게 해야 할 일은 VM을 해당 Samba 서버에 연결하는 것뿐입니다. 가상 디스크는 Samba 서버에만 연결해야 합니다.

한 단계 더 나아가분산 파일 시스템, 이는 여러 서버의 스토리지를 풀링하고 단일 네트워크 파일 시스템에서 액세스하는 방법입니다.

또는 원래 시도했던 것처럼 가상 디스크를 공유할 수도 있지만 여러 컴퓨터가 동시에 데이터를 수정할 수 있다는 것을 인식하는 파일 시스템이 여전히 필요합니다. 이 다른 답변제안공유 디스크 파일 시스템, 네트워크 파일 시스템보다 낮은 수준에서 공유 스토리지를 추상화합니다.


자원

공식 문서

튜토리얼

그 이상: 분산 파일 시스템

답변2

두 노드에 동시에 ext4 파일 시스템을 r/w로 마운트하면 두 노드 모두에서 콘텐츠를 사용할 수 없게 됩니다. 대신 파일 시스템이 손상됩니다.

virt-manager에서 디스크를 공유 가능으로 표시하면 하이퍼바이저의 경고가 중지됩니다. 이는 파일 시스템 수준이 아닌 가상 하드웨어 수준에서 발생합니다.

공유 디스크를 원하는 경우(그럴 만한 이유가 있는 경우) GFS 또는 OCF2(초보자에게 가장 쉬운 선택)를 사용하십시오.

관련 정보