Linux 게스트 운영 체제에서 DB2 데이터베이스를 실행하는 두 개의 VM이 있습니다. 한 번에 하나의 데이터베이스만 활성화되지만 두 가상 머신이 동시에 실행되기를 원합니다.
데이터베이스는 SAN 지원 가상 디스크 이미지(.img로 간주되지만 다른 형식으로 개방됨)에 저장되고 디스크 이미지는 두 가상 머신 모두에 연결됩니다.
가상 디스크가 "활성" 머신에 의해서만 마운트되는 경우 각 가상 머신에서 가상 디스크 파일을 구성하는 것이 안전합니까?
답변1
문제는 데이터베이스가 엉망이 되면 시스템이 아무 소용이 없다는 것입니다 active
.passive
답변2
VM1과 VM2 간에 드라이브를 공유할 때 제가 하게 된 작업은 다음과 같습니다.
공유 파일 시스템 생성
qemu-img create -f raw sharetest.img
- 가상 머신 1 시작
virsh attach-disk VM1 <full-path-to-sharetest.img> vdb
- VM1에 루트로 로그인하고 gparted를 사용하여 파일 시스템을 /dev/vdb(또는 mkfs)에 배치합니다.
mount /dev/vdb /mnt
이 시점에서 /mnt를 사용하여 공유 드라이브에 파일을 읽고 쓸 수 있습니다.
이 파일 시스템을 이동하려면 다음을 수행하십시오.
umount /mnt
VM1에서 파일 시스템 마운트 해제virsh detach-disk VM1 vdb
- 가상 머신 2 시작
virsh attach-disk VM2 <full-path-to-sharetest.img> vdb
- VM2에 로그인하고
mount /dev/vdb /mnt
이것은 작동하며 sharetest.img 파일을 VM1과 VM2 사이에서 여러 번 앞뒤로 이동했습니다.
호기심에, 나는 두 개의 가상 머신에 동시에 sharetest.img를 첨부하면 어떤 일이 일어나는지 알아보기로 결정했습니다. 두 개의 가상 머신에 연결하고 설치/제거 명령을 조정하면 됩니다. 불행히도 두 개의 가상 머신에서 이를 사용하여 연결할 수 있었지만 virsh attach-disk
SELinux 오류가 발생했고 KVM은 매우 혼란스러워졌으며 게스트 OS가 드라이브를 분리된 것으로 나열했음에도 불구하고 드라이브를 볼 수 없었습니다. 두 시스템 모두에서 드라이브를 분리한 후에도 드라이브를 다시 연결하려고 하면 vdb가 이미 사용 중이라는 메시지가 나타납니다.
요약하자면, 디스크가 한 번에 하나의 가상 머신에만 연결되도록 주의하는 한 가상 머신 간에 디스크를 공유할 수 있습니다.