KVMの共有ストレージが同期しない

KVMの共有ストレージが同期しない

Debian 10 ホストに KVM をセットアップしました。

実行中の仮想マシンは 2 台あります。

仮想マシン #1 には OMV が内蔵されています。
仮想マシン #2 にはプレーンな Debian が内蔵されています。

各仮想マシンは、独自の qcow2 イメージ ファイルにインストールされます。
これら 2 台のマシンは、1 つの追加ストレージ (RAW ストレージ ファイル) を共有します。両方のマシンで、このストレージは「共有可能」としてマークされています。

私が気づいた現在の問題は、ファイル テーブルがオンザフライで更新されないことです。つまり、1 つの VM でこのストレージを使用して何かを行った場合、他の VM が再起動されるまで (おそらく再マウントでも同じことが起こる)、変更は他の VM では表示されません。

両方の VM によって変更が行われると、OMV は後で SMB 関連のエラーを吐き出し始めます。

OMV を再起動してもファイル テーブルは更新されませんでしたが、Debian マシンを再起動するとすべてのデータが失われました。

OMV は Samba 共有をホストします。

共有ストレージの経験があり、ストレージを再マウントせずに少なくともファイル テーブルを手動で更新する方法を知っている人はいますか?

答え1

要約:プレーンなDebian VM(仮想マシン#2)を用意するSamba共有をマウントするOpenMediaVault VM (仮想マシン #1) でホストされます。仮想マシン #1 には、raw ストレージ ファイルのみを接続します。


説明

あなたが設定した内容は、1 つのフラッシュ ドライブを同時に 2 台のコンピューターに接続しているようなものです。これについては以前にも書きました。

両方のコンピュータのハードドライブ上のどこかにファイルシステムをマウントすると、各コンピュータは他のコンピュータもファイルシステムを使用していることを認識しません。これにより、重大なデータ破損なぜなら、各コンピュータが互いの足を踏みつけているからです。

から:iSCSI イニシエーターに変更を伝播させるにはどうすればよいですか?

これを修正するには、ストレージ ディスク (サーバー上) と、それにアクセスする複数のマシン (クライアント) の間に、複数のクライアントが同じストレージにアクセスできることを認識するレイヤーが必要です。

これを設定する一般的な方法は2つあります。NFSそしてCIFS(サンバ)はネットワークファイルシステム

すでに Samba サーバーがセットアップされているようです。 ストレージを共有するために必要なことは、VM を 1 つの Samba サーバーに接続するだけです。 仮想ディスクは Samba サーバーにのみ接続する必要があります。

さらに一歩進んで、分散ファイルシステムこれは、複数のサーバーのストレージをプールし、単一のネットワーク ファイル システムでそれらにアクセスする方法です。

あるいは、当初試みていたように仮想ディスクを共有することも可能ですが、複数のコンピューターが同時にデータを変更する可能性があることを認識するファイル システムが必要です。 この他の答え示唆する共有ディスクファイルシステムネットワーク ファイル システムよりも低いレベルで共有ストレージを抽象化します。


リソース

公式ドキュメント

チュートリアル

さらなる高みへ: 分散ファイルシステム

答え2

2 つのノードに同時に ext4 ファイル システムを r/w でマウントすると、両方のノードでコンテンツが使用できなくなります。代わりに、ファイル システムが破損します。

virt-manager でディスクを共有可能としてマークすると、ハイパーバイザーによる警告が停止されます。これは、ファイル システム レベルではなく、仮想ハードウェア レベルで発生します。

共有ディスクが必要な場合 (それには十分な理由があります)、GFS または OCF2 (初心者にとって最も簡単な選択肢) を使用します。

関連情報