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
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 <disk_size>] [-n <backing file name>]"
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"
}
@ -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
;;

View File

@ -24,6 +24,7 @@ display_help() {
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 " 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 " -n <num-cpus> 1 to 4 default: ${SPDK_VAGRANT_VMCPU}"
echo " -x <http-proxy> 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