You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/12/01 17:45:00 UTC

[jira] [Commented] (DRILL-8359) Add mount and unmount command support to the filesystem plugin

    [ https://issues.apache.org/jira/browse/DRILL-8359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17642074#comment-17642074 ] 

ASF GitHub Bot commented on DRILL-8359:
---------------------------------------

jnturton opened a new pull request, #2713:
URL: https://github.com/apache/drill/pull/2713

   # [DRILL-8359](https://issues.apache.org/jira/browse/DRILL-8359): Add mount and unmount command support to the filesystem plugin
   
   ## Description
   
   Optional mount and unmount commands are added toi the filesystem plugin with the goal of enabling the dynamic definition of filesystem mounts in the storage configuration. It is mainly anticpiated that network and cloud filesystems that have FUSE drivers (sshfs, davfs, rclone, ...) will be used in this way but local device mounts and image/loop device mounts (ISO, IMG, squashfs, etc.) might also be of interest. Filesystems that can be mounted in this way become queryable by Drill without burden of dedicated storage plugin development.
   
   The provided commands are executed in their own processes by the host OS and run under the OS user that is running the Drill JVM. The mount command will be executed when an enabled plugin is initialised (something that is done lazily) and when it transitions from disabled to enabled. The provided unmount command will be executed whenever a plugin transitions from enabled to disabled and when the Drillbit shuts down while the plugin is enabled.
   
   Example using udisks on Linux to mount and unmount an image of an ext4 filesystem.
   ```
   {
     "type" : "file",
     "connection" : "file:///",
     "mountCommand" : [ "sh", "-c", "udisksctl loop-setup -f /tmp/test.img && udisksctl mount -b /dev/loop0" ],
     "unmountCommand" : [ "sh", "-c", "udisksctl unmount -b /dev/loop0 && udisksctl loop-delete -b /dev/loop0" ],
     "workspaces" : {
        ...
   ```
   
   ## Documentation
   New sections to be added to the filesystem doc page.
   
   ## Testing
   New unit test TestMountCommand.
   Manual test of mount commands through different sequences of startup, enable, disable, shutdown.
   




> Add mount and unmount command support to the filesystem plugin
> --------------------------------------------------------------
>
>                 Key: DRILL-8359
>                 URL: https://issues.apache.org/jira/browse/DRILL-8359
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Storage - File
>    Affects Versions: 1.20.2
>            Reporter: James Turton
>            Assignee: James Turton
>            Priority: Minor
>             Fix For: 2.0.0
>
>
> This Jira proposes optional mount and unmount commands in the filesystem plugin with the goal of enabling the dynamic definition of filesystem mounts in the storage configuration. It is mainly anticpiated that network and cloud filesystems that have FUSE drivers (sshfs, davfs, rclone, ...) will be used in this way but local device mounts and image/loop device mounts (ISO, IMG, squashfs, etc.) might also be of interest. Filesystems that can be mounted in this way become queryable by Drill cluster without burden of dedicated storage plugin development.
> The provided commands are executed in their own processes by the host OS and run under the OS user that is running the Drill JVM. The mount command will be executed when an enabled plugin is initialised (something that is done lazily) and whenever it transitions from disabled to enabled. The provided unmount command will be executed whenever a plugin transitions from enabled to disabled and when the Drillbit shuts down while the plugin has been initialised and is enabled.
> Example using udisks on Linux to mount and unmount an image of an ext4 filesystem.
> {code:java}
> {
>   "type" : "file",
>   "connection" : "file:///",
>   "mountCommand" : [ "sh", "-c", "udisksctl loop-setup -f /tmp/test.img && udisksctl mount -b /dev/loop0" ],
>   "unmountCommand" : [ "sh", "-c", "udisksctl unmount -b /dev/loop0 && udisksctl loop-delete -b /dev/loop0" ],
>   "workspaces" : {
>      ...{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)