Page 48 - Kaleidoscope Academic Conference Proceedings 2021
P. 48

5.2  Virtual file system over FaaS

                                                              To  enable  a  multi-tenant  IoT  infrastructure,  the
                                                              I/Ocloud paradigm [21] aims at stretching the cloud
                                                              Infrastructure-as-a-Service (IaaS) paradigm by adapting
                                                              the cloud-enabled functionalities to the IoT infrastructure.
           Figure 5 – A Node-RED flow based on a Qinling function.
                                                              Of course, choosing between the deviceless computing
                                                              paradigm and the I/Ocloud depends on the developer’s
                                                              needs.  The I/Ocloud approach provides full control
                                                              over the IoT deployments and even low-level access to
                                                              the sensors/actuators.  Specifically, the solution provides
                                                              cloud-based abstracted instances representing physical IoT
                                                              nodes and their hosted sensors/actuators. The IoT nodes
                                                              abstraction consists of providing accessible Virtual Nodes
                                                              (VNs) with attached (virtual) I/O resources (see Figure 7)
                                                              virtualized through the file system. Technically, a VN is a
                                                              self-contained and isolated environment (i.e., a container)
                                                              with a mounted Virtual file system (VFS). The VN can be
           Figure 6 – Graph and gauge generated by the Qinling
                                                              seen then as a physical IoT node able to host a user-defined
           functions.
                                                              business logic and provide, at the same time, interactions
                                                              with remote physical I/O resources. The filesystem-level
               associates them with the functions (see Figure 4).
                                                              abstraction and syscall trapping are based on the Filesystem
            3. The user, using the extended Node-RED version (that  in USErspace (FUSE11) software interface and the S4T
               has the new nodes based on Qinling), can design his/her  IoT-oriented FaaS capabilities.  Within this view, recent
               customized workflow among distributed IoT nodes and  efforts are in progress to promote the use of the FaaS
               the cloud-based instances as well.             paradigm to cope with shared file systems’ access [22].

            4. Once the user runs his/her flow using Node-RED
                                                              Figure 8 depicts a layered architecture of the virtualization
               GUI, Qinling, together with Zun and IoTronic, takes  approach.  As shown in the figure, bottom-up, we have
               the responsibility of instantiating the functions and  sensors and actuators, in the case of a physical IoT device
               executing them when required according to the  (left node), whereas on the right, a compute node belonging
               applications’ logic.                           to a cloud data center is depicted, featuring no directly
           To highlight a use case of our approach, we created a  attached transducers.  In the IoT node, on top of the
           simple flow that makes use of Qinling to monitor the Central  Linux-based Operating System (OS), we have the sysfs-based
                                                              interface that enables I/O operations with the physical pins.
           Processing Unit (CPU) usage of an edge IoT node. In Figure 5,
                                                              To fully virtualize and reproduce the corresponding IoT
           the flow that uses a Qinling-based Node-RED function is
                                                              node on the cloud side, the General-Purpose Input/Output
           shown. In particular, the flow is meant to report the CPU
                                                              (GPIO) pseudo-file system (sysfs) of the IoT node has to be
           usage on a Raspberry Pi every one second. A Node-RED
                                                              supplemented by a comprehensive clone of the user-space
           Timing node is used to trigger the function deployed on the
                                                              setup. This clone of the pseudo-file system is generated
           board (the node is named Qinling-node in the figure) to report
                                                              by FUSE that uses, underneath, Qinling functions to enable
           the CPU percentage usage. Afterwards, the value received                      FS
                                                                                         over
                                                              remote interactions with the physical resources. Wrapping
           is sent to a formatter in order to create a 10 minutes history                FaaS
                                                              up, the red dashed arrows highlight the final result in terms
                                                                Function 5
           CPU usage graph and a gauge showing the last value received
                                                       Function 4
                                                                        Function 6
           (see Figure 6). We mention here that the Node-RED flow is
                                     Function 2
                                           Function 3
                                                              11 https://github.com/libfuse/libfuse
           conceived on a cloud-based VM and not the IoT node itself
           (unlike OpenWhisk Light, see Section 2)   Virtual node                      Virtual node (1)  Virtual node (2)                                                Virtual node
                                                      Application
                                                                                         Application   Application                                                       Application
                                     I/Ocloud   Virtual
                                            Container Engine/Hypervisor
                             Virtual   datacenter  disk          VN                    I/O   Container Engine/Hypervisor                                        Container Engine/Hypervisor
                              disk                                                   operations
                                                                                   FS
                                   Virtual                                         over  Virtual I/O sysfs  Virtual I/O sysfs                                           Virtual I/O sysfs
                                   network  VN 2                                   FaaS
                              VN 1                               I/O
                                                FaaS Engine
                                                                                             I/O Hypervisor                                                        I/O Hypervisor
                                         Virtual   Virtual
                          Virtual   Virtual   resource  resource  resource Function
                          resource  resource                             Function  Function                                                                              I/O
                                                                                                                                                                       operations
                                                                        VN
                                                                      I/O Hypervisor
                                                                                                                                                                   File System
                                                                      GPIO sysfs
                      IoT node 1          IoT node 2
                                                                                                OS                                                                Linux-based OS
                                                      IoT node       Linux-based OS
                 IoT   IoT   ...  IoT   IoT   IoT   . . .  IoT    VN   IoT node                                                                                    IoT node
                                                                   S
                resource  resource  resource  resource  resource  resource  migration  S  A  Cloud Compute node
                                                     IoT node
                                                                                                                                                              A      S       S
                 Figure 7 – I/Ocloud virtualization approach.  Figure 8 – I/Ocloud file system virtualization over FaaS.
                                                          – xliv –
                         Virtual Node  Virtual Node
                          Application  Application
                           Container Engine/Hypervisor
                         Virtual I/O sysfs  Virtual I/O sysfs
                                              FaaSFS
                              I/O Hypervisor
                                Redis-fs
                                Redis
                               Arancino OS                          Function  Function  Function
                               IoT node
                          S      A       S
                                                                          File System
                                                                        Linux-based OS
                                                                    S       A      S
   43   44   45   46   47   48   49   50   51   52   53