web-dev-qa-db-ja.com

libvirtを使用してホスト(ubuntu)ファイルシステムをゲスト(centos 7)と共有する方法(非ネットワークベース)はありますか?

Virshとdomainxmlを使用して、ubuntu 16.04LTSホストからCentos7ゲストを起動しようとしています。ドメインxmlで使用している「ファイルシステム」ノードは次のとおりです。

<filesystem type='mount' accessmode='passthrough'>
    <driver type='path' wrpolicy='immediate'/>
     <source dir='/opt/test'/>
     <target dir='testlabel'/>
</filesystem>

上記の設定では、「testlabel」はゲストに表示されないため、マウントできません。足りないものはありますか?

ゲストに9pモジュールを入れようとしましたが、centos7ではすぐに利用できないようです。カーネルの再コンパイルが必要です[今すぐ試してください]。私はvirtio-vsockが将来利用可能になることを知りました。したがって、現時点ではオプションではありません。

SSHFS、NFS、glusterfsのようなネットワークベースのファイル共有も使いたくありません。

Libvirtでドメインxmlの「ファイルシステム」オプションを使用できる他のファイルシステムドライバーはありますか?

3
Swaru

libvirtのドキュメント によると、targetを調整するだけでよい場合があります。

ドキュメントには、次の例が記載されています。

  <filesystem type='mount' accessmode='passthrough'>
    <driver type='path' wrpolicy='immediate'/>
    <source dir='/export/to/guest'/>
    <target dir='/import/from/Host'/>
    <readonly/>
  </filesystem>
  <filesystem type='file' accessmode='passthrough'>
    <driver name='loop' type='raw'/>
    <driver type='path' wrpolicy='immediate'/>
    <source file='/export/to/guest.img'/>
    <target dir='/import/from/Host'/>
    <readonly/>
  </filesystem>

そのは9pを必要とせずに機能するようです

ただし、centosの場合、実際にはすぐに利用できる9pヘルパーがあります。

Available Packages
Name        : nfs-ganesha-mount-9P
Arch        : x86_64
Version     : 2.3.2
Release     : 1.el7
Size        : 11 k
Repo        : epel/x86_64
Summary     : a 9p mount helper
URL         : https://github.com/nfs-ganesha/nfs-ganesha/wiki
Licence     : LGPLv3+
Description : This package contains the mount.9P script that clients can use
            : to simplify mounting to NFS-GANESHA. This is a 9p mount helper.
2

現時点では、9pはlibvirtとKVMでサポートされている唯一のファイルシステム共有オプションです。残念ながら、CentOSではサポートされている9pが無効になっています。これは、アップストリームで何年もメンテナンスがほとんど行われておらず、多くのセキュリティ上の欠陥が含まれているためです。新しい9pメンテナがこれをクリーンアップする作業を開始したのは、過去数か月だけです。 CentOSカーネルを再コンパイルするか、9pモジュールを自分でビルドする場合は、それを機能させることができるはずです。

NFSをサポートするvirtio-vsockが登場するまで、使用できるネットワークベース以外のオプションは他にありません。

2
DanielB