[PATCH 1/7] conf: Add NFS disk protocol
Han Han
hhan at redhat.com
Mon Jan 4 02:30:06 UTC 2021
On Wed, Dec 30, 2020 at 5:24 AM Ryan Gahagan <rgahagan at cs.utexas.edu> wrote:
> Per Issue 90, Libvirt does not support attaching an NFS disk even though
> QEMU has added support for it. This series of patches seeks to implement
> this support in Libvirt and begins by adding in flags for an NFS disk.
>
It is hard to know what the issue 90 actual means. Please add a ref link
for it. For example:
Per issue 90[1], ....
....
Reference:
[1]: https://gitlab.com/libvirt/libvirt/-/issues/90
>
> Signed-off-by: Ryan Gahagan <rgahagan at cs.utexas.edu>
> ---
> src/libxl/libxl_conf.c | 1 +
> src/libxl/xen_xl.c | 1 +
> src/qemu/qemu_block.c | 3 +++
> src/qemu/qemu_command.c | 1 +
> src/qemu/qemu_domain.c | 2 ++
> src/qemu/qemu_snapshot.c | 3 +++
> src/util/virstoragefile.c | 6 ++++++
> src/util/virstoragefile.h | 1 +
> 8 files changed, 18 insertions(+)
>
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index 00748e21e8..6a8ae27f54 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -941,6 +941,7 @@ libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
> case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG:
> case VIR_STORAGE_NET_PROTOCOL_SSH:
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> case VIR_STORAGE_NET_PROTOCOL_NONE:
> virReportError(VIR_ERR_NO_SUPPORT,
> diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c
> index ba0942601f..17b93d0f5c 100644
> --- a/src/libxl/xen_xl.c
> +++ b/src/libxl/xen_xl.c
> @@ -1600,6 +1600,7 @@ xenFormatXLDiskSrcNet(virStorageSourcePtr src)
> case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG:
> case VIR_STORAGE_NET_PROTOCOL_SSH:
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> case VIR_STORAGE_NET_PROTOCOL_NONE:
> virReportError(VIR_ERR_NO_SUPPORT,
> diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
> index 4640e339c0..b224a550f3 100644
> --- a/src/qemu/qemu_block.c
> +++ b/src/qemu/qemu_block.c
> @@ -1180,6 +1180,7 @@
> qemuBlockStorageSourceGetBackendProps(virStorageSourcePtr src,
> return NULL;
> break;
>
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_NONE:
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> virReportEnumRangeError(virStorageNetProtocol, src->protocol);
> @@ -2111,6 +2112,7 @@ qemuBlockGetBackingStoreString(virStorageSourcePtr
> src,
> case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG:
> case VIR_STORAGE_NET_PROTOCOL_RBD:
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_SSH:
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> case VIR_STORAGE_NET_PROTOCOL_NONE:
> @@ -2502,6 +2504,7 @@
> qemuBlockStorageSourceCreateGetStorageProps(virStorageSourcePtr src,
> case VIR_STORAGE_NET_PROTOCOL_NBD:
> case VIR_STORAGE_NET_PROTOCOL_ISCSI:
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_HTTP:
> case VIR_STORAGE_NET_PROTOCOL_HTTPS:
> case VIR_STORAGE_NET_PROTOCOL_FTP:
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index b06a086e18..c58f39ebf1 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -1044,6 +1044,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src,
> _("'ssh' protocol is not yet supported"));
> return NULL;
>
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> case VIR_STORAGE_NET_PROTOCOL_NONE:
> virReportError(VIR_ERR_INTERNAL_ERROR,
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index bfb6e23942..d91c32b2c5 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -9630,6 +9630,8 @@
> qemuDomainPrepareStorageSourceTLS(virStorageSourcePtr src,
> case VIR_STORAGE_NET_PROTOCOL_FTP:
> case VIR_STORAGE_NET_PROTOCOL_FTPS:
> case VIR_STORAGE_NET_PROTOCOL_TFTP:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> + /* Assumed NFS doesn't support TLS (needs Kerberos) */
> case VIR_STORAGE_NET_PROTOCOL_SSH:
> if (src->haveTLS == VIR_TRISTATE_BOOL_YES) {
> virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
> index 15494c3415..7e89a8839b 100644
> --- a/src/qemu/qemu_snapshot.c
> +++ b/src/qemu/qemu_snapshot.c
> @@ -413,6 +413,7 @@
> qemuSnapshotPrepareDiskExternalInactive(virDomainSnapshotDiskDefPtr
> snapdisk,
> case VIR_STORAGE_NET_PROTOCOL_TFTP:
> case VIR_STORAGE_NET_PROTOCOL_SSH:
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> virReportError(VIR_ERR_INTERNAL_ERROR,
> _("external inactive snapshots are not
> supported on "
> @@ -501,6 +502,7 @@ qemuSnapshotPrepareDiskExternalActive(virDomainObjPtr
> vm,
> case VIR_STORAGE_NET_PROTOCOL_TFTP:
> case VIR_STORAGE_NET_PROTOCOL_SSH:
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> virReportError(VIR_ERR_INTERNAL_ERROR,
> _("external active snapshots are not supported
> on "
> @@ -631,6 +633,7 @@ qemuSnapshotPrepareDiskInternal(virDomainDiskDefPtr
> disk,
> case VIR_STORAGE_NET_PROTOCOL_TFTP:
> case VIR_STORAGE_NET_PROTOCOL_SSH:
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> virReportError(VIR_ERR_INTERNAL_ERROR,
> _("internal inactive snapshots are not
> supported on "
> diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
> index fac93118fd..103dade0e7 100644
> --- a/src/util/virstoragefile.c
> +++ b/src/util/virstoragefile.c
> @@ -90,6 +90,7 @@ VIR_ENUM_IMPL(virStorageNetProtocol,
> "tftp",
> "ssh",
> "vxhs",
> + "nfs",
> );
>
> VIR_ENUM_IMPL(virStorageNetHostTransport,
> @@ -3152,6 +3153,7 @@
> virStorageSourceParseBackingColon(virStorageSourcePtr src,
> case VIR_STORAGE_NET_PROTOCOL_GLUSTER:
> case VIR_STORAGE_NET_PROTOCOL_SSH:
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> virReportError(VIR_ERR_INTERNAL_ERROR,
> _("malformed backing store path for protocol %s"),
> protocol);
> @@ -4627,6 +4629,10 @@
> virStorageSourceNetworkDefaultPort(virStorageNetProtocol protocol)
> case VIR_STORAGE_NET_PROTOCOL_VXHS:
> return 9999;
>
> + case VIR_STORAGE_NET_PROTOCOL_NFS:
> + /* Per
> https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/4/html/reference_guide/ch-nfs
> */
> + return 2049;
> +
> case VIR_STORAGE_NET_PROTOCOL_LAST:
> case VIR_STORAGE_NET_PROTOCOL_NONE:
> return 0;
> diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
> index 87763cf389..c5d5f0233a 100644
> --- a/src/util/virstoragefile.h
> +++ b/src/util/virstoragefile.h
> @@ -135,6 +135,7 @@ typedef enum {
> VIR_STORAGE_NET_PROTOCOL_TFTP,
> VIR_STORAGE_NET_PROTOCOL_SSH,
> VIR_STORAGE_NET_PROTOCOL_VXHS,
> + VIR_STORAGE_NET_PROTOCOL_NFS,
>
> VIR_STORAGE_NET_PROTOCOL_LAST
> } virStorageNetProtocol;
> --
> 2.29.2
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210104/4384a216/attachment-0001.htm>
More information about the libvir-list
mailing list