scripts/vagrant: add the ability to specify the nvme file.

This is necessary to enable multiple VMs to run in the same physical
system since they each need a unique backing nvme drive.

Change-Id: Ie2d3aa9604533b4d39932e1f68cb977bafdb7ab4
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/432202
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Seth Howell 2018-11-06 11:05:10 -07:00 committed by Ben Walker
parent faad3cd7bf
commit b15ecfad85
3 changed files with 48 additions and 9 deletions

View File

@ -90,7 +90,7 @@ Vagrant.configure(2) do |config|
vb.memory = "#{vmram}" vb.memory = "#{vmram}"
vb.cpus = "#{vmcpu}" vb.cpus = "#{vmcpu}"
nvme_disk = 'nvme.vdi' nvme_disk=(ENV['NVME_FILE'] || "nvme_disk.img")
unless File.exist? (nvme_disk) unless File.exist? (nvme_disk)
vb.customize ["createhd", "--filename", nvme_disk, "--variant", "Fixed", "--size", "1024"] vb.customize ["createhd", "--filename", nvme_disk, "--variant", "Fixed", "--size", "1024"]
vb.customize ["storagectl", :id, "--name", "nvme", "--add", "pcie", "--controller", "NVMe", "--portcount", "1", "--bootable", "off"] vb.customize ["storagectl", :id, "--name", "nvme", "--add", "pcie", "--controller", "NVMe", "--portcount", "1", "--bootable", "off"]
@ -111,7 +111,12 @@ Vagrant.configure(2) do |config|
# we put nvme_disk inside default pool to eliminate libvirt/SELinux Permissions Problems # we put nvme_disk inside default pool to eliminate libvirt/SELinux Permissions Problems
# and to be able to run vagrant from user $HOME directory # and to be able to run vagrant from user $HOME directory
nvme_disk = '/var/lib/libvirt/images/nvme_disk.img' if ENV['NVME_FILE']
nvme_disk="/var/lib/libvirt/images/" + ENV['NVME_FILE']
else
nvme_disk="/var/lib/libvirt/images/nvme_disk.img"
end
unless File.exist? (nvme_disk) unless File.exist? (nvme_disk)
puts "If run with libvirt provider please execute create_nvme_img.sh" puts "If run with libvirt provider please execute create_nvme_img.sh"
end end

View File

@ -1,15 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SYSTEM=`uname -s` SYSTEM=`uname -s`
size="1024M" size="1024M"
name="nvme_disk.img"
# NVMe img size example format: 2048M function usage() {
if [ -n $1 ]; then echo "Usage: ${0##*/} [-s <disk_size>] [-n <backing file name>]"
size=$1 echo "-s <disk_size> with postfix e.g. 2G default: 1024M"
fi echo "-n <backing file name> default: nvme_disk.img"
}
while getopts "s:n:h-:" opt; do
case "${opt}" in
-)
echo " Invalid argument: $OPTARG"
usage
exit 1
;;
s)
size=$OPTARG
;;
n)
name=$OPTARG
;;
h)
usage
exit 0
;;
*)
echo " Invalid argument: $OPTARG"
usage
exit 1
;;
esac
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/nvme_disk.img' nvme_disk="/var/lib/libvirt/images/$name"
qemu-img create -f raw $nvme_disk ${size} qemu-img create -f raw $nvme_disk ${size}
#Change SE Policy on Fedora #Change SE Policy on Fedora

View File

@ -15,10 +15,11 @@ SPDK_DIR="$( cd "${DIR}/../../" && pwd )"
# The command line help # The command line help
display_help() { display_help() {
echo echo
echo " Usage: ${0##*/} [-n <num-cpus>] [-s <ram-size>] [-x <http-proxy>] [-hvrld] <distro>" echo " Usage: ${0##*/} [-b nvme-backing-file] [-n <num-cpus>] [-s <ram-size>] [-x <http-proxy>] [-hvrld] <distro>"
echo echo
echo " distro = <centos7 | ubuntu16 | ubuntu18 | fedora26 | fedora27 | freebsd11> " echo " distro = <centos7 | ubuntu16 | ubuntu18 | fedora26 | fedora27 | freebsd11> "
echo echo
echo " -b <nvme-backing-file> default: ${NVME_FILE}"
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}\""
@ -54,8 +55,9 @@ SPDK_VAGRANT_DISTRO="distro"
SPDK_VAGRANT_VMCPU=4 SPDK_VAGRANT_VMCPU=4
SPDK_VAGRANT_VMRAM=4096 SPDK_VAGRANT_VMRAM=4096
OPTIND=1 OPTIND=1
NVME_FILE="nvme_disk.img"
while getopts ":n:s:x:p:vrldh-:" opt; do while getopts ":b:n:s:x:p:vrldh-:" opt; do
case "${opt}" in case "${opt}" in
-) -)
case "${OPTARG}" in case "${OPTARG}" in
@ -94,6 +96,9 @@ while getopts ":n:s:x:p:vrldh-:" opt; do
d) d)
DEPLOY_TEST_VM=1 DEPLOY_TEST_VM=1
;; ;;
b)
NVME_FILE=$OPTARG
;;
*) *)
echo " Invalid argument: -$OPTARG" >&2 echo " Invalid argument: -$OPTARG" >&2
echo " Try: \"$0 -h\"" >&2 echo " Try: \"$0 -h\"" >&2
@ -147,6 +152,7 @@ if [ ${VERBOSE} = 1 ]; then
echo VAGRANT_TARGET=${VAGRANT_TARGET} echo VAGRANT_TARGET=${VAGRANT_TARGET}
echo HELP=$HELP echo HELP=$HELP
echo DRY_RUN=$DRY_RUN echo DRY_RUN=$DRY_RUN
echo NVME_FILE=$NVME_FILE
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
echo SPDK_VAGRANT_VMRAM=$SPDK_VAGRANT_VMRAM echo SPDK_VAGRANT_VMRAM=$SPDK_VAGRANT_VMRAM
@ -162,6 +168,7 @@ export SPDK_VAGRANT_VMRAM
export SPDK_DIR export SPDK_DIR
export COPY_SPDK_DIR export COPY_SPDK_DIR
export DEPLOY_TEST_VM export DEPLOY_TEST_VM
export NVME_FILE
if [ -n "$PROVIDER" ]; then if [ -n "$PROVIDER" ]; then
provider="--provider=${PROVIDER}" provider="--provider=${PROVIDER}"