scripts/vagrant: Add automatic emulated disk create

Current scripts/vagrant allow us to manual create every emulated device.
This patch allow to automatic create whole emulated disk while we
create virtual machine.

Signed-off-by: Maciej Wawryk <maciejx.wawryk@intel.com>
Change-Id: If772adc282c4f6d94dab5eb7337f097a08f708e9
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/475070
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Maciej Wawryk 2019-11-19 11:38:23 +01:00 committed by Tomasz Zawadzki
parent 029251878d
commit 1d95f22d62
2 changed files with 19 additions and 5 deletions

View File

@ -1,13 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SYSTEM=$(uname -s) SYSTEM=$(uname -s)
size="1024M" size="1024M"
name="nvme_disk.img" nvme_disk="/var/lib/libvirt/images/nvme_disk.img"
type="nvme" type="nvme"
function usage() { function usage() {
echo "Usage: ${0##*/} [-s <disk_size>] [-n <backing file name>]" echo "Usage: ${0##*/} [-s <disk_size>] [-n <backing file name>]"
echo "-s <disk_size> with postfix e.g. 2G default: 1024M" echo "-s <disk_size> with postfix e.g. 2G default: 1024M"
echo "-n <backing file name> default: nvme_disk.img" echo " for OCSSD default: 9G"
echo "-n <backing file name> backing file path with name"
echo " default: /var/lib/libvirt/images/nvme_disk.img"
echo "-t <type> default: nvme available: ocssd" echo "-t <type> default: nvme available: ocssd"
} }
@ -22,7 +24,7 @@ while getopts "s:n:t:h-:" opt; do
size=$OPTARG size=$OPTARG
;; ;;
n) n)
name=$OPTARG nvme_disk=$OPTARG
;; ;;
t) t)
type=$OPTARG type=$OPTARG
@ -41,12 +43,14 @@ done
if [ ! "${SYSTEM}" = "FreeBSD" ]; then if [ ! "${SYSTEM}" = "FreeBSD" ]; then
WHICH_OS=$(lsb_release -i | awk '{print $3}') WHICH_OS=$(lsb_release -i | awk '{print $3}')
nvme_disk="/var/lib/libvirt/images/$name"
case $type in case $type in
"nvme") "nvme")
qemu-img create -f raw $nvme_disk ${size} qemu-img create -f raw $nvme_disk ${size}
;; ;;
"ocssd") "ocssd")
if [ ${size} == "1024M" ]; then
size="9G"
fi
fallocate -l ${size} $nvme_disk fallocate -l ${size} $nvme_disk
touch /var/lib/libvirt/images/ocssd_md touch /var/lib/libvirt/images/ocssd_md
;; ;;

View File

@ -24,6 +24,7 @@ display_help() {
echo " usage: type <number_of_namespaces> types available: ocssd, nvme" echo " usage: type <number_of_namespaces> types available: ocssd, nvme"
echo " If no -b option is specified then this option defaults to emulating single" echo " If no -b option is specified then this option defaults to emulating single"
echo " NVMe with 1 namespace and assumes path: /var/lib/libvirt/images/nvme_disk.img" echo " NVMe with 1 namespace and assumes path: /var/lib/libvirt/images/nvme_disk.img"
echo " -c create all above disk, default 0"
echo " -s <ram-size> in kb default: ${SPDK_VAGRANT_VMRAM}" echo " -s <ram-size> in kb default: ${SPDK_VAGRANT_VMRAM}"
echo " -n <num-cpus> 1 to 4 default: ${SPDK_VAGRANT_VMCPU}" echo " -n <num-cpus> 1 to 4 default: ${SPDK_VAGRANT_VMCPU}"
echo " -x <http-proxy> default: \"${SPDK_VAGRANT_HTTP_PROXY}\"" echo " -x <http-proxy> default: \"${SPDK_VAGRANT_HTTP_PROXY}\""
@ -69,9 +70,10 @@ OPTIND=1
NVME_DISKS_TYPE="" NVME_DISKS_TYPE=""
NVME_DISKS_NAMESPACES="" NVME_DISKS_NAMESPACES=""
NVME_FILE="" NVME_FILE=""
NVME_AUTO_CREATE=0
VAGRANTFILE_DIR="" VAGRANTFILE_DIR=""
while getopts ":b:n:s:x:p:vrldh-:" opt; do while getopts ":b:n:s:x:p:vcrldh-:" opt; do
case "${opt}" in case "${opt}" in
-) -)
case "${OPTARG}" in case "${OPTARG}" in
@ -99,6 +101,9 @@ while getopts ":b:n:s:x:p:vrldh-:" opt; do
v) v)
VERBOSE=1 VERBOSE=1
;; ;;
c)
NVME_AUTO_CREATE=1
;;
r) r)
DRY_RUN=1 DRY_RUN=1
;; ;;
@ -180,6 +185,9 @@ else
namespace="1" namespace="1"
fi fi
NVME_DISKS_NAMESPACES+="$namespace,"; NVME_DISKS_NAMESPACES+="$namespace,";
if [ ${NVME_AUTO_CREATE} = 1 ]; then
$SPDK_DIR/scripts/vagrant/create_nvme_img.sh -t $type -n $path
fi
done <<< $args done <<< $args
done done
fi fi
@ -194,6 +202,7 @@ if [ ${VERBOSE} = 1 ]; then
echo DRY_RUN=$DRY_RUN echo DRY_RUN=$DRY_RUN
echo NVME_FILE=$NVME_FILE echo NVME_FILE=$NVME_FILE
echo NVME_DISKS_TYPE=$NVME_DISKS_TYPE echo NVME_DISKS_TYPE=$NVME_DISKS_TYPE
echo NVME_AUTO_CREATE=$NVME_AUTO_CREATE
echo NVME_DISKS_NAMESPACES=$NVME_DISKS_NAMESPACES echo NVME_DISKS_NAMESPACES=$NVME_DISKS_NAMESPACES
echo SPDK_VAGRANT_DISTRO=$SPDK_VAGRANT_DISTRO echo SPDK_VAGRANT_DISTRO=$SPDK_VAGRANT_DISTRO
echo SPDK_VAGRANT_VMCPU=$SPDK_VAGRANT_VMCPU echo SPDK_VAGRANT_VMCPU=$SPDK_VAGRANT_VMCPU
@ -245,6 +254,7 @@ if [ ${DRY_RUN} = 1 ]; then
printenv SPDK_VAGRANT_HTTP_PROXY printenv SPDK_VAGRANT_HTTP_PROXY
printenv SPDK_QEMU_EMULATOR printenv SPDK_QEMU_EMULATOR
printenv NVME_DISKS_TYPE printenv NVME_DISKS_TYPE
printenv NVME_AUTO_CREATE
printenv NVME_DISKS_NAMESPACES printenv NVME_DISKS_NAMESPACES
printenv NVME_FILE printenv NVME_FILE
printenv SPDK_DIR printenv SPDK_DIR