forked from kata-containers/tests
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Run PMEM tests to check PMEM block devices support and compatibility with the pmem-csi kubernetes plugin. Depends-on: github.com/kata-containers/kata-containers#1290 fixes kata-containers#3150 Signed-off-by: Julio Montes <[email protected]>
- Loading branch information
Julio Montes
committed
Jan 18, 2021
1 parent
480b82e
commit 876d937
Showing
6 changed files
with
417 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
#!/bin/bash | ||
# | ||
# Copyright (c) 2020 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
FILE="" | ||
FS="" | ||
MNT_DIR="" | ||
SIZE="" | ||
|
||
die() { | ||
echo "ERROR: $*" >&2 | ||
exit 1 | ||
} | ||
|
||
warn() { | ||
echo -e "WARNING: $*" >&2 | ||
} | ||
|
||
info() { | ||
echo -e "INFO: $*" | ||
} | ||
|
||
help() { | ||
cat << EOF | ||
$0 is a command line tool to create raw files that can be used as pmem | ||
volumes that support DAX[1] in Kata Containers. | ||
USAGE: | ||
$0 [OPTIONS] FILE | ||
EXAMPLE: | ||
$0 -s 10G -f xfs -m ~/dax_volume ~/file.dax | ||
OPTIONS: | ||
-f FS filesystem, only xfs(5) and ext4(5) support DAX[1] | ||
-m DIR mount point in the host. Create a loop device for the file | ||
and mount it in the DIR specified, DIR can be used as a volume | ||
and Kata Containers will use it as a pmem volume that support DAX | ||
-s SIZE file size. SIZE must be aligned to 128M, hence the minimum | ||
supported size for a file is 128M | ||
[1]- https://www.kernel.org/doc/Documentation/filesystems/dax.txt | ||
EOF | ||
} | ||
|
||
create_file() { | ||
local reserved_blocks_percentage=3 | ||
local block_size=4096 | ||
local data_offset=$((1024*1024*2)) | ||
local dax_alignment=$((1024*1024*2)) | ||
local nsdax_src_url="https://raw.githubusercontent.com/kata-containers/osbuilder/master/image-builder/nsdax.gpl.c" | ||
|
||
truncate -s "${SIZE}" "${FILE}" | ||
if [ $((($(stat -c '%s' "${FILE}")/1024/1024)%128)) -ne 0 ]; then | ||
rm -f "${FILE}" | ||
die "SIZE must be aligned to 128M" | ||
fi | ||
|
||
if [ ! -x nsdax ]; then | ||
curl -Ls "${nsdax_src_url}" | gcc -x c -o nsdax - | ||
fi | ||
./nsdax "${FILE}" ${data_offset} ${dax_alignment} | ||
sync | ||
|
||
device=$(sudo losetup --show -Pf --offset ${data_offset} "${FILE}") | ||
if [ "${FS}" == "xfs" ]; then | ||
# DAX and reflink cannot be used together! | ||
# Explicitly disable reflink, if it fails then reflink | ||
# is not supported and '-m reflink=0' is not needed. | ||
if sudo mkfs.xfs -m reflink=0 -q -f -b size="${block_size}" "${device}" 2>&1 | grep -q "unknown option"; then | ||
sudo mkfs.xfs -q -f -b size="${block_size}" "${device}" | ||
fi | ||
else | ||
sudo mkfs.ext4 -q -F -b "${block_size}" "${device}" | ||
info "Set filesystem reserved blocks percentage to ${reserved_blocks_percentage}%" | ||
sudo tune2fs -m "${reserved_blocks_percentage}" "${device}" | ||
fi | ||
|
||
if [ -z "${MNT_DIR}" ]; then | ||
info "pmem volume will not be mounted" | ||
info "It can be mounted later running: sudo mount \$(sudo losetup --show -Pf --offset ${data_offset} ${FILE}) \$MNT_DIR" | ||
sudo losetup -d "${device}" | ||
else | ||
info "Mounting pmem volume at ${MNT_DIR}" | ||
sudo mount "${device}" "${MNT_DIR}" | ||
fi | ||
} | ||
|
||
main() { | ||
local OPTIND | ||
while getopts "f:hm:s:" opt;do | ||
case ${opt} in | ||
f) | ||
FS="${OPTARG}" | ||
;; | ||
h) | ||
help | ||
exit 0 | ||
;; | ||
m) | ||
MNT_DIR="${OPTARG}" | ||
;; | ||
s) | ||
SIZE="${OPTARG}" | ||
;; | ||
?) | ||
# parse failure | ||
help | ||
die "Failed to parse arguments" | ||
;; | ||
esac | ||
done | ||
shift $((OPTIND-1)) | ||
|
||
FILE=$1 | ||
|
||
if [ -z "${FILE}" ]; then | ||
die "mandatory FILE not supplied" | ||
fi | ||
|
||
if [ -z "${FS}" ]; then | ||
FS="xfs" | ||
warn "filesystem not supplied, using ${FS}" | ||
elif [ "${FS}" != "xfs" ] && [ "${FS}" != "ext4" ]; then | ||
die "Unsupported filesystem ${FS}" | ||
fi | ||
|
||
if [ -z "${SIZE}" ]; then | ||
SIZE="128M" | ||
warn "size not supplied, using ${SIZE}" | ||
fi | ||
|
||
create_file | ||
} | ||
|
||
main $@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#!/bin/bash | ||
# | ||
# Copyright (c) 2021 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
# This script is intended to run in a postgres container | ||
|
||
script_dir="$(realpath $(dirname $0))" | ||
source "${script_dir}/lib.sh" | ||
|
||
rows=${1:-500} | ||
script_dir="$(dirname $(realpath $0))" | ||
sql_file="/var/lib/postgresql/data/sql.sql" | ||
cat > "${sql_file}" <<EOF | ||
CREATE TABLE ${db_table_name} ( | ||
id serial PRIMARY KEY, | ||
name varchar NOT NULL, | ||
age int NOT NULL, | ||
phone varchar NOT NULL, | ||
birth varchar NOT NULL, | ||
country varchar NOT NULL, | ||
company varchar NOT NULL, | ||
email varchar NOT NULL | ||
); | ||
EOF | ||
|
||
# to avoid jenkins kills the process due to inactivity | ||
for i in $(seq 1 1000); do echo -n .; sleep 5; done & | ||
dots_pid=$! | ||
trap "kill -9 ${dots_pid}" EXIT | ||
|
||
echo "generating sql file" | ||
count=0 | ||
stop=false | ||
|
||
export IFS=$'\n' | ||
users=($(cat "${script_dir}/users.txt")); | ||
while [ "${stop}" != "true" ]; do | ||
for line in ${users[*]}; do | ||
if [ ${count} -ge ${rows} ]; then | ||
stop=true | ||
break; | ||
fi | ||
|
||
IFS=' ' a=(${line//|/ }); IFS=$'\n' | ||
echo "INSERT INTO ${db_table_name} (name, age, phone, birth, country, company, email) VALUES ('${a[0]}', ${a[1]}, '${a[2]}', '${a[3]}', '${a[4]}', '${a[5]}', '${a[6]}');" >> \ | ||
"${sql_file}" | ||
|
||
((count++)) | ||
done | ||
done | ||
unset IFS | ||
|
||
createdb "${db_name}" | ||
echo "running sql file" | ||
time psql -d "${db_name}" -f "${sql_file}" > /dev/null | ||
rm -f "${sql_file}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
# | ||
# Copyright (c) 2021 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
db_name="test" | ||
db_table_name="users" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
Mia|8|1-878-506-7293|09-12-06|San Marino|Erat Vitae Risus Industries|[email protected] | ||
April|9|1-476-475-4935|06-23-13|Congo, the Democratic Republic of the|Dui Ltd|[email protected] | ||
Desirae|4|1-323-211-1417|05-22-17|Saint Pierre and Miquelon|Dictum Eu Placerat Consulting|[email protected] | ||
Keaton|3|1-731-750-8259|01-31-20|Samoa|Nibh Institute|[email protected] | ||
Fulton|6|1-839-967-2181|05-29-17|Chile|Orci Corp.|[email protected] | ||
Conan|8|1-947-556-4165|03-05-12|Nauru|In Dolor Fusce Foundation|[email protected] | ||
Isaiah|3|1-979-982-1576|10-11-20|Norway|Rutrum Fusce Corp.|[email protected] | ||
Dolan|5|1-731-522-4184|07-20-19|New Caledonia|Libero Est Corp.|[email protected] | ||
Colt|3|1-104-481-3139|10-11-00|Netherlands|Consequat Nec Ltd|[email protected] | ||
Jenna|8|1-392-845-1268|09-16-19|South Sudan|Ac Arcu Institute|[email protected] | ||
Roth|7|1-282-966-7511|09-21-06|Algeria|Diam Dictum Sapien Foundation|[email protected] | ||
Ciaran|8|1-568-638-7495|07-17-02|Kazakhstan|Auctor PC|[email protected] | ||
Heidi|1|1-838-317-9035|09-18-05|El Salvador|Nunc Mauris Sapien Associates|[email protected] | ||
David|5|1-495-952-2285|08-22-18|Swaziland|Sit Amet Dapibus PC|[email protected] | ||
Bethany|6|1-224-887-6250|02-07-14|Grenada|Diam Sed Company|[email protected] | ||
Ryan|10|1-433-743-3598|05-03-18|Macao|Vestibulum Associates|[email protected] | ||
Kimberley|3|1-414-236-8418|07-18-12|Christmas Island|Sociis Natoque Penatibus Associates|[email protected] | ||
Shelley|1|1-600-985-2890|06-05-11|Norfolk Island|Maecenas Malesuada Fringilla LLC|[email protected] | ||
Timothy|5|1-861-196-7838|11-14-06|Egypt|Nascetur LLC|[email protected] | ||
Jasper|9|1-850-517-0401|05-29-15|Holy See (Vatican City State)|Parturient Montes Nascetur Limited|[email protected] | ||
Jordan|2|1-670-715-6431|02-03-18|Netherlands|Enim Company|[email protected] | ||
Heather|1|1-141-274-3979|05-21-17|Japan|Nulla Dignissim Maecenas LLC|[email protected] | ||
Darius|4|1-137-939-6498|12-15-05|Georgia|Accumsan Sed LLC|[email protected] | ||
Hadley|2|1-687-457-7782|09-18-14|Kuwait|Sagittis Duis Gravida PC|[email protected] | ||
Gloria|1|1-287-641-5914|09-15-10|Guinea-Bissau|Sed Et Libero Corporation|[email protected] | ||
Barry|2|1-846-581-1886|05-22-18|Luxembourg|Odio Phasellus Incorporated|[email protected] | ||
Shad|2|1-639-780-2457|05-01-20|Senegal|Nec Tellus Corporation|[email protected] | ||
Hilary|4|1-591-123-0234|11-23-09|Gabon|Tempor Diam Associates|[email protected] | ||
Burton|5|1-475-741-3332|08-16-16|Costa Rica|Nunc Inc.|[email protected] | ||
Adrian|5|1-467-133-2165|09-28-20|Marshall Islands|Vitae Industries|[email protected] | ||
Baxter|8|1-240-908-5513|02-01-03|Malawi|Integer Foundation|[email protected] | ||
Elliott|10|1-237-956-0542|10-16-14|Uganda|Nec Ante Corporation|[email protected] | ||
Olivia|7|1-506-903-7178|09-29-00|Vanuatu|Aenean Eget Metus PC|[email protected] | ||
Lucian|7|1-622-647-9202|07-24-17|Albania|At Velit Consulting|[email protected] | ||
Jena|10|1-182-376-8455|03-27-13|Thailand|Et Magnis Dis Company|[email protected] | ||
Jocelyn|4|1-519-152-6133|08-09-14|New Zealand|Magna Corporation|[email protected] | ||
Melissa|10|1-106-662-9720|12-14-12|Ecuador|Sed Est LLP|[email protected] | ||
Shana|5|1-340-840-0262|03-07-07|Cayman Islands|Amet Lorem Semper Limited|[email protected] | ||
Lillian|5|1-373-254-6047|06-19-05|Czech Republic|Mattis Incorporated|[email protected] | ||
Cruz|9|1-759-816-4647|10-17-01|Dominica|In Lobortis Tellus Inc.|[email protected] | ||
Cassandra|8|1-813-754-6078|09-30-09|New Caledonia|Cras Lorem Lorem Ltd|[email protected] | ||
Luke|10|1-350-972-1874|10-22-13|Botswana|Eleifend Cras Industries|[email protected] | ||
Jared|10|1-136-782-5495|04-27-21|Algeria|Neque Institute|[email protected] | ||
Denise|10|1-372-600-8336|09-10-10|Venezuela|Non Lobortis PC|[email protected] | ||
Shannon|5|1-799-868-2692|10-18-19|Qatar|Mauris Integer Sem Corp.|[email protected] | ||
Clarke|9|1-636-409-6331|02-17-06|Central African Republic|Sagittis Limited|[email protected] | ||
Fletcher|2|1-701-579-5420|09-06-14|Lithuania|Nulla Ltd|[email protected] | ||
Scott|5|1-405-626-4008|12-06-17|Brazil|Donec Company|[email protected] | ||
Theodore|8|1-350-456-9220|04-07-20|Turkey|Aliquam Tincidunt LLC|[email protected] | ||
Vivien|4|1-310-936-6729|11-12-20|Zambia|Tempor Augue Ac Corporation|[email protected] |
Oops, something went wrong.