...
4. Create auxiliary scripts required for cli_user tests:
Create a file /usr/share/zfs/zpool.d/upath
that contains with this content or execute the following command:
Code Block | ||
---|---|---|
| ||
su - cat > /usr/share/zfs/zpool.d/upath <<EOT #!/bin/sh if [ "\$1" = "-h" ] ; then echo "Show the underlying path for a device." exit fi # # shellcheck disable=SC2154 echo upath="\$VDEV_UPATH" EOT sed -i '/./!d' /usr/share/zfs/zpool.d/upath |
Then create a file /usr/share/zfs/zpool.d/iostat
with the following content or execute the following commands:
Code Block | ||
---|---|---|
| ||
cat > /usr/share/zfs/zpool.d/iostat <<EOT #!/bin/sh # # Display most relevant iostat bandwidth/latency numbers. The output is # dependent on the name of the script/symlink used to call it. # helpstr=" iostat: Show iostat values since boot (summary page). iostat-1s: Do a single 1-second iostat sample and show values. iostat-10s: Do a single 10-second iostat sample and show values." script="\${0##*/}" if [ "\$1" = "-h" ] ; then echo "\$helpstr" | grep "\$script:" | tr -s '\\t' | cut -f 2- exit fi if [ "\$script" = "iostat-1s" ] ; then # Do a single one-second sample interval=1 # Don't show summary stats brief="yes" elif [ "\$script" = "iostat-10s" ] ; then # Do a single ten-second sample interval=10 # Don't show summary stats brief="yes" fi if [ -f "\$VDEV_UPATH" ] ; then # We're a file-based vdev, iostat doesn't work on us. Do nothing. exit fi out=\$(iostat -x "\${VDEV_UPATH##*/}" \ $ \${interval:+"\$interval"} \ $ \${interval:+"1"} | tail -n 2) # Sample output (we want the last two lines): # # Linux 2.6.32-642.13.1.el6.x86_64 (centos68) 03/09/2017 _x86_64_ (6 CPU) # # avg-cpu: %user %nice %system %iowait %steal %idle # 0.00 0.00 0.00 0.00 0.00 100.00 # # Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util # sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 # # Get the column names cols=\$(echo "\$out" | head -n 1) # Get the values and tab separate them to make them cut-able. vals=\$(echo "\$out" | tail -n 1 | tr -s '[:space:]' '\\t') i=0 for col in \$cols ; do i=\$((i+1)) # Skip the first column since it's just the device name if [ \$i -eq 1 ]; then continue fi # Get i'th value val=\$(echo "\$vals" | cut -f "\$i") echo "\$col=\$val" done EOT sed -i '/./!d' /usr/share/zfs/zpool.d/iostat |
After that do the following steps:
...
Then you can disconnect in any time by pressing Ctrl-A d and connect back in the new SSH session by the command:
...