We propose a new cloud service model called Internet-of-Things (IoT)-Infrastructure-as-a-Service (IoT-IaaS). Under an IoT-IaaS, an IaaS cloud service provider can go beyond offering IoT data streams and offer access to IoT infrastructure to users, the same way data center infrastructure is shared in the IaaS model. We developed a reference design for the proposed IoT-IaaS cloud service model, built from open source components. We demonstrate the proposed reference design in the form of a virtualized-IoT (vIoT) testbed. The vIoT testbed uses the OpenStack cloud management system and Raspberry Pi embedded computers (standing in for IoT devices) configured as Novacompute nodes and LXD containers. We also developed a simple mechanism for shared access to high data rate sensors (a camera) and low data rate sensors (temperature-humidity) by multiple tenants. We tested the performance of container launch times, memory access (with and without ZRAM optimization kernel module enabled), CPU, and file I/O for applications running inside Linux containers and compared it with the same performance when running on the Raspberry Pi's host OS. We conclude that there is no significant performance penalty for executing the edge component of an IoT application inside a Linux container, rather than directly on the device's host OS.