Shared VM Storage

How to access shared storage from an Orka VM.

🚧

Quick Navigation

Jump to: Overview | Mounting Shared Storage | Automount Shared Storage | Limitations | Known Issues

Overview

Starting with Orka 1.6.0, all deployed VMs will have access to a shared storage volume in the cluster. This storage can be used to cache build artifacts in-between stages of your CI/CD pipeline, for example, or host Xcode installers and other build dependencies.

Orka offers two different ways to utilize shared VM storage:

  1. By default, the VM shared storage directory will be placed on the primary NFS storage export for your cluster. This means that VM shared storage will share storage space with VM images and ISOs, so please keep this in mind!
  2. Optionally, you may request to provision a secondary storage export that will be dedicated to shared storage. This is ideal if you plan to share a lot of data between your CI/CD pipeline builds.

Mounting Shared Storage

To mount the shared storage volume, run the following command from within the VM:

sudo mount_9p orka

The volume will be mounted at /Volumes/orka. The first time you attempt to access the filesystem via Terminal, you will be asked to grant the Terminal application permissions to access files on a network volume:

Click the OK button to allow access. You will then be able to access files on the volume:

Automount Shared Storage

In order to automount the shared storage volume at system boot, create the file /Library/LaunchDaemons/com.mount9p.plist as follows:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.mount9p.plist</string>
  <key>RunAtLoad</key>
  <true/>
  <key>StandardErrorPath</key>
  <string>/var/log/mount_9p_error.log</string>
  <key>StandardOutPath</key>
  <string>/var/log/mount_9p.log</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>-c</string>
    <string>mkdir -p /Volumes/orka && mount_9p orka</string>
  </array>
</dict>
</plist>

Change the file ownership and permissions:

sudo chown root:wheel /Library/LaunchDaemons/com.mount9p.plist
sudo chmod 600 /Library/LaunchDaemons/com.mount9p.plist

Reboot the virtual machine for changes to take effect and save or commit the VM image.

Limitations

You may encounter permissions issues when reading or writing data to the shared storage volume. This is due to file permissions set up on the storage in your cluster designed to protect the integrity of your data. In order to get around this, you may need to become the root user to write data to the shared storage volume.

If you are using the default primary storage export in your cluster for shared VM storage, keep in mind that this storage is also used to host your Orka VM images and other data. This should be acceptable for sharing a limited set of files between virtual machines but is not recommended for intensive IO. In the case that you require frequent use of multiple reads and writes to the shared storage volume, setting up dedicated secondary storage is highly recommended.

Known Issues

When connecting to the VM over SSH and attempting to access the shared storage volume, you may encounter the error orka: Operation not permitted:

To fix this issue, connect to the VM via VNC and navigate to System Preferences → Security & Privacy and click on the Privacy tab. From the list select Full Disk Access and click the padlock in the lower lefthand corner to make changes:

You will then be prompted to enter your password. Next, click the checkbox next to sshd-keygen-wrapper:

Click the padlock again to prevent further changes. You should now be able to access the shared storage volume over an SSH connection.

📘

IMPORTANT

Make sure to save or commit the VM image after completing the above steps to persist changes.


Did this page help you?