From 1d95f22d629f79b45f830c91b013b054cc5e9cce Mon Sep 17 00:00:00 2001 From: Maciej Wawryk Date: Tue, 19 Nov 2019 11:38:23 +0100 Subject: [PATCH] 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 Change-Id: If772adc282c4f6d94dab5eb7337f097a08f708e9 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/475070 Tested-by: SPDK CI Jenkins Reviewed-by: Karol Latecki Reviewed-by: Jim Harris Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto --- scripts/vagrant/create_nvme_img.sh | 12 ++++++++---- scripts/vagrant/create_vbox.sh | 12 +++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/scripts/vagrant/create_nvme_img.sh b/scripts/vagrant/create_nvme_img.sh index 4c3594b03d..c2496d7db0 100755 --- a/scripts/vagrant/create_nvme_img.sh +++ b/scripts/vagrant/create_nvme_img.sh @@ -1,13 +1,15 @@ #!/usr/bin/env bash SYSTEM=$(uname -s) size="1024M" -name="nvme_disk.img" +nvme_disk="/var/lib/libvirt/images/nvme_disk.img" type="nvme" function usage() { echo "Usage: ${0##*/} [-s ] [-n ]" echo "-s with postfix e.g. 2G default: 1024M" - echo "-n default: nvme_disk.img" + echo " for OCSSD default: 9G" + echo "-n backing file path with name" + echo " default: /var/lib/libvirt/images/nvme_disk.img" echo "-t default: nvme available: ocssd" } @@ -22,7 +24,7 @@ while getopts "s:n:t:h-:" opt; do size=$OPTARG ;; n) - name=$OPTARG + nvme_disk=$OPTARG ;; t) type=$OPTARG @@ -41,12 +43,14 @@ done if [ ! "${SYSTEM}" = "FreeBSD" ]; then WHICH_OS=$(lsb_release -i | awk '{print $3}') - nvme_disk="/var/lib/libvirt/images/$name" case $type in "nvme") qemu-img create -f raw $nvme_disk ${size} ;; "ocssd") + if [ ${size} == "1024M" ]; then + size="9G" + fi fallocate -l ${size} $nvme_disk touch /var/lib/libvirt/images/ocssd_md ;; diff --git a/scripts/vagrant/create_vbox.sh b/scripts/vagrant/create_vbox.sh index 5fb57d288d..477f0e8a65 100755 --- a/scripts/vagrant/create_vbox.sh +++ b/scripts/vagrant/create_vbox.sh @@ -24,6 +24,7 @@ display_help() { echo " usage: type types available: ocssd, nvme" 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 " -c create all above disk, default 0" echo " -s in kb default: ${SPDK_VAGRANT_VMRAM}" echo " -n 1 to 4 default: ${SPDK_VAGRANT_VMCPU}" echo " -x default: \"${SPDK_VAGRANT_HTTP_PROXY}\"" @@ -69,9 +70,10 @@ OPTIND=1 NVME_DISKS_TYPE="" NVME_DISKS_NAMESPACES="" NVME_FILE="" +NVME_AUTO_CREATE=0 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 "${OPTARG}" in @@ -99,6 +101,9 @@ while getopts ":b:n:s:x:p:vrldh-:" opt; do v) VERBOSE=1 ;; + c) + NVME_AUTO_CREATE=1 + ;; r) DRY_RUN=1 ;; @@ -180,6 +185,9 @@ else namespace="1" fi 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 fi @@ -194,6 +202,7 @@ if [ ${VERBOSE} = 1 ]; then echo DRY_RUN=$DRY_RUN echo NVME_FILE=$NVME_FILE echo NVME_DISKS_TYPE=$NVME_DISKS_TYPE + echo NVME_AUTO_CREATE=$NVME_AUTO_CREATE echo NVME_DISKS_NAMESPACES=$NVME_DISKS_NAMESPACES echo SPDK_VAGRANT_DISTRO=$SPDK_VAGRANT_DISTRO echo SPDK_VAGRANT_VMCPU=$SPDK_VAGRANT_VMCPU @@ -245,6 +254,7 @@ if [ ${DRY_RUN} = 1 ]; then printenv SPDK_VAGRANT_HTTP_PROXY printenv SPDK_QEMU_EMULATOR printenv NVME_DISKS_TYPE + printenv NVME_AUTO_CREATE printenv NVME_DISKS_NAMESPACES printenv NVME_FILE printenv SPDK_DIR