lvmファイルシステムのLXD ZFSストレージプール?

lvmファイルシステムのLXD ZFSストレージプール?

マイコンピュータのデフォルトのファイルシステムはlvm(Ubuntu 22.04)です。 HadoopやSparkなどのいくつかのApacheプロジェクトを実行するためにLXD / LXC仮想マシンを起動したいと思います。 Hadoopを設定するときに、VM内のファイルシステムをhdfsにフォーマットする必要がある手順があります。私のストレージがzfsのようなものではなくDIRの場合、これがシステムにどのような影響を与えるかわかりません。また、DIRリポジトリにはカスタムサイズを手動で割り当てることはできませんが、ZFSでは可能です。

ZFSはより良い選択だと思いますが、問題は私のデフォルトのファイルシステムがzfsではなくlvmであることです。下にlvmファイルシステムがあるにもかかわらず、zfsストレージを持つことはできますか?それとも、ファイルシステム全体をzfsに変更する必要がありますか?

実行すると、インストーラはlxd initバックエンドをzfs [default = zfs]として保存することを提案します。

ZFS/LVM共存に関する洞察を高く評価します。私はこのトピックについてよく知らず、私のコンピュータを壊したくありません。 :)

答え1

LVMはファイルシステムではなく、ディスクとパーティションのボリューム管理ツールです。 「lvmが私の基本ファイルシステムです」と言うのは、「fdiskが私の基本ファイルシステムです」と言うのと同じです。

LVMが提供する1つ以上の論理ボリュームでZFS(またはext2/3/4、xfs、btrfsなどの他のファイルシステム)を使用できますが、そうすることはほとんど意味がありません。他の理由でホストシステムでLVMを使用する必要がない場合は、ZFSを使用するのが最善です。 ZFSはディスク/パーティション/ボリューム/プール管理とファイルシステムを提供するためです。

たとえば、xfsまたはext4のホストOSとVMディスクイメージ用のzpoolが必要な場合があります(これを行う唯一の理由は、ルートファイルシステムでzfsを実行するのが難しいかもしれませんが、一部の人ほど難しくありません)。考えにくい)。これにはいくつかの方法がありますが、すべて「一部のディスク領域を/、/boot、/boot/EFIなどのパーティション/ LVに割り当て、残りの領域をZFSに割り当てる」とまとめています。

必要に応じて非ZFSパーティションにRAIDを使用できますが、ZFSがzpool自体を作成および管理できるように、rawパーティションまたはLVをZFSに提供する必要があります。 RAID(mdadmまたはlvmのraid機能などのハードウェアraidまたはソフトウェアraid)の上にZFSを使用することは非常に悪い考えです。コピーはエラーを検出する機能を提供するだけでなく、次の機能も提供します。修理するそれらを。

ZFSのVMごとの仮想ディスクの場合は、rawディスクイメージファイルを使用するか(zfsに透明圧縮が組み込まれているためqcow2は不要です)、各VMに必要に応じてZVOLを作成できます(例zfs create -V 10G pool/myvmname:)。

ところで、私はシステムで両方の方法を使います。一部のVMではディスクイメージファイルを使用し、他のVMではzvolsを使用し、時にはVM内で両方の方法を使用します(例:私のztestVMではzfs / lvm / raid /テストに使用されます)、btrfsと他のディスクそしてファイルシステムに関連する作業、私はOSとして10GB ZVOLを使用し、複数の100MBディスクイメージファイルを仮想ディスクとしてテストします。スナップショットのロールバック、バックアップの復元、災害復旧などを非常に簡単に学び、練習します。 (実生活で必要です)。

zvolは、システムに異なるブロックデバイスとして表示されるzpoolブロックです(したがって、他のブロックデバイスと同じように分割および/またはフォーマットして使用できます)。 zvolを使用する主な利点は、バックアップおよび/または災害復旧のために各zvolを独立してスナップショットできることです。たとえば、zvolのサイズを増やすことも簡単です(VMの実行中にVMの内部またはVMがオフになっている間にzvolのパーティションテーブルをホストで編集して実行する必要がありますzfs set volsize="$newsize" poolname/zvolname)。xfs_growfsresize2fs

ZFSではqcow2ファイルを使用することもできますが、zfsはすでに圧縮やスナップショットなどの操作を実行しているため、意味がなく、これらの作業を2倍にすると速度が遅くなります。 VM、IMOを含む.qcow2ファイルがすでに存在する場合、最良のオプションはそれを生のディスクqemu-img convertイメージに変換してファイルに保存するか、/dev/zvol/poolの下のZVOLブロックデバイスノードに直接保存することです。

答え2

理論的には、ZFS が LVM 上で実行されたり、LVM が ZFS 上で実行されたり、どちらもストレージの他の部分で並列に実行されたりします。ただし、この場合、両方とも同じ操作(ボリューム管理)を実行してHDFSファイルシステムを構成するためのスペースを提供します。 ZFSはその機能は本当に優れていますが、LVMの上でZFSを実行することによる利点とすべての欠点はまったく得られません。

qcow2仮想ディスクを使用できます。

既存のストレージがlvm-thinとして構成されている場合は、それを新しい論理ボリュームとして構成できます。 lvm2なら既存のファイルシステムに入れてください。

関連情報