Bug 2168628
Summary: | [RHEL 9.3] Rebase libnbd to 1.16 | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | Richard W.M. Jones <rjones> |
Component: | libnbd | Assignee: | Richard W.M. Jones <rjones> |
Status: | CLOSED ERRATA | QA Contact: | Vera <vwu> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 9.3 | CC: | lersek, mxie, rjones, tyan, tzheng, virt-maint, vwu, xiaodwan |
Target Milestone: | rc | Keywords: | Triaged |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | libnbd-1.16.0-1.el9 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2023-11-07 08:30:21 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Richard W.M. Jones
2023-02-09 15:23:19 UTC
In RHEL 9.2 we do not carry any downstream patches. Preliminary release notes for 1.16 are available here: https://gitlab.com/nbdkit/libnbd/-/blob/master/docs/libnbd-release-notes-1.16.pod Final release notes are now available: https://libguestfs.org/libnbd-release-notes-1.16.1.html Tested the new features of 1.16 with the versions: libnbd-1.16.0-1.el9.x86_64 qemu-kvm-8.0.0-1.el9.x86_64 libvirt-9.2.0-1.el9.x86_64 nbdkit-1.34.1-1.el9.x86_64 Steps: S1:New APIs S1.1. New API nbd_supports_vsock(3) can be used to test if the client has vsock support # rpm -q libnbd libnbd-1.16.0-1.el9.x86_64 # nbdsh Welcome to nbdsh, the shell for interacting with Network Block Device (NBD) servers. The ‘nbd’ module has already been imported and there is an open NBD handle called ‘h’. h.get_size() # Get size of the remote disk. buf = h.pread(512, 0) # Read the first sector. exit() or Ctrl-D # Quit the shell help(nbd) # Display documentation nbd> h.get_version() '1.16.0' nbd> h.supports_vsock() True nbd> # nbdkit --vsock --port 18022 pattern size=512 --run 'nbdinfo "$uri"' protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 512 content: data uri: nbd+vsock://1:18022/ contexts: base:allocation is_rotational: false is_read_only: true can_cache: true can_df: true can_fast_zero: false can_flush: false can_fua: false can_multi_conn: true can_trim: false can_zero: false S1.2 New nbd_stats_bytes_sent(3), nbd_stats_bytes_received(3), nbd_stats_chunks_sent(3) and nbd_stats_chunks_received(3) APIs nbd> h.stats_bytes_sent() 0 nbd> nbd> h.stats_bytes_received() 0 nbd> h.stats_chunks_sent() 0 nbd> h.stats_chunks_received() 0 nbd> h.get_size() 5368709120 nbd> h.stats_bytes_sent() 44 nbd> h.stats_bytes_received() 90 nbd> h.stats_chunks_sent() 2 nbd> h.stats_chunks_received() 1 nbd> nbd> h.shutdown() 72 nbd> h.stats_bytes_received() 90 nbd> h.stats_chunks_sent() 3 nbd> h.stats_chunks_received() 1 nbd> S2:nbdinfo S2.1 nbdinfo has colorized output (use --no-color to disable) # nbdinfo nbd://localhost protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: data uri: nbd://localhost:10809/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true # nbdinfo nbd://localhost --no-color protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: data uri: nbd://localhost:10809/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true S2.2 nbdinfo has new --is tls and --can structured-reply options # nbdinfo 'nbds://10.66.146.143:10812?tls-certificates=/var/tmp/pki' protocol: newstyle-fixed with TLS, using structured packets export="": export-size: 10737418240 (10G) content: DOS/MBR boot sector uri: nbds://10.66.146.143:10812/?tls-certificates=/var/tmp/pki contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: false can_trim: true can_zero: true block_size_minimum: 1 block_size_preferred: 4096 block_size_maximum: 33554432 # nbdinfo --can structured-reply 'nbds://10.66.146.143:10812?tls-certificates=/var/tmp/pki' # echo $? 0 # # nbdinfo --is tls 'nbds://10.66.146.143:10812?tls-certificates=/var/tmp/pki' # echo $? 0 S3 nbdsh(1) options -c and -u can now be interleaved # nbdsh -c 'print("before connecting ...")' -u nbd://localhost before connecting ... # # nbdsh -c 'print("before connecting ...")' -u nbd://localhost:18022 before connecting ... nbdsh: command line script failed: nbd_connect_uri: connect: localhost:18022: could not connect to remote host: Connection refused S4 nbdcopy S4.1 # nbdcopy -p RHEL9.2.qcow2 nbd://localhost █ 100% [****************************************] # nbdinfo nbd://localhost protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: QEMU QCOW2 Image (v3), 10737418240 bytes uri: nbd://localhost:10809/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true S4.2 Use nbdcopy to copy the file between multiple NBD servers # nbdinfo nbd://localhost:10815 protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: data uri: nbd://localhost:10815/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true # nbdcopy -p nbd://localhost nbd://localhost:10815 █ 100% [****************************************] # nbdinfo nbd://localhost:10815 protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: QEMU QCOW2 Image (v3), 10737418240 bytes uri: nbd://localhost:10815/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true Marking as Verified:Tested. Verified the new features of 1.16 with the versions: libnbd-1.16.0-1.el9.x86_64 qemu-kvm-8.0.0-11.el9.x86_64 libvirt-9.5.0-5.el9.x86_64 nbdkit-1.34.2-1.el9.x86_64 Steps: S1:New APIs S1.1. New API nbd_supports_vsock(3) can be used to test if the client has vsock support # rpm -q libnbd libnbd-1.16.0-1.el9.x86_64 # nbdsh Welcome to nbdsh, the shell for interacting with Network Block Device (NBD) servers. The ‘nbd’ module has already been imported and there is an open NBD handle called ‘h’. h.get_size() # Get size of the remote disk. buf = h.pread(512, 0) # Read the first sector. exit() or Ctrl-D # Quit the shell help(nbd) # Display documentation nbd> h.get_version() '1.16.0' nbd> nbd> h.supports_vsock() True nbd> # nbdkit --vsock --port 18022 pattern size=512 --run 'nbdinfo "$uri"' protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 512 content: data uri: nbd+vsock://1:18022/ contexts: base:allocation is_rotational: false is_read_only: true can_cache: true can_df: true can_fast_zero: false can_flush: false can_fua: false can_multi_conn: true can_trim: false can_zero: false S1.2 New nbd_stats_bytes_sent(3), nbd_stats_bytes_received(3), nbd_stats_chunks_sent(3) and nbd_stats_chunks_received(3) APIs nbd> h.stats_bytes_sent() 44 nbd> h.stats_bytes_received() 90 nbd> h.stats_chunks_sent() 2 nbd> h.stats_chunks_received() 1 nbd> h.get_size() 10737418240 nbd> h.stats_bytes_sent() 44 nbd> h.stats_bytes_received() 90 nbd> h.stats_chunks_sent() 2 nbd> h.stats_chunks_received() 1 nbd> nbd> h.shutdown() nbd> h.stats_bytes_received() 90 nbd> h.stats_chunks_sent() 3 nbd> h.stats_chunks_received() 1 nbd> nbd> S2:nbdinfo S2.1 nbdinfo has colorized output (use --no-color to disable) # nbdinfo nbd://localhost protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: data uri: nbd://localhost:10809/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true # nbdinfo nbd://localhost --no-color protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: data uri: nbd://localhost:10809/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true S2.2 nbdinfo has new --is tls and --can structured-reply options # nbdinfo 'nbds://10.66.146.143?tls-certificates=/var/tmp/pki' protocol: newstyle-fixed with TLS, using structured packets export="": export-size: 6442450944 (6G) content: DOS/MBR boot sector uri: nbds://10.66.146.143:10809/?tls-certificates=/var/tmp/pki contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: false can_trim: true can_zero: true block_size_minimum: 1 block_size_preferred: 4096 block_size_maximum: 33554432 # nbdinfo --can structured-reply 'nbds://10.66.146.143?tls-certificates=/var/tmp/pki' # echo $? 0 # nbdinfo --is tls 'nbds://10.66.146.143?tls-certificates=/var/tmp/pki' # echo $? 0 S3 nbdsh(1) options -c and -u can now be interleaved # nbdsh -c 'print("before connecting ...")' -u nbd://localhost before connecting ... # nbdsh -c 'print("before connecting ...")' -u nbd://localhost:18022 before connecting ... nbdsh: command line script failed: nbd_connect_uri: connect: localhost:18022: could not connect to remote host: Connection refused S4 nbdcopy S4.1 # nbdcopy -p RHEL9.2.qcow2 nbd://localhost █ 100% [****************************************] # nbdinfo nbd://localhost protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: QEMU QCOW2 Image (v3), 10737418240 bytes uri: nbd://localhost:10809/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true S4.2 Use nbdcopy to copy the file between multiple NBD servers # nbdinfo nbd://localhost:10810 protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: data uri: nbd://localhost:10810/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true # nbdcopy -p nbd://localhost nbd://localhost:10810 █ 100% [****************************************] # nbdinfo nbd://localhost:10810 protocol: newstyle-fixed without TLS, using structured packets export="": export-size: 10737418240 (10G) content: QEMU QCOW2 Image (v3), 10737418240 bytes uri: nbd://localhost:10810/ contexts: base:allocation is_rotational: false is_read_only: false can_cache: true can_df: true can_fast_zero: true can_flush: true can_fua: true can_multi_conn: true can_trim: true can_zero: true Marking as Verified. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (libnbd bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2023:6394 |